diff --git a/kfet/static/kfet/js/kfet.js b/kfet/static/kfet/js/kfet.js index 31758c36..bab21c12 100644 --- a/kfet/static/kfet/js/kfet.js +++ b/kfet/static/kfet/js/kfet.js @@ -37,9 +37,10 @@ function amountDisplay(amount, is_cof=false, tri='') { return amountToUKF(amount, is_cof); } -function amountToUKF(amount, is_cof=false) { +function amountToUKF(amount, is_cof=false, account=false) { + var rounding = account ? Math.floor : Math.round ; var coef_cof = is_cof ? 1 + settings['subvention_cof'] / 100 : 1; - return Math.floor(amount * coef_cof * 10); + return rounding(amount * coef_cof * 10); } function isValidTrigramme(trigramme) { diff --git a/kfet/templates/kfet/kpsul.html b/kfet/templates/kfet/kpsul.html index d5ca2810..264422f0 100644 --- a/kfet/templates/kfet/kpsul.html +++ b/kfet/templates/kfet/kpsul.html @@ -222,7 +222,7 @@ $(document).ready(function() { function displayAccountData() { var balance = account_data['trigramme'] != 'LIQ' ? account_data['balance'] : ''; if (balance != '') - balance = amountToUKF(account_data['balance'], account_data['is_cof']); + balance = amountToUKF(account_data['balance'], account_data['is_cof'], true); var is_cof = account_data['trigramme'] ? account_data['is_cof'] : ''; if (is_cof !== '') is_cof = is_cof ? 'COF' : 'Non-COF'; @@ -620,7 +620,7 @@ $(document).ready(function() { if (-5 <= article['stock'] && article['stock'] <= 5) { article_html.addClass('low-stock'); } - article_html.find('.price').text(amountToUKF(article['price'], false)+' UKF'); + article_html.find('.price').text(amountToUKF(article['price'], false, false)+' UKF'); var category_html = articles_container .find('#data-category-'+article['category_id']); if (category_html.length == 0) { @@ -856,7 +856,7 @@ $(document).ready(function() { .attr('data-opeindex', index) .find('.number').text('('+nb+'/'+article_data[4]+')').end() .find('.name').text(article_data[0]).end() - .find('.amount').text(amountToUKF(amount_euro, account_data['is_cof'])); + .find('.amount').text(amountToUKF(amount_euro, account_data['is_cof']), false); basket_container.prepend(article_basket_html); if (is_low_stock(id, nb)) article_basket_html.find('.lowstock') @@ -883,7 +883,7 @@ $(document).ready(function() { .attr('data-opeindex', index) .find('.number').text(amount+"€").end() .find('.name').text(text).end() - .find('.amount').text(amountToUKF(amount, account_data['is_cof'])); + .find('.amount').text(amountToUKF(amount, account_data['is_cof'], false)); basket_container.prepend(deposit_basket_html); updateBasketRel(); } @@ -896,7 +896,7 @@ $(document).ready(function() { .attr('data-opeindex', index) .find('.number').text(amount+"€").end() .find('.name').text('Retrait').end() - .find('.amount').text(amountToUKF(amount, account_data['is_cof'])); + .find('.amount').text(amountToUKF(amount, account_data['is_cof'], false)); basket_container.prepend(withdraw_basket_html); updateBasketRel(); } @@ -952,7 +952,7 @@ $(document).ready(function() { var amount = $(this).find('#id_form-'+opeindex+'-amount'); if (!deleted && type == "purchase") amount.val(amountEuroPurchase(article_id, article_nb)); - basket_container.find('[data-opeindex='+opeindex+'] .amount').text(amountToUKF(amount.val(), account_data['is_cof'])); + basket_container.find('[data-opeindex='+opeindex+'] .amount').text(amountToUKF(amount.val(), account_data['is_cof'], false)); }); } @@ -971,9 +971,9 @@ $(document).ready(function() { basketrel_html += '
Sur 20€: '+ (20-amount).toFixed(2) +' €
'; } else if (account_data['trigramme'] != '' && !isBasketEmpty()) { var amount = getAmountBasket(); - var amountUKF = amountToUKF(amount, account_data['is_cof']); + var amountUKF = amountToUKF(amount, account_data['is_cof'], false); var newBalance = account_data['balance'] + amount; - var newBalanceUKF = amountToUKF(newBalance, account_data['is_cof']); + var newBalanceUKF = amountToUKF(newBalance, account_data['is_cof'], true); basketrel_html += '
Total: '+amountUKF+'
'; basketrel_html += '
Nouveau solde: '+newBalanceUKF+'
'; if (newBalance < 0) diff --git a/kfet/templatetags/kfet_tags.py b/kfet/templatetags/kfet_tags.py index 59840b27..3b1bb639 100644 --- a/kfet/templatetags/kfet_tags.py +++ b/kfet/templatetags/kfet_tags.py @@ -41,5 +41,4 @@ def highlight_clipper(clipper, q): @register.filter() def ukf(balance, is_cof): grant = is_cof and (1 + Settings.SUBVENTION_COF() / 100) or 1 - # float nécessaire car sinon problème avec le round de future.builtins - return floor(float(balance) * 10 * grant) + return floor(balance * 10 * grant) diff --git a/kfet/views.py b/kfet/views.py index 7083d489..c228500f 100644 --- a/kfet/views.py +++ b/kfet/views.py @@ -1687,6 +1687,7 @@ def order_create(request, pk): articles = (Article.objects .filter(suppliers=supplier.pk) + .distinct() .select_related('category') .order_by('category__name', 'name'))