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

index 518fcbf2da67daacd4357f5739208df2dfcb55dc..b3bce67433332805e524f21bad0464abc5782f52 100644 (file)
@@ -41,7 +41,7 @@ class commonUtilisateur extends cubeMetier {
 \r
        public function getSettings($liste)\r
        {\r
-               $cles = array('clients' => 'entreprise_id', 'equipiers' => 'utilisateur_id', 'devis' => 'devis_id', 'projets' => 'projet_id', 'factures' => 'facture_id', 'timereport' => 'projet_id', 'fichiers' => 'nom', 'publications' => 'book_id');\r
+               $cles = array('clients' => 'entreprise_id', 'equipiers' => 'utilisateur_id', 'devis' => 'devis_id', 'projets' => 'projet_id', 'factures' => 'facture_id', 'timereport' => 'projet_id', 'fichiers' => 'nom', 'publications' => 'book_id', 'demandes' => 'demande_id');\r
                if (!isset($this->settings['search'][$liste]) || !is_array($this->settings['search'][$liste])) {\r
                        $this->settings['search'][$liste] = array();\r
                }\r
index 0e3a4d1a9124596ea346af5e4d4173118374f745..17e807c818cd70eba7620fafc63ff7e218b35368 100644 (file)
@@ -417,7 +417,7 @@ class commonCore extends cubeCore {
                $db->demandes->revendeur('integer', 0, false);\r
                $db->demandes->utilisateur('integer', 0, false);\r
                // Clés\r
-               $db->demandes->primary('demande_id');\r
+               $db->demandes->primary('pk_demandes', 'demande_id');\r
 \r
                try {\r
                        $dbi = new CubeDbStruct($this->con);\r
@@ -511,6 +511,11 @@ class commonCore extends cubeCore {
                         . 'FROM themes t '\r
                         . '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 '\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
                // cubeDb::mysqlConvert($this->con);\r
                touch($cache);\r
        }\r
index 0e668412bbd68ace45c1470d29743657eae28ef8..ecb779e5f8f657c9d2bf134231c01ab558f763ec 100644 (file)
@@ -286,6 +286,7 @@ class wsAjax extends cubeAjax {
                foreach($d as $k => $v) {\r
                        $_POST[$k] = trim($v);\r
                }\r
+               file_put_contents(ROOT . '/cache/demandeDevis.txt', print_r($_POST,true));\r
                // Validation des champs de formulaires\r
                $ok = true;\r
                $non_vides = array('nombre_pages', 'nom', 'adresse', 'code_postal', 'ville', 'pays');\r
index 062bc36de7128201f1715150924bb3b43b3260a2..3cdd7fed8140af84f815d38631421a1dfcb9f849 100644 (file)
@@ -19,6 +19,7 @@ class wsDroits {
                        $nav[__('Clients')] = 'clients';\r
                }\r
                if ($core->user->ws_grade >= 5) {\r
+                       $nav[__('Devis')]='demandes';\r
                        $nav[__('Traductions')] = 'traductions';\r
                }\r
                if ($core->user->ws_grade < 5) {\r
index 71856ab5ee962a8365559d364c8d77a233e8ca92..841787c48411280dd4ddc34bf47d7801bd2a8df0 100644 (file)
@@ -677,6 +677,82 @@ html{height:100%}' . "\n";
                }\r
                return $res;\r
        }\r
+\r
+       public static function demandes()\r
+       {\r
+               global $core;\r
+               cubePage::truePopup();\r
+               cubePage::autoComplete();\r
+               cubePage::emptyfield();\r
+               commonDroits::min(5);\r
+               $settings = $core->user->getSettings('demandes');\r
+\r
+               $shortcuts = array();\r
+\r
+               $filtres = array();\r
+               $filtres[] = new commonFiltre(__('Status'), 'status_demande', $settings['filtres']);\r
+\r
+               $res = commonPage::barre($filtres, 'filtreDemandes', 'demandes', $shortcuts);\r
+               $res .= commonPage::tMain();\r
+               $res .= commonPage::bh();\r
+               $res .= '<div id="listeDemandes">';\r
+               $res .= self::listeDemandes();\r
+               $res .= '</div>';\r
+               $res .= commonPage::bf();\r
+               $res .= commonPage::bMain();\r
+               return $res;\r
+       }\r
+\r
+       public static function listeDemandes()\r
+       {\r
+               global $core;\r
+               commonDroits::min(5);\r
+               $settings = is_null($settings)?$core->user->getSettings('demandes'):$settings;\r
+               $change = is_null($dashboard)?'Demandes':'Dashboard/' . $dashboard;\r
+               $dao = new wsDAODemande($core->con);\r
+               if (isset($settings['search']) && !is_null($settings['search'])) {\r
+                       $dao->setSearch($settings['search']);\r
+               }\r
+               $dao->setFiltres($settings['filtres']);\r
+               $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit'], $core->user);\r
+\r
+               $res = '<table class="liste">';\r
+               $res .= '<tr><th>' . commonUrl::orderby('#', 'demande_id', $settings, 'sort' . $change) . '</th>';\r
+               $res .= '<th>' . commonUrl::orderby(__('Demandeur'), 'utilisateur', $settings, 'sort' . $change) . '</th>';\r
+               $res .= '<th class="min"></th><th class="min"></th></tr>';\r
+               $i = 0;\r
+               foreach($liste as $id => $client) {\r
+                       if (!is_array($client->contacts)) {\r
+                               fb($client);\r
+                               continue;\r
+                       }\r
+                       $odd = cubeMath::isOdd($i)?' class="odd"':'';\r
+                       $res .= '<tr' . $odd . '>';\r
+                       $res .= '<td>' . $client->entreprise_id . '</td>';\r
+                       $res .= '<td>' . $client->nom . '</td>';\r
+                       $contacts = array();\r
+\r
+                       foreach($client->contacts as $c) {\r
+                               $contacts[] = '<a href="#" class="popup" rel="formContact/' . $c->utilisateur_id . '">' . $c->prenom . ' ' . $c->nom . '</a>';\r
+                       }\r
+\r
+                       $res .= '<td id="contacts_' . $client->entreprise_id . '">' . implode(', ', $contacts) . '</td>';\r
+                       $res .= '<td class="nowrap">';\r
+                       $res .= '</td>';\r
+                       $res .= '<td class="action"><a href="#" class="popup" rel="formClient/' . $client->entreprise_id . '">' . cubeMedia::image(IMG . '/edit.png') . '</a></td>';\r
+                       $res .= '</tr>';\r
+                       $i++;\r
+               }\r
+               if (!isset($settings['search']) || is_null($settings['search'])) {\r
+                       $odd = cubeMath::isOdd($i)?' class="odd"':'';\r
+                       $res .= '<tr' . $odd . '><td colspan="10">';\r
+                       $res .= commonPage::pager($settings['page'], $dao->count($core->user) , $settings['par_page'], 'page' . $change . '/%d');\r
+                       $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('demandes'));\r
+                       $res .= '</td></tr>';\r
+               }\r
+               $res .= '</table>';\r
+               return $res;\r
+       }\r
 }\r
 \r
 ?>
\ No newline at end of file
index 6c473711f4bdddde3705334207036a9f6b72c478..b3eeb69765859182bc93c101b08e1f5d4b7487e7 100644 (file)
@@ -13,6 +13,9 @@ class wsDAODemande extends commonDAO {
                $demande->status = $r->status;\r
                $demande->revendeur = $r->revendeur;\r
 \r
+               $demande->utilisateur_nom = $r->utilisateur_nom;\r
+               $demande->revendeur_nom = $r->revendeur_nom;\r
+\r
                return $demande;\r
        }\r
 \r
@@ -28,6 +31,29 @@ class wsDAODemande extends commonDAO {
                return $this->singleton($r);\r
        }\r
 \r
+       public function getListe($orderby = null, $sens = null, $limit = null)\r
+       {\r
+               global $core;\r
+               if (!is_null($this->q)) {\r
+                       $where = '';\r
+                       $where .= 'demande_id=\'' . $this->con->escape($this->q) . '\' OR ';\r
+                       $where .= 'nom LIKE \'%' . $this->con->escape($this->q) . '%\'';\r
+                       $daoClient = new commonDAOClient($this->con);\r
+                       $where .= ' OR client_id IN(' . $daoClient->querySearchByName($this->q) . ')';\r
+                       $limit = null;\r
+               } else {\r
+                       $where = $this->makeWhereFromFiltres();\r
+               }\r
+\r
+               $orderby = is_null($orderby)?'devis_id':$orderby;\r
+               $sens = is_null($sens)?'DESC':$sens;\r
+               $limit = is_null($limit)?'':$this->con->limit($limit[0], $limit[1]);\r
+\r
+               $sql = 'SELECT * FROM demandes_vue WHERE ' . $where . ' ORDER BY ' . $orderby . ' ' . $sens . ' ' . $limit;\r
+               $r = $this->con->select($sql);\r
+               return $this->factory($r);\r
+       }\r
+\r
        public function sauve($data)\r
        {\r
                global $core;\r
index ecbceb5a1a29bdf3fcc2b42b430e07854f3c6ea8..3a6311e93ff97d90dcf80fa2e48c2724537cec0e 100644 (file)
@@ -11,6 +11,9 @@ class wsDemande extends cubeMetier {
 \r
        protected $revendeur;\r
        protected $utilisateur;\r
+\r
+       protected $utilisateur_nom;\r
+       protected $revendeur_nom;\r
 }\r
 \r
 ?>
\ No newline at end of file