From d26b283d188408e76ac9a98125dfe955d32035f6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 14 Jul 2005 22:29:49 +0000 Subject: [PATCH] =?UTF-8?q?Ajout=20m=E9thode=20pour=20futur=20"Tableau=20d?= =?UTF-8?q?e=20bord=20Dolibarr".?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/actioncomm.class.php | 30 +++++++ htdocs/commande/commande.class.php | 132 +++++++++++++++++++---------- htdocs/commande/fiche.php | 38 ++++++--- 3 files changed, 142 insertions(+), 58 deletions(-) diff --git a/htdocs/actioncomm.class.php b/htdocs/actioncomm.class.php index 7a68a780000..ece6adf4ed0 100644 --- a/htdocs/actioncomm.class.php +++ b/htdocs/actioncomm.class.php @@ -216,5 +216,35 @@ class ActionComm } } + + /** + * \brief Charge indicateurs this->nbtodo et this->nbtodolate de tableau de bord + * \return int <0 si ko, >0 si ok + */ + function load_board() + { + global $conf; + + $this->nbtodo=$this->nbtodolate=0; + $sql = "SELECT a.id,".$this->db->pdate("a.datea")." as da"; + $sql.= " FROM ".MAIN_DB_PREFIX."actioncomm as a"; + $sql.= " WHERE a.percent < 100"; + $resql=$this->db->query($sql); + if ($resql) + { + while ($obj=$this->db->fetch_object($resql)) + { + $this->nbtodo++; + if ($obj->da < (time() - $conf->actions->warning_delay)) $this->nbtodolate++; + } + return 1; + } + else + { + $this->error=$this->db->error(); + return -1; + } + } + } ?> diff --git a/htdocs/commande/commande.class.php b/htdocs/commande/commande.class.php index 6ad586d096e..163607a8d69 100644 --- a/htdocs/commande/commande.class.php +++ b/htdocs/commande/commande.class.php @@ -160,6 +160,7 @@ class Commande } return $result ; } + /** * Cloture la commande * @@ -576,27 +577,29 @@ class Commande } /** - * Supprime une ligne de la commande - * + * \brief Supprime une ligne de la commande + * \param idligne Id de la ligne à supprimer + * \return int >0 si ok, <0 si ko */ - function delete_line($idligne) + function delete_line($idligne) { - if ($this->statut == 0) - { - $sql = "DELETE FROM ".MAIN_DB_PREFIX."commandedet WHERE rowid = $idligne"; - - if ($this->db->query($sql) ) - { - $this->update_price(); - - return 1; - } - else - { - return 0; - } - } + if ($this->statut == 0) + { + $sql = "DELETE FROM ".MAIN_DB_PREFIX."commandedet WHERE rowid = $idligne"; + + if ($this->db->query($sql) ) + { + $this->update_price(); + + return 1; + } + else + { + return -1; + } + } } + /** * * @@ -651,24 +654,24 @@ class Commande } } /** - * Classe la facture comme facturée - * + * \brief Classe la facture comme facturée + * \return int <0 si ko, >0 si ok */ - function classer_facturee() + function classer_facturee() { - $sql = "UPDATE ".MAIN_DB_PREFIX."commande SET facture = 1"; - $sql .= " WHERE rowid = ".$this->id." AND fk_statut > 0 ;"; - - if ($this->db->query($sql) ) - { - return 1; - } - else - { - dolibarr_print_error($this->db); - } - + $sql = "UPDATE ".MAIN_DB_PREFIX."commande SET facture = 1"; + $sql .= " WHERE rowid = ".$this->id." AND fk_statut > 0 ;"; + + if ($this->db->query($sql) ) + { + return 1; + } + else + { + dolibarr_print_error($this->db); + } } + /** * Mettre à jour le prix * @@ -804,27 +807,62 @@ class Commande } } /** - * Classe la commande - * + * \brief Classer la commande dans un projet + * \param cat_id Id du projet */ function classin($cat_id) { - $sql = "UPDATE ".MAIN_DB_PREFIX."commande SET fk_projet = $cat_id"; - $sql .= " WHERE rowid = $this->id;"; - - if ($this->db->query($sql) ) - { - return 1; - } - else - { - dolibarr_print_error($this->db); - } + $sql = "UPDATE ".MAIN_DB_PREFIX."commande SET fk_projet = $cat_id"; + $sql .= " WHERE rowid = $this->id;"; + + if ($this->db->query($sql) ) + { + return 1; + } + else + { + $this->error=$this->db->error(); + return -1; + } + } + + + /** + * \brief Charge indicateurs this->nbtodo et this->nbtodolate de tableau de bord + * \return int <0 si ko, >0 si ok + */ + function load_board() + { + global $conf; + + $this->nbtodo=$this->nbtodolate=0; + $sql = "SELECT c.rowid,".$this->db->pdate("c.date_creation")." as datec"; + $sql.= " FROM ".MAIN_DB_PREFIX."commande as c"; + $sql.= " WHERE c.fk_statut BETWEEN 1 AND 2"; + $resql=$this->db->query($sql); + if ($resql) + { + while ($obj=$this->db->fetch_object($resql)) + { + $this->nbtodo++; + if ($obj->da < (time() - $conf->commande->traitement->warning_delay)) $this->nbtodolate++; + } + return 1; + } + else + { + dolibarr_print_error($this->db); + $this->error=$this->db->error(); + return -1; + } } } -/** \class CommandeLigne + + +/** + \class CommandeLigne \brief Classe de gestion des lignes de commande */ diff --git a/htdocs/commande/fiche.php b/htdocs/commande/fiche.php index 5f64ced4892..5ec2c6fe4ec 100644 --- a/htdocs/commande/fiche.php +++ b/htdocs/commande/fiche.php @@ -160,13 +160,6 @@ if ($_GET["action"] == 'deleteline' && $user->rights->commande->creer) Header("Location: fiche.php?id=".$_GET["id"]); } -if ($_GET["action"] == 'facturee') -{ - $commande = new Commande($db); - $commande->fetch($_GET["id"]); - $commande->classer_facturee(); -} - if ($_POST["action"] == 'confirm_valid' && $_POST["confirm"] == 'yes' && $user->rights->commande->valider) { $commande = new Commande($db); @@ -176,6 +169,13 @@ if ($_POST["action"] == 'confirm_valid' && $_POST["confirm"] == 'yes' && $user-> $result = $commande->valid($user); } +if ($_POST["action"] == 'confirm_close' && $_POST["confirm"] == 'yes' && $user->rights->commande->creer) +{ + $commande = new Commande($db); + $commande->fetch($_GET["id"]); + $result = $commande->cloture($user); +} + if ($_POST["action"] == 'confirm_cancel' && $_POST["confirm"] == 'yes' && $user->rights->commande->valider) { $commande = new Commande($db); @@ -461,7 +461,6 @@ else /* * Confirmation de la suppression de la commande - * */ if ($_GET["action"] == 'delete') { @@ -471,7 +470,6 @@ else /* * Confirmation de la validation - * */ if ($_GET["action"] == 'valid') { @@ -479,9 +477,19 @@ else $html->form_confirm("fiche.php?id=$id",$langs->trans("ValidateOrder"),$langs->trans("ConfirmValidateOrder"),"confirm_valid"); print "
\n"; } + + /* + * Confirmation de la cloture + */ + if ($_GET["action"] == 'cloture') + { + //$numfa = commande_get_num($soc); + $html->form_confirm("fiche.php?id=$id",$langs->trans("CloseOrder"),$langs->trans("ConfirmCloseOrder"),"confirm_close"); + print "
\n"; + } + /* * Confirmation de l'annulation - * */ if ($_GET["action"] == 'annuler') { @@ -512,7 +520,7 @@ else else { print $langs->trans("Project").' : '; - print 'Classer la commande'; + print ''.$langs->trans("ClassifyOrder").''; } } print ' '; @@ -767,6 +775,14 @@ else print ''.$langs->trans("Valid").''; } } + + if ($commande->statut == 1 || $commande->statut == 2) + { + if ($user->rights->commande->creer) + { + print ''.$langs->trans("Close").''; + } + } if ($commande->statut == 0 && $user->rights->commande->supprimer) {