$(document).ready(function () {
    $("body").off('click').on("click", '.remove', remove);
    $("body").on("keyup change blur focus", ".qty, .rate, .amount, .discperc,.discamt,.vatperc", calDetail);
    $("body").on("keyup change blur focus", ".discondies,.subtotal, .ldiscperc, .tvatperc, .totdisc, .totadv,.addpack,.addgst,.tcsperc", mainCal);
    $("body").on("blur", ".custcode", getCustname);
    $("body").on("blur change", ".custcode, .party", getCustVeh);
    $("body").on("blur change", ".custcode, .party", getDiscDies);
    $("body").on("blur", ".qty", autoAdd);
    $("body").on("blur change", ".product, .prodcode", getMsp);
    $("body").on("change", ".prodcode", getprodname);


    function getDiscDies() {
        var custcode = $(".custcode").val();
        var party = $(".party").val(),
                data = {custcode: custcode, party: party};

        $.ajax({
            type: 'GET',
            dataType: 'json',
            url: "getdiscdies.php",
            data: data,
            success: function (response) {
                var m = response;
                $(".discdies").val(m.discdies);
                $(".custcode").val(m.custcode);

            }
        });
    }
    function getprodname() {
        var custcode = $(".custcode").val();

        var tr = $(this).closest("tr"),
                prodname = tr.find(".product").val(),
                prodcode = tr.find(".prodcode").val();
        $.post('getitem.php', {prodcode: prodcode}, function (data) {
            if (data != "") {
                tr.find(".product").html(data);
                getMsp();
            }
        });
    }

    function getCustname() {
        var custcode = $(".custcode").val();
        $.post('getcustname.php', {custcode: custcode}, function (data) {
            if (data != 0) {
                $('.party').val(data).trigger("change");
            }
        });

    }

    function getCustVeh() {
        var custcode = $(".custcode").val();
        var party = $(".party").val();
        $.post('getvehname.php', {custcode: custcode, party: party}, function (data) {
//            if (data != 0) {
                $('.vehicleno').html(data);
//            }
        });

    }


    function getMsp() {

        var tr = $(this).closest("tr"),
                itemname = tr.find(".product").val(),
                oms = $(".oms").val(),
                rate = tr.find(".rate").val(),
                addflg = $(".addflg").val(),
                prodcode = tr.find(".prodcode").val(),
                data = {itemname: itemname, oms: oms, prodcode: prodcode};

        if (itemname != '' || prodcode != "") {

            $.ajax({
                type: 'GET',
                dataType: 'json',
                url: "getItemMspSale.php?m=a",
                data: data,
                success: function (response) {
                    var m = response;

                    tr.find(".prodcode").val(m.prodcode);
                    tr.find(".mrp").val(m.mrp);
                    tr.find(".hsncode").val(m.hsncode);
                    tr.find(".unit").val(m.unit);
//                    tr.find(".discdies").val(m.discdies);
                    if (addflg != 1) {
                        if (rate > 0) {
                            tr.find(".rate").val(rate);
                        } else {
                            tr.find(".rate").val(m.rate);
                            tr.find(".ratebfdisc").val(m.rate);
                        }
                    } else {
                        tr.find(".rate").val(m.rate);
                        tr.find(".ratebfdisc").val(m.rate);
                    }
                    tr.find(".qty").val("0");
                    tr.find(".cost").val(m.cost);
                    tr.find(".cgstrate").val(m.cgst);
                    tr.find(".sgstrate").val(m.sgst);
                    tr.find(".igstrate").val(m.igst);
                }
            });
        } else {
            tr.find(".rate").val("0");
            tr.find(".qty").val("0");
            tr.find(".amount").val("0");
//            tr.find(".discdies").val("0");
            tr.find(".cost").val("0");
            tr.find(".cgstrate").val("0");
            tr.find(".sgstrate").val("0");
            tr.find(".igstrate").val("0");
        }
//        caltran();
    }

    function calDetail() {
        var tr = $(this).closest("tr"),
//                cartqty = tr.find(".cartqty").val(),
                discdies = $(".discdies").val(),
                qty = tr.find(".qty").val(),
//                totqty = cartqty * qty,
                rate = tr.find(".rate").val(),
                diesdisc = 0,
                discperc = tr.find(".discperc").val(),
                discamt = 0,
                vatperc = tr.find(".vatperc").val(),
                prodcode = tr.find(".prodcode").val(),
                subtot = 0,
                total = 0,
                vat = 0,
                amount = 0;
        if (qty > 0) {
            amount = (rate * qty).toFixed(2);
            tr.find(".amount").attr("readonly", true);
        } else {
            amount = tr.find(".amount").val();
//            qty = (amount / rate).toFixed(2);
            tr.find(".amount").removeAttr("readonly", true);

        }

        if (prodcode == "D" || prodcode == "d") {
            diesdisc = discdies * qty;
        }

        if (discperc > 0) {
            discamt = ((discperc * amount) / 100).toFixed(2);
        } else {
            discamt = tr.find(".discamt").val();
        }
        subtot = amount - discamt;
        if (vatperc > 0) {
            vat = ((vatperc * subtot) / 100).toFixed(2);
        } else {
            vat = 0;
        }
        total = (parseFloat(subtot) + parseFloat(vat)).toFixed(2);

//        tr.find(".totqty").val(totqty);
        tr.find(".qty").val(qty);

        tr.find(".amount").val(amount);
        tr.find(".discamt").val(discamt);
        tr.find(".discamt").val(discamt);
        tr.find(".diesdisc").val(diesdisc);
        tr.find(".vat").val(vat);
//        tr.find(".discdies").val(discdies);
        tr.find(".total").val(total);
        var totamt = 0,
                totdisc = 0,
                totvat = 0,
                tottotal = 0,
                totbal = 0,
                totalqty = 0,
                totadv = 0;
        $(".qty").each(function () {
            if (!isNaN(this.value) && this.value.length != 0) {
                totalqty += parseFloat(this.value);
            }
        });
        $(".totqty").val(totalqty);

        $(".amount").each(function () {
            if (!isNaN(this.value) && this.value.length != 0) {
                totamt += parseFloat(this.value);
            }
        });
//        $(".discamt").each(function () {
//            if (!isNaN(this.value) && this.value.lenght != 0) {
//                totdisc += parseFloat(this.value);
//            }
//        });
//        $(".vat").each(function () {
//            if (!isNaN(this.value) && this.value.lenght != 0) {
//                totvat += parseFloat(this.value);
//            }
//        });

        $(".amount").each(function () {
            if (!isNaN(this.value) && this.value.lenght != 0) {
                tottotal += parseFloat(this.value);
            }
        });
        $(".subtotal").val(totamt);
        var totdies = 0;
        $(".diesdisc").each(function () {
            if (!isNaN(this.value) && this.value.length != 0) {
                totdies += (parseFloat(this.value));
            }
        });
        $(".discondies").val(totdies);


//        totbillamt = totamt - 
//        $(".totbillamt").val(totamt);
//        $(".tottotal").val(tottotal);
        mainCal();
    }

    function mainCal() {
//        var     qty = $(".qty").val(),
//                tdiscperc = $(".ldiscperc").val(),
//                vatperc = $(".tvatperc").val(),
        var amount = $(".subtotal").val(),
                tcsperc = $(".tcsperc").val(),
//                addgst = $(".addgst").val(),
                totadv = $(".totadv").val(),
//                subtotal = $(".subtotal").val(),
                discondies = $(".discondies").val(),
                discamt = 0, vat = 0, tcsamt = 0,
                totbal = 0;


//        totqty = $(this).closest("tr").qty ;
//        $(".totbillamt").val(totqty);

//        if (tdiscperc > 0) {
//            discamt = ((tdiscperc * amount) / 100).toFixed(2);
//        } else {
//            discamt = $(".totdisc").val();
//        }
        if (discondies > 0) {
            discamt = $(".discondies").val();
        }
        var subtot = amount - discamt;
        tcsamt = ((tcsperc * subtot) / 100).toFixed(2);
        $(".tcsamt").val(tcsamt);
//        if (vatperc > 0) {
//            vat = ((vatperc * subtot) / 100).toFixed(2);
//        } else {
//            vat = 0;
//        }
        var finamt = parseFloat(subtot) + parseFloat(vat) + parseFloat(tcsamt);
//                totbal = parseFloat(finamt) - parseFloat(totadv);
//                totbillamt = parseFloat(subtotal) - parseFloat(discondies);
        $(".totdisc").val(discamt);
        $(".totvat").val(vat);
//        $(".tottotal").val(finamt);
//        $(".totbal").val(totbal);
        $(".totbillamt").val(finamt);

    }
//
//
    $('#addnew').click(function () {
        AddRows();
    });

    function autoAdd() {
        AddRows();
    }
    ;
//
    function remove() {
        $(this).closest("tr").remove();
        calDetail();
        caltran();
        mainCal();
    }
//
    function AddRows() {
        var ctr = $('#items').val();
        var prodtype = $('.prodtype').val();
        var addflag = $('.addflag').val();
        var hide_check = "";
        if ($("#del_all").prop("checked")) {
            hide_check = 0;
        } else {
            hide_check = 1;
        }
        ctr++;
        var focusFld = ".focusFld_" + ctr;
        var detail = ".fetchpart_" + ctr;

        $('#items').val(ctr);
        $.post('sale_add.php', {ctr: ctr, hide: hide_check, prodtype: prodtype, addflag: addflag}, function (data) {
            $(data).appendTo('.tbody');
            $(detail).select2();

            $(focusFld).focus();
        });
    }
//
//
//
//
//
});