]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Mon, 24 Jan 2011 09:23:26 +0000 (09:23 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Mon, 24 Jan 2011 09:23:26 +0000 (09:23 +0000)
inc/commons/DAO/class.common.dao.entreprise.php
inc/commons/DAO/class.common.dao.utilisateur.php
inc/commons/class.common.core.php
inc/commons/class.common.droits.php
inc/commons/class.common.filtre.php
inc/commons/class.common.url.php
inc/prepend.php
inc/ws/Controlleur/class.ws.ajax.php
inc/ws/Controlleur/class.ws.url.php
inc/ws/DAO/class.ws.dao.demande.php
inc/ws/Metier/class.ws.demande.php

index 9066a3d2318424e564d5514ace0fc75ddd0fe208..531967f8fa920ea6443c6cf951928b261a985884 100644 (file)
@@ -163,6 +163,13 @@ class commonDAOEntreprise extends commonDAO {
                return $entreprise;\r
        }\r
 \r
+       public function setWSAdmin($entreprise_id, $admin_id)\r
+       {\r
+               $c = $this->con->openCursor('entreprises');\r
+               $c->ws_admin = $admin_id;\r
+               $c->update('WHERE entreprise_id=\'' . $this->con->escape($entreprise_id) . '\'');\r
+       }\r
+\r
        public function supprime($entreprise_id)\r
        {\r
                $this->con->execute('DELETE FROM utilisateurs WHERE entreprise=\'' . $this->con->escape($entreprise_id) . '\'');\r
index 5f478087d7dc5849d78f2273fd4479d6d6dc9bbe..c1f269a87ab1bd6d01106956013d19330d89ec4e 100644 (file)
@@ -125,6 +125,11 @@ class commonDAOUtilisateur extends commonDAO {
                return null;\r
        }\r
 \r
+       public function selectWSRevendeursFacturables(){\r
+               $r=$this->con->select('SELECT * FROM utilisateurs_entreprise WHERE ws_grade BETWEEN 3 AND 4 AND utilisateur_id IN(SELECT facturable_id FROM ws_users_tree) ORDER BY rs');\r
+               return $this->factory($r);\r
+       }\r
+\r
        protected function getNextId()\r
        {\r
                $r = $this->con->select('SELECT MAX(utilisateur_id) AS utilisateur_id FROM utilisateurs');\r
@@ -151,7 +156,6 @@ class commonDAOUtilisateur extends commonDAO {
                $limit = is_null($limit)?'':$this->con->limit($limit[0], $limit[1]);\r
 \r
                $sql = 'SELECT * FROM ' . $table . ' WHERE (' . $where . ') ORDER BY ' . $orderby . ' ' . $sens . ' ' . $limit;\r
-               fb($sql);\r
                return $sql;\r
        }\r
 \r
index bf66bf3239b71a2f85d800f6a98c1a7c60cddc10..540350139f9c7a3d81b1bf5210553fe1fcc61300 100644 (file)
@@ -416,6 +416,7 @@ class commonCore extends cubeCore {
                $db->demandes->status('integer', 0, false);\r
                $db->demandes->revendeur('integer', 0, false);\r
                $db->demandes->utilisateur('integer', 0, false);\r
+               $db->demandes->administrateur('integer', 0, false);\r
                // Clés\r
                $db->demandes->primary('pk_demandes', 'demande_id');\r
 \r
@@ -512,10 +513,11 @@ class commonCore extends cubeCore {
                         . 'LEFT JOIN books b ON t.theme_id=b.theme '\r
                         . 'GROUP BY t.theme_id');\r
 \r
-               $this->views->createView('demandes_vue', 'SELECT d.*, CONCAT(c.rs,\' (\',c.prenom,\' \',c.nom,\')\') AS utilisateur_nom, CONCAT(r.rs,\' (\',r.prenom,\' \',r.nom,\')\') AS revendeur_nom, c.entreprise AS entreprise '\r
+               $this->views->createView('demandes_vue', 'SELECT d.*, CONCAT(c.rs,\' (\',c.prenom,\' \',c.nom,\')\') AS utilisateur_nom, CONCAT(r.rs,\' (\',r.prenom,\' \',r.nom,\')\') AS revendeur_nom, c.entreprise AS entreprise, a.prenom AS administrateur_nom '\r
                         . 'FROM demandes d '\r
                         . 'LEFT JOIN utilisateurs_entreprise r ON d.revendeur=r.utilisateur_id '\r
-                        . 'LEFT JOIN utilisateurs_entreprise c ON d.utilisateur=c.utilisateur_id');\r
+                        . 'LEFT JOIN utilisateurs_entreprise c ON d.utilisateur=c.utilisateur_id '\r
+                        . 'LEFT JOIN utilisateurs a ON d.administrateur=a.utilisateur_id');\r
                // cubeDb::mysqlConvert($this->con);\r
                touch($cache);\r
        }\r
index 4a81a4eacfccbbb617fb47319ce955ff87d7f6e9..81840ac27325b09d3f885e6e218c2cab5735f33e 100644 (file)
@@ -38,7 +38,7 @@ class commonDroits {
                if (MODE == 'extranet') {\r
                        $droits = array('projets' => 1, 'factures' => 1, 'devis' => 1, 'clients' => 1, 'timereport' => 1, 'fichiers' => 0);\r
                } elseif (MODE == 'ws') {\r
-                       $droits = array('clients' => 3, 'fichiers' => 0, 'publications' => 3);\r
+                       $droits = array('clients' => 3, 'fichiers' => 0, 'publications' => 3,'devis'=>3);\r
                }\r
                if (MODE == 'extranet') {\r
                        return (isset($droits[$page]) && $droits[$page] <= $core->user->grade);\r
index c177a74fc3b2e716615078eebbb50a6a40107b4c..2b368a34168d8f922a1d551581602d809f98123f 100644 (file)
@@ -55,6 +55,9 @@ class commonFiltre {
                                $this->values[$i] = $i;\r
                        }\r
                        $this->all = __('Toutes');\r
+               } elseif ($this->varname == 'demande_moi') {\r
+                       $this->values = array(__('Moi') => 'moi', __('Autres') => 'autres');\r
+                       $this->all = __('Toutes');\r
                }\r
        }\r
 \r
index 1f3168cfc38346947fdc2fa412dcf4ced5c6250f..d4330f27ce24e3fe8872d19e76917e65810d4152 100644 (file)
@@ -190,14 +190,14 @@ class commonUrl {
                } elseif ($args[1] == 'wsuser') {\r
                        $dao = new commonDAOUtilisateur($core->con);\r
                        $dao->setSearch($q, true);\r
-                       $clients = $dao->getListe('utilisateur_id','ASC',  null, ' AND ws_grade>0', $core->user);\r
+                       $clients = $dao->getListe('utilisateur_id', 'ASC', null, ' AND ws_grade>0', $core->user);\r
                        foreach($clients as $client) {\r
                                $suggestions[] = $client->utilisateur_id . ' - ' . $client->rs . ' (' . $client->prenom . ' ' . $client->nom . ')';\r
                        }\r
                } elseif ($args[1] == 'wsadmin') {\r
                        $dao = new commonDAOUtilisateur($core->con);\r
                        $dao->setSearch($q, true);\r
-                       $clients = $dao->getListe('utilisateur_id', 'ASC',  null, 'AND ws_grade>2', $core->user);\r
+                       $clients = $dao->getListe('utilisateur_id', 'ASC', null, 'AND ws_grade>2', $core->user);\r
                        foreach($clients as $client) {\r
                                $suggestions[] = $client->utilisateur_id . ' - ' . $client->rs . ' (' . $client->prenom . ' ' . $client->nom . ')';\r
                        }\r
@@ -258,6 +258,8 @@ class commonUrl {
                        $res .= extranetUrl::listeClients($r->dashboard_id, self::getDashboardSettings($r->settings));\r
                } elseif ($r->rubrique == 'timereport') {\r
                        $res .= extranetUrl::listeTimereport($r->dashboard_id, self::getDashboardSettings($r->settings));\r
+               } elseif ($r->rubrique == 'demandes') {\r
+                       $res .= wsUrl::listeDemandes($r->dashboard_id, self::getDashboardSettings($r->settings));\r
                }\r
                $res .= '</div>';\r
                $res .= commonPage::bf();\r
index e5b9765004d4b2de90fdf114f1bf6c831da6e8fe..59c217b0f56e671354a4404d221dc92df590ab2e 100644 (file)
@@ -8,22 +8,22 @@ require_once(dirname(__FILE__) . '/commons/_common.php');
 \r
 if ($ws) {\r
        define('GA', 'UA-4339912-5');\r
-       define('TITLE', 'Fuidbook Workshop');\r
+       define('TITLE', 'Fuidbook Workshop DEV');\r
 \r
-       define('FROM_EMAIL', 'contact@fluidbook.com');\r
+       define('FROM_EMAIL', 'tech@fluidbook.com');\r
        define('FROM_NAME', 'Fluidbook Workshop');\r
-       define('EMAIL_SUBJECT', 'Fluidbook Workshop');\r
+       define('EMAIL_SUBJECT', 'Fluidbook Workshop DEV');\r
        define('TEAM_EMAIL', 'team@fluidbook.com');\r
        define('TEAM_NAME', __("L'équipe Fluidbook"));\r
        define('RAPPEL', __('Rappel des identifiants de connexion au Fluidbook Workshop'));\r
        define('ASK_IDENT', __('Vous avez demandé la récupération de votre mot de passe sur le Fluidbook Workshop'));\r
 } elseif ($extranet) {\r
        define('GA', 'UA-4339912-4');\r
-       define('TITLE', 'Extranet Cubedesigners');\r
+       define('TITLE', 'Extranet Cubedesigners DEV');\r
 \r
        define('FROM_EMAIL', 'contact@cubedesigners.com');\r
-       define('FROM_NAME', 'Extranet Cubedesigners');\r
-       define('EMAIL_SUBJECT', 'Extranet Cubedesigners');\r
+       define('FROM_NAME', 'Extranet Cubedesigners DEV');\r
+       define('EMAIL_SUBJECT', 'Extranet Cubedesigners DEV');\r
        define('TEAM_EMAIL', 'team@cubedesigners.com');\r
        define('TEAM_NAME', __("L'équipe Cubedesigners"));\r
        define('RAPPEL', __('Rappel des identifiants de connexion à l\'extranet Cubedesigners'));\r
index 94e99f19a176992437d3d187a33f7256ce61c3fc..dc9bf7548b2928c96241c217ca55fa4b9e0696e0 100644 (file)
@@ -224,7 +224,7 @@ class wsAjax extends cubeAjax {
                $daoUtilisateur = new commonDAOUtilisateur($core->con);\r
                $utilisateur = $daoUtilisateur->selectByEmail($_POST['email']);\r
                if ($utilisateur != null) {\r
-                       $utilisateur_id = $this->utilisateur_id;\r
+                       $utilisateur_id = $utilisateur->utilisateur_id;\r
                } else {\r
                        // Création de l'entreprise\r
                        $daoEntreprise = new commonDAOEntreprise($core->con);\r
@@ -273,10 +273,48 @@ class wsAjax extends cubeAjax {
                $datas['utilisateur'] = $utilisateur_id;\r
                $datas['revendeur'] = 0;\r
                $datas['status'] = 0;\r
+               $datas['administrateur'] = 0;\r
                $daoDemande = new wsDAODemande($core->con);\r
                $daoDemande->sauve($datas);\r
 \r
+               $fields = array('prenom' => 'Prenom',\r
+                       'nom' => 'Nom',\r
+                       'email' => 'E-mail',\r
+                       'telephone' => 'Telephone',\r
+                       'rs' => 'Société',\r
+                       'site' => 'Site web',\r
+                       'adresse' => 'Adresse',\r
+                       'code_postal' => 'Code postal',\r
+                       'ville' => 'Ville',\r
+                       'pays' => 'Pays',\r
+                       'produits' => 'Type',\r
+                       'lang' => 'Langue du visiteur',\r
+                       'nombre_liens' => 'Liens',\r
+                       'nombre_pages' => 'Pages',\r
+                       'nombre_langues' => 'Langues',\r
+                       'detail' => 'Commentaires');\r
+               $mail = new cubeMail();\r
+               $mail->charset = 'UTF-8';\r
+               $mail->from = $_POST['prenom'] . ' ' . $_POST['nom'];\r
+               $mail->to = FROM_EMAIL;\r
+               $mail->subject = '[' . EMAIL_SUBJECT . '] Demande de devis';\r
+               $body = 'Une demande de devis a été envoyée avec les informations suivantes :' . "\r\n\r\n";\r
+               foreach($fields as $f => $d) {\r
+                       if ($_POST[$f] != '') {\r
+                               if ($f == 'pays') {\r
+                                       $body .= ' * ' . $d . ' : ' . cubeCountry::getCountry($_POST[$f], 'fr') . "\r\n";\r
+                               } else {\r
+                                       $body .= ' * ' . $d . ' : ' . $_POST[$f] . "\r\n";\r
+                               }\r
+                       }\r
+               }\r
+               $body .= "\r\n";\r
+               $body .= 'Veuillez-vous rendre sur le Fluidbook Workshop (http://' . $_SERVER['HTTP_HOST'] . ' pour prendre en charge la demande ou la confier à un revendeur' . "\r\n";\r
+               $mail->body = $body;\r
+               $mail->send();\r
+\r
                $x->addAlert(__("Votre demande de devis a bien été envoyée. Merci pour l'intérêt que vous portez à Fluidbook."));\r
+               $core->refreshWSUsersTree();\r
        }\r
 \r
        public static function valideDemandeDevis(&$x)\r
@@ -286,11 +324,10 @@ class wsAjax extends cubeAjax {
                foreach($d as $k => $v) {\r
                        $_POST[$k] = trim($v);\r
                }\r
-               if(isset($_POST['pages'])){\r
-\r
-                       $_POST['nombre_pages']=$_POST['pages'];\r
-                       $_POST['nombre_liens']=$_POST['liens'];\r
-                       $_POST['nombre_langues']=$_POST['langues'];\r
+               if (isset($_POST['pages'])) {\r
+                       $_POST['nombre_pages'] = $_POST['pages'];\r
+                       $_POST['nombre_liens'] = $_POST['liens'];\r
+                       $_POST['nombre_langues'] = $_POST['langues'];\r
                }\r
                file_put_contents(ROOT . '/cache/demandeDevis.txt', print_r($_POST, true));\r
                // Validation des champs de formulaires\r
@@ -352,6 +389,109 @@ class wsAjax extends cubeAjax {
                        $x->addContent('listeDemandes', wsUrl::listeDemandes());\r
                }\r
        }\r
+\r
+       public static function formDemande($args, &$x)\r
+       {\r
+               if (!isset($args[2])) {\r
+                       $args[2] = null;\r
+               }\r
+               commonAjax::form('saveDemande', __("Edition d'une demande"), wsUrl::formDemande($args[1], $args[2]));\r
+       }\r
+\r
+       public static function saveDemande($args, &$x)\r
+       {\r
+               global $core;\r
+               $dao = new wsDAODemande($core->con);\r
+               $demande = $dao->setRevendeur($_POST['demande_id'], $_POST['revendeur']);\r
+\r
+               if ($_POST['revendeur'] != $core->user->utilisateur_id) {\r
+                       $daoUtilisateur = new commonDAOUtilisateur($core->con);\r
+                       $r = $daoUtilisateur->selectById($_POST['revendeur']);\r
+\r
+                       self::sendDemandeToRevendeur($demande, $r);\r
+               }\r
+\r
+               $x->addContent('listeDemandes' , wsUrl::listeDemandes());\r
+               $x->addClosePopup();\r
+       }\r
+\r
+       public static function sendDemandeToRevendeur($demande, $revendeur)\r
+       {\r
+               global $core;\r
+\r
+               $dao = new commonDAOUtilisateur($core->con);\r
+               $utilisateur = $dao->selectById($demande->utilisateur, 'utilisateurs_entreprise');\r
+\r
+               $mail = new cubeMail();\r
+               $mail->from = FROM_NAME . '<' . FROM_EMAIL . '>';\r
+               $mail->to = 'tech@fluidbook.com';\r
+               $mail->subject = '[' . EMAIL_SUBJECT . '] ' . __('Demande de devis');\r
+\r
+               $body = "\r\n---- " . __('Demande') . ' ----' . "\r\n";\r
+               $fields = array('type' => __('Type'),\r
+                       'pages' => __('Pages'),\r
+                       'liens' => __('Liens'),\r
+                       'langues' => __('Langues'),\r
+                       'details' => __('Commentaires'));\r
+               foreach($fields as $p => $t) {\r
+                       if ($demande->$p != '') {\r
+                               $body .= ' * ' . $t . ' : ' . $demande->$p . "\r\n";\r
+                       }\r
+               }\r
+\r
+               $body .= "\r\n" . '---- ' . __('Coordonnées') . ' ----' . "\r\n";\r
+               $fields = array('prenom' => __('Prenom'),\r
+                       'nom' => __('Nom'),\r
+                       'rs' => __('Entreprise'),\r
+                       'adresse' => __('Adresse'),\r
+                       'code_postal' => __('Code postal'),\r
+                       'ville' => __('Ville'),\r
+                       'pays' => 'Pays');\r
+               foreach($fields as $p => $t) {\r
+                       if ($utilisateur->$p != '') {\r
+                               if ($p == 'pays') {\r
+                                       $body .= ' * ' . $t . ' : ' . cubeCountry::getCountry($utilisateur->$p, $revendeur->lang) . "\r\n";\r
+                               } else {\r
+                                       $body .= ' * ' . $t . ' : ' . $utilisateur->$p . "\r\n";\r
+                               }\r
+                       }\r
+               }\r
+\r
+               $body .= "\r\n";\r
+               $body .= __('Afin de nous confirmer que vous prenez en compte cette demande, veuillez cliquer sur le lien ci-dessous') . " : \r\n";\r
+               $body .= 'http://' . $_SERVER['HTTP_HOST'] . '/accepteDemande/' . $demande->demande_id . '/' . $revendeur->utilisateur_id . "\r\n";\r
+               $body .= "\r\n";\r
+               $body .= __("Si dans un délai de deux jour ouvrés, vous n'avez pas accepter cette demande, nous nous réservons le droit de le prendre en charge.") . "\r\n";\r
+\r
+               $mail->body = $body;\r
+               // $mail->to = $r->email;\r
+               // $mail->bcc='tech@fluidbook.com';\r
+               $mail->send();\r
+       }\r
+\r
+       public static function reponseDemande($args, &$x)\r
+       {\r
+               global $core;\r
+               $dao = new wsDAODemande($core->con);\r
+               $demande = $dao->selectById($demande_id);\r
+\r
+               if ($demande->revendeur != $revendeur_id) {\r
+                       commonDroits::error();\r
+               }\r
+\r
+               $demande_id = $args[1];\r
+               $revendeur_id = $args[2];\r
+               $reponse = $args[3];\r
+\r
+               if ($reponse == '0') {\r
+                       $dao->reinitDemande($demande_id);\r
+               } else {\r
+                       $dao->accepteDemande($demande_id);\r
+               }\r
+\r
+               $x->addAlert(__('Votre choix a bien été prise en compte.'));\r
+               $x->addRedirection(SITE_PATH);\r
+       }\r
 }\r
 \r
 ?>
\ No newline at end of file
index 04db5a66971e7bbc205a250a8f18e5721691cc7a..69bed5ab618c5acc11b73e094df5270e4f56e40d 100644 (file)
@@ -482,10 +482,7 @@ html{height:100%}' . "\n";
                $shortcuts[] = '<a href="#" class="popup" rel="formClient/new">' . $core->typo->Ajouter('Créer un nouveau client') . '</a>';\r
 \r
                $filtres = array();\r
-               if (wsDroits::admin(false)) {\r
-                       $filtres[] = new commonFiltre(__('Ayant un projet'), 'status_client_projet', $settings['filtres']);\r
-                       $filtres[] = new commonFiltre(__('Ayant des impayés'), 'impaye', $settings['filtres']);\r
-               }\r
+\r
                $res = commonPage::barre($filtres, 'filtreClients', 'clients', $shortcuts);\r
                $res .= commonPage::tMain();\r
                $res .= commonPage::bh();\r
@@ -690,7 +687,8 @@ html{height:100%}' . "\n";
                $shortcuts = array();\r
 \r
                $filtres = array();\r
-               $filtres[] = new commonFiltre(__('Status'), 'status_demande', $settings['filtres']);\r
+               $filtres[] = new commonFiltre(__('Statut'), 'status_demande', $settings['filtres']);\r
+               $filtres[] = new commonFiltre(__('Confiées à'), 'demande_moi', $settings['filtres']);\r
 \r
                $res = commonPage::barre($filtres, 'filtreDemandes', 'demandes', $shortcuts);\r
                $res .= commonPage::tMain();\r
@@ -722,8 +720,9 @@ html{height:100%}' . "\n";
                $res .= '<th>' . commonUrl::orderby(__('Type') , 'type', $settings, 'sort' . $change) . '</th>';\r
                $res .= '<th>' . commonUrl::orderby(__('Prospect') . '/' . __('Client'), 'utilisateur_nom', $settings, 'sort' . $change) . '</th>';\r
                $res .= '<th>' . commonUrl::orderby(__('Confiée à'), 'revendeur_nom', $settings, 'sort' . $change) . '</th>';\r
+               $res .= '<th>' . commonUrl::orderby(__('Editée par'), 'administrateur_nom', $settings, 'sort' . $change) . '</th>';\r
                $res .= '<th>' . commonUrl::orderby(__('Statut'), 'status', $settings, 'sort' . $change) . '</th>';\r
-               $res .= '<th></th><th></th></tr>';\r
+               $res .= '<th class="min"></th></tr>';\r
                $i = 0;\r
                foreach($liste as $id => $demande) {\r
                        $odd = cubeMath::isOdd($i)?' class="odd"':'';\r
@@ -732,11 +731,16 @@ html{height:100%}' . "\n";
                        $res .= '<td>' . date(__('d/m/Y H:i'), $demande->date) . '</td>';\r
                        $res .= '<td>' . $core->demandes_type[$demande->type] . '</td>';\r
                        $res .= '<td><a href="#" class="popup" rel="formClient/' . $demande->entreprise . '">' . $demande->utilisateur_nom . '</a></td>';\r
-                       $revendeur = $demande->revendeur == 0?__('Non défini'):$demande->revendeur_nom;\r
+                       $revendeur = $demande->revendeur == 0?'-':$demande->revendeur_nom;\r
                        $res .= '<td>' . $revendeur . '</td>';\r
+                       $administrateur = $demande->administrateur == 0?'-':$demande->administrateur_nom;\r
+                       $res .= '<td>' . $administrateur . '</td>';\r
                        $res .= '<td>' . $core->demandes_status[$demande->status] . '</td>';\r
-                       $res .= '<td><a href="">Je me charge du devis</a></td>';\r
-                       $res .= '<td><a href="">Je confie devis</a></td>';\r
+                       if ($demande->administrateur == 0 || $demande->administrateur == $core->user->utilisateur_id) {\r
+                               $res .= '<td class="action"><a href="#" class="popup" rel="formDemande/' . $demande->demande_id . '">' . cubeMedia::image(IMG . '/edit.png') . '</a></td>';\r
+                       } else {\r
+                               $res .= '<td></td>';\r
+                       }\r
                        $res .= '</tr>';\r
                        $i++;\r
                }\r
@@ -750,6 +754,98 @@ html{height:100%}' . "\n";
                $res .= '</table>';\r
                return $res;\r
        }\r
+\r
+       public static function formDemande($demande_id = 'new')\r
+       {\r
+               global $core;\r
+               commonDroits::min(5);\r
+               $dao = new wsDAODemande($core->con);\r
+               $daoUtilisateur = new commonDAOUtilisateur($core->con);\r
+               $demande = $dao->selectById($demande_id);\r
+               if ($demande->administrateur != 0 && $demande->administrateur != $core->user->utilisateur_id) {\r
+                       $res = '<tr><td colspan="2"><p class="center">' . __("Cette demande est actuellement en cours d'édition par un autre administrateur") . '</p></td></tr>';\r
+                       return $res;\r
+               }\r
+               if ($demande->status == 2) {\r
+                       $res = '<tr><td colspan="2"><p class="center">' . __("Cette demande a été confiée à un revendeur qui s'est chargé de la traiter") . '</p></td></tr>';\r
+                       return $res;\r
+               }\r
+               $dao->setAdministrateur($demande_id, $core->user->utilisateur_id);\r
+\r
+               $liste = $daoUtilisateur->selectWSRevendeursFacturables();\r
+               $revendeurs = array();\r
+\r
+               foreach($liste as $revendeur) {\r
+                       $revendeurs[' &gt; ' . $revendeur->rs . '(' . $revendeur->prenom . ' ' . $revendeur->nom . ')'] = $revendeur->utilisateur_id;\r
+               }\r
+\r
+               $actions = array('Je me charge de cette demande' => $core->user->utilisateur_id);\r
+               $actions[' '] = array();\r
+               $actions['Je confie la demande à :'] = $revendeurs;\r
+\r
+               $res = '<tr><td>' . __('Numéro de demande') . '</td><td>' . form::hidden('demande_id', $demande->demande_id) . '' . $demande->demande_id . '</td></tr>';\r
+               $res .= '<tr><td>' . __('Date de la demande') . '</td><td>' . date(__('d/m/Y H:i'), $demande->date) . '</td></tr>';\r
+               $res .= '<tr><td>' . __('Emetteur de la demande') . '</td><td><a href="#" class="popup" rel="formClient/' . $demande->entreprise . '">' . $demande->utilisateur_nom . '</a></td></tr>';\r
+               $res .= '<tr><td>' . __('Nombre de pages') . '</td><td>' . $demande->pages . '</td></tr>';\r
+               $res .= '<tr><td>' . __('Nombre de liens') . '</td><td>' . $demande->liens . '</td></tr>';\r
+               $res .= '<tr><td>' . __('Nombre de langues') . '</td><td>' . $demande->langues . '</td></tr>';\r
+               $res .= '<tr><td>' . __('Détails') . '</td><td>' . $demande->details . '</td></tr>';\r
+               $res .= '<tr><td>' . __('Action') . '</td><td>' . form::combo('revendeur', $actions) . '</td></tr>';\r
+               $res .= '<tr><td></td></tr>';\r
+\r
+               return $res;\r
+       }\r
+\r
+       public static function accepteDemande($args)\r
+       {\r
+               global $core;\r
+\r
+               commonDroits::min(3);\r
+\r
+               $res = commonPage::barre();\r
+               $res .= commonPage::tMain(null, false);\r
+\r
+               $res .= commonPage::bh();\r
+\r
+               $demande_id = $args[1];\r
+               $revendeur_id = $args[2];\r
+\r
+               $dao = new wsDAODemande($core->con);\r
+               $demande = $dao->selectById($demande_id);\r
+               if ($demande->revendeur != $revendeur_id) {\r
+                       commonDroits::error();\r
+                       exit;\r
+               }\r
+\r
+               $res = commonPage::barre();\r
+               $res .= commonPage::tMain();\r
+               $res .= commonPage::bh();\r
+               $res .= '<div id="accepteDemandes">';\r
+               $res .= '<h2>' . $core->typo->Titre(__('Prendre en charge une demande de devis')) . '</h2>';\r
+               $res .= '<br /><br />';\r
+               $res .= '<p>' . __('Si vous acceptez de traiter la demande suivante, veuillez cliquer sur le bouton "Accepter la demande" situé au dessous de la description.');\r
+               $res .= ' ' . __('Vous avez également la possibilité de décliner la demande en cliquant sur le bouton "Décliner la demande"') . "</p>";\r
+               $res .= '<br /><br />';\r
+\r
+               $res .= '<table>';\r
+               $res .= '<tr><th class="left" colspan="2">' . __("Détails de la demande") . '</th><th class="left" style="width:40%">' . __('Votre action') . '</th></tr>';\r
+               $res .= '<tr><td>' . __('Numéro de demande') . '</td><td>' . $demande->demande_id . '</td>';\r
+               $res .= '<td>' . '<a href="#" class="ajax" rel="reponseDemande/' . $demande_id . '/' . $revendeur_id . '/1" >' . cubeMedia::cssRollover($core->typo->BookTelecharger('Accepter la demande', '', false)) . '</a>' . '</td></tr>';\r
+               $res .= '<tr><td>' . __('Date de la demande') . '</td><td>' . date(__('d/m/Y H:i'), $demande->date) . '</td>';\r
+               $res .= '<td>' . '<a href="#" class="ajax" rel="reponseDemande/' . $demande_id . '/' . $revendeur_id . '/0">' . cubeMedia::cssRollover($core->typo->Supprimer('Décliner la demande', '', false)) . '</a>' . '</td>';\r
+               $res .= '</tr>';\r
+               $res .= '<tr><td>' . __('Client') . ' / ' . __('Prospect') . '</td><td><a href="#" class="popup" rel="formClient/' . $demande->entreprise . '">' . $demande->utilisateur_nom . '</a></td></tr>';\r
+               $res .= '<tr><td>' . __('Nombre de pages') . '</td><td>' . $demande->pages . '</td></tr>';\r
+               $res .= '<tr><td>' . __('Nombre de liens') . '</td><td>' . $demande->liens . '</td></tr>';\r
+               $res .= '<tr><td>' . __('Nombre de langues') . '</td><td>' . $demande->langues . '</td></tr>';\r
+               $res .= '<tr><td>' . __('Détails') . '</td><td>' . $demande->details . '</td></tr>';\r
+               $res .= '</table>';\r
+\r
+               $res .= '</div>';\r
+               $res .= commonPage::bf();\r
+               $res .= commonPage::bMain();\r
+               return $res;\r
+       }\r
 }\r
 \r
 ?>
\ No newline at end of file
index b8ff05f00d40b3c02d3628b70fe22b6b30c362b4..816a08598ad376646a9b0def94075d51ef26b199 100644 (file)
@@ -3,7 +3,7 @@ class wsDAODemande extends commonDAO {
        protected function singleton($r)\r
        {\r
                $demande = new wsDemande();\r
-               $demande->demande_id=$r->demande_id;\r
+               $demande->demande_id = $r->demande_id;\r
                $demande->type = $r->type;\r
                $demande->pages = $r->pages;\r
                $demande->liens = $r->liens;\r
@@ -13,10 +13,12 @@ class wsDAODemande extends commonDAO {
                $demande->utilisateur = $r->utilisateur;\r
                $demande->status = $r->status;\r
                $demande->revendeur = $r->revendeur;\r
+               $demande->administrateur = $r->administrateur;\r
 \r
                $demande->utilisateur_nom = $r->utilisateur_nom;\r
                $demande->revendeur_nom = $r->revendeur_nom;\r
-               $demande->entreprise=$r->entreprise;\r
+               $demande->entreprise = $r->entreprise;\r
+               $demande->administrateur_nom = $r->administrateur_nom;\r
 \r
                return $demande;\r
        }\r
@@ -67,6 +69,7 @@ class wsDAODemande extends commonDAO {
                $c->details = $data['details'];\r
                $c->utilisateur = $data['utilisateur'];\r
                $c->revendeur = $data['revendeur'];\r
+               $c->administrateur = $data['administrateur'];\r
                $c->status = $data['status'];\r
 \r
                if ($data['demande_id'] == 'new' || $data['demande_id'] == '') {\r
@@ -81,6 +84,36 @@ class wsDAODemande extends commonDAO {
                return $this->selectById($demande_id);\r
        }\r
 \r
+       public function setAdministrateur($demande_id, $administrateur)\r
+       {\r
+               $c = $this->con->openCursor('demandes');\r
+               $c->administrateur = $administrateur;\r
+               $c->update('WHERE demande_id=\'' . $this->con->escape($demande_id) . '\'');\r
+       }\r
+\r
+       public function reinitDemande($demande_id)\r
+       {\r
+               $c = $this->con->openCursor('demandes');\r
+               $c->administrateur = 0;\r
+               $c->revendeur = 0;\r
+               $c->status = 0;\r
+               $c->update('WHERE demande_id=\'' . $this->con->escape($demande_id) . '\'');\r
+       }\r
+\r
+       public function setRevendeur($demande_id, $revendeur)\r
+       {\r
+               // Mets à jour l'entreprise\r
+               $c = $this->con->openCursor('demandes');\r
+               $c->revendeur = $revendeur;\r
+               $c->status = 1;\r
+               $c->update('WHERE demande_id=\'' . $this->con->escape($demande_id) . '\'');\r
+\r
+               $demande = $this->selectById($demande_id);\r
+               // Mets également à jour l'entreprise afin d'associer client et revendeur\r
+               $daoEntreprise = new commonDAOEntreprise($this->con);\r
+               $daoEntreprise->setWSAdmin($demande->entreprise, revendeur);\r
+       }\r
+\r
        public function count()\r
        {\r
                $r = $this->con->select('SELECT COUNT(*) AS nb FROM demandes WHERE ' . $this->makeWhereFromFiltres());\r
@@ -89,11 +122,23 @@ class wsDAODemande extends commonDAO {
 \r
        protected function makeWhereFromFiltres()\r
        {\r
+               global $core;\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
+                       if (commonFiltre::test('demande_moi', $this->filtres)) {\r
+                               $keys = array_keys($this->filtres['status_demande']);\r
+\r
+                               foreach($keys as $k) {\r
+                                       if ($k == 'moi') {\r
+                                               $w[] = 'revendeur=' . $core->user->utilisateur_id;\r
+                                       } elseif ($k == 'autres') {\r
+                                               $w[] = 'revendeur!=' . $core->user->utilisateur_id;\r
+                                       }\r
+                               }\r
+                       }\r
                        return implode(' AND ', $w);\r
                } else {\r
                        return '1=1';\r
index 73f17ed124f5d2c87f89c5e1c9cb7fb9a53bdde4..a04f7d04f0a2ef2a2c4f610fe8c29dc3e41fd70c 100644 (file)
@@ -12,10 +12,12 @@ class wsDemande extends cubeMetier {
 \r
        protected $revendeur;\r
        protected $utilisateur;\r
+       protected $administrateur;\r
 \r
        protected $utilisateur_nom;\r
        protected $revendeur_nom;\r
        protected $entreprise;\r
+       protected $administrateur_nom;\r
 }\r
 \r
 ?>
\ No newline at end of file