From 619feffef128a8cbbe26361cfa07dd287e3728e6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 1 Sep 2005 19:28:15 +0000 Subject: [PATCH] =?UTF-8?q?Possibilit=E9=20de=20modifier=20le=20descriptif?= =?UTF-8?q?=20et=20le=20taux=20de=20tva=20y=20compris=20sur=20les=20lignes?= =?UTF-8?q?=20de=20produits=20pr=E9d=E9finis.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/comm/propal.php | 128 ++++++++++++++++++++++++++-------------- htdocs/propal.class.php | 30 ++++++---- 2 files changed, 100 insertions(+), 58 deletions(-) diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index fc65ba3aab4..7e3c9a7c288 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -72,16 +72,28 @@ $form=new Form($db); if ($_POST['action'] == 'confirm_delete' && $_POST['confirm'] == 'yes') { - if ($user->rights->propale->supprimer) + if ($user->rights->propale->supprimer) { - $propal = new Propal($db, 0, $_GET['propalid']); - $propal->delete($user); - $propalid = 0; - $brouillon = 1; + $propal = new Propal($db, 0, $_GET['propalid']); + $propal->delete($user); + $propalid = 0; + $brouillon = 1; } - Header('Location: propal.php'); + Header('Location: propal.php'); } +if ($_POST['action'] == 'confirm_validate' && $_POST['confirm'] == 'yes') +{ + if ($user->rights->propale->valider) + { + $propal = new Propal($db); + $propal->fetch($_GET['propalid']); + $propal->update_price($_GET['propalid']); + propale_pdf_create($db, $_GET['propalid'], $propal->modelpdf); + $propal->valid($user); + } + Header ('Location: propal.php?propalid='.$_GET['propalid']); +} if ($_POST['action'] == 'add') { @@ -289,24 +301,22 @@ if ($_POST['action'] == "addligne" && $user->rights->propale->creer) propale_pdf_create($db, $_POST['propalid'], $propal->modelpdf); } -if ($_POST['action'] == 'updateligne' && $user->rights->propale->creer) +if ($_POST['action'] == 'updateligne' && $user->rights->propale->creer && $_POST["save"] == $langs->trans("Save")) { - /* - * Mise à jour d'une ligne dans la propale - */ - - $propal = new Propal($db); - $propal->fetch($_GET['propalid']); - $propal->UpdateLigne($_POST['ligne'], $_POST['subprice'], $_POST['qty'], $_POST['remise']); - - propale_pdf_create($db, $_GET['propalid'], $propal->modelpdf); + /* + * Mise à jour d'une ligne dans la propale + */ + $propal = new Propal($db); + $propal->fetch($_GET['propalid']); + $propal->UpdateLigne($_POST['ligne'], $_POST['subprice'], $_POST['qty'], $_POST['remise_percent'], $_POST['tva_tx'], $_POST['desc']); + propale_pdf_create($db, $_GET['propalid'], $propal->modelpdf); } if ($_POST['action'] == 'setpdfmodel' && $user->rights->propale->creer) { - $propal = new Propal($db, 0, $_GET['propalid']); - $propal->set_pdf_model($user, $_POST['modelpdf']); - propale_pdf_create($db, $_GET['propalid'], $_POST['modelpdf']); + $propal = new Propal($db, 0, $_GET['propalid']); + $propal->set_pdf_model($user, $_POST['modelpdf']); + propale_pdf_create($db, $_GET['propalid'], $_POST['modelpdf']); } @@ -321,15 +331,6 @@ if ($_GET['action'] == 'del_ligne' && $user->rights->propale->creer) propale_pdf_create($db, $_GET['propalid'], $propal->modelpdf); } -if ($_GET['valid'] == 1 && $user->rights->propale->valider) -{ - $propal = new Propal($db); - $propal->fetch($_GET['propalid']); - $propal->update_price($_GET['propalid']); - propale_pdf_create($db, $_GET['propalid'], $propal->modelpdf); - $propal->valid($user); -} - if ($_POST['action'] == 'setremise' && $user->rights->propale->creer) { $propal = new Propal($db); @@ -401,7 +402,6 @@ if ($_GET['propalid'] > 0) /* * Confirmation de la suppression de la propale - * */ if ($_GET['action'] == 'delete') { @@ -409,6 +409,15 @@ if ($_GET['propalid'] > 0) print '
'; } + /* + * Confirmation de la validation de la propale + */ + if ($_GET['action'] == 'validate') + { + $html->form_confirm('propal.php?propalid='.$propal->id, $langs->trans('ValidateProp'), $langs->trans('ConfirmvalidateProp'), 'confirm_validate'); + print '
'; + } + /* * Fiche propal @@ -621,7 +630,7 @@ if ($_GET['propalid'] > 0) print ''.$langs->trans('Qty').''; print ''.$langs->trans('Discount').''; print ''.$langs->trans('AmountHT').''; - print '  '; + print '  '; print "\n"; } $var=true; @@ -630,8 +639,8 @@ if ($_GET['propalid'] > 0) $objp = $db->fetch_object($resql); $var=!$var; - // Update ligne de propale - if ($_GET['action'] != 'editline' || $_GET['rowid'] != $objp->rowid) + // Ligne en mode visu + if ($_GET['action'] != 'editline' || $_GET['ligne'] != $objp->rowid) { print ''; if ($objp->fk_product > 0) @@ -639,7 +648,8 @@ if ($_GET['propalid'] > 0) print ''; if ($objp->fk_product_type) print img_object($langs->trans('ShowService'),'service'); else print img_object($langs->trans('ShowProduct'),'product'); - print ' '.$objp->ref.' - '.stripslashes(nl2br($objp->product)); + print ' '.$objp->ref.''; + print ' - '.nl2br(stripslashes($objp->product)); if ($objp->date_start && $objp->date_end) { print ' (Du '.dolibarr_print_date($objp->date_start).' au '.dolibarr_print_date($objp->date_end).')'; @@ -652,7 +662,7 @@ if ($_GET['propalid'] > 0) { print " (Jusqu'au ".dolibarr_print_date($objp->date_end).')'; } - print ($objp->description && $objp->description!=$obj->product)?'
'.$objp->description:''; + print ($objp->description && $objp->description!=$objp->product)?'
'.$objp->description:''; print ''; } else @@ -702,25 +712,53 @@ if ($_GET['propalid'] > 0) print ''; } - // Update ligne de propal - if ($propal->statut == 0 && $user->rights->propale->creer && $_GET["action"] == 'editline' && $_GET["ligne"] == $objp->rowid) + // Ligne en mode update + if ($propal->statut == 0 && $_GET["action"] == 'editline' && $user->rights->propale->creer && $_GET["ligne"] == $objp->rowid) { print '
'; print ''; + print ''; print ''; print ''; - print ' '; - print ''; - print ''; - print ' %'; - print ''; - print ''; - print '
'; + print ''; + if ($objp->fk_product > 0) + { + print ''; + if ($objp->fk_product_type) print img_object($langs->trans('ShowService'),'service'); + else print img_object($langs->trans('ShowProduct'),'product'); + print ' '.$objp->ref.''; + print ' - '.stripslashes(nl2br($objp->product)); + print '
'; + } + print ''; + print ''; + print $html->select_tva("tva_tx",$objp->tva_tx); + print ''; + print ''; + print ''; + print '%'; + print ''; + print '
'; + print '' . "\n"; + /* + if ($conf->service->enabled) + { + print ""; + print 'Si produit de type service à durée limitée: Du '; + print $html->select_date($objp->date_start,"date_start",0,0,$objp->date_start?0:1); + print ' au '; + print $html->select_date($objp->date_end,"date_end",0,0,$objp->date_end?0:1); + print ''; + print '' . "\n"; + } + */ + print "\n"; } $total = $total + ($objp->qty * $objp->price); $i++; } + $db->free($resql); } else @@ -811,7 +849,7 @@ if ($_GET['propalid'] > 0) print ''; print ''; print ''; - print ''; + print ''; print ''; } @@ -826,7 +864,7 @@ if ($_GET['propalid'] > 0) { if ($user->rights->propale->valider) { - print ''.$langs->trans('Valid').''; + print ''.$langs->trans('Validate').''; } } diff --git a/htdocs/propal.class.php b/htdocs/propal.class.php index 9283a7f4223..d5e496d6393 100644 --- a/htdocs/propal.class.php +++ b/htdocs/propal.class.php @@ -221,15 +221,16 @@ class Propal /** - * \brief Mise à jour d'une ligne de produit - * \param id id de la ligne - * \param subprice prix unitaire - * \param qty quantité - * \param remise_percent remise effectuée sur le produit - * \return int 0 en cas de succès + * \brief Mise à jour d'une ligne de produit + * \param id Id de la ligne + * \param subprice Prix unitaire + * \param qty Quantité + * \param remise_percent Remise effectuée sur le produit + * \param desc Description + * \return int 0 en cas de succès */ - function UpdateLigne($id, $subprice, $qty, $remise_percent=0) + function UpdateLigne($id, $subprice, $qty, $remise_percent=0, $tva_tx, $desc='') { if ($this->statut == 0) { @@ -241,19 +242,22 @@ class Propal } $sql = "UPDATE ".MAIN_DB_PREFIX."propaldet "; - $sql .= " SET qty='".$qty."'"; - $sql .= " , price='". ereg_replace(",",".",$price)."'"; - $sql .= " , remise_percent='".ereg_replace(",",".",$remise_percent)."'"; - $sql .= " , subprice='".ereg_replace(",",".",$subprice)."'"; - $sql .= " WHERE rowid = '".$id."';"; + $sql.= " SET qty='".$qty."'"; + $sql.= " , price='". ereg_replace(",",".",$price)."'"; + $sql.= " , remise_percent='".ereg_replace(",",".",$remise_percent)."'"; + $sql.= " , subprice='".ereg_replace(",",".",$subprice)."'"; + $sql.= " , tva_tx='".ereg_replace(",",".",$tva_tx)."'"; + $sql.= " , description='".addslashes($desc)."'"; + $sql.= " WHERE rowid = '".$id."';"; - if ($this->db->query($sql) ) + if ($this->db->query($sql)) { $this->update_price(); return 0; } else { + $this->error=$this->db->error(); dolibarr_syslog("Propal::UpdateLigne Erreur -1"); return -1; }