FIX autocalculation of the supplier price in main currency.

Conflicts:
	htdocs/product/fournisseurs.php
This commit is contained in:
Laurent Destailleur 2021-09-16 13:17:00 +02:00
parent 68bc85124b
commit 87bb971d75

View File

@ -616,17 +616,19 @@ if ($id > 0 || $ref)
</script>';
}
if ($conf->multicurrency->enabled) {
// Currency
print '<tr><td class="fieldrequired">'.$langs->trans("Currency").'</td>';
print '<td>';
$currencycodetouse = GETPOST('multicurrency_code') ?GETPOST('multicurrency_code') : (isset($object->fourn_multicurrency_code) ? $object->fourn_multicurrency_code : '');
if (empty($currencycodetouse) && $object->fourn_multicurrency_tx == 1) $currencycodetouse = $conf->currency;
print $form->selectMultiCurrency($currencycodetouse, "multicurrency_code", 1);
print ' &nbsp; '.$langs->trans("CurrencyRate").' ';
print '<input class="flat" name="multicurrency_tx" size="4" value="'.vatrate(GETPOST('multicurrency_tx') ?GETPOST('multicurrency_tx') : (isset($object->fourn_multicurrency_tx) ? $object->fourn_multicurrency_tx : '')).'">';
print '</td>';
print '</tr>';
if (!empty($conf->multicurrency->enabled)) {
// Currency
print '<tr><td class="fieldrequired">'.$langs->trans("Currency").'</td>';
print '<td>';
$currencycodetouse = GETPOST('multicurrency_code') ? GETPOST('multicurrency_code') : (isset($object->fourn_multicurrency_code) ? $object->fourn_multicurrency_code : '');
if (empty($currencycodetouse) && $object->fourn_multicurrency_tx == 1) {
$currencycodetouse = $conf->currency;
}
print $form->selectMultiCurrency($currencycodetouse, "multicurrency_code", 1);
print ' &nbsp; '.$langs->trans("CurrencyRate").' ';
print '<input class="flat" name="multicurrency_tx" size="4" value="'.vatrate(GETPOST('multicurrency_tx') ? GETPOST('multicurrency_tx') : (isset($object->fourn_multicurrency_tx) ? $object->fourn_multicurrency_tx : '')).'">';
print '</td>';
print '</tr>';
// Currency price qty min
print '<tr><td class="fieldrequired">'.$langs->trans("PriceQtyMinCurrency").'</td>';
@ -646,43 +648,45 @@ if ($id > 0 || $ref)
print '</td></tr>';
$currencies = array();
$sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.'multicurrency WHERE entity = '.$conf->entity;
$sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.'multicurrency WHERE entity = '.((int) $conf->entity);
$resql = $db->query($sql);
if ($resql) {
$currency = new MultiCurrency($db);
while ($obj = $db->fetch_object($resql)) {
$currency->fetch($obj->rowid);
$currencies[$currency->code] = $currency->rate->rate;
$currencies[$currency->code] = ((float) $currency->rate->rate);
}
}
$currencies = json_encode($currencies);
print <<<SCRIPT
print <<<END
<!-- javascript to autocalculate the minimum price -->
<script type="text/javascript">
function update_price_from_multicurrency() {
var multicurrency_price = $('input[name="multicurrency_price"]').val();
var multicurrency_tx = $('input[name="multicurrency_tx"]').val();
$('input[name="price"]').val(multicurrency_price / multicurrency_tx);
$('input[name="disabled_price"]').val(multicurrency_price / multicurrency_tx);
console.log("update_price_from_multicurrency");
var multicurrency_price = price2numjs($('input[name="multicurrency_price"]').val());
var multicurrency_tx = price2numjs($('input[name="multicurrency_tx"]').val());
if (multicurrency_tx != 0) {
$('input[name="price"]').val(multicurrency_price / multicurrency_tx);
$('input[name="disabled_price"]').val(multicurrency_price / multicurrency_tx);
} else {
$('input[name="price"]').val('');
$('input[name="disabled_price"]').val('');
}
}
jQuery(document).ready(function () {
$('input[name="disabled_price"]').prop('disabled', true);
$('select[name="disabled_price_base_type"]').prop('disabled', true);
update_price_from_multicurrency();
$('input[name="multicurrency_price"]').keyup(function () {
update_price_from_multicurrency();
}).change(function () {
update_price_from_multicurrency();
}).on('paste', function () {
$('input[name="multicurrency_price"], input[name="multicurrency_tx"]').keyup(function () {
update_price_from_multicurrency();
});
$('input[name="multicurrency_tx"]').keyup(function () {
$('input[name="multicurrency_price"], input[name="multicurrency_tx"]').change(function () {
update_price_from_multicurrency();
}).change(function () {
update_price_from_multicurrency();
}).on('paste', function () {
});
$('input[name="multicurrency_price"], input[name="multicurrency_tx"]').on('paste', function () {
update_price_from_multicurrency();
});
@ -693,11 +697,13 @@ if ($id > 0 || $ref)
var currencies_array = $currencies;
$('select[name="multicurrency_code"]').change(function () {
console.log("We change the currency");
$('input[name="multicurrency_tx"]').val(currencies_array[$(this).val()]);
update_price_from_multicurrency();
});
});
</script>
SCRIPT;
END;
} else {
// Price qty min
print '<tr><td class="fieldrequired">'.$langs->trans("PriceQtyMin").'</td>';