%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/emtnaeewxm/www/web/js/
Upload File :
Create Path :
Current File : /home/emtnaeewxm/www/web/js/main_admin.js

$(document).ready(function () {
    $('.select_article_achat').select2();
    $('.select_article_vente').select2();
    $('.select_article_traite').select2();
    $('.select_client_traite').select2();
    $('.select_famille').select2();
    $('.select_marque').select2();
    $('#select_search_famille').select2();
    $('#select_search_marque').select2();
    $('#select_search_modele').select2();
    $('#select_piece_rechange').select2();

    $('body').on('click', '.save_form_changement', function (event) {
        $('#form_changement').submit();
    });
    $('body').on('keyup', '#barCodeTraite', function (event) {
        if (event.keyCode === 13) {
            $('.loading_code_barre_traite').removeClass('d-none');
            var code_barre = $(this).val();
            if (code_barre != '') {
                var url = $(this).attr('url');
                $.ajax({
                    url: url,
                    type: 'POST',
                    data: 'code_barre=' + code_barre,
                    success: function (result) {
                        $('.loading_code_barre_traite').addClass('d-none');
                        var obj = JSON.parse(result);
                        if (obj.reponse == 'oui') {
                            $("#barCodeTraite").val('');
                            $('.div_detail_traite').html('<div class="row"><div class="col"><b>Client: </b>' + obj.client + '</div><div class="col"><b>Date écheance: </b>' + obj.echeance + '</div><div class="col"><b>Montant: </b>' + obj.montant + '</div></div><div class="alert alert-success m_t_20">Traite payé avec success</div>');
                        } else if (obj.reponse == 'payer') {
                            $('.div_detail_traite').html('<div class="alert alert-warning">Traite déjà payé le' + obj.date_payer + '</div>');
                        } else {
                            $('.div_detail_traite').html('<div class="alert alert-danger">Aucune traite correspond à cet code à barre</div>');
                        }
                    }
                });
            } else {
                $('.div_detail_traite').html('');
            }
        }
    });
    $('body').on('keyup', '#barCodeMaintenance', function (event) {
        if (event.keyCode === 13) {
            $('.loading_code_barre_maintenance').removeClass('d-none');
            var code_barre = $(this).val();
            if (code_barre != '') {
                var url = $(this).attr('url');
                $.ajax({
                    url: url,
                    type: 'POST',
                    data: 'code_barre=' + code_barre,
                    success: function (result) {
                        $('.loading_code_barre_maintenance').addClass('d-none');
                        var obj = JSON.parse(result);
                        if (obj.reponse == 'oui') {
                            $("#barCodeMaintenance").val('');
                            $('.div_detail_maintenance').html('<div class="row"><div class="col"><b>Client: </b>' + obj.client + '</div><div class="col"><b>Article: </b>' + obj.article + '</div><div class="col"><b>Reste à payer: </b>' + obj.reste_payer + '</div></div><div class="alert alert-success m_t_20">Opération éffectué avec success</div>');
                        } else if (obj.reponse == 'sortie') {
                            $('.div_detail_maintenance').html('<div class="alert alert-warning">Maintenance déjà sortie le ' + obj.date_sortie + '</div>');
                        } else {
                            $('.div_detail_maintenance').html('<div class="alert alert-danger">Aucune maintenance correspond à cet code à barre</div>');
                        }
                    }
                });
            } else {
                $('.div_detail_maintenance').html('');
            }
        }
    });

    $('body').on('click', '.btn_alimentation_stock', function (event) {
        $('#modalStock').modal('show');
        $('.loading_historique').removeClass('d-none');
        $('.body_alimentation_stock').html('');
        var piece_id = $(this).attr('piece_id');
        var url = $('.url_piece').attr('url');
        $.ajax({
            url: url,
            type: 'POST',
            data: 'piece_id=' + piece_id,
            success: function (result) {
                $('.loading_historique').addClass('d-none');
                $('.body_alimentation_stock').html(result);
            }
        });
    });

    $('body').on('click', '.btn_save_alimentation', function (event) {
        var prixAchat = $('#prixAchat').val();
        var prixVente = $('#prixVente').val();
        var quantite = $('#quantite').val();
        var piece_id = $('#piece_id').val();
        var nb_err = 0;
        if (prixAchat == '0' || prixAchat == '0.000' || prixAchat == '') {
            $('.err_prixAchat').html("Saisissez le prix d'achat");
            nb_err++;
        } else {
            $('.err_prixAchat').html("");
        }

        if (prixVente == '0' || prixVente == '0.000' || prixVente == '') {
            $('.err_prixVente').html("Saisissez le prix de vente");
            nb_err++;
        } else {
            $('.err_prixVente').html("");
        }

        if (quantite == '0' || quantite == '') {
            $('.err_qte').html("Saisissez la quantité");
            nb_err++;
        } else {
            $('.err_qte').html("");
        }
        if (nb_err == 0) {
            $('.loading_save_historique').removeClass('d-none');
            var url = $('.url_piece').attr('url');
            $.ajax({
                url: url,
                type: 'POST',
                data: 'prixAchat=' + prixAchat + '&prixVente=' + prixVente + '&quantite=' + quantite + '&piece_id=' + piece_id + '&save=1',
                success: function (result) {
                    $('.loading_save_historique').addClass('d-none');
                    $('#modalStock').modal('hide');
                    $('#qte_' + piece_id).html(result);
                }
            });
        } else {
            return false;
        }

    });

    $('body').on('click', '.save_pay_traite', function (event) {
        var code_barre = $(this).val();
        if (code_barre != '') {
            var url = $(this).attr('url');
            $.ajax({
                url: url,
                type: 'POST',
                data: 'code_barre=' + code_barre,
                success: function (result) {
                    $('.loading_code_barre').addClass('d-none');
                    var obj = JSON.parse(result);

                }
            });
        }
    });

    $('body').on('click', '.btn_select_changement', function (event) {
        $('#text_article_a_changee').val($(this).attr('article'));
        $('#eem_ventebundle_changement_articleAChangeeId').val($(this).attr('id_article'));
        $('#eem_ventebundle_changement_prixAChangee').val($(this).attr('prix_vente'));
        $('#eem_ventebundle_changement_qteAChangee').val($(this).attr('qte'));
        $('#eem_ventebundle_changement_ligneVenteId').val($(this).attr('id_ligne_vente'));
    });

    $('body').on('keyup', '#barCode_changement', function (event) {
        $('#select_changement').val(null).trigger('change');
        if (event.keyCode === 13) {
            var code_barre = $(this).val();
            if (code_barre != '') {
                $('.loading_code_barre').removeClass('d-none');
                var url = $(this).attr('url');
                $.ajax({
                    url: url,
                    type: 'POST',
                    data: 'code_barre=' + code_barre,
                    success: function (result) {
                        $('.loading_code_barre').addClass('d-none');
                        $('.details_ligne_vente').html(result);
                    }
                });
            } else {
                $('.details_ligne_vente').html('');
            }
        }
    });

    $('body').on('change', '#select_changement', function () {
        var id_article = $(this).val();
        if (id_article != '') {
            $('#barCode_changement').val('');

            $('.details_ligne_vente').html('');
            $('.loading_select_article').removeClass('d-none');
            var url = $(this).attr('url');
            $.ajax({
                url: url,
                type: 'POST',
                data: 'id_article=' + id_article,
                success: function (result) {
                    $('.loading_select_article').addClass('d-none');
                    $('.details_ligne_vente').html(result);
                }
            });
        } else {
            $('.details_ligne_vente').html('');
        }
    });

    $('body').on('change', '#suivi_traite', function () {
        var suivi = $(this).val();
        var url = $('#url_select_suivi').attr('url_' + suivi);
        window.location.href = url;
    });

    $('body').on('click', '.btn_add_note', function () {
        $('#modal_note_traite').modal('show');
        $('.loading_note').removeClass('d-none');
        var id_ligne_traite = $(this).attr('id_ligne_traite');
        var url = $(this).attr('url');
        $.ajax({
            url: url,
            type: 'POST',
            data: 'id_ligne_traite=' + id_ligne_traite,
            success: function (result) {
                $('.loading_note').addClass('d-none');
                $('.modal_body_note').html(result)

            }
        });
    });
    $('body').on('click', '.btn_save_note_traite', function () {
        $('#form_note_traite').submit();
    });

    $('body').on('keyup', '#code_barre_change_article', function (event) {
        $('#select_change_article').val(null).trigger('change');
        if (event.keyCode === 13) {
            var code_barre = $(this).val();
            if (code_barre != '') {
                $('.loading_code_barre_ch').removeClass('d-none');
                var url = $(this).attr('url');
                $.ajax({
                    url: url,
                    type: 'POST',
                    data: 'code_barre=' + code_barre + '&type=detail',
                    success: function (result) {
                        $('.loading_code_barre_ch').addClass('d-none');
                        var obj = JSON.parse(result);
                        if (obj.reponse == 'oui') {
                            $('#text_article_changee').val(obj.nom);
                            $('#eem_ventebundle_changement_articleChangeeId').val(obj.article_id);
                            $('#eem_ventebundle_changement_prixChangee').attr('origine', obj.prix_final);
                            $('#eem_ventebundle_changement_prixChangee').val(obj.prix_final);
                            $('#eem_ventebundle_changement_qteChangee').val(1);
                            $('#eem_ventebundle_changement_qteChangee').attr('qte_dispo', obj.qteDispo);

                            var html_nom_article = obj.nom + '<div class="alert alert-info">Stock disponible: ' + obj.qteDispo + ' </div>';

                            $('.div_nom_article').html(html_nom_article);
                        } else {
                            $('#text_article_changee').val(obj.article);
                            $('#eem_ventebundle_changement_articleChangeeId').val();
                            $('#eem_ventebundle_changement_prixChangee').attr('origine', '');
                            $('#eem_ventebundle_changement_prixChangee').val('');
                            $('#eem_ventebundle_changement_qteChangee').val('');
                            $('#eem_ventebundle_changement_qteChangee').attr('qte_dispo', '');
                            $('.div_nom_article').html('<div class="alert alert-danger">Aucun article correspond à cet code à barre</div>');
                        }
                    }
                });
            } else {
                $('.div_nom_article').html('');
            }
        }
    });
    $('body').on('change', '#select_changement_change_article', function () {
        var article = $(this).val();
        if (article != '') {
            $('.input_code_barre').val('');

            $('.div_nom_article').html('');
            $('.loading_select_article_ch').removeClass('d-none');
            var url = $(this).attr('url');
            $.ajax({
                url: url,
                type: 'POST',
                data: 'article=' + article + '&type=detail',
                success: function (result) {
                    $('.loading_select_article_ch').addClass('d-none');
                    var obj = JSON.parse(result);
                    $('#text_article_changee').val(obj.nom);
                    $('#eem_ventebundle_changement_articleChangeeId').val(obj.article_id)
                    $('#eem_ventebundle_changement_prixChangee').attr('origine', obj.prix_final);
                    $('#eem_ventebundle_changement_prixChangee').val(obj.prix_final);
                    $('#eem_ventebundle_changement_qteChangee').val(1);
                    $('#eem_ventebundle_changement_qteChangee').attr('qte_dispo', obj.qteDispo);
                }
            });
        }
    });
    $('body').on('keyup', '.input_code_barre', function (event) {
        var type_form = $(this).attr('type_form')
        $('.select_article_vente').val(null).trigger('change');
        if (event.keyCode === 13) {
            var prefix = '';
            if ($(this).hasClass('ajax')) {
                var prefix = '_ajax';
                var div_nom_article = $('.div_nom_article_ajax');
            } else {
                var div_nom_article = $('.div_nom_article');
            }
            $('.loading_code_barre' + prefix).removeClass('d-none');
            var code_barre = $(this).val();
            if (code_barre != '') {
                var url = $(this).attr('url');
                var type = $('#input_type').val();

                $.ajax({
                    url: url,
                    type: 'POST',
                    data: 'code_barre=' + code_barre + '&type=' + type,
                    success: function (result) {
                        $('.loading_code_barre' + prefix).addClass('d-none');
                        var obj = JSON.parse(result);
                        if (obj.reponse == 'oui') {
                            var qteDispo=0;
                            if(obj.qteDispo>0){
                                qteDispo=obj.qteDispo;
                            }
                            $('.add_ligne_article' + prefix).val(obj.article_id);
                            $('.add_ligne_prixFinal' + prefix).attr('origine', obj.prix_final);
                            $('.add_ligne_prixFinal' + prefix).val(obj.prix_final);
                            $('.add_ligne_prixFinal' + prefix).focus();
                            $('.add_ligne_prixFinal' + prefix).select();
                            $('.add_ligne_prixAchat' + prefix).val(obj.prix_achat);
                            $('.add_ligne_prixAchat' + prefix).attr('origine', obj.prix_final);
                            $('.add_ligne_prixVente' + prefix).val(obj.prix_vente);
                            $('.add_ligne_qteDispo' + prefix).val(qteDispo);
                            $('.add_ligne_quantite' + prefix).val(1);
                            if (type_form == 'achat') {
                                var html_nom_article = obj.nom;
                            }
                            /*if (type_form == 'vente' || type_form == 'transfert') {
                             }*/
                            var html_nom_article = obj.nom + '<div class="alert alert-info">Stock disponible99: ' + qteDispo + ' </div>';
                            $('.div_nom_article' + prefix).html(html_nom_article);
                        } else {
                            $('.add_ligne_article' + prefix).val('');
                            $('.add_ligne_prixFinal' + prefix).val('');
                            $('.add_ligne_prixFinal' + prefix).attr('origine', '');
                            $('.add_ligne_prixAchat' + prefix).val('');
                            $('.add_ligne_qteDispo' + prefix).val('');
                            $('.add_ligne_quantite' + prefix).val('');
                            $('.div_nom_article' + prefix).html('<div class="alert alert-danger">Aucun article correspond à cet code à barre</div>');
                        }
                    }
                });
            } else {
                $('.div_nom_article' + prefix).html('');
            }
        }
    });
    $('body').on('change', '.select_article_vente', function () {
        var article = $(this).val();
        if (article != '') {
            $('.input_code_barre').val('');
            var prefix = '';
            if ($(this).attr('form') == 'ajax') {
                var prefix = '_ajax';
            }

            $('.div_nom_article' + prefix).html('');
            $('.loading_select_article' + prefix).removeClass('d-none');
            var type = $('#input_type').val();
            var url = $(this).attr('url_select');
            $.ajax({
                url: url,
                type: 'POST',
                data: 'article=' + article + '&type=' + type,
                success: function (result) {
                    $('.loading_select_article' + prefix).addClass('d-none');
                    var obj = JSON.parse(result);
                    console.log(result);

                    $('.add_ligne_article' + prefix).val(article);
                    $('.add_ligne_prixFinal' + prefix).val(obj.prix_final);
                    $('.add_ligne_prixFinal' + prefix).attr('origine', obj.prix_final);
                    $('.add_ligne_prixFinal' + prefix).focus();
                    $('.add_ligne_prixFinal' + prefix).select();
                    $('.add_ligne_prixAchat' + prefix).val(obj.prix_achat);
                    $('.add_ligne_qteDispo' + prefix).val(obj.qteDispo);
                    $('.add_ligne_quantite' + prefix).val(1);
                    $('.div_nom_article' + prefix).html('<div class="alert alert-info">Stock disponible: ' + obj.qteDispo + ' </div>');
                }
            });
        }
    });
    $('body').on('change', '.select_article_achat', function () {
        var article = $(this).val();
        if (article != '') {
            $('.input_code_barre').val('');
            var prefix = '';
            if ($(this).attr('form') == 'ajax') {
                var prefix = '_ajax';
            }

            $('.div_nom_article' + prefix).html('');
            $('.loading_select_article' + prefix).removeClass('d-none');
            var type = $('#input_type').val();
            var url = $(this).attr('url_select');
            $.ajax({
                url: url,
                type: 'POST',
                data: 'article=' + article + '&type=' + type,
                success: function (result) {
                    $('.loading_select_article' + prefix).addClass('d-none');
                    var obj = JSON.parse(result);
                    $('.add_ligne_article' + prefix).val(article);
                    $('.add_ligne_prixFinal' + prefix).val(obj.prix_final);
                    $('.add_ligne_prixFinal' + prefix).focus();
                    $('.add_ligne_prixFinal' + prefix).select();
                    $('.add_ligne_prixAchat' + prefix).val(obj.prix_achat);
                    $('.add_ligne_prixAchat' + prefix).attr('origine', obj.prix_final);
                    $('.add_ligne_qteDispo' + prefix).val(obj.qteDispo);
                    $('.add_ligne_quantite' + prefix).val(1);
                    $('.div_nom_article' + prefix).html('<div class="alert alert-info">Stock disponible: ' + obj.qteDispo + ' </div>');
                }
            });
        }
    });
    $('body').on('change', '.select_article_vente1', function () {
        var comp = 0;
        var article = $(this).val();
        var index = $(this).attr('index');
        var url = $('#ligneVente-fields-list').attr('url_select');
        $.ajax({
            url: url,
            type: 'POST',
            data: 'article=' + article,
            success: function (result) {
                var obj = JSON.parse(result);
                $('#eem_ventebundle_vente_ligneVentes_' + index + '_prixAchat').val(obj.prix_achat);
                $('#eem_ventebundle_vente_ligneVentes_' + index + '_prixVente').val(obj.prix_vente);
            }
        });

    });

    $('body').on('keyup', '#article_type_codeABarre,#article_type_color', function (event) {

        var post_url = $('.div_new_article').attr("url_search"); //get form action url
        var request_method = $('#form_new_article').attr("method"); //get form GET/POST method
        var form_data = $('#form_new_article').serialize();

        $.ajax({
            url: post_url,
            type: request_method,
            data: form_data,
            error: function (resultat, statut, erreur) {
            },
            success: function (result) {
                $('.res_verif_article_archiver').html(result);
            }
        });
    });

    $('body').on('change', '#article_type_famille, #article_type_marque, #article_type_modele', function (event) {

        var post_url = $('.div_new_article').attr("url_search"); //get form action url
        var request_method = $('#form_new_article').attr("method"); //get form GET/POST method
        var form_data = $('#form_new_article').serialize();

        $.ajax({
            url: post_url,
            type: request_method,
            data: form_data,
            error: function (resultat, statut, erreur) {
            },
            success: function (result) {
                $('.res_verif_article_archiver').html(result);
            }
        });
    });
    $('body').on('click', '#cancel_vente', function (event) {
        $('.input_code_barre').val('');
        $('.add_ligne_article').val('');
        $('.add_ligne_prixFinal').val('');
        $('.add_ligne_prixAchat').val('');
        $('.add_ligne_qteDispo').val('');
        $('.add_ligne_quantite').val('');
        $(".div_nom_article").html('');
        $('.select_article_vente').val(null).trigger('change');
    });

    $('body').on('click', '#save_vente', function (event) {
        if ($('.add_ligne_article').val() == '') {
            $('.div_nom_article').html("<div class='alert alert-danger'>Taper le code à barre ou chasissez un article</div>");
        } else if (parseFloat($('.add_ligne_prixFinal').val()) < parseInt($('.add_ligne_prixFinal ').attr('origine'))) {
            $('.div_nom_article').html("<div class='alert alert-danger'>le prix est inférieur au prix final de vente.</div>");
        } else if (parseInt($('.add_ligne_qteDispo').val()) < parseInt($('.add_ligne_quantite ').val())) {
            $('.div_nom_article').html("<div class='alert alert-danger'>Le stock disponible est " + $('.add_ligne_qteDispo').val() + "</div>");
        } else {
            var type_vente = $('#input_type').val();
            $('.loading_btn').removeClass('d-none');
            var post_url = $('#form_add_ligne_vente').attr("action"); //get form action url
            var request_method = $('#form_add_ligne_vente').attr("method"); //get form GET/POST method
            var form_data = $('#form_add_ligne_vente').serialize();

            var nbLigneVente = $(this).attr('nbLigneVente');
            var prototype = $(this).attr('prototype');
            
            if (type_vente == 'detail') {
                var prototype_simple = $(this).attr('prototype_simple');
            }

            $.ajax({
                url: post_url,
                type: request_method,
                data: form_data,
                error: function (resultat, statut, erreur) {
                },
                success: function (result) {
                    var obj = JSON.parse(result);

                    $('.loading_btn').addClass('d-none');
                    $('.div_nom_article').html('');
                    $('#form_add_ligne_vente').trigger("reset");
                    $('.select_article_vente').val(null).trigger('change');

                    prototype = prototype.replace(new RegExp('__id_ligne_vente__', 'g'), obj.id_ligne_vente);
                    prototype = prototype.replace('__code_barre__', obj.code_barre);
                    prototype = prototype.replace('__heur__', obj.heur);
                    prototype = prototype.replace('__article__', obj.article);
                    prototype = prototype.replace('__prixVente__', parseFloat(obj.prixVente).toFixed(3));
                    prototype = prototype.replace('__qte__', obj.qte);

                    if (type_vente == 'detail') {
                        if ($('tr').hasClass('ligne_article_simple_' + obj.id_article)) {
                            var new_qte = parseInt($('.qte_simple_' + obj.id_article).text()) + parseInt(obj.qte);

                            $('.qte_simple_' + obj.id_article).text(new_qte);
                        } else {
                            prototype_simple = prototype_simple.replace(new RegExp('__id_article__', 'g'), obj.id_article);
                            prototype_simple = prototype_simple.replace(new RegExp('__id_ligne_vente__', 'g'), obj.id_ligne_vente);
                            prototype_simple = prototype_simple.replace('__code_barre__', obj.code_barre);
                            prototype_simple = prototype_simple.replace('__article__', obj.article);
                            prototype_simple = prototype_simple.replace('__qte__', obj.qte);
                            $('.tr_ligne_vente_simple').prepend(prototype_simple);
                        }
                    }
                        $('.tr_ligne_vente').prepend(prototype);

                    if (nbLigneVente == 0) {
                        $('.tr_vide').addClass('d-none');
                        $('#save_vente').attr('nbLigneVente', 1);
                    }

                    var montant = obj.qte * obj.prixVente;

                    total_ligne_vente('add', montant);
                    $('.add_ligne_article').val('');
                }
            });
        }
    });
    $('body').on('click', '#save_achat_magasin', function (event) {
        if ($('.add_ligne_article').val() == '') {
            $('.div_nom_article').html("<div class='alert alert-danger'>Taper le code à barre ou chasissez un article</div>");
        }else if (parseFloat($('.add_ligne_prixAchat').val()) < parseInt($('.add_ligne_prixAchat ').attr('origine'))) {
            $('.div_nom_article').html("<div class='alert alert-danger'>le prix est inférieur au prix final de vente.</div>");
        }  else if (parseInt($('.add_ligne_quantite').val()) > parseInt($('.add_ligne_qteDispo').val())) {
            $('.div_nom_article').html("<div class='alert alert-danger'>Stock indisponible</div>");
        } else {
            $('.loading_btn').removeClass('d-none');
            var post_url = $('#form_add_ligne_achat_magasin').attr("action"); //get form action url
            var request_method = $('#form_add_ligne_achat_magasin').attr("method"); //get form GET/POST method
            var form_data = $('#form_add_ligne_achat_magasin').serialize();
            var prototype = $(this).attr('prototype');
            var nbLigneAchat = $(this).attr('nbLigneAchat');

            $.ajax({
                url: post_url,
                type: request_method,
                data: form_data,
                error: function (resultat, statut, erreur) {
                },
                success: function (result) {
                    console.log(result);
                    var obj = JSON.parse(result);
                    $('.loading_btn').addClass('d-none');
                    $('.div_nom_article').html('');
                    $('#form_add_ligne_achat_magasin').trigger("reset");
                    $('.select_article_achat').val(null).trigger('change');

                    prototype = prototype.replace(new RegExp('__id_ligne_achat__', 'g'), obj.id_ligne_achat);
                    prototype = prototype.replace('__code_barre__', obj.code_barre);
                    prototype = prototype.replace('__article__', obj.article);
                    prototype = prototype.replace('__prixAchat__', parseFloat(obj.prixAchat).toFixed(3));
                    prototype = prototype.replace('__qte__', obj.qte);

                    $('.tr_ligne_achat').prepend(prototype);
                    if (nbLigneAchat == 0) {
                        $('.tr_vide').addClass('d-none');
                        $('#save_achat').attr('nbLigneAchat', 1);
                    }

                    var montant = obj.qte * obj.prixAchat;

                    total_ligne_achat('add', montant);
                    $('.add_ligne_article').val('');
                }
            });
        }
    });
    $('body').on('click', '#save_achat', function (event) {
        if ($('.add_ligne_article').val() == '') {
            $('.div_nom_article').html("<div class='alert alert-danger'>Taper le code à barre ou chasissez un article</div>");
        } else if ($(this).attr('type_achat') == 'transfert' && parseInt($('.add_ligne_qteDispo').val()) < parseInt($('.add_ligne_quantite ').val())) {
            $('.div_nom_article').html("<div class='alert alert-danger'>Le stock disponible est " + $('.add_ligne_qteDispo').val() + "</div>");
        } else {
            $('.loading_btn').removeClass('d-none');
            var post_url = $('#form_add_ligne_achat').attr("action"); //get form action url
            var request_method = $('#form_add_ligne_achat').attr("method"); //get form GET/POST method
            var form_data = $('#form_add_ligne_achat').serialize();
            var prototype = $(this).attr('prototype');
            var nbLigneAchat = $(this).attr('nbLigneAchat');

            $.ajax({
                url: post_url,
                type: request_method,
                data: form_data,
                error: function (resultat, statut, erreur) {
                },
                success: function (result) {
                    console.log(result);
                    var obj = JSON.parse(result);
                    $('.loading_btn').addClass('d-none');
                    $('.div_nom_article').html('');
                    $('#form_add_ligne_achat').trigger("reset");
                    $('.select_article_achat').val(null).trigger('change');

                    prototype = prototype.replace(new RegExp('__id_ligne_achat__', 'g'), obj.id_ligne_achat);
                    prototype = prototype.replace('__code_barre__', obj.code_barre);
                    prototype = prototype.replace('__article__', obj.article);
                    prototype = prototype.replace('__prixAchat__', parseFloat(obj.prixAchat).toFixed(3));
                    prototype = prototype.replace('__prixFinal__', parseFloat(obj.prixFinal).toFixed(3));
                    prototype = prototype.replace('__prixVente__', parseFloat(obj.prixVente).toFixed(3));
                    prototype = prototype.replace('__qte__', obj.qte);

                    $('.tr_ligne_achat').prepend(prototype);
                    if (nbLigneAchat == 0) {
                        $('.tr_vide').addClass('d-none');
                        $('#save_achat').attr('nbLigneAchat', 1);
                    }

                    var montant = obj.qte * obj.prixAchat;

                    total_ligne_achat('add', montant);
                    $('.add_ligne_article').val('');
                }
            });
        }
    });

    $('body').on('click', '#save_edit_vente', function (event) {
        if (parseInt($('.add_ligne_qteDispo_ajax').val()) < parseInt($('.add_ligne_qte_ajax').val())) {
            $('.div_erreur_ajax').html("<div class='alert alert-danger'>Le stock disponible est " + $('.add_ligne_qteDispo_ajax').val() + "</div>");
        } else if (parseFloat($('.add_ligne_prixVente_ajax').val()) < parseInt($('.add_ligne_prixVente_ajax ').attr('origine'))) {
            $('.div_erreur_ajax').html("<div class='alert alert-danger'>le prix est inférieur au prix final de vente.</div>");
        } else {
            $('.loading_btn_edit').removeClass('d-none');
            var post_url = $('#form_edit_ligne_vente').attr("action"); //get form action url
            var request_method = $('#form_edit_ligne_vente').attr("method"); //get form GET/POST method
            var form_data = $('#form_edit_ligne_vente').serialize();
            $.ajax({
                url: post_url,
                type: request_method,
                data: form_data,
                error: function (resultat, statut, erreur) {
                },
                success: function (result) {
                    $('.loading_btn_edit').addClass('d-none');
                    $('#modalEditVente').modal('hide');

                    var obj = JSON.parse(result);

                    $('.code_barre_' + obj.id_ligne_vente).html(obj.code_barre);
                    $('.article_' + obj.id_ligne_vente).html(obj.article);
                    $('.prix_vente_' + obj.id_ligne_vente).html(parseFloat(obj.prixVente).toFixed(3));
                    $('.qte_' + obj.id_ligne_vente).html(obj.qte);

                    var montant = (obj.qte * obj.prixVente) - obj.montant_ligne;
                    //alert(montant + '---' + obj.qte * obj.prixVente + "oo" + obj.montant_ligne);
                    total_ligne_vente('edit', montant);
                }
            });
        }
    });
    $('body').on('click', '.btn_delete_ligne_vente', function (event) {
        if (confirm('Voulez-vous vraiment supprimer cette ligne?')) {
            var id_ligne_vente = $(this).attr('id_ligne_vente');
            var url_delete = $(this).attr('url_delete');
            $.ajax({
                url: url_delete,
                type: 'POST',
                data: 'id_ligne_vente=' + id_ligne_vente,
                error: function (resultat, statut, erreur) {
                },
                success: function (result) {
                    $('#ligne_article_' + id_ligne_vente).fadeOut();

                    var qte = parseInt($('#ligne_article_' + id_ligne_vente).children('.qte_ligne_vente').text());
                    var prix = parseFloat($('#ligne_article_' + id_ligne_vente).children('.prix_vente_ligne_vente').text());
                    $('#ligne_article_' + id_ligne_vente).fadeOut();
                    var montant = qte * prix;
                    total_ligne_vente('delete', montant);
                }
            });
        }
    });
    $('body').on('click', '.btn_edit_ligne_vente', function (event) {
        $('#modalEditVente').modal('show');
        $('.form_edit_vente').html('');
        $('.loading_modal').removeClass('d-none');
        var id_ligne_vente = $(this).attr('id_ligne_vente');
        var url_edit = $(this).attr('url_edit');

        $.ajax({
            url: url_edit,
            type: 'POST',
            data: 'id_ligne_vente=' + id_ligne_vente,
            error: function (resultat, statut, erreur) {
            },
            success: function (result) {
                $('.loading_modal').addClass('d-none');
                $('.form_edit_vente').html(result);
                $('.input_code_barre').focus();
                $('.input_code_barre').select();
            }
        });

    });
    $('body').on('click', '#save_edit_achat', function (event) {
        if ($(this).attr('type_achat') == 'transfert' && parseInt($('.add_ligne_qteDispo_ajax').val()) < parseInt($('.add_ligne_qte_ajax').val())) {
            $('.div_erreur_ajax').html("<div class='alert alert-danger'>Le stock disponible est " + $('.add_ligne_qteDispo_ajax').val() + "</div>");
        } else {
            $('.loading_btn_edit').removeClass('d-none');
            var post_url = $('#form_edit_ligne_achat').attr("action"); //get form action url
            var request_method = $('#form_edit_ligne_achat').attr("method"); //get form GET/POST method
            var form_data = $('#form_edit_ligne_achat').serialize();
            var old_article = $(this).attr('old_article');
            $.ajax({
                url: post_url,
                type: request_method,
                data: form_data,
                error: function (resultat, statut, erreur) {
                },
                success: function (result) {
                    $('.loading_btn_edit').addClass('d-none');
                    $('#modalEditAchat').modal('hide');

                    var obj = JSON.parse(result);

                    $('.code_barre_' + obj.id_ligne_achat).html(obj.code_barre);
                    $('.article_' + obj.id_ligne_achat).html(obj.article);
                    $('.prix_achat_' + obj.id_ligne_achat).html(parseFloat(obj.prixAchat).toFixed(3));
                    $('.prix_final_' + obj.id_ligne_achat).html(parseFloat(obj.prixFinal).toFixed(3));
                    $('.prix_vente_' + obj.id_ligne_achat).html(parseFloat(obj.prixVente).toFixed(3));
                    $('.qte_' + obj.id_ligne_achat).html(obj.qte);

                    var montant = obj.qte * obj.prixAchat;
                    total_ligne_achat('edit', montant);
                }
            });
        }
    });
    $('body').on('click', '#save_edit_achat_magasin', function (event) {
        if (parseInt($('.add_ligne_qteDispo_ajax').val()) < parseInt($('.add_ligne_qte_ajax').val())) {
            $('.div_erreur_ajax').html("<div class='alert alert-danger'>Le stock disponible est " + $('.add_ligne_qteDispo_ajax').val() + "</div>");
        } else {
            $('.loading_btn_edit').removeClass('d-none');
            var post_url = $('#form_edit_ligne_achat_magasin').attr("action"); //get form action url
            var request_method = $('#form_edit_ligne_achat_magasin').attr("method"); //get form GET/POST method
            var form_data = $('#form_edit_ligne_achat_magasin').serialize();
            var old_article = $(this).attr('old_article');
            $.ajax({
                url: post_url,
                type: request_method,
                data: form_data,
                error: function (resultat, statut, erreur) {
                },
                success: function (result) {
                    $('.loading_btn_edit').addClass('d-none');
                    $('#modalEditAchat').modal('hide');

                    var obj = JSON.parse(result);

                    $('.code_barre_' + obj.id_ligne_achat).html(obj.code_barre);
                    $('.article_' + obj.id_ligne_achat).html(obj.article);
                    $('.prix_achat_' + obj.id_ligne_achat).html(parseFloat(obj.prixAchat).toFixed(3));
                    $('.qte_' + obj.id_ligne_achat).html(obj.qte);

                    var montant = obj.qte * obj.prixAchat;
                    total_ligne_achat('edit', montant);
                }
            });
        }
    });
    $('body').on('click', '.btn_delete_ligne_achat', function (event) {
        if (confirm('Voulez-vous vraiment supprimer cette ligne?')) {
            var id_ligne_achat = $(this).attr('id_ligne_achat');
            var url_delete = $(this).attr('url_delete');
            $.ajax({
                url: url_delete,
                type: 'POST',
                data: 'id_ligne_achat=' + id_ligne_achat,
                error: function (resultat, statut, erreur) {
                },
                success: function (result) {
                    var qte = parseInt($('#ligne_article_' + id_ligne_achat).children('.qte_ligne_achat').text());
                    var prix = parseFloat($('#ligne_article_' + id_ligne_achat).children('.prix_achat_ligne_achat').text());
                    $('#ligne_article_' + id_ligne_achat).fadeOut();
                    var montant = qte * prix;
                    total_ligne_achat('delete', montant);
                }
            });
        }
    });
    $('body').on('click', '.btn_delete_ligne_achat_magasin', function (event) {
        if (confirm('Voulez-vous vraiment supprimer cette ligne?')) {
            var id_ligne_achat = $(this).attr('id_ligne_achat');
            var url_delete = $(this).attr('url_delete');
            $('.loading_delete').removeClass('d-none');
            $.ajax({
                url: url_delete,
                type: 'POST',
                data: 'id_ligne_achat=' + id_ligne_achat,
                error: function (resultat, statut, erreur) {
                },
                success: function (result) {
                    $('.loading_delete').addClass('d-none');
                    var qte = parseInt($('#ligne_article_' + id_ligne_achat).children('.qte_ligne_achat').text());
                    var prix = parseFloat($('#ligne_article_' + id_ligne_achat).children('.prix_achat_ligne_achat').text());
                    $('#ligne_article_' + id_ligne_achat).fadeOut();
                    var montant = qte * prix;
                    total_ligne_achat('delete', montant);
                }
            });
        }
    });
    $('body').on('click', '.btn_edit_ligne_achat', function (event) {
        $('#modalEditAchat').modal('show');
        $('.form_edit_achat').html('');
        $('.loading_modal').removeClass('d-none');
        var id_ligne_achat = $(this).attr('id_ligne_achat');
        var url_edit = $(this).attr('url_edit');
        var type = $('#input_type').val();

        $.ajax({
            url: url_edit,
            type: 'POST',
            data: 'id_ligne_achat=' + id_ligne_achat + '&type=' + type,
            error: function (resultat, statut, erreur) {
            },
            success: function (result) {
                $('.loading_modal').addClass('d-none');
                $('.form_edit_achat').html(result);
                $('.input_code_barre').focus();
                $('.input_code_barre').select();
            }
        });

    });
    $('body').on('click', '.btn_edit_ligne_achat_magasin', function (event) {
        $('#modalEditAchat').modal('show');
        $('.form_edit_achat').html('');
        $('.loading_modal').removeClass('d-none');
        var id_ligne_achat = $(this).attr('id_ligne_achat');
        var url_edit = $(this).attr('url_edit');
        var type = $('#input_type').val();

        $.ajax({
            url: url_edit,
            type: 'POST',
            data: 'id_ligne_achat=' + id_ligne_achat + '&type=' + type,
            error: function (resultat, statut, erreur) {
            },
            success: function (result) {
                $('.loading_modal').addClass('d-none');
                $('.form_edit_achat').html(result);
                $('.input_code_barre').focus();
                $('.input_code_barre').select();
            }
        });

    });
    $('body').on('change', '#select_fournisseur', function () {
        var fournisseur = $(this).val();
        if (fournisseur != '') {
            var url = $(this).attr('url');
            var achat = $(this).attr('achat');
            $.ajax({
                url: url,
                type: 'POST',
                data: 'fournisseur=' + fournisseur + '&achat=' + achat,
                success: function (result) {
                    window.location.reload();
                }
            });
        }

    });
    $('body').on('change', '#select_client', function () {
        var client = $(this).val();
        if (client != '') {
            var url = $(this).attr('url');
            var vente = $(this).attr('vente');
            $.ajax({
                url: url,
                type: 'POST',
                data: 'client=' + client + '&vente=' + vente,
                success: function (result) {
                    window.location.reload();
                }
            });
        }

    });
    $('body').on('change', '#eem_achatbundle_reglement_typeReglement_0', function () {
        if ($(this).is(':checked')) {
            $('.reg_cheque').addClass('d-none');
            $('#eem_achatbundle_reglement_numCheque').val('');
            $('#eem_achatbundle_reglement_dateCheque').val('');
        }
    });
    $('body').on('change', '#eem_achatbundle_reglement_typeReglement_1', function () {
        if ($(this).is(':checked')) {
            $('.reg_cheque').removeClass('d-none');
        }
    });

    $('body').on('focus', '#eem_achatbundle_reglement_montant', function () {
        $('#eem_achatbundle_reglement_montant').select();
    });
    $('body').on('focus', '#eem_traitebundle_traite_montantAvance', function () {
        $('#eem_traitebundle_traite_montantAvance').select();
    });
    $('body').on('blur', '#eem_traitebundle_traite_montantAvance', function () {
        var mont = parseFloat($('#eem_traitebundle_traite_montantAvance').val()).toFixed(3);
        $('#eem_traitebundle_traite_montantAvance').val(mont);
    });
    $('body').on('change', '#eem_traitebundle_traite_dateEcheance', function () {
        var i = 0;
        var date_echeance_form = $('#eem_traitebundle_traite_dateEcheance').val();
        var t_date = date_echeance_form.split("/");
        var date_echeance = new Date(t_date[2] + '-' + t_date[1] + '-' + t_date[0]);
        $('.date_traite').each(function () {
            $(this).html(moment(date_echeance).add(i, 'months').format('DD/MM/YYYY'));
            i++;
        })
    });
    $('body').on('keyup', '#eem_traitebundle_traite_montantAvance', function () {
        if ($('.seule_traite').is(':checked')) {
            var montant_vente = $('#eem_traitebundle_traite_montantVente').val();
            var montant_achat = $('#eem_traitebundle_traite_montantAvance').val();
            var montant_traite = montant_vente - montant_achat;
            var date_echeance_form = $('#eem_traitebundle_traite_dateEcheance').val();
            var t_date = date_echeance_form.split("/");
            var date_echeance = new Date(t_date[2] + '-' + t_date[1] + '-' + t_date[0]);

            var msg = '<table class="table table-striped">';
            msg = msg + '<tr><th>N°</th><th>Date</th><th>Montant</th></tr>';
            msg = msg + '<tr><td>1</td><td class="date_traite">' + moment(date_echeance).format('DD/MM/YYYY') + '</td><td>' + montant_traite.toFixed(3) + '</td></tr>'
            msg = msg + '</table>'

            $('.table_ligne_traite').html(msg);
        }
    });
    $('body').on('change', '.nb_traite', function () {
        $('.div_ligne_traite').removeClass('d-none');
        var nb_traite = $(this).val();
        $('#eem_traitebundle_traite_nbTraite').val(nb_traite);
        var montant_vente = $('.prix_' + nb_traite + 'm').text();
        if (nb_traite == 1) {
            $('#eem_traitebundle_traite_montantAvance').removeAttr('readonly');
            var montant_avance = montant_vente / 2;
            var montant_traite = montant_vente - montant_avance;
        } else {
            $('#eem_traitebundle_traite_montantAvance').attr('readonly', 'readonly');
            var montant_avance = montant_vente - (nb_traite * 100);
            var montant_traite = 100;
        }
        if (montant_avance < 0) {
            $('#eem_traitebundle_traite_montantAvance').css('border', 'red 1px solid');
        } else {
            $('#eem_traitebundle_traite_montantAvance').css('border', '#ced4da 1px solid');
        }
        $('#eem_traitebundle_traite_montantVente').val(montant_vente);
        $('#eem_traitebundle_traite_montantAvance').val(montant_avance.toFixed(3));
        var date_echeance_form = $('#eem_traitebundle_traite_dateEcheance').val();
        var t_date = date_echeance_form.split("/");
        var date_echeance = new Date(t_date[2] + '-' + t_date[1] + '-' + t_date[0]);

        var msg = '<table class="table table-striped">';
        msg = msg + '<tr><th>N°</th><th>Date</th><th>Montant</th></tr>';
        for (var i = 0; i < nb_traite; i++) {
            msg = msg + '<tr><td>' + (i + 1) + '</td><td class="date_traite">' + moment(date_echeance).add(i, 'months').format('DD/MM/YYYY') + '</td><td>' + montant_traite.toFixed(3) + '</td></tr>'
        }
        msg = msg + '</table>'

        $('.table_ligne_traite').html(msg);
    });

    $('body').on('change', '.select_article_traite', function () {
        var article = $(this).val();
        var url = $('.div_article_traite').attr('url');
        if (article != '') {
            $('.nb_traite').prop('checked', false);
            $('.table_ligne_traite').html('');
            $('.calcul_prix_traite').html('');
            $('#eem_traitebundle_traite_montantVente').val('');
            $('#eem_traitebundle_traite_montantAvance').val('');
            $('.div_traite').removeClass('d-none');
            $.ajax({
                url: url,
                type: 'POST',
                data: 'article=' + article,
                success: function (result) {
                    var obj = JSON.parse(result);
                    $('.prix_1m').text(obj.prix_1m);
                    $('.prix_2m').text(obj.prix_2m);
                    $('.prix_3m').text(obj.prix_3m);
                    $('.prix_4m').text(obj.prix_4m);
                    $('.prix_5m').text(obj.prix_5m);
                    $('.prix_6m').text(obj.prix_6m);
                }
            });
        } else {
            $('.div_traite').addClass('d-none');
        }
    });
    $('body').on('click', '.btn_payer_traite', function () {
        var btn_payer_traite = $(this);
        var id_ligne_traite = btn_payer_traite.attr('ligne_traite');
        var url_traite = btn_payer_traite.attr('url_traite');
        if (confirm('Voulez-vous vraiment payé cette traite??')) {
            $.ajax({
                url: url_traite,
                type: 'POST',
                data: 'id_ligne_traite=' + id_ligne_traite,
                beforeSend: function () {
                    $('#loading_traite_' + id_ligne_traite).removeClass('d-none');
                },
                success: function (result) {
                    $('#loading_traite_' + id_ligne_traite).addClass('d-none');
                    //btn_payer_traite.remove();
                    btn_payer_traite.parent('td').html(result);
                }
            });
        } else {
            return false;
        }
    });

    $('body').on('click', '.supprimer_element', function () {
        if (!confirm($(this).attr('msg'))) {
            return false;
        }
    });
    $('body').on('focusin', '.datepicker', function () {
        $(this).datepicker({
            format: 'dd/mm/yyyy',
            autoclose: true,
            language: 'fr'
        });
    });

    $('body').on('change', '#select_search_famille', function () {
        $('.loading_marque').removeClass('d-none');
        $('.loading_modele').removeClass('d-none');
        var famille = $(this).val();
        var url = $(this).attr('url_list_marque_ajax');
        $.ajax({
            url: url,
            type: 'POST',
            data: 'famille=' + famille,
            success: function (result) {
                $('.loading_marque').addClass('d-none');
                $('.loading_modele').addClass('d-none');
                $('.div_select_marque_ajax').html(result);
                $('#select_search_marque').select2();
                $('.btn_submit_search').click();
                $('#select_search_modele').val(null).trigger('change');
            }
        });
    });
    $('body').on('change', '#select_search_marque', function () {
        $('.loading_modele').removeClass('d-none');
        var marque = $(this).val();
        var url = $(this).attr('url_list_modele_ajax');
        $.ajax({
            url: url,
            type: 'POST',
            data: 'marque=' + marque,
            success: function (result) {
                $('.loading_modele').addClass('d-none');
                $('.div_select_modele_ajax').html(result);
                $('#select_search_modele').select2();
                $('.btn_submit_search').click();
            }
        });
    });
    $('body').on('change', '#select_search_modele', function () {
        $('.btn_submit_search').click();
    });
    $('body').on('change', '#select_search_stock', function () {
        $('.btn_submit_search').click();
    });

    ////////////////// collection type LigneAchat ////////
    $('.ajouter_ligne_achat').click(function (e) {
        var list = $($(this).attr('data-list'));
        // Try to find the counter of the list or use the length of the list
        var counter = list.data('widget-counter') | list.children().length + 1;

        // grab the prototype template
        var newWidget = list.attr('data-prototype');
        newWidget = newWidget.replace(/__name__/g, counter);
        // Increase the counter
        counter++;
        // And store it, the length cannot be used if deleting widgets is allowed
        list.data('widget-counter', counter);

        // create a new list element and add it to the list
        var newElem = $(list.attr('data-widget-tags')).html(newWidget);
        newElem.appendTo(list);

        $('.select_article_achat').select2();
    });

    $('body').on('click', '.delete_ligne_achat', function () {
        if (confirm('Voulez-vous vraiment supprimer cette ligne!!')) {
            var index = $(this).attr('index');
            $('#ligne_achat_' + index).remove();
        } else {
            return false;
        }
    });
    ////////////////// collection type LigneAchat ////////

    ////////////////// collection type LigneVente ////////
    $('.ajouter_ligne_vente').click(function (e) {
        var list = $($(this).attr('data-list'));
        // Try to find the counter of the list or use the length of the list
        var counter = list.data('widget-counter') | list.children().length + 1;
        var index = counter;
        // grab the prototype template
        var newWidget = list.attr('data-prototype');
        newWidget = newWidget.replace(/__name__/g, counter);
        // Increase the counter
        counter++;
        // And store it, the length cannot be used if deleting widgets is allowed
        list.data('widget-counter', counter);

        // create a new list element and add it to the list
        var newElem = $(list.attr('data-widget-tags')).html(newWidget);
        newElem.appendTo(list);
        $('#eem_ventebundle_vente_ligneVentes_' + index + '_qte').val(1);
        $('.select_article_vente').select2();
    });

    $('body').on('click', '.delete_ligne_vente', function () {
        if (confirm('Voulez-vous vraiment supprimer cette ligne!!')) {
            var index = $(this).attr('index');
            $('#ligne_vente_' + index).remove();
        } else {
            return false;
        }
    });
    $('body').on('click', '.btn_imprimer_barcode', function () {
        $('#modalPrint').modal('show')
    });
    $('body').on('change', '#select_piece_rechange', function () {
        var article = $(this).val();
        if (article != '') {

            var url = $(this).attr('url_recup_piece_ajax');
            $.ajax({
                url: url,
                type: 'POST',
                data: 'article=' + article + '&type=detail',
                success: function (result) {
                    var obj = JSON.parse(result);
                    var prototype = $('.div_ligne_piece').attr('prototype');
                    var index = parseInt($('#index_ligne_piece').val());
                    prototype = prototype.replace(new RegExp('__index__', 'g'), index);
                    $('.div_ligne_piece').append(prototype);
                    $('#index_ligne_piece').val(index + 1);
                    $('#select_piece_rechange').val(null).trigger('change');
                    $('#id_piece_' + index).val(obj.article_id);
                    $('#nom_piece_' + index).val(obj.nom);
                    $('#nom_piece_' + index).attr('readonly', 'readonly');
                    $('#prix_achat_' + index).val(obj.prix_achat);
                    $('#prix_vente_' + index).val(obj.prix_final);
                    calcul_somme_maintenance();
                }
            });
        }
    });
    $('body').on('click', '.btn_service_maintenance', function () {
        var prototype = $('.div_ligne_piece').attr('prototype');
        var index = parseInt($('#index_ligne_piece').val());
        prototype = prototype.replace(new RegExp('__index__', 'g'), index);
        $('.div_ligne_piece').append(prototype);
        $('#index_ligne_piece').val(index + 1);
    });
    $('body').on('keyup', '.prix_piece', function () {
        calcul_somme_maintenance();
    });
    $('body').on('blur', '.prix_fixed', function () {
        if ($(this).val() != '') {
            var prix = parseFloat($(this).val());
            $(this).val(prix.toFixed(3));
        }
    });
    $('body').on('focus', '.select_auto', function () {
        $(this).select();
    });
    $('body').on('click', '.btn_delete_ligne_piece', function () {
        var index = $(this).attr('index');
        $('.ligne_piece_' + index).remove();
        calcul_somme_maintenance();
    });
    ////////////////// collection type LigneVente ////////
    $('body').on('change', '#eem_maintenancebundle_maintenance_marque', function () {
        $('.loading_model_maintenance').removeClass('d-none');
        var $form = $(this).closest('form');
        var data = {};
        data[$('#eem_maintenancebundle_maintenance_marque').attr('name')] = $('#eem_maintenancebundle_maintenance_marque').val();
        $.ajax({
            url: $form.attr('action'),
            type: $form.attr('method'),
            data: data,
            success: function (html) {
                $('.loading_model_maintenance').addClass('d-none');
                $('#eem_maintenancebundle_maintenance_model').replaceWith(
                    $(html).find('#eem_maintenancebundle_maintenance_model')
                );
            },
            error: function (jqXHR, textStatus, errorThrown) {
                $('#loadingTheme').fadeOut();
            }
        });
    });
    ////////////////// collection type LigneVente ////////
    $('body').on('change', '#article_type_famille', function () {
        $('.loading_marque_article').removeClass('d-none');
        var $form = $(this).closest('form');
        var data = {};
        data[$('#article_type_famille').attr('name')] = $('#article_type_famille').val();
        $.ajax({
            url: $form.attr('action'),
            type: $form.attr('method'),
            data: data,
            success: function (html) {
                $('.loading_marque_article').addClass('d-none');
                $('#article_type_marque').replaceWith(
                    $(html).find('#article_type_marque')
                );
            },
            error: function (jqXHR, textStatus, errorThrown) {
                $('#loadingTheme').fadeOut();
            }
        });
    });

    $('body').on('change', '#article_type_marque', function () {
        $('.loading_modele_article').removeClass('d-none');
        var $form = $(this).closest('form');
        var data = {};
        data[$('#article_type_marque').attr('name')] = $('#article_type_marque').val();
        $.ajax({
            url: $form.attr('action'),
            type: $form.attr('method'),
            data: data,
            success: function (html) {
                $('.loading_modele_article').addClass('d-none');
                $('#article_type_modele').replaceWith(
                    $(html).find('#article_type_modele')
                );
            },
            error: function (jqXHR, textStatus, errorThrown) {
                $('#loadingTheme').fadeOut();
            }
        });
    });
    /*******************************Piece*****************************/
    $('body').on('keyup', '.qte_article_piece', function () {
        var qte = $(this).val();
        var index = $(this).attr('index');
        if (qte > 0) {
            var total_ligne = qte * $('#eem_piecebundle_piece_lignePieces_' + index + '_prix').val();
            $("#eem_piecebundle_piece_lignePieces_" + index + "_totalPrix").val(total_ligne.toFixed(3));
            somme_piece();
        }
    });
    $('body').on('blur', '.prix_article_piece', function () {
        var index = $(this).attr('index');
        var prix = parseFloat($(this).val());
        var qte =$('#eem_piecebundle_piece_lignePieces_'+index+'_qte').val();
        var prix_achat =parseFloat($(this).attr('prix_achat'));
        var prix_vente =parseFloat($(this).attr('prix_vente'));
        if (prix > prix_achat) {
            var total_ligne = qte * prix;
            $("#eem_piecebundle_piece_lignePieces_" + index + "_totalPrix").val(total_ligne.toFixed(3));
            somme_piece();
        }else{
            alert("Le prix doit être supérieur au prix d'achat");
            $(this).val(prix_vente);
            $(this).focus();
        }
    });
    $('body').on('click', '.btn_submit_piece', function (event) {
       $('#form_piece').submit();
    });
    $('body').on('keyup', '.code_bare_article_piece', function (event) {
        if (event.keyCode === 13) {
            var code_bare=$(this).val();
            if(code_bare!=''){

            var url = $(this).attr('url_code_bare');
            var index = $(this).attr('index');
            $('.loading_article_piece_' + index).removeClass('d-none');
            $.ajax({
                url: url,
                type: 'POST',
                data: 'code_bare=' + code_bare,
                success: function (result) {
                    console.log(result);
                    $('.loading_article_piece_' + index).addClass('d-none');
                    var obj = JSON.parse(result);
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_article").val(obj.article).trigger('change');
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_codeABarre").val(obj.code_bare);
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_name").val(obj.nom_article);
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_prix").val(obj.prix_vente);
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_prix").attr('prix_achat', obj.prix_achat);
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_qte").attr('qte_dispo', obj.qte_dispo);
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_qte").val(1);
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_totalPrix").val(obj.prix_vente);
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_qte").focus();
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_qte").select();
                    somme_piece();
                }
            });
            }
        }
    });
    $('body').on('blur', '.prix_article_piece', function () {
        var prix=parseFloat($(this).val());
        $(this).val(prix.toFixed(3));
    });

    $('body').on('change', '.select_article_piece', function () {
        var article = $(this).val();
        if (article != '') {
            var url = $(this).attr('url_select');
            var index = $(this).attr('index');
            $('.loading_article_piece_' + index).removeClass('d-none');
            $.ajax({
                url: url,
                type: 'POST',
                data: 'article=' + article,
                success: function (result) {
                    $('.loading_article_piece_' + index).addClass('d-none');
                    var obj = JSON.parse(result);
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_codeABarre").val(obj.code_bare);
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_name").val(obj.nom_article);
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_prix").val(obj.prix_vente);
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_prix").attr('prix_achat', obj.prix_achat);
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_prix").attr('prix_vente', obj.prix_vente);
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_qte").attr('qte_dispo', obj.qte_dispo);
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_qte").val(1);
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_totalPrix").val(obj.prix_vente);
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_qte").focus();
                    $("#eem_piecebundle_piece_lignePieces_" + index + "_qte").select();
                    somme_piece();
                }
            });
        }
    });
    $('.select_article_piece').select2();
    $('.ajouter_nouveau_ligne').click(function (e) {
        var list = $($(this).attr('data-list'));
        // Try to find the counter of the list or use the length of the list
        var counter = list.data('widget-counter') | list.children().length + 1;
        // grab the prototype template
        var newWidget = list.attr('data-prototype');
        newWidget = newWidget.replace(/__name__/g, counter);
        // Increase the counter
        counter++;
        // And store it, the length cannot be used if deleting widgets is allowed
        list.data('widget-counter', counter);

        // create a new list element and add it to the list
        var newElem = $(list.attr('data-widget-piece')).html(newWidget);
        newElem.appendTo(list);
        $('.select_article_piece').select2();
    });

    $('body').on('click', '.delete_ligne_piece', function () {
        if (confirm('Voulez-vous vraiment supprimer cet article!!')) {
            var index = $(this).attr('index');
            $(this).parent('td').parent('tr').remove();
            somme_piece();
        } else {
            return false;
        }
    });
    /*******************************Piece*****************************/
})
;
function calcul_somme_maintenance() {
    var total = 0;
    $('.prix_piece').each(function () {
        var price = 0;
        if ($(this).val() != '') {
            price = $(this).val();
        }
        total = total + parseFloat(price)
    });
    $('#eem_maintenancebundle_maintenance_prixVente').val(total.toFixed(3));
}
function total_ligne_achat(action, montant) {
    var total = 0;
    $('.ligne_achat').each(function () {
        var qte = parseInt($(this).children('.qte_ligne_achat').text());
        var prix = parseFloat($(this).children('.prix_achat_ligne_achat').text());
        total = total + (qte * prix);
    });
    if (action == 'delete') {
        total = total - parseFloat(montant);
    }
    if (action == 'add') {
        total = total + parseFloat(montant);
    }
    $('.total_achat').html(total.toFixed(3));
}

function total_ligne_vente(action, montant) {
    var total = 0;
    $('.ligne_vente').each(function () {
        var qte = parseInt($(this).children('.qte_ligne_vente').text());
        var prix = parseFloat($(this).children('.prix_vente_ligne_vente').text());
        total = total + (qte * prix);
    });

    if (action == 'delete') {
        total = total - parseFloat(montant);
    }
    if (action == 'add') {
        total = total + parseFloat(montant);
    }
    $('.total_vente').html(total.toFixed(3));
}
function somme_piece() {
    var total = 0;
    $('.total_ligne').each(function () {
        if ($(this).val() != '') {
            total = parseFloat(total) + parseFloat($(this).val());
        }
    })
    $('.total_piece').val(total.toFixed(3));
}

Zerion Mini Shell 1.0