FIX Relative discount with high nb of decimals

This commit is contained in:
Laurent Destailleur 2021-09-08 22:09:02 +02:00
parent 4705d41ed2
commit 30856d5b18
8 changed files with 23 additions and 23 deletions

View File

@ -597,9 +597,9 @@ if (empty($reshook)) {
setEventMessages($object->error, $object->errors, 'errors'); setEventMessages($object->error, $object->errors, 'errors');
} }
} elseif ($action == 'setremisepercent' && $usercancreate) { } elseif ($action == 'setremisepercent' && $usercancreate) {
$result = $object->setDiscount($user, price2num(GETPOST('remise_percent'), 2)); $result = $object->setDiscount($user, price2num(GETPOST('remise_percent'), '', 2));
} elseif ($action == 'setremiseabsolue' && $usercancreate) { } elseif ($action == 'setremiseabsolue' && $usercancreate) {
$result = $object->set_remise_absolue($user, price2num(GETPOST('remise_absolue'), 'MU')); $result = $object->set_remise_absolue($user, price2num(GETPOST('remise_absolue'), 'MU', 2));
} elseif ($action == 'addline' && GETPOST('submitforalllines', 'alpha') && GETPOST('vatforalllines', 'alpha') !== '') { } elseif ($action == 'addline' && GETPOST('submitforalllines', 'alpha') && GETPOST('vatforalllines', 'alpha') !== '') {
// Define vat_rate // Define vat_rate
$vat_rate = (GETPOST('vatforalllines') ? GETPOST('vatforalllines') : 0); $vat_rate = (GETPOST('vatforalllines') ? GETPOST('vatforalllines') : 0);

View File

@ -204,7 +204,7 @@ if (empty($reshook)) {
$object->note_private = GETPOST('note_private', 'alpha'); $object->note_private = GETPOST('note_private', 'alpha');
$object->note_public = GETPOST('note_public', 'alpha'); $object->note_public = GETPOST('note_public', 'alpha');
$object->fk_project = GETPOST('projectid', 'int'); $object->fk_project = GETPOST('projectid', 'int');
$object->remise_percent = price2num(GETPOST('remise_percent'), 2); $object->remise_percent = price2num(GETPOST('remise_percent'), '', 2);
$object->ref = GETPOST('ref', 'alpha'); $object->ref = GETPOST('ref', 'alpha');
$object->ref_customer = GETPOST('ref_customer', 'alpha'); $object->ref_customer = GETPOST('ref_customer', 'alpha');
$object->ref_supplier = GETPOST('ref_supplier', 'alpha'); $object->ref_supplier = GETPOST('ref_supplier', 'alpha');

View File

@ -748,7 +748,7 @@ if (empty($reshook)) {
GETPOST('product_desc', 'restricthtml'), GETPOST('product_desc', 'restricthtml'),
$ht, $ht,
price2num(GETPOST('qty'), 'MS'), price2num(GETPOST('qty'), 'MS'),
price2num(GETPOST('remise_percent'), 2), price2num(GETPOST('remise_percent'), '', 2),
$vat_rate, $vat_rate,
$localtax1_rate, $localtax1_rate,
$localtax2_rate, $localtax2_rate,

View File

@ -1272,8 +1272,8 @@ if (empty($reshook)) {
$localtax1_tx = get_localtax($tva_tx, 1, $mysoc, $object->thirdparty); $localtax1_tx = get_localtax($tva_tx, 1, $mysoc, $object->thirdparty);
$localtax2_tx = get_localtax($tva_tx, 2, $mysoc, $object->thirdparty); $localtax2_tx = get_localtax($tva_tx, 2, $mysoc, $object->thirdparty);
$remise_percent = price2num(GETPOST('remise_percent'), 2); $remise_percent = price2num(GETPOST('remise_percent'), '', 2);
$pu_ht_devise = price2num(GETPOST('multicurrency_subprice'), 'MU'); $pu_ht_devise = price2num(GETPOST('multicurrency_subprice'), 'MU', 2);
// Extrafields Lines // Extrafields Lines
$extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line); $extralabelsline = $extrafields->fetch_name_optionals_label($object->table_element_line);

View File

@ -820,7 +820,7 @@ if (empty($reshook)) {
if (GETPOST('propalid') > 0) { if (GETPOST('propalid') > 0) {
// Define cost price for margin calculation // Define cost price for margin calculation
$buyprice = 0; $buyprice = 0;
if (($result = $propal->defineBuyPrice($pu_ht, price2num(GETPOST('remise_percent'), 2), $object->id)) < 0) { if (($result = $propal->defineBuyPrice($pu_ht, price2num(GETPOST('remise_percent'), '', 2), $object->id)) < 0) {
dol_syslog($langs->trans('FailedToGetCostPrice')); dol_syslog($langs->trans('FailedToGetCostPrice'));
setEventMessages($langs->trans('FailedToGetCostPrice'), null, 'errors'); setEventMessages($langs->trans('FailedToGetCostPrice'), null, 'errors');
} else { } else {
@ -835,7 +835,7 @@ if (empty($reshook)) {
$localtax1_tx, // localtax1 $localtax1_tx, // localtax1
$localtax2_tx, // localtax2 $localtax2_tx, // localtax2
$object->id, $object->id,
price2num(GETPOST('remise_percent'), 2), price2num(GETPOST('remise_percent'), '', 2),
$price_base_type, $price_base_type,
$pu_ttc, $pu_ttc,
0, 0,
@ -860,7 +860,7 @@ if (empty($reshook)) {
} elseif (GETPOST('commandeid') > 0) { } elseif (GETPOST('commandeid') > 0) {
// Define cost price for margin calculation // Define cost price for margin calculation
$buyprice = 0; $buyprice = 0;
if (($result = $commande->defineBuyPrice($pu_ht, GETPOST('remise_percent', 2), $object->id)) < 0) { if (($result = $commande->defineBuyPrice($pu_ht, price2num(GETPOST('remise_percent'), '', 2), $object->id)) < 0) {
dol_syslog($langs->trans('FailedToGetCostPrice')); dol_syslog($langs->trans('FailedToGetCostPrice'));
setEventMessages($langs->trans('FailedToGetCostPrice'), null, 'errors'); setEventMessages($langs->trans('FailedToGetCostPrice'), null, 'errors');
} else { } else {
@ -875,7 +875,7 @@ if (empty($reshook)) {
$localtax1_tx, // localtax1 $localtax1_tx, // localtax1
$localtax2_tx, // localtax2 $localtax2_tx, // localtax2
$object->id, $object->id,
price2num(GETPOST('remise_percent'), 2), price2num(GETPOST('remise_percent'), '', 2),
'', '',
'', '',
$price_base_type, $price_base_type,
@ -894,13 +894,13 @@ if (empty($reshook)) {
); );
if ($result > 0) { if ($result > 0) {
header("Location: ".DOL_URL_ROOT."/commande/card.php?id=".$commande->id); header("Location: ".DOL_URL_ROOT."/commande/card.php?id=".urlencode($commande->id));
exit; exit;
} }
} elseif (GETPOST('factureid') > 0) { } elseif (GETPOST('factureid') > 0) {
// Define cost price for margin calculation // Define cost price for margin calculation
$buyprice = 0; $buyprice = 0;
if (($result = $facture->defineBuyPrice($pu_ht, GETPOST('remise_percent', 2), $object->id)) < 0) { if (($result = $facture->defineBuyPrice($pu_ht, price2num(GETPOST('remise_percent'), '', 2), $object->id)) < 0) {
dol_syslog($langs->trans('FailedToGetCostPrice')); dol_syslog($langs->trans('FailedToGetCostPrice'));
setEventMessages($langs->trans('FailedToGetCostPrice'), null, 'errors'); setEventMessages($langs->trans('FailedToGetCostPrice'), null, 'errors');
} else { } else {
@ -915,7 +915,7 @@ if (empty($reshook)) {
$localtax1_tx, $localtax1_tx,
$localtax2_tx, $localtax2_tx,
$object->id, $object->id,
price2num(GETPOST('remise_percent'), 2), price2num(GETPOST('remise_percent'), '', 2),
'', '',
'', '',
'', '',

View File

@ -715,7 +715,7 @@ END;
// Discount qty min // Discount qty min
print '<tr><td>'.$langs->trans("DiscountQtyMin").'</td>'; print '<tr><td>'.$langs->trans("DiscountQtyMin").'</td>';
print '<td><input class="flat" name="remise_percent" size="4" value="'.(GETPOSTISSET('remise_percent') ? vatrate(price2num(GETPOST('remise_percent'), 2)) : (isset($object->fourn_remise_percent) ?vatrate($object->fourn_remise_percent) : '')).'"> %'; print '<td><input class="flat" name="remise_percent" size="4" value="'.(GETPOSTISSET('remise_percent') ? vatrate(price2num(GETPOST('remise_percent'), '', 2)) : (isset($object->fourn_remise_percent) ?vatrate($object->fourn_remise_percent) : '')).'"> %';
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';

View File

@ -412,10 +412,10 @@ if (empty($reshook)) {
// Récupération des variables // Récupération des variables
$rowid = GETPOST('rowid', 'int'); $rowid = GETPOST('rowid', 'int');
$priceid = GETPOST('priceid', 'int'); $priceid = GETPOST('priceid', 'int');
$newprice = price2num(GETPOST("price"), 'MU'); $newprice = price2num(GETPOST("price"), 'MU', 2);
// $newminprice=price2num(GETPOST("price_min"),'MU'); // TODO : Add min price management // $newminprice=price2num(GETPOST("price_min"),'MU'); // TODO : Add min price management
$quantity = price2num(GETPOST('quantity'), 'MS'); $quantity = price2num(GETPOST('quantity'), 'MS', 2);
$remise_percent = price2num(GETPOST('remise_percent'), 2); $remise_percent = price2num(GETPOST('remise_percent'), '', 2);
$remise = 0; // TODO : allow discount by amount when available on documents $remise = 0; // TODO : allow discount by amount when available on documents
if (empty($quantity)) { if (empty($quantity)) {

View File

@ -258,8 +258,8 @@ if (empty($reshook)) {
$object->cond_reglement_id = GETPOST('cond_reglement_id'); $object->cond_reglement_id = GETPOST('cond_reglement_id');
$object->mode_reglement_id = GETPOST('mode_reglement_id'); $object->mode_reglement_id = GETPOST('mode_reglement_id');
$object->fk_account = GETPOST('fk_account', 'int'); $object->fk_account = GETPOST('fk_account', 'int');
$object->remise_percent = price2num(GETPOST('remise_percent'), 2); $object->remise_percent = price2num(GETPOST('remise_percent'), '', 2);
$object->remise_absolue = price2num(GETPOST('remise_absolue'), 'MU'); $object->remise_absolue = price2num(GETPOST('remise_absolue'), 'MU', 2);
$object->socid = GETPOST('socid'); $object->socid = GETPOST('socid');
$object->fk_project = GETPOST('projectid', 'int'); $object->fk_project = GETPOST('projectid', 'int');
$object->model_pdf = GETPOST('model'); $object->model_pdf = GETPOST('model');
@ -915,8 +915,8 @@ if (empty($reshook)) {
$result = $object->updateline( $result = $object->updateline(
GETPOST('lineid', 'int'), GETPOST('lineid', 'int'),
$ht, $ht,
price2num(GETPOST('qty'), 'MS'), price2num(GETPOST('qty'), 'MS', 2),
price2num(GETPOST('remise_percent'), 2), price2num(GETPOST('remise_percent'), '', 2),
$vat_rate, $vat_rate,
$localtax1_rate, $localtax1_rate,
$localtax2_rate, $localtax2_rate,
@ -996,9 +996,9 @@ if (empty($reshook)) {
// Terms of payments // Terms of payments
$result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int')); $result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int'));
} elseif ($action == 'setremisepercent' && $usercancreate) { } elseif ($action == 'setremisepercent' && $usercancreate) {
$result = $object->set_remise_percent($user, price2num(GETPOST('remise_percent'), 2)); $result = $object->set_remise_percent($user, price2num(GETPOST('remise_percent'), '', 2));
} elseif ($action == 'setremiseabsolue' && $usercancreate) { } elseif ($action == 'setremiseabsolue' && $usercancreate) {
$result = $object->set_remise_absolue($user, price2num(GETPOST('remise_absolue'), 'MU')); $result = $object->set_remise_absolue($user, price2num(GETPOST('remise_absolue'), 'MU', 2));
} elseif ($action == 'setmode' && $usercancreate) { } elseif ($action == 'setmode' && $usercancreate) {
// Payment mode // Payment mode
$result = $object->setPaymentMethods(GETPOST('mode_reglement_id', 'int')); $result = $object->setPaymentMethods(GETPOST('mode_reglement_id', 'int'));