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 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;
}
}
/**

View File

@ -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();