diff --git a/kfet/templates/kfet/kpsul.html b/kfet/templates/kfet/kpsul.html
index 1a177dcd..a78028bf 100644
--- a/kfet/templates/kfet/kpsul.html
+++ b/kfet/templates/kfet/kpsul.html
@@ -774,16 +774,27 @@ $(document).ready(function() {
}
function addPurchase(id, nb) {
- var amount_euro = amountEuroPurchase(id, nb).toFixed(2);
- var index = addPurchaseToFormset(article_data[1], nb, amount_euro);
- article_basket_html = $(item_basket_default_html);
- article_basket_html
- .attr('data-opeindex', index)
- .find('.number').text(nb).end()
- .find('.name').text(article_data[0]).end()
- .find('.amount').text(amountToUKF(amount_euro, account_data['is_cof']));
- basket_container.prepend(article_basket_html);
- updateBasketRel();
+ var existing = false;
+ formset_container.find('[data-opeindex]').each(function () {
+ var opeindex = $(this).attr('data-opeindex');
+ var article_id = $(this).find('#id_form-'+opeindex+'-article').val();
+ if (article_id == id) {
+ existing = true ;
+ addExistingPurchase(opeindex, nb);
+ }
+ });
+ if (!existing) {
+ var amount_euro = amountEuroPurchase(id, nb).toFixed(2);
+ var index = addPurchaseToFormset(article_data[1], nb, amount_euro);
+ article_basket_html = $(item_basket_default_html);
+ article_basket_html
+ .attr('data-opeindex', index)
+ .find('.number').text(nb).end()
+ .find('.name').text(article_data[0]).end()
+ .find('.amount').text(amountToUKF(amount_euro, account_data['is_cof']));
+ basket_container.prepend(article_basket_html);
+ updateBasketRel();
+ }
}
function addDeposit(amount, is_checkout=1) {
@@ -903,8 +914,8 @@ $(document).ready(function() {
function addExistingPurchase(opeindex, nb) {
type = formset_container.find("#id_form-"+opeindex+"-type").val();
id = formset_container.find("#id_form-"+opeindex+"-article").val();
- nb_before = parseInt(formset_container.find("#id_form-"+opeindex+"-article_nb").val());
- nb_after = nb_before + nb;
+ nb_before = formset_container.find("#id_form-"+opeindex+"-article_nb").val();
+ nb_after = parseInt(nb_before) + parseInt(nb);
if (type == 'purchase') {
if (nb_after == 0) {
deleteFromBasket(opeindex);