]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Wed, 9 Feb 2011 16:17:56 +0000 (16:17 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Wed, 9 Feb 2011 16:17:56 +0000 (16:17 +0000)
inc/config.inc.php
inc/extranet/Controlleur/class.extranet.url.php
inc/extranet/DAO/class.extranet.dao.projet.php
inc/extranet/DAO/class.extranet.dao.tache.php
inc/ws/Controlleur/class.ws.ajax.php
inc/ws/Controlleur/class.ws.url.php
inc/ws/DAO/class.ws.dao.book.php
inc/ws/Metier/class.ws.book.php
style/ws/style.css

index 7437e67d6f5c8bb7242f8050587cda66c4dabf58..62cd222ce620d7a5a1968959595e29fc92a5c8ae 100644 (file)
@@ -11,7 +11,7 @@ define('WEBROOT', '');
 define('SITE_PATH', WEBROOT . '/');\r
 define('FONT_PATH', ROOT . '/fluidbook/fonts/');\r
 define('FTPROOT', '/home/extranet/ftp/');\r
-define('DEV', false);\r
+define('DEV', $dev);\r
 define('WINDOWS', false);\r
 define('CONVERTER_PATH', '/bin:/usr/bin:/usr/local/bin:/home/extranet/dev/fluidbook/tools:/usr/local/flex:/usr/local/secureSWF');\r
 define('MXMLC_PATH', '/usr/local/flex/bin/mxmlc');\r
@@ -23,12 +23,18 @@ if ($dev) {
        define('DB_NAME', 'extranet_dev');\r
        define('DB_USER', 'ws');\r
        define('DB_PASSWORD', '*arica*2');\r
+\r
+       define('EXTRANET_URL', 'http://dev.extranet.cubedesigners.com');\r
+       define('WS_URL', 'http://dev.ws.fluidbook.com');\r
 } else {\r
        // Définition des variables dans l'environnement de production\r
        define('DB_HOST', 'localhost');\r
        define('DB_NAME', 'extranet');\r
        define('DB_USER', 'ws');\r
        define('DB_PASSWORD', '*arica*2');\r
+\r
+       define('EXTRANET_URL', 'http://extranet.cubedesigners.com');\r
+       define('WS_URL', 'http://ws.fluidbook.com');\r
 }\r
 \r
 if ($ws) {\r
index ff485d60c04f91ab3461e538657bee9adea95334..be5941cf77c8d2c91f006510b15a1ea2b1d24a81 100644 (file)
@@ -442,7 +442,7 @@ class extranetUrl {
                $dao = new extranetDAOProjet($core->con);\r
                $projet = $dao->selectById($projet_id);\r
 \r
-               $hasFacture = $dao->projectHasFacture($projet_id);\r
+               $hasFacture = $dao->hasFacture($projet_id);\r
 \r
                $droits = extranetDroits::projet($projet, false);\r
 \r
index 6328fd54dd656dcafd0257509d720b9139c18f76..2ea19692a1b147ed634ec54e73eddba402a69b7c 100644 (file)
@@ -135,15 +135,19 @@ class extranetDAOProjet extends commonDAO {
                $c = $this->con->openCursor('projets');\r
                $c->nom = $data['nom'];\r
                $c->chef = $data['chef'];\r
-               $c->date_debut = cubeDate::formFreeToTime($data['date_debut']);\r
-               $c->deadline = cubeDate::formFreeToTime($data['deadline']);\r
-               $c->date_fin = cubeDate::formFreeToTime($data['date_fin']);\r
+               if (isset($data['date_debut'])) {\r
+                       $c->date_debut = cubeDate::formFreeToTime($data['date_debut']);\r
+                       $c->deadline = cubeDate::formFreeToTime($data['deadline']);\r
+                       $c->date_fin = cubeDate::formFreeToTime($data['date_fin']);\r
+               } elseif ($data['projet_id'] == 'new') {\r
+                       $c->date_debut = $c->deadline = $c->date_fin = TIME;\r
+               }\r
                $c->client = $data['client'];\r
                $c->devis = $data['devis'];\r
                if ($data['projet_id'] == 'new') {\r
                        $c->status = 0;\r
                        $c->projet_id = $this->getNextId();\r
-                       $c->date_creation = time();\r
+                       $c->date_creation = TIME;\r
                        $c->insert();\r
                        return $c->projet_id;\r
                } else {\r
@@ -161,7 +165,7 @@ class extranetDAOProjet extends commonDAO {
 \r
        public function hasFacture($projet_id)\r
        {\r
-               $r = $this->con->select('SELECT * FROM factures WHERE projet=\'' . $core->con->escape($projet_id) . '\'');\r
+               $r = $this->con->select('SELECT * FROM factures WHERE projet=\'' . $this->con->escape($projet_id) . '\'');\r
                return $r->count() > 0;\r
        }\r
 \r
index ddac578017a029e5ef5ca0e630f2c93417801d68..20a60d7fe9f622415bd09f73195141323a9b7dcb 100644 (file)
@@ -89,11 +89,14 @@ class extranetDAOTache extends commonDAO {
                }\r
 \r
                if ($data['tache_id'] == 'new') {\r
-                       $c->tache_id = $this->getNextId();\r
-                       return $c->insert();\r
+                       $tache_id=$c->tache_id = $this->getNextId();\r
+                       $c->insert();\r
                } else {\r
-                       return $c->update('WHERE tache_id=\'' . $this->con->escape($data['tache_id']) . '\'');\r
+                       $tache_id=$data['tache_id'];\r
+                       $c->update('WHERE tache_id=\'' . $this->con->escape($data['tache_id']) . '\'');\r
                }\r
+\r
+               return $tache_id;\r
        }\r
 \r
        public function supprime($tache_id)\r
index c346df2fea55874a00528076640e759d9f447393..3684b7771119e85043d5a9a9aa4bc8538fbfe86e 100644 (file)
@@ -236,8 +236,9 @@ class wsAjax extends cubeAjax {
 \r
                $book_id = $args[1];\r
                $status = $args[2];\r
-               if ($status == 2 && isset($args[3])) {\r
+               if ($status == 2) {\r
                        $x->addOpenPopup(self::formBookChooseProject($book_id));\r
+                       return;\r
                }\r
 \r
                $daoBook = new wsDAOBook($core->con);\r
@@ -253,9 +254,29 @@ class wsAjax extends cubeAjax {
 \r
        public static function bookChooseProject($args, &$x)\r
        {\r
+               global $core;\r
+\r
                $book_id = $_POST['book_id'];\r
+\r
                if ($_POST['book_project'] == 0) {\r
-                       $project = 0;\r
+                       if (!isset($_POST['new_book_project_nom']) || $_POST['new_book_project_nom'] == '') {\r
+                               $x->addError('new_book_project_nom');\r
+                               return;\r
+                       }\r
+\r
+                       $core->loadExtranetClasses();\r
+\r
+                       $daoBook = new wsDAOBook($core->con);\r
+                       $book = $daoBook->selectById($book_id);\r
+\r
+                       $daoProjet = new extranetDAOProjet($core->con);\r
+                       $data = array();\r
+                       $data['nom'] = $_POST['new_book_project_nom'];\r
+                       $data['chef'] = $core->user->utilisateur_id;\r
+                       $data['client'] = $book->proprietaire_id;\r
+                       $data['devis'] = 0;\r
+                       $data['projet_id'] = 'new';\r
+                       $project = $daoProjet->sauve($data);\r
                } else {\r
                        $project = $_POST['book_project'];\r
                }\r
@@ -270,16 +291,50 @@ class wsAjax extends cubeAjax {
 \r
        public static function bookChooseTache($args, &$x)\r
        {\r
+               global $core;\r
+\r
                $book_id = $_POST['book_id'];\r
                $projet_id = $_POST['projet_id'];\r
 \r
-               if ($_POST['book_tache'] == 0) {\r
-                       $tache = 0;\r
+               if ($_POST['tache'] == 0) {\r
+                       $ok = true;\r
+\r
+                       if (!isset($_POST['nom']) || $_POST['nom'] == '') {\r
+                               $x->addError('nom');\r
+                               $ok = false;\r
+                       } else {\r
+                               $x->addOk('nom');\r
+                       }\r
+\r
+                       if (!isset($_POST['budget']) || $_POST['budget'] == '') {\r
+                               $x->addError('budget');\r
+                               $ok = false;\r
+                       } else {\r
+                               $x->addOk('budget');\r
+                       }\r
+\r
+                       $core->loadExtranetClasses();\r
+                       $daoTache = new extranetDAOTache($core->con);\r
+\r
+                       $data = array();\r
+                       $data['tache_id'] = 'new';\r
+                       $data['projet'] = $projet_id;\r
+                       $data['nom'] = $_POST['nom'];\r
+                       $data['categorie'] = 8;\r
+                       $data['taux_journalier'] = TAUX_JOURNALIER;\r
+                       $data['budget'] = $_POST['budget'];\r
+                       $data['type'] = 0;\r
+\r
+                       $tache = $daoTache->sauve($data);\r
                } else {\r
-                       $tache = $_POST['book_tache'];\r
+                       $tache = $_POST['tache'];\r
                }\r
 \r
+               $daoBook = new wsDAOBook($core->con);\r
+               $daoBook->setTache($book_id, $tache);\r
+\r
                $x->addClosePopup();\r
+               $x->addContent('listeBooks', wsUrl::listeBooks());\r
        }\r
 \r
        public static function changeLang($args, &$x)\r
index 24bf79d9be8064ed29654adc0aae7fcee375f348..c526610a5c70353dbab3a43ef06688751fcf4461 100644 (file)
@@ -98,7 +98,12 @@ class wsUrl {
                        }\r
                        if ($droits->revendeur) {\r
                                if ($droits->admin || $book->status <= 1) {\r
-                                       $res .= '<td><a href="#" class="openContextMenu" rel="' . $context_status_id . '" rev="' . $book->book_id . '">' . $core->books_status[$book->status] . '</a></td>';\r
+                                       $p = '';\r
+                                       if (!is_null($book->projet)) {\r
+                                               $p = ' <a href="' . EXTRANET_URL . '/projet/' . $book->projet . '" title="' . __('Voir les détails du projet') . '" class="blank icon">' . cubeMedia::silk('arrow_right.png') . '</a>';\r
+                                       }\r
+\r
+                                       $res .= '<td><a href="#" class="openContextMenu" rel="' . $context_status_id . '" rev="' . $book->book_id . '">' . $core->books_status[$book->status] . '</a>' . $p . '</td>';\r
                                } else if ($book->status > 1) {\r
                                        $res .= '<td>' . $core->books_status[1] . '</td>';\r
                                }\r
@@ -151,6 +156,7 @@ class wsUrl {
 \r
                if (wsDroits::admin()) {\r
                        $status = $core->books_status;\r
+                       $status[2] = __('Facturé (associé à un projet)');\r
                } else {\r
                        $status = array();\r
                        $status[-1] = $core->books_status[-1];\r
@@ -163,9 +169,6 @@ class wsUrl {
                foreach($status as $s => $title) {\r
                        $res .= '<li><a href="#" rel="statusBook/$1/' . $s . '" class="ajax">' . $title . '</a></li>';\r
                }\r
-               if (wsDroits::admin()) {\r
-                       $res .= '<li><a href="#" rel="statusBook/$1/' . $s . '/1" class="ajax">' . __('Ajouter à un projet') . '</a></li>';\r
-               }\r
                $res .= '</ul></div>';\r
                return $res;\r
        }\r
@@ -497,13 +500,13 @@ html{height:100%}' . "\n";
                $book = $dao->selectById($book_id);\r
 \r
                $projects = array("--" => '0');\r
-               $r = $core->con->select('SELECT * FROM projets WHERE client IN( SELECT facturable_id FROM ws_users_tree WHERE utilisateur_id IN (SELECT utilisateur_id FROM utilisateurs WHERE entreprise=\'' . $core->con->escape($book->proprietaire_id) . '\')) ORDER BY projet_id DESC');\r
+               $r = $core->con->select('SELECT * FROM projets WHERE client IN(SELECT entreprise FROM utilisateurs WHERE utilisateur_id IN( SELECT facturable_id FROM ws_users_tree WHERE utilisateur_id IN (SELECT utilisateur_id FROM utilisateurs WHERE entreprise=\'' . $core->con->escape($book->proprietaire_id) . '\'))) ORDER BY projet_id DESC');\r
                while ($r->fetch()) {\r
                        $projects[$r->projet_id . ' - ' . $r->nom] = $r->projet_id;\r
                }\r
 \r
-               $res = '<tr><td>' . __('Choisir un projet') . ' : </td><td>' . form::hidden('book_id', $book_id) . form::combo('book_project', $projects,$book->projet) . '</td></tr>';\r
-               $res .= '<tr><td>' . __('ou créer un nouveau projet') . ' : </td><td>' . form::field('new_book_project_nom', 64, 1024) . '</td></tr>';\r
+               $res = '<tr><td>' . __('Choisir un projet') . ' : </td><td>' . form::hidden('book_id', $book_id) . form::combo('book_project', $projects, $book->projet) . '</td></tr>';\r
+               $res .= '<tr><td>' . __('ou créer un nouveau projet') . ' : </td><td>' . form::field('new_book_project_nom', 64, 1024, $book->nom) . '</td></tr>';\r
                return $res;\r
        }\r
 \r
@@ -516,13 +519,26 @@ html{height:100%}' . "\n";
                $book = $dao->selectById($book_id);\r
 \r
                $taches = array("--" => '0');\r
-               $r = $core->con->select('SELECT * FROM taches WHERE projet=\'' . $core->con->escape($projet_id) . '\'');\r
+               $r = $core->con->select('SELECT * FROM taches WHERE projet=\'' . $core->con->escape($projet_id) . '\' AND categorie=8');\r
                while ($r->fetch()) {\r
                        $taches[$r->nom] = $r->tache_id;\r
                }\r
 \r
-               $res = '<tr><td>' . __('Choisir une tâche') . ' : </td><td>' . form::hidden('book_id', $book_id) . form::hidden('projet_id', $projet_id) . form::combo('tache', $taches) . '</td></tr>';\r
-               $res .= '<tr><td>' . __('ou créer une nouvelle tâche') . ' : </td><td>' . form::field('nom', 32, 1024, $book->nom) . ' ' . __('ayant le budget suivant') . ' ' . form::field('budget', 6, 6) . '</td></tr>';\r
+               $res = '';\r
+\r
+               if ($r->count() > 0) {\r
+                       $res .= '<tr><td>' . __('Choisir une tâche') . ' : </td><td>' . form::hidden('book_id', $book_id) . form::hidden('projet_id', $projet_id) . form::combo('tache', $taches) . '</td></tr>';\r
+                       $res .= '<tr><td>' . __('ou créer une nouvelle tâche') . ' : </td><td>' . form::field('nom', 32, 1024, 'Fluidbook #' . $book->book_id . ' : ' . $book->nom) . ' ' . __('ayant le budget suivant') . ' ' . form::field('budget', 6, 6) . '</td></tr>';\r
+               } else {\r
+                       $res .= '<tr><td>' . __('Créer une tâche') . ' : </td><td>'\r
+                        . form::hidden('book_id', $book_id)\r
+                        . form::hidden('projet_id', $projet_id)\r
+                        . form::hidden('tache', '0')\r
+                        . form::field('nom', 32, 1024, 'Fluidbook #' . $book->book_id . ' : ' . $book->nom)\r
+                        . ' ' . __('ayant le budget suivant')\r
+                        . ' ' . form::field('budget', 6, 6) . '</td></tr>';\r
+               }\r
+\r
                return $res;\r
        }\r
 \r
index e1d7d6277ba10190d3c28050cba6d175de98d9a3..5aea76c7c8265c4c7fcf5932b30e7a039b0bb055 100644 (file)
@@ -53,7 +53,7 @@ class wsDAOBook extends commonDAO {
                $book->date = TIME;\r
                $book->chapters = json_encode(array());\r
                $book->parametres = new wsBookParametres();\r
-               $book->tache=0;\r
+               $book->tache = 0;\r
                $book->pages = array();\r
                return $book;\r
        }\r
@@ -439,6 +439,14 @@ class wsDAOBook extends commonDAO {
                $c->update('WHERE book_id=\'' . $this->con->escape($book_id) . '\'');\r
        }\r
 \r
+       public function setTache($book_id, $tache)\r
+       {\r
+               $c = $this->con->openCursor('books');\r
+               $c->tache = $tache;\r
+               $c->status = 2;\r
+               $c->update('WHERE book_id=\'' . $this->con->escape($book_id) . '\'');\r
+       }\r
+\r
        public function touch($book_id)\r
        {\r
                $c = $this->con->openCursor('books');\r
index 729cf258b6261ec89a8c80014c6008c23721bdc2..b7e0ccaf80c8cac4247f2868256673a501f16c38 100644 (file)
@@ -16,6 +16,9 @@ class wsBook extends cubeMetier {
        protected $hash;\r
        protected $compteur_visites;\r
 \r
+       protected $tache;\r
+       protected $projet;\r
+\r
        protected $status;\r
        protected $date_status;\r
 \r
index a776abb3cc84c24f84e55deca3260cced77d1bab..f1f06af153071511a463a8c26e5a39e69e310c6f 100644 (file)
@@ -193,6 +193,7 @@ input[type="text"],input[type="password"],select,textarea{
 .liste .action{width:1px;}\r
 .liste th a{color:#797D62;text-decoration:none;font-weight:bold;}\r
 .liste th a:hover{text-decoration:underline;}\r
+.liste td a.icon img{vertical-align:middle;margin-top:0px;}\r
 \r
 .form td a img, .liste td a img{margin-top:4px;}\r
 \r
@@ -508,3 +509,5 @@ th.stats_col{
 .downbookContextMenu a{\r
        text-decoration:none;\r
 }\r
+\r
+\r