584 |
* \param datestart Date de debut prévue |
* \param datestart Date de debut prévue |
585 |
* \param dateend Date de fin prévue |
* \param dateend Date de fin prévue |
586 |
* \param tvatx Taux TVA |
* \param tvatx Taux TVA |
587 |
|
* \param date_debut_reel Date de debut réelle |
588 |
|
* \param date_fin_reel Date de fin réelle |
589 |
* \return int < 0 si erreur, > 0 si ok |
* \return int < 0 si erreur, > 0 si ok |
590 |
*/ |
*/ |
591 |
function updateline($rowid, $desc, $pu, $qty, $remise_percent=0, $datestart='', $dateend='', $tvatx) |
function updateline($rowid, $desc, $pu, $qty, $remise_percent=0, |
592 |
|
$datestart='', $dateend='', $tvatx, |
593 |
|
$date_debut_reel='', $date_fin_reel='') |
594 |
{ |
{ |
595 |
// On doit pouvoir modifier datestart et dateend meme si non brouillon |
// Nettoyage parametres |
596 |
// if ($this->statut == 0) |
$qty=trim($qty); |
597 |
// { |
$desc=trim($desc); |
598 |
// Nettoyage parametres |
$desc=trim($desc); |
599 |
$qty=trim($qty); |
$price = ereg_replace(",",".",$pu); |
600 |
$desc=trim($desc); |
$tvatx = ereg_replace(",",".",$tvatx); |
601 |
$desc=trim($desc); |
$subprice = $price; |
602 |
$price = ereg_replace(",",".",$pu); |
$remise = 0; |
603 |
$tvatx = ereg_replace(",",".",$tvatx); |
if (strlen($remise_percent) > 0) |
604 |
$subprice = $price; |
{ |
605 |
$remise = 0; |
$remise = round(($pu * $remise_percent / 100), 2); |
606 |
if (strlen($remise_percent) > 0) |
$price = $pu - $remise; |
607 |
{ |
} |
608 |
$remise = round(($pu * $remise_percent / 100), 2); |
else |
609 |
$price = $pu - $remise; |
{ |
610 |
} |
$remise_percent=0; |
611 |
else |
} |
612 |
{ |
|
613 |
$remise_percent=0; |
dolibarr_syslog("Contrat::UpdateLine $rowid, $desc, $pu, $qty, $remise_percent, $datestart, $dateend, $tvatx"); |
614 |
} |
|
615 |
|
$this->db->begin(); |
616 |
dolibarr_syslog("Contrat::UpdateLine $rowid, $desc, $pu, $qty, $remise_percent, $datestart, $dateend, $tvatx"); |
|
617 |
|
$sql = "UPDATE ".MAIN_DB_PREFIX."contratdet set description='".addslashes($desc)."'"; |
618 |
|
$sql .= ",price_ht='" . ereg_replace(",",".",$price)."'"; |
619 |
|
$sql .= ",subprice='" . ereg_replace(",",".",$subprice)."'"; |
620 |
|
$sql .= ",remise='" . ereg_replace(",",".",$remise)."'"; |
621 |
|
$sql .= ",remise_percent='".ereg_replace(",",".",$remise_percent)."'"; |
622 |
|
$sql .= ",qty='$qty'"; |
623 |
|
$sql .= ",tva_tx='". ereg_replace(",",".",$tvatx)."'"; |
624 |
|
|
625 |
|
if ($datestart > 0) { $sql.= ",date_ouverture_prevue=".$this->db->idate($datestart); } |
626 |
|
else { $sql.=",date_ouverture_prevue=null"; } |
627 |
|
if ($dateend > 0) { $sql.= ",date_fin_validite=".$this->db->idate($dateend); } |
628 |
|
else { $sql.=",date_fin_validite=null"; } |
629 |
|
if ($date_debut_reel > 0) { $sql.= ",date_ouverture=".$this->db->idate($date_debut_reel); } |
630 |
|
else { $sql.=",date_ouverture=null"; } |
631 |
|
if ($date_fin_reel > 0) { $sql.= ",date_cloture=".$this->db->idate($date_fin_reel); } |
632 |
|
else { $sql.=",date_cloture=null"; } |
633 |
|
|
634 |
$this->db->begin(); |
$sql .= " WHERE rowid = $rowid ;"; |
635 |
|
|
636 |
$sql = "UPDATE ".MAIN_DB_PREFIX."contratdet set description='".addslashes($desc)."'"; |
$result = $this->db->query($sql); |
637 |
$sql .= ",price_ht='" . ereg_replace(",",".",$price)."'"; |
if ($result) |
638 |
$sql .= ",subprice='" . ereg_replace(",",".",$subprice)."'"; |
{ |
639 |
$sql .= ",remise='" . ereg_replace(",",".",$remise)."'"; |
$this->update_price(); |
640 |
$sql .= ",remise_percent='".ereg_replace(",",".",$remise_percent)."'"; |
|
641 |
$sql .= ",qty='$qty'"; |
$this->db->commit(); |
642 |
$sql .= ",tva_tx='". ereg_replace(",",".",$tvatx)."'"; |
|
643 |
|
return 1; |
644 |
if ($datestart > 0) { $sql.= ",date_ouverture_prevue=".$this->db->idate($datestart); } |
} |
645 |
else { $sql.=",date_ouverture_prevue=null"; } |
else |
646 |
if ($dateend > 0) { $sql.= ",date_fin_validite=".$this->db->idate($dateend); } |
{ |
647 |
else { $sql.=",date_fin_validite=null"; } |
$this->db->rollback(); |
648 |
|
$this->error=$this->db->error(); |
649 |
$sql .= " WHERE rowid = $rowid ;"; |
dolibarr_syslog("Contrat::UpdateLigne Erreur -1"); |
650 |
|
|
651 |
$result = $this->db->query($sql); |
return -1; |
652 |
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; |
|
|
// } |
|
653 |
} |
} |
654 |
|
|
655 |
/** |
/** |