Fix: Pb sur modif date debut effectif service.

This commit is contained in:
Laurent Destailleur 2005-09-24 01:25:19 +00:00
parent 62c09b57c6
commit ea4141ca16
2 changed files with 82 additions and 68 deletions

View File

@ -584,73 +584,72 @@ class Contrat
* \param datestart Date de debut prévue * \param datestart Date de debut prévue
* \param dateend Date de fin prévue * \param dateend Date de fin prévue
* \param tvatx Taux TVA * \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 * \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 // Nettoyage parametres
// if ($this->statut == 0) $qty=trim($qty);
// { $desc=trim($desc);
// Nettoyage parametres $desc=trim($desc);
$qty=trim($qty); $price = ereg_replace(",",".",$pu);
$desc=trim($desc); $tvatx = ereg_replace(",",".",$tvatx);
$desc=trim($desc); $subprice = $price;
$price = ereg_replace(",",".",$pu); $remise = 0;
$tvatx = ereg_replace(",",".",$tvatx); if (strlen($remise_percent) > 0)
$subprice = $price; {
$remise = 0; $remise = round(($pu * $remise_percent / 100), 2);
if (strlen($remise_percent) > 0) $price = $pu - $remise;
{ }
$remise = round(($pu * $remise_percent / 100), 2); else
$price = $pu - $remise; {
} $remise_percent=0;
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 .= " WHERE rowid = $rowid ;";
$sql = "UPDATE ".MAIN_DB_PREFIX."contratdet set description='".addslashes($desc)."'"; $result = $this->db->query($sql);
$sql .= ",price_ht='" . ereg_replace(",",".",$price)."'"; if ($result)
$sql .= ",subprice='" . ereg_replace(",",".",$subprice)."'"; {
$sql .= ",remise='" . ereg_replace(",",".",$remise)."'"; $this->update_price();
$sql .= ",remise_percent='".ereg_replace(",",".",$remise_percent)."'";
$sql .= ",qty='$qty'"; $this->db->commit();
$sql .= ",tva_tx='". ereg_replace(",",".",$tvatx)."'";
return 1;
if ($datestart > 0) { $sql.= ",date_ouverture_prevue=".$this->db->idate($datestart); } }
else { $sql.=",date_ouverture_prevue=null"; } else
if ($dateend > 0) { $sql.= ",date_fin_validite=".$this->db->idate($dateend); } {
else { $sql.=",date_fin_validite=null"; } $this->db->rollback();
$this->error=$this->db->error();
$sql .= " WHERE rowid = $rowid ;"; dolibarr_syslog("Contrat::UpdateLigne Erreur -1");
$result = $this->db->query($sql); return -1;
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;
// }
} }
/** /**

View File

@ -41,10 +41,22 @@ $user->getrights('contrat');
if (! $user->rights->contrat->lire) if (! $user->rights->contrat->lire)
accessforbidden(); accessforbidden();
// Param si create
$date_start=''; $date_start='';
$date_end=''; $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_start_update='';
$date_end_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"]) 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"]); $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"]); $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 // Sécurité accés client
@ -157,8 +169,11 @@ if ($_POST["action"] == 'updateligne' && $user->rights->contrat->creer && $_POST
$_POST["elremise_percent"], $_POST["elremise_percent"],
$date_start_update, $date_start_update,
$date_end_update, $date_end_update,
$_POST["eltva_tx"] $_POST["eltva_tx"],
); $date_start_real_update,
$date_end_real_update
);
if ($result > 0) if ($result > 0)
{ {
$db->commit(); $db->commit();