From ea4141ca168f3fa48c40abe28c9533231902690d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 24 Sep 2005 01:25:19 +0000 Subject: [PATCH] Fix: Pb sur modif date debut effectif service. --- htdocs/contrat/contrat.class.php | 123 +++++++++++++++---------------- htdocs/contrat/fiche.php | 27 +++++-- 2 files changed, 82 insertions(+), 68 deletions(-) diff --git a/htdocs/contrat/contrat.class.php b/htdocs/contrat/contrat.class.php index d385ae6f34c..19c322df75d 100644 --- a/htdocs/contrat/contrat.class.php +++ b/htdocs/contrat/contrat.class.php @@ -584,73 +584,72 @@ class Contrat * \param datestart Date de debut prévue * \param dateend Date de fin prévue * \param tvatx Taux TVA + * \param date_debut_reel Date de debut réelle + * \param date_fin_reel Date de fin réelle * \return int < 0 si erreur, > 0 si ok */ - function updateline($rowid, $desc, $pu, $qty, $remise_percent=0, $datestart='', $dateend='', $tvatx) + function updateline($rowid, $desc, $pu, $qty, $remise_percent=0, + $datestart='', $dateend='', $tvatx, + $date_debut_reel='', $date_fin_reel='') { -// On doit pouvoir modifier datestart et dateend meme si non brouillon -// if ($this->statut == 0) -// { - // Nettoyage parametres - $qty=trim($qty); - $desc=trim($desc); - $desc=trim($desc); - $price = ereg_replace(",",".",$pu); - $tvatx = ereg_replace(",",".",$tvatx); - $subprice = $price; - $remise = 0; - if (strlen($remise_percent) > 0) - { - $remise = round(($pu * $remise_percent / 100), 2); - $price = $pu - $remise; - } - else - { - $remise_percent=0; - } + // Nettoyage parametres + $qty=trim($qty); + $desc=trim($desc); + $desc=trim($desc); + $price = ereg_replace(",",".",$pu); + $tvatx = ereg_replace(",",".",$tvatx); + $subprice = $price; + $remise = 0; + if (strlen($remise_percent) > 0) + { + $remise = round(($pu * $remise_percent / 100), 2); + $price = $pu - $remise; + } + else + { + $remise_percent=0; + } + + dolibarr_syslog("Contrat::UpdateLine $rowid, $desc, $pu, $qty, $remise_percent, $datestart, $dateend, $tvatx"); - dolibarr_syslog("Contrat::UpdateLine $rowid, $desc, $pu, $qty, $remise_percent, $datestart, $dateend, $tvatx"); + $this->db->begin(); + + $sql = "UPDATE ".MAIN_DB_PREFIX."contratdet set description='".addslashes($desc)."'"; + $sql .= ",price_ht='" . ereg_replace(",",".",$price)."'"; + $sql .= ",subprice='" . ereg_replace(",",".",$subprice)."'"; + $sql .= ",remise='" . ereg_replace(",",".",$remise)."'"; + $sql .= ",remise_percent='".ereg_replace(",",".",$remise_percent)."'"; + $sql .= ",qty='$qty'"; + $sql .= ",tva_tx='". ereg_replace(",",".",$tvatx)."'"; + + if ($datestart > 0) { $sql.= ",date_ouverture_prevue=".$this->db->idate($datestart); } + else { $sql.=",date_ouverture_prevue=null"; } + if ($dateend > 0) { $sql.= ",date_fin_validite=".$this->db->idate($dateend); } + else { $sql.=",date_fin_validite=null"; } + if ($date_debut_reel > 0) { $sql.= ",date_ouverture=".$this->db->idate($date_debut_reel); } + else { $sql.=",date_ouverture=null"; } + if ($date_fin_reel > 0) { $sql.= ",date_cloture=".$this->db->idate($date_fin_reel); } + else { $sql.=",date_cloture=null"; } - $this->db->begin(); - - $sql = "UPDATE ".MAIN_DB_PREFIX."contratdet set description='".addslashes($desc)."'"; - $sql .= ",price_ht='" . ereg_replace(",",".",$price)."'"; - $sql .= ",subprice='" . ereg_replace(",",".",$subprice)."'"; - $sql .= ",remise='" . ereg_replace(",",".",$remise)."'"; - $sql .= ",remise_percent='".ereg_replace(",",".",$remise_percent)."'"; - $sql .= ",qty='$qty'"; - $sql .= ",tva_tx='". ereg_replace(",",".",$tvatx)."'"; - - if ($datestart > 0) { $sql.= ",date_ouverture_prevue=".$this->db->idate($datestart); } - else { $sql.=",date_ouverture_prevue=null"; } - if ($dateend > 0) { $sql.= ",date_fin_validite=".$this->db->idate($dateend); } - else { $sql.=",date_fin_validite=null"; } - - $sql .= " WHERE rowid = $rowid ;"; - - $result = $this->db->query($sql); - if ($result) - { - $this->update_price(); - - $this->db->commit(); - - return 1; - } - else - { - $this->db->rollback(); - $this->error=$this->db->error(); - dolibarr_syslog("Contrat::UpdateLigne Erreur -1"); - - return -1; - } -// } -// else -// { -// dolibarr_syslog("Contrat::UpdateLigne Erreur -2 Contrat en mode incompatible pour cette action"); -// return -2; -// } + $sql .= " WHERE rowid = $rowid ;"; + + $result = $this->db->query($sql); + if ($result) + { + $this->update_price(); + + $this->db->commit(); + + return 1; + } + else + { + $this->db->rollback(); + $this->error=$this->db->error(); + dolibarr_syslog("Contrat::UpdateLigne Erreur -1"); + + return -1; + } } /** diff --git a/htdocs/contrat/fiche.php b/htdocs/contrat/fiche.php index 59bf27c5735..aca6782ea53 100644 --- a/htdocs/contrat/fiche.php +++ b/htdocs/contrat/fiche.php @@ -41,10 +41,22 @@ $user->getrights('contrat'); if (! $user->rights->contrat->lire) accessforbidden(); +// Param si create $date_start=''; $date_end=''; +if ($_POST["date_startmonth"] && $_POST["date_startday"] && $_POST["date_startyear"]) +{ + $date_start=mktime(12, 0 , 0, $_POST["date_startmonth"], $_POST["date_startday"], $_POST["date_startyear"]); +} +if ($_POST["date_endmonth"] && $_POST["date_endday"] && $_POST["date_endyear"]) +{ + $date_end=mktime(12, 0 , 0, $_POST["date_endmonth"], $_POST["date_endday"], $_POST["date_endyear"]); +} +// Param si updateligne $date_start_update=''; $date_end_update=''; +$date_start_real_update=''; +$date_end_real_update=''; if ($_POST["date_start_updatemonth"] && $_POST["date_start_updateday"] && $_POST["date_start_updateyear"]) { $date_start_update=mktime(12, 0 , 0, $_POST["date_start_updatemonth"], $_POST["date_start_updateday"], $_POST["date_start_updateyear"]); @@ -53,13 +65,13 @@ if ($_POST["date_end_updatemonth"] && $_POST["date_end_updateday"] && $_POST["da { $date_end_update=mktime(12, 0 , 0, $_POST["date_end_updatemonth"], $_POST["date_end_updateday"], $_POST["date_end_updateyear"]); } -if ($_POST["date_startmonth"] && $_POST["date_startday"] && $_POST["date_startyear"]) +if ($_POST["date_start_real_updatemonth"] && $_POST["date_start_real_updateday"] && $_POST["date_start_real_updateyear"]) { - $date_start=mktime(12, 0 , 0, $_POST["date_startmonth"], $_POST["date_startday"], $_POST["date_startyear"]); + $date_start_real_update=mktime(12, 0 , 0, $_POST["date_start_real_updatemonth"], $_POST["date_start_real_updateday"], $_POST["date_start_real_updateyear"]); } -if ($_POST["date_endmonth"] && $_POST["date_endday"] && $_POST["date_endyear"]) +if ($_POST["date_end_real_updatemonth"] && $_POST["date_end_real_updateday"] && $_POST["date_end_real_updateyear"]) { - $date_end=mktime(12, 0 , 0, $_POST["date_endmonth"], $_POST["date_endday"], $_POST["date_endyear"]); + $date_end_real_update=mktime(12, 0 , 0, $_POST["date_end_real_updatemonth"], $_POST["date_end_real_updateday"], $_POST["date_end_real_updateyear"]); } // Sécurité accés client @@ -157,8 +169,11 @@ if ($_POST["action"] == 'updateligne' && $user->rights->contrat->creer && $_POST $_POST["elremise_percent"], $date_start_update, $date_end_update, - $_POST["eltva_tx"] - ); + $_POST["eltva_tx"], + $date_start_real_update, + $date_end_real_update + ); + if ($result > 0) { $db->commit();