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');
}
} 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) {
$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') !== '') {
// Define vat_rate
$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_public = GETPOST('note_public', 'alpha');
$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_customer = GETPOST('ref_customer', 'alpha');
$object->ref_supplier = GETPOST('ref_supplier', 'alpha');

View File

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

View File

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

View File

@ -820,7 +820,7 @@ if (empty($reshook)) {
if (GETPOST('propalid') > 0) {
// Define cost price for margin calculation
$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'));
setEventMessages($langs->trans('FailedToGetCostPrice'), null, 'errors');
} else {
@ -835,7 +835,7 @@ if (empty($reshook)) {
$localtax1_tx, // localtax1
$localtax2_tx, // localtax2
$object->id,
price2num(GETPOST('remise_percent'), 2),
price2num(GETPOST('remise_percent'), '', 2),
$price_base_type,
$pu_ttc,
0,
@ -860,7 +860,7 @@ if (empty($reshook)) {
} elseif (GETPOST('commandeid') > 0) {
// Define cost price for margin calculation
$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'));
setEventMessages($langs->trans('FailedToGetCostPrice'), null, 'errors');
} else {
@ -875,7 +875,7 @@ if (empty($reshook)) {
$localtax1_tx, // localtax1
$localtax2_tx, // localtax2
$object->id,
price2num(GETPOST('remise_percent'), 2),
price2num(GETPOST('remise_percent'), '', 2),
'',
'',
$price_base_type,
@ -894,13 +894,13 @@ if (empty($reshook)) {
);
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;
}
} elseif (GETPOST('factureid') > 0) {
// Define cost price for margin calculation
$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'));
setEventMessages($langs->trans('FailedToGetCostPrice'), null, 'errors');
} else {
@ -915,7 +915,7 @@ if (empty($reshook)) {
$localtax1_tx,
$localtax2_tx,
$object->id,
price2num(GETPOST('remise_percent'), 2),
price2num(GETPOST('remise_percent'), '', 2),
'',
'',
'',

View File

@ -715,7 +715,7 @@ END;
// Discount qty min
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 '</tr>';

View File

@ -412,10 +412,10 @@ if (empty($reshook)) {
// Récupération des variables
$rowid = GETPOST('rowid', '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
$quantity = price2num(GETPOST('quantity'), 'MS');
$remise_percent = price2num(GETPOST('remise_percent'), 2);
$quantity = price2num(GETPOST('quantity'), 'MS', 2);
$remise_percent = price2num(GETPOST('remise_percent'), '', 2);
$remise = 0; // TODO : allow discount by amount when available on documents
if (empty($quantity)) {

View File

@ -258,8 +258,8 @@ if (empty($reshook)) {
$object->cond_reglement_id = GETPOST('cond_reglement_id');
$object->mode_reglement_id = GETPOST('mode_reglement_id');
$object->fk_account = GETPOST('fk_account', 'int');
$object->remise_percent = price2num(GETPOST('remise_percent'), 2);
$object->remise_absolue = price2num(GETPOST('remise_absolue'), 'MU');
$object->remise_percent = price2num(GETPOST('remise_percent'), '', 2);
$object->remise_absolue = price2num(GETPOST('remise_absolue'), 'MU', 2);
$object->socid = GETPOST('socid');
$object->fk_project = GETPOST('projectid', 'int');
$object->model_pdf = GETPOST('model');
@ -915,8 +915,8 @@ if (empty($reshook)) {
$result = $object->updateline(
GETPOST('lineid', 'int'),
$ht,
price2num(GETPOST('qty'), 'MS'),
price2num(GETPOST('remise_percent'), 2),
price2num(GETPOST('qty'), 'MS', 2),
price2num(GETPOST('remise_percent'), '', 2),
$vat_rate,
$localtax1_rate,
$localtax2_rate,
@ -996,9 +996,9 @@ if (empty($reshook)) {
// Terms of payments
$result = $object->setPaymentTerms(GETPOST('cond_reglement_id', 'int'));
} 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) {
$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) {
// Payment mode
$result = $object->setPaymentMethods(GETPOST('mode_reglement_id', 'int'));