$(document).ready(function () {
    $(".tbody").off('click').on("click", '.remove', remove);
    $("body").off('click').on("click", '.remove2', remove2);
    $(".tbody").on("keyup blur focus", ".qty, .rate, .amount,.igstrate,.cgstrate", calDetail);
//    $("body").on("change keyup blur", ".qty,.rate,.amount,.cgstrate", calMain);
//    $("body").on("keyup", ".ssearch", getSearchData);
//    $("body").on("click", ".sload", getSearchData);
//    $("body").on("change", ".orderAs, .sortBy", getSearchData);
    $("body").on("focus", ".qty", gethsn);
    $("body").on("focus blur change", ".vouchdt", getvoucher);
    $("body").on("change blur", ".cmbparty", getgst);
    $("body").on("change keyup blur", ".roe, .taxableamt,.rate,.dzn,.qty,.totdiscamt,.exptype,.igstrate, .mdiscamt", caltran);
    $("body").on("blur", '.rate', autoaddrow);
    $("body").on("click", "#submit ,#cancel", hide_but);


    function hide_but() {
        $("#ssubmit").hide();
        $("#scancel").hide();
    }

    $("#cancbill").click(function () {
        $("#cancmodel").modal('show');
    });

    var canc_flag = $(".canc_flag").val();
    if (canc_flag != '') {
        $("#scancbill").hide();
        $("#hedit").hide();

    }


    $("#hdelete").hide();


    $(".consignee").change(function () {
        var consignee = $(".consignee").val();
        $.post("get_party_addr.php",
                {
                    consignee: consignee,
                },
                function (data) {
                    $(".add").val(data);
                });
    });
    function autoaddrow() {
        if ($(this).closest('tr').is(":last-child")) {
            AddRows();
        }
    }

    $(".invno").blur(function () {
        var invno = $(".invno").val(),
                file = $(".file").val(),
                vouchno = $(".vouchno").val();
        $.post('chk_invo.php', {invno: invno, vouchno: vouchno, file: file}, function (data) {
            if (data.s == 1) {
                alert('These Invoice Already Exist For Voucher  ' + data.vouchno);
                $(".invno").val('');
                $(".invno").focus();
            }
        }, 'json');
    });


    function getvoucher() {
        var date = new Date($(".vouchdt").val()),
                month = (date.getMonth() + 1).toString(),
                vouchno = $('.vouchno').val(),
                voucher = '0' + month + vouchno;

        $('.monno').val(month);
        $('.voucher').val(voucher);

    }


    $(".lrtab").click(function () {
        $(".lrdetail").animate({
            height: 'toggle'
        });
    });

    $('#hedit').click(function () {
        var addflag = $('.addflag').val();
        if (addflag != 1) {
            $('.oms').prop("disabled", true);
        } else {
            $('.oms').prop("disabled", false);
        }
    });

    function getgst() {
        var party = $('.cmbparty').val();
        $.post('getcustgst.php', {party: party}, function (data) {
            if (data.gstno != 0) {
                $('.gstno').val(data.gstno);
            }
            $('.add').val(data.add);
            $('.mobile').val(data.mobile);
        }, 'json');
    }

    function gethsn() {
        var tr = $(this).closest("tr");
        var barcode = tr.find('.barcode').val();
        $.post('get_salegst.php', {barcode: barcode}, function (data) {
            tr.find('.discperc').val(data.discperc);
            if ($(".oms").prop('checked')) {
                tr.find('.igstrate').val(data.igst);
                tr.find('.cgstrate').val(0);
                tr.find('.sgstrate').val(0);
            } else {
                tr.find('.cgstrate').val(data.cgst);
                tr.find('.sgstrate').val(data.sgst);
                tr.find('.igstrate').val(0);
            }
        }, 'json');
    }


    function calDetail() {
        var tr = $(this).closest("tr"),
                dzn = tr.find(".dzn").val(),
                qty = tr.find(".qty").val(),
                rate = tr.find(".rate").val(),
                amount = 0,
                totqty = 0,
                subtotal = 0;
        if (dzn > 0) {
            totqty = Math.round(parseFloat(dzn) * 12);
            amount = parseFloat(rate) * parseFloat(dzn);
        } else {
            totqty = tr.find(".qty").val();
//            var dznqty = totqty / 12;
//            tr.find(".dzn").val(dznqty.toFixed(2));
            amount = parseFloat(rate) * parseFloat(totqty);
        }
        

        tr.find(".amount").val(amount.toFixed(3));
        tr.find(".qty").val(totqty);

        $(".amount").each(function () {
            if (!isNaN(this.value) && this.value.length != 0) {
                subtotal += parseFloat(this.value);
            }
        });
        $(".subtotal").val(subtotal);
        
        caltran();

    }


    function caltran() {
        var tr = $(this).closest("tr");
        var mdiscamt = $(".mdiscamt").val();
        var amt = tr.find('.amount').val(),
                discperc = tr.find('.discperc').val(),
                totbillamt = 0,
                discount = (discperc * amt) / 100,
                rdisc = Math.round(discount * 100) / 100;
        tr.find('.discamt').val(rdisc);
        var taxval = parseFloat(amt) - parseFloat(discount),
                rtaxval = Math.round(taxval * 100) / 100;
        tr.find('.subtot').val(rtaxval);

        var exptyp = $('.exptype').val();
        if (exptyp == "de") {
            $('.igstrate').val(0.1);
        } else {
            $('.igstrate').val(0);
        }
        var igstrate = $('.igstrate').val();
        var grosstot = 0,
                discamt = 0,
                subtot = 0;


        $(".amount").each(function () {
            if (!isNaN(this.value) && this.value.length != 0) {
                grosstot += parseFloat(this.value);
            }
        });
        $(".grossamt").val(grosstot.toFixed(2));

        totbillamt = parseFloat(grosstot) - parseFloat(discamt);
        $(".taxableamt").val(totbillamt);

        var igstamt = (igstrate * totbillamt) / 100;
        $('.igstamt').val(igstamt);
        $('.igstamt').val(igstamt);

        var rtotbillamt1 = parseFloat(totbillamt) + parseFloat(igstamt);

//        var rtotbillamt = Math.round(((rtotbillamt1 * 100) / 100) - mdiscamt);
        var rtotbillamt = rtotbillamt1 ;

        $(".totbillamt").val(rtotbillamt);
        var roe = $(".roe").val(),
//                inramt = Math.round(rtotbillamt * roe); round removed by bilal bhai on 21/08/2020
                inramt = rtotbillamt * roe;
        $(".inramt").val(inramt.toFixed(2));
    }

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


    function remove() {
        $(this).closest("tr").remove();
        calMain();
        calDetail();
        caltran();
    }

    function AddRows() {
        var ctr = $('#items').val();
        var prodtype = $('.prodtype').val();
        var hide_check = "";
        if ($("#del_all").prop("checked")) {
            hide_check = 0;
        } else {
            hide_check = 1;
        }
//        var detail = ".fetchpart_" + ctr;
        var focusFld = ".focusFld_" + ctr;
        $.post('invoexp_add.php', {ctr: ctr, hide: hide_check, prodtype: prodtype}, function (data) {
            $(data).appendTo('.tbody');
            ctr++;
            $('#items').val(ctr);
//            $(detail).select2();
            $(focusFld).focus();
        });
    }
    $('#addnew2').click(function () {
        AddRows2();
    });
    function remove2() {
        $(this).closest("tr").remove();
        calMain();
        calDetail();
        caltran();
    }

    function AddRows2() {
        var ctr = $('#items2').val();
//        var prodtype = $('.prodtype').val();
        var hide_check = "";
        if ($("#del_all").prop("checked")) {
            hide_check = 0;
        } else {
            hide_check = 1;
        }
//        var detail = ".fetchpart_" + ctr;
        var focusFld2 = ".focusFld_" + ctr;
        $.post('invoexp_add2.php', {ctr: ctr, hide: hide_check}, function (data) {
            $(data).appendTo('.tbody2');
            ctr++;
            $('#items2').val(ctr);
//            $(detail).select2();
            $(focusFld2).focus();
        });
    }



//    function calMain() {
//        var tr = $(this).closest("tr");
//        var mdiscamt = $(".mdiscamt").val();
//        var amt = tr.find('.amount').val(),
//                discperc = tr.find('.discperc').val(),
//                discount = (discperc * amt) / 100;
//        tr.find('.discamt').val(discount);
//        var taxval = parseFloat(amt) - parseFloat(discount);
//        tr.find('.subtot').val(taxval);
//
//        var cgstrate = tr.find('.cgstrate').val(),
//                sgstrate = tr.find('.sgstrate').val(),
//                cgstamnt = parseFloat(taxval) * parseFloat(cgstrate) / 100,
//                sgstamnt = parseFloat(taxval) * parseFloat(sgstrate) / 100,
//                total = Math.round(parseFloat(cgstamnt) + parseFloat(sgstamnt) + parseFloat(taxval));
//
//        tr.find('.cgstamt').val(cgstamnt);
//        tr.find('.sgstamt').val(sgstamnt);
//        tr.find('.total').val(total);
//
//        var grosstot = 0,
//                discamt = $('.totdiscamt').val(),
//                subtot = 0,
//                cgstamt = 0,
//                sgstamt = 0;
//
//
//        $(".amount").each(function () {
//            if (!isNaN(this.value) && this.value.lenght != 0) {
//                grosstot += parseFloat(this.value);
//            }
//        });
//        $(".grossamt").val(grosstot.toFixed(2));
//
////        $(".discamt").each(function () {
////            if (!isNaN(this.value) && this.value.lenght != 0) {
////                discamt += parseFloat(this.value);
////            }
////        });
////        $('.totdiscamt').val(discamt.toFixed(2));
//
//        $(".subtot").each(function () {
//            if (!isNaN(this.value) && this.value.lenght != 0) {
//                subtot += parseFloat(this.value);
//            }
//        });
//        $('.taxableamt').val(subtot.toFixed(2));
//
//        $(".cgstamt").each(function () {
//            if (!isNaN(this.value) && this.value.lenght != 0) {
//                cgstamt += parseFloat(this.value);
//            }
//        });
//        $('.totcgst').val(cgstamt.toFixed(2));
//
//        $(".sgstamt").each(function () {
//            if (!isNaN(this.value) && this.value.lenght != 0) {
//                sgstamt += parseFloat(this.value);
//            }
//        });
//        $('.totsgst').val(sgstamt.toFixed(2));
//
//
//        var totbillamt = Math.round(parseFloat(subtot) + parseFloat(cgstamt) + parseFloat(sgstamt) - parseFloat(mdiscamt));
//
//        $(".totbillamt").val(totbillamt);
//    }
//

    //////////////////////////////////////////////Search Part - End  //////////////////////////////////////////////


});