$(document).ready(function () {
    $("body").off('click').on("click", '.remove', remove);
    $("body").on("focus blur change", '.item', getMsp);
    $("body").on("dblclick", '.rate', showMsp);
    //    $("body").on("blur focus keyup click", '#autosale,.sufiamt,.qty, .rate, .amount, .discperc,.discount, .total, .remove', detailCal);
    $("body").on("blur focus keyup click", '#autosale,.item,.barcode,.sufiamt,.qty, .rate,.ratebfdisc,.discamt, .amount, .discperc,.discount, .total, .remove, .roundoff, .totalamount,.discount2', caltran);
    $("body").on("blur focus keyup click", '#autosale,.sufiamt,.subtotal, .litemdisc, .cdiscperc, .cdiscamt, .coukg, .courate, .couamt, .netamt, .discount2, .ladvance, .lesother,.totalamount, .roundoff, .balance, .dcperc, .redeem, .dcbperc, .dcamt, .redeempoint, .remove', mainCal);
    $("body").on("focus change", '.srno_0, .prodtype', validProdType);
    $("body").on("change", '.prodtype', generatePrint);
    $("body").on("blur", '.rate, .discperc', validMsp);
    $("body").on("blur", '.rate', validMrp);
    $("body").on("change", '.prodtype', prodSelect);
    $("body").on("blur", '.barcode', GetItemFromCode);
    $("body").on("focus", '.qty', GetItemFromCode);
//    $("body").on("blur", '.qty', autoAddRows);
    $("body").on("focus blur", '.amount', storOtpSucs);
    $("body").on("blur", '.qty', noZeroAcptQty);
    $("body").on("blur", '.rate', noZeroAcptRate);
    $("body").on("blur", '.cdiscperc, .lesother ', checkMspTotal);
    $("body").on("blur", '.dcperc', checkDcPerc);
    $("body").on("click change blur", ".oms, .gstperc, .item", gethsn);
    $("body").on("click change blur", ".oms, .gstperc", getGSTPerc);
    $("body").on("click", "#autosale", getAutoSale);
    $("body").on("blur", ".rate", checkRateGst);
    $("body").on("focus change blur", ".qty,.ratebfdisc,.discount2,.discperc2,.rate", gethsn);
    $("body").on("click change", ".oms", gsttr);
    $("body").on("blur", ".rate", chkrate);
    $("body").on("change blur", ".party", chkOms);
    $("body").on("blur", ".discperc", autoAddRows);
//    $("body").on("blur", ".stafcode", getStaffName);
//    $("body").on("blur change", ".salesman", getStaffCode);
    $("body").on("blur change keyup", ".stafcode, .salesman", getStaffComm);
    $("body").on('change', '.item,.barcode', getDiscPerc);
    $("body").on('blur keyup', '#printmobile', getRedeemPoints);
    $("body").on('blur keyup change', '#printmobile', getData);
    $("body").on('change keyup', '.redeempoint', chkRedeemPoints);
    $("body").on('blur', '.qty', chkStk);


    $(".cashamt").attr('readonly', true);
    $(".ccamt").attr('readonly', true);
    $(".credamt").attr('readonly', true);
    $(".upiamt").attr('readonly', true);

    function chkStk() {
        var tr = $(this).closest("tr"),
                stkqty = tr.find(".stkqty").val(),
                qty = tr.find(".qty").val();
        if (qty > 0) {
            if (parseFloat(qty) > parseFloat(stkqty)) {
                tr.find(".qty").val("0");
                tr.find(".qty").focus();
                alert("Qty. Cannot Be Greater Than Stock.");
            }
        }

    }

    function getData() {
        var printmob = $("#printmobile").val();
        $.post("getpartyNam.php", {printmob: printmob}, function (data) {
            if (data.it == 1) {
                $(".printadd").val(data.address);
                $(".nameprint").val(data.nameprint);
//                    $(".printmobile").val(data.printmobile);
                $(".email").val(data.email);
                $(".gstno").val(data.gstno);
            }
        });
    }

//    if ($(".cashchk").prop("checked", true)) {
//        $(".cardchk").attr('readonly', true);
//    }
//


    if ($(".prnflag").prop("checked") == true) {
        $("#hedit").hide();
        $("#hdelete").hide();
    }


    $(".cashchk").click(function () {
        if (($(".cardchk").prop("checked") == true) || ($(".upichk").prop("checked") == true) || ($(".credchk").prop("checked") == true) || ($(".bothchk").prop("checked") == true)) {
            $(".cashchk").prop("checked", false);
            $(".cashamt").val(0);
            alert('Card , UPI or Credit Check checkbox are already ticked');
        } else {
            $(".upiname").val("").trigger("change");

            var netamt = $(".netamt").val();
            if ($(".cashchk").prop("checked")) {
                $(".cashamt").val(netamt);
            } else {
                $(".cashamt").val(0);
            }
        }
    });

    $(".cardchk").click(function () {
        if (($(".cashchk").prop("checked") == true) || ($(".upichk").prop("checked") == true) || ($(".credchk").prop("checked") == true) || ($(".bothchk").prop("checked") == true)) {
            $(".cardchk").prop("checked", false);
            $(".ccamt").val(0);
            alert('Cash ,UPI or Credit Check checkbox are already ticked');
        } else {
            $(".upiname").val("").trigger("change");

            var netamt = $(".netamt").val();
            if ($(".cardchk").prop("checked")) {
                $(".ccamt").val(netamt);
            } else {
                $(".ccamt").val(0);
            }
        }
    });

    $(".upichk").click(function () {
        if (($(".cashchk").prop("checked") == true) || ($(".cardchk").prop("checked") == true) || ($(".credchk").prop("checked") == true) || ($(".bothchk").prop("checked") == true)) {
            $(".upichk").prop("checked", false);
            $(".upiamt").val(0);
            alert('Cash , Card or Credit Check checkbox are already ticked');
        } else {
            var netamt = $(".netamt").val();
            if ($(".upichk").prop("checked")) {
                $(".upiamt").val(netamt);
            } else {
                $(".upiamt").val(0);
            }
            $(".upiname").select2("open");
        }
    });


    $(".bothchk").click(function () {
        if (($(".cashchk").prop("checked") == true) || ($(".cardchk").prop("checked") == true) || ($(".upichk").prop("checked") == true)) {
            $(".bothchk").prop("checked", false);
            $(".cashamt").attr('readonly', true);
            $(".ccamt").attr('readonly', true);
            $(".upiamt").attr('readonly', true);
            alert('Cash , Card or UPI checkbox are already ticked');
        } else {
            if ($(".bothchk").prop("checked")) {
                $(".cashamt").removeAttr('readonly', true);
                $(".ccamt").removeAttr('readonly', true);
                $(".upiamt").removeAttr('readonly', true);

            } else {
                $(".cashamt").attr('readonly', true);
                $(".ccamt").attr('readonly', true);
                $(".upiamt").attr('readonly', true);
            }
        }
    });



//    var dont = 0;
//
//    $(".barcode").scannerDetection({
//        //https://github.com/kabachello/jQuery-Scanner-Detection
//
//        timeBeforeScanTest: 200, // wait for the next character for upto 200ms
//        avgTimeByChar: 40, // it's not a barcode if a character takes longer than 100ms
//        preventDefault: true,
//        endChar: [13],
////        scanButtonKeyCode: 116, // the hardware scan button acts as key 116 (F5)
////        scanButtonLongPressThreshold: 5, // assume a long press if 5 or more events come in sequence
////        ignoreIfFocusOn: '.form',
//        onComplete: function (barcode, qty) {
//            validScan = true;
//            var nofind = 0;
////            $(this).val(barcode);
//
////            $('#saledtltab').find('tr').each(function () {
////                var tr = $(this),
////                        tqty = tr.find(".qty").val(),
////                        tbarcode = tr.find(".barcode").val();
////
////                if (tbarcode == barcode) {
////                    tr.find(".qty").val(parseFloat(tqty) + 1);
////                    nofind = 1;
////                    dont = 1;
////                    caltran();
////                    return false;
////                }
////
////            });
//
//            if (nofind == 0) {
//                var $row = $(".barcode").last().closest("tr"),
//                        prodtype = $(".prodtype").val();
//                $row.find(".barcode").val(barcode);
//                $.post('show_item_dtl.php', {itemcode: barcode, prodtype: prodtype}, function (data) {
//                    if (barcode != '') {
//                        if (data != '') {
//                            $row.find(".item").html(data).trigger("change");
//
//                            if ($row.find(".stkqty").val() > 0) {
//                                $row.find(".qty").val(1);
//                            } else {
//                                $row.find(".qty").val(0);
//                            }
////                            $row.find(".qty").val(1);
////                        caltran();
////                        AddRows();
//                            dont = 1;
//                            $row.find(".discperc").focus();
//
//                            //                $row.find(".item").html(data).trigger("change");
//
//                        } else {
//                            $row.find(".barcode").val("");
//                            alert("Barcode does not exist.");
//                        }
//                    }
//                    //            $row.find(".itemcode").val(itemcode);
//                });
//            }
//
//
//        } // main callback function	,
//        ,
//        onError: function (string, qty) {
//
////	$('#userInput').val ($('#userInput').val()  + string);
//
//        }
//
//
//    });



    function chkRedeemPoints() {
        var mobile = $("#printmobile").val(),
                redm = $(".redeempoint").val(),
                newrdm = redm / 10,
                totamt = $(".totalamount").val(),
                redamt = $(".redamt").val();
//        if (redamt >= 1) {
        if (parseFloat(redm) > parseFloat(redamt) || parseFloat(newrdm) > parseFloat(totamt)) {
            alert('Redeem Value cannot be Greater Than or Equal To The Total Amount or Total Redeem Amount');
            $(".redeempoint").val("0");
            $(".redeem").val("0");
            $(".redeempoint").focus();
//            }
        }
    }

    function getRedeemPoints() {
        var mobile = $("#printmobile").val();
        if (mobile != "") {
            $.post("getredeempts.php", {mobile: mobile}, function (data) {
                if (data.it == 1) {
                    $(".redpt").text(data.redeem);
                    $(".redamt").val(data.redeemt);
                }
            });
        }
    }

    function  getDiscPerc() {
        var tr = $(this).closest("tr");
        var item = tr.find(".item").val();
        if (item != "") {
            $.post("getdiscperc.php", {item: item}, function (data) {
                if (data.it == 1) {
                    tr.find(".discperc").val(data.discperc);
                }
            });
        }
    }


//    function getStaffName() {
//        var stafcode = $(".stafcode").val();
//        $.post('get_staff.php', {stafcode: stafcode}, function (data) {
//            if (data != '') {
//                $(".salesman").html(data).trigger("change");
//            }
//        });
//    }
//
//    function getStaffCode() {
//        var salesman = $(".salesman").val();
//        $.post('get_staff.php', {salesman: salesman}, function (data) {
//            if (data != '') {
//                $(".stafcode").val(data);
//            }
//        });
//    }

    function getStaffComm() {
        var salesm = $(".salesman").val();
        var stafco = $(".stafcode").val();
        $.post('get_staff.php', {salesm: salesm, para: 1}, function (data) {
            if (data != '') {
                $(".stafcomm").val(data);
            }
        });
    }


//    changePrintName();

//    function changePrintName() {
//        var party = $(".party").val();
//        if (party == "51") {
//            $(".showname").show();
//        } else {
//            $(".showname").hide();
//        }
//        
//        var nameprint = $(".nameprint").val();
//        if (nameprint == '') {
//            $(".nameprint").hide();
//        } else {
//            $(".nameprint").show();
//
//        }
//        var printmobile = $(".printmobile").val();
//        if (printmobile == '') {
//            $(".printmobile").hide();
//        } else {
//            $(".printmobile").show();
//
//        }
//    }

    function chkOms() {
        var party = $(".party").val();
        $.post("chkoms.php", {party: party}, function (data) {
            $(".oms").val(data);
            if (data == 1) {
                $(".ofs").text("Out of State");
            } else {
                $(".ofs").text("In State");
            }
        });
    }


    function chkrate() {
        var tr = this
    }

    function gsttr() {
        $('.tbody').find('tr').each(function () {
            var row = $(this),
                    cgstrate = row.find('.cgstrate').val(),
                    igstrate = row.find('.igstrate').val(),
                    igstamt = row.find('.igstamt').val(),
                    cgstamt = row.find('.cgstamt').val();
            if ($('.oms').prop("checked") == true) {
                if (igstrate == 0) {
                    var nigstrt = cgstrate * 2,
                            nigstamt = cgstamt * 2;
                    row.find('.igstrate').val(nigstrt);
                    row.find('.igstamt').val(nigstamt);
                    row.find('.cgstrate').val(0);
                    row.find('.cgstamt').val(0);
                    row.find('.sgstrate').val(0);
                    row.find('.sgstamt').val(0);
                }


            } else {
                if (cgstrate == 0) {
                    var ncgstrt = igstrate / 2,
                            ncgstamt = igstamt / 2;
                    row.find('.cgstrate').val(ncgstrt);
                    row.find('.cgstamt').val(ncgstamt);
                    row.find('.sgstrate').val(ncgstrt);
                    row.find('.sgstamt').val(ncgstamt);
                    row.find('.igstrate').val(0);
                    row.find('.igstamt').val(0);

                }

            }
        });
        caltran();
    }



    function checkRateGst() {

        var tr = $(this).closest("tr"),
                rate = tr.find('.rate').val(),
                gstperc = tr.find('.gstperc').val();
        if (rate > 999) {
            $.post('checkGstRate.php', {gstperc: gstperc}, function (data) {
                if (data == 5) {
                    tr.find('.discperc2').val('4.762');
                    //                    alert('Rate is Greater for this GST Type');
                    //                    tr.find('.rate').val(0);
                    //                    tr.find('.rate').focus();
                }
            });
        }
    }

    function caltran() {
        var tr = $(this).closest("tr");
        var totqty = 0,
                amt = 0,
                qty = tr.find('.qty').val(),
                discperc2 = tr.find('.discperc2').val(),
                discperc = tr.find('.discperc').val(),
                otprowsucs = tr.find(".otprowsucs").val(),
                ratebfdisc = tr.find(".ratebfdisc").val(),
                cgst5 = 0,
                cgst12 = 0,
                cgst18 = 0,
                cgst28 = 0,
                igst5 = 0,
                igst12 = 0,
                igst18 = 0,
                igst28 = 0,
                cgst5a = 0,
                cgst12a = 0,
                cgst18a = 0,
                cgst28a = 0,
                igst5a = 0,
                igst12a = 0,
                igst18a = 0,
                igst28a = 0,
                totgst5 = 0,
                totgst12 = 0,
                totgst18 = 0,
                totgst28 = 0,
                totalgst = 0,
                totbillamt = 0,
                disct2 = (discperc2 * ratebfdisc) / 100,
                rdisc = Math.round(disct2 * 100) / 100;
        tr.find('.discount2').val(rdisc);
        var discount2 = tr.find(".discount2").val(),
//                rate = tr.find(".ratebfdisc").val(),
                actrate = ratebfdisc - discount2;
        tr.find('.rate').val(actrate),
                amt = actrate * qty,
                tr.find(".amount").val(amt);
        if (discperc > 0) {
            var actdisc = (discperc * amt) / 100,
                    rdisc2 = Math.round(actdisc * 100) / 100;
        } else {
            rdisc2 = tr.find('.discamt').val();

        }
        tr.find('.discamt').val(rdisc2);

        var taxval = parseFloat(amt) - parseFloat(rdisc2),
                rtaxval = Math.round(taxval * 100) / 100;
        tr.find('.subtot').val(rtaxval);

        var cgstrate = tr.find('.cgstrate').val(),
                sgstrate = tr.find('.sgstrate').val(),
//                                igstrate = tr.find('.igstrate').val(),
                igstrate = 0,
                cgstamnt = parseFloat(taxval) * parseFloat(cgstrate) / 100,
                sgstamnt = parseFloat(taxval) * parseFloat(sgstrate) / 100,
                igstamnt = 0,
//                                igstamnt = parseFloat(taxval) * parseFloat(igstrate) / 100,
                total = parseFloat(cgstamnt) + parseFloat(sgstamnt) + parseFloat(igstamnt) + parseFloat(taxval),
                rtotal = Math.round((total * 100) / 100);
        tr.find('.cgstamt').val(cgstamnt.toFixed(2));
        tr.find('.sgstamt').val(sgstamnt.toFixed(2));
        tr.find('.igstamt').val(igstamnt.toFixed(2));
        tr.find('.total').val(rtotal);





        $('#saledtltab').find('tr').each(function () {
            var row = $(this),
                    amt = 0,
                    qty = row.find('.qty').val(),
                    discperc2 = row.find('.discperc2').val(),
                    discperc = row.find('.discperc').val(),
                    otprowsucs = row.find(".otprowsucs").val(),
                    ratebfdisc = row.find(".ratebfdisc").val(),
                    disct2 = (discperc2 * ratebfdisc) / 100,
                    rdisc = Math.round(disct2 * 100) / 100;
            row.find('.discount2').val(rdisc);
            var discount2 = row.find(".discount2").val(),
//                rate = row.find(".ratebfdisc").val(),
                    actrate = ratebfdisc - discount2;
            row.find('.rate').val(actrate),
                    amt = actrate * qty,
                    row.find(".amount").val(amt);
            if (discperc > 0) {
                var actdisc = (discperc * amt) / 100,
                        rdisc2 = Math.round(actdisc * 100) / 100;
            } else {
                rdisc2 = row.find('.discamt').val();

            }
            row.find('.discamt').val(rdisc2);

            var taxval = parseFloat(amt) - parseFloat(rdisc2),
                    rtaxval = Math.round(taxval * 100) / 100;
            row.find('.subtot').val(rtaxval);

            var cgstrate = row.find('.cgstrate').val(),
                    sgstrate = row.find('.sgstrate').val(),
//                                    igstrate = row.find('.igstrate').val(),
                    igstrate = 0,
                    cgstamnt = parseFloat(taxval) * parseFloat(cgstrate) / 100,
                    sgstamnt = parseFloat(taxval) * parseFloat(sgstrate) / 100,
                    igstamnt = 0,
//                                    igstamnt = parseFloat(taxval) * parseFloat(igstrate) / 100,
                    total = parseFloat(cgstamnt) + parseFloat(sgstamnt) + parseFloat(igstamnt) + parseFloat(taxval),
                    rtotal = Math.round((total * 100) / 100);
            row.find('.cgstamt').val(cgstamnt.toFixed(2));
            row.find('.sgstamt').val(sgstamnt.toFixed(2));
            row.find('.igstamt').val(igstamnt.toFixed(2));
            row.find('.total').val(rtotal);
            var
                    msp = row.find(".msp").val(),
                    crate = row.find('.cgstrate').val(),
                    camt = row.find('.cgstamt').val(),
                    irate = row.find('.igstrate').val(),
                    iamt = row.find('.igstamt').val(),
                    discount2 = row.find('.discount2').val(),
                    rate = ratebfdisc - discount2,
                    amount = (parseFloat(qty) * parseFloat(rate)).toFixed(2),
                    mspamount = (parseFloat(qty) * parseFloat(msp)).toFixed(2);

            row.find(".amount").val(amount);
            if (otprowsucs == "1") {
                row.find(".mspamount").val(amount);
            } else {
                row.find(".mspamount").val(mspamount);
            }



            if (crate < 3) {
                cgst5a = parseFloat(camt);
                cgst5 += parseFloat(cgst5a);
                igst5a = 0;
            } else if (crate < 7) {
                cgst12a = parseFloat(camt);
                cgst12 += parseFloat(cgst12a);
                igst12a = 0;
            } else if (crate < 10) {
                cgst18a = parseFloat(camt);
                cgst18 += parseFloat(cgst18a);
                igst18a = 0;
            } else if (crate < 15) {
                cgst28a = parseFloat(camt);
                cgst28 += parseFloat(cgst28a);
                igst28a = 0;
            }

            if (irate < 7) {
                igst5a = parseFloat(iamt);
                igst5 += parseFloat(igst5a);
                cgst5a = 0;
            } else if (irate < 13) {
                igst12a = parseFloat(iamt);
                igst12 += parseFloat(igst12a);
                cgst12a = 0;
            } else if (irate < 19) {
                igst18a = parseFloat(iamt);
                igst18 += parseFloat(igst18a);
                cgst12a = 0;
            } else if (irate < 29) {
                igst28a = parseFloat(iamt);
                igst28 += parseFloat(igst28a);
                cgst28a = 0;
            }
            //            postperc = parseFloat(ipost) + parseFloat(opost);
            //
            //            $('.postperc').val(postperc);
        });

        var grosstot = 0,
                discamt = 0,
                subtot = 0;



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

        $(".qty").each(function () {
            if (!isNaN(this.value) && this.value.lenght != 0) {
                totqty += parseFloat(this.value);
            }

        });
        $(".totqty").val(totqty);

        Math.round($(".subtotal").val(val));

        var val2 = 0;
        $(".discamt").each(function () {
            if (!isNaN(this.value) && this.value.length != 0) {
                val2 += parseFloat(this.value);
            }
        });
        Math.round($(".litemdisc").val(val2));

        var val3 = 0;
        $(".mspamount").each(function () {
            if (!isNaN(this.value) && this.value.length != 0) {
                val3 += parseFloat(this.value);
            }
        });
        Math.round($(".msptotal").val(val3));

        var val4 = 0;
        $(".subtot").each(function () {
            if (!isNaN(this.value) && this.value.length != 0) {
                val4 += parseFloat(this.value);
            }
        });
        Math.round($(".taxamt").val(val4));

        var vald = 0;
        $(".discount2").each(function () {
            if (!isNaN(this.value) && this.value.length != 0) {
                vald += parseFloat(this.value);
            }
        });
        Math.round($(".lesother").val(vald));


        var val5 = 0;
        $(".total").each(function () {
            if (!isNaN(this.value) && this.value.length != 0) {
                val5 += parseFloat(this.value);
            }
        });
        Math.round($(".netamt").val(val5));
        Math.round($(".totalamount").val(val5));

        totgst5 = parseFloat(cgst5) + parseFloat(cgst5) + parseFloat(igst5);
        totgst12 = parseFloat(cgst12) + parseFloat(cgst12) + parseFloat(igst12);
        totgst18 = parseFloat(cgst18) + parseFloat(cgst18) + parseFloat(igst18);
        totgst28 = parseFloat(cgst28) + parseFloat(cgst28) + parseFloat(igst28);
        totalgst = parseFloat(totgst5) + parseFloat(totgst12) + parseFloat(totgst18) + parseFloat(totgst28);
        $('.cgst5').val(cgst5.toFixed(2));
        $('.sgst5').val(cgst5.toFixed(2));
        $('.igst5').val(igst5.toFixed(2));

        $('.cgst12').val(cgst12.toFixed(2));
        $('.sgst12').val(cgst12.toFixed(2));
        $('.igst12').val(igst12.toFixed(2));



        $('.cgst18').val(cgst18.toFixed(2));
        $('.sgst18').val(cgst18.toFixed(2));
        $('.igst18').val(igst18.toFixed(2));

        $('.cgst28').val(cgst28.toFixed(2));
        $('.sgst28').val(cgst28.toFixed(2));
        $('.igst28').val(igst28.toFixed(2));

        $('.totgst5').val(totgst5.toFixed(2));
        $('.totgst12').val(totgst12.toFixed(2));
        $('.totgst18').val(totgst18.toFixed(2));
        $('.totgst28').val(totgst28.toFixed(2));

        $('.totalgst').val(totalgst.toFixed(2));

        mainCal();
        //        totbillamt = parseFloat(taxval) + parseFloat(totgst5) + parseFloat(totgst12) + parseFloat(totgst18) + parseFloat(totgst28);
        //        var rtotbillamt = Math.round(totbillamt * 100) / 100;
        //        var rtotbillamt = Math.round(totbillamt);

        //        $(".totbillamt").val(rtotbillamt);

    }
    //function detailCal() {
    //        var tr = $(this).closest("tr"),
    //                qty = tr.find(".qty").val(),
    //                mrp = tr.find(".mrp").val(),
    //                msp = tr.find(".msp").val(),
    //                rate = tr.find(".rate").val(),
    //                otprowsucs = tr.find(".otprowsucs").val(),
    //                amount = (parseFloat(qty) * parseFloat(rate)).toFixed(2),
    //                mspamount = (parseFloat(qty) * parseFloat(msp)).toFixed(2),
    //                discperc = tr.find(".discperc").val(),
    //                discount = (discperc * amount / 100).toFixed(2),
    //                total = (parseFloat(amount) - parseFloat(discount)).toFixed(2);
    //
    //        tr.find(".amount").val(amount);
    //        if (otprowsucs == "1") {
    //            tr.find(".mspamount").val(amount);
    //        } else {
    //            tr.find(".mspamount").val(mspamount);
    //        }
    //        tr.find(".discount").val(discount);
    //        tr.find(".total").val(total);
    //
    //
    //        var val = 0;
    //        $(".amount").each(function () {
    //            if (!isNaN(this.value) && this.value.length != 0) {
    //                val += parseFloat(this.value);
    //            }
    //        });
    //        $(".subtotal").val(val);
    //
    //        var val2 = 0;
    //        $(".discount").each(function () {
    //            if (!isNaN(this.value) && this.value.length != 0) {
    //                val2 += parseFloat(this.value);
    //            }
    //        });
    //        $(".litemdisc").val(val2);
    //
    //        var val3 = 0;
    //        $(".mspamount").each(function () {
    //            if (!isNaN(this.value) && this.value.length != 0) {
    //                val3 += parseFloat(this.value);
    //            }
    //        });
    //        $(".msptotal").val(val3);
    //        mainCal();
    //
    //    }

    function gethsn() {
        var tr = $(this).closest("tr");
        var barcode = tr.find('.barcode').val();
        var item = tr.find('.item').val();
        var rate = tr.find('.rate').val();
        $.post('get_salegst.php', {barcode: barcode, item: item, rate: rate}, function (data) {
            tr.find('.discperc2').val(data.discperc);
            tr.find('.discperc2').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 getAutoSale() {
        $("#saledtltab").find('tr').each(function () {
            var row = $(this);
            var amount = row.find('.amount').val();

            if (parseFloat(amount) > 0) {
                alert('Detail Part Should Be Empty');
            }

        });
        var vouchno = $('.vouchno').val(),
                netamt = $('.sufiamt').val(),
                gstperc = $('.gstperc').val(),
                prodtype = $(".prodtype").val(),
                party = $(".party").val();


        if (netamt <= 0) {
            alert('Sale Amount Cannot Be Zero');
        } else if (gstperc == '') {
            alert('GST Type Cannot Be Empty');
        } else if (prodtype == '') {
            alert('Product Type Cannot Be Empty');
        } else if (party == '') {
            alert('Party Cannot Be Empty');
        } else {
            $.post('get_autosale_data.php', {vouchno: vouchno, netamt: netamt, gstperc: gstperc, prodtype: prodtype}, function (data) {
                $("#saledtltab").html(data);
                $(".sufiamt").focus();
                //                alert(data.diffbal);
                mainCal();
                if (data != '') {

                    overAmt();
                }

            });
            $(".ccamt").val(netamt);

        }

        function overAmt() {
            var diffbal = $("#diffbal").val(),
                    taxableamt = $("#taxableamt").val(),
                    setamt = $("#setamt").val();
            if (setamt > diffbal) {
                alert('Remaining Stock is Only for Amount Rs.' + diffbal);
            }

        }




        //        detailCal();

    }



    function getGSTPerc() {
        var gstperc = $(".gstperc").val();
        //                getdcPerc = 0;

        $.post('getGSTPerc.php', {gstperc: gstperc}, function (data) {

            var mgstperc = data.gstperc,
                    mgst = mgstperc / 2;

            if ($(".oms").prop('checked')) {
                $('.igstperc').val(mgstperc);
                $('.cgstperc').val(0);
                $('.sgstperc').val(0);

            } else {
                $('.cgstperc').val(mgst);
                $('.sgstperc').val(mgst);
                $('.igstperc').val(0);
            }

        }, 'json');
        mainCal();
    }

    function checkDcPerc() {
        var dcperc = $(".dcperc").val();
        //                getdcPerc = 0;

        $.post('getDcPerc.php', {dcperc: dcperc}, function (data) {
            //            getdcPerc.val(data.commperc);
            //            alert(data.commperc);
            var getdcPerc = data.commperc;
            //            alert(getdcPerc);

            if (parseFloat(dcperc) > parseFloat(getdcPerc)) {
                alert('Driver Commision Cannot Be Greater Than Fixed Commission');
                $(".dcperc").val("0");

            }
        }, 'json');
        mainCal();
    }

    //    function gethsn() {
    //        var tr = $(this).closest("tr");
    ////        var tr = $(this).closest("tr");
    //        var item = tr.find('.item').val(),
    //                gstperc = $('.gstperc').val(),
    //                mgst = gstperc / 2;
    //        $.post('gethsncode.php', {item: item}, function (data) {
    //            tr.find('.hsncode').val(data.hsn);
    //
    //
    //        }, 'json');
    //        if ($(".oms").prop('checked')) {
    ////            $('.igstperc').val(gstperc);
    ////            $('.cgstperc').val(0);
    ////            $('.sgstperc').val(0);
    //
    //        } else {
    ////            $('.cgstperc').val(mgst);
    ////            $('.sgstperc').val(mgst);
    ////            $('.igstperc').val(0);
    //        }
    //        mainCal();
    //        getGSTPerc();
    //    }



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

    $("#finishTab").click(function () {
        $("#finishTab").hide();

        var ccamt = $('.ccamt').val(),
                cashamt = $('.cashamt').val(),
                bankname = $('#bankname').val(),
                credamt = $('.credamt').val(),
                upiamt = $('.upiamt').val(),
                netamt = $('.netamt').val(),
                party = $('.party').val(),
                salesman = $('.salesman').val(),
                printmobile = $('#printmobile').val(),
                refmobile = $('#refmobile').val(),
                totcamt = parseFloat(ccamt) + parseFloat(cashamt) + parseFloat(credamt) + parseFloat(upiamt),
                valid = true;

        if (printmobile != '') {
            if (printmobile.length < 10 || printmobile.length > 10) {
                alert('Mobile No. Should Be 10 Digits');
                $("#finishTab").show();
                return false;
                valid = false;

            }
        }
        if (refmobile != '') {
            if (refmobile.length < 10 || refmobile.length > 10) {
                alert('Reference Mobile No. Should Be 10 Digits');
                $("#finishTab").show();
                return false;
                valid = false;

            }
        }

        if (refmobile != '' && printmobile != '') {
            if (refmobile == printmobile) {
                alert('Mobile & Reference Mobile Cannot Be Same');
                $("#finishTab").show();
                return false;
                valid = false;

            }
        }

        if (netamt != totcamt) {
            $('.ccamt').val('0');
            $('.cashamt').val('0');
            $('.credamt').val('0');
            $('.upiamt').val('0');
            $('.cashamt').focus();
            alert('Cash, CC , Credit Total Amount Should Be Same As Netamt');
            $("#finishTab").show();
            return false;
            valid = false;

        }

        if (party == '') {
            var message = "Party Cannot Be Empty";
            alert(message);
            $("#finishTab").show();
            return false;
            valid = false;

        }
        if (salesman == '') {
            var message = "Salesman Cannot Be Empty";
            alert(message);
            $("#finishTab").show();
            return false;
            valid = false;

        }
        if (netamt < 0) {
            var message = "Netamt Shoulf be greater than zero";
            alert(message);
            $("#finishTab").show();
            return false;
            valid = false;

        }
        if (valid) {
            var isValid = true;

            if (isValid) {
                $(".addflg").val(2);
                $("#finishTab").hide();
                $("#submit").show();
                $("#submit").click();
                $("#submit").hide();

            }
        }
    });

    function noZeroAcptQty() {
        var $row = $(this).closest("tr"),
                mqty = $row.find(".qty").val();
        if (mqty > 0) {
        } else {
            alert('Qty Cannot be Zero');
            $row.find(".item").focus();
        }
    }

    function noZeroAcptRate() {
        var $row = $(this).closest("tr"),
                mrate = $row.find(".rate").val();

        if (mrate > 0) {
        } else {
            alert('Rate Cannot be Zero');
            $row.find(".mrp").focus();
        }
    }

    function storOtpSucs() {
        var $row = $(this).closest("tr"),
                mrate = $row.find(".rate").val(),
                motp = $(".otprecv").val(),
                mmsp = $row.find(".msp").val();
        if (motp != '') {
            if (mrate < mmsp) {
                $row.find(".otprowsucs").val("1");
                $row.find(".otpvalue").val(motp);
            } else {
                $row.find(".otprowsucs").val("");
                $row.find(".otpvalue").val("");
            }
        }
    }

    //    var lesother = $(".lesother").val(),
    //            cdiscperc = $(".cdiscperc").val();
    //
    //    if (cdiscperc <= 0) {
    //        $(".cdiscperc").attr("readonly", true);
    //    }
    //    if (lesother <= 0) {
    //        $(".lesother").attr("readonly", true);
    //    }

    $(".gendsotp").click(function () {
        var party = $(".party").val(),
                subtotal = $(".subtotal").val(),
                vouchno = $(".vouchno").val(),
                salesman = $(".salesman").val(),
                msptotal = $(".msptotal").val(),
                cdiscamt = $(".cdiscamt").val(),
                lesother = $(".lesother").val(),
                totdisc = parseFloat(lesother) + parseFloat(cdiscamt),
                data = {party: party, subtotal: subtotal, vouchno: vouchno, salesman: salesman, msptotal: msptotal, totdisc: totdisc};

        $.ajax({
            type: 'GET',
            dataType: 'json',
            url: "getGenDiscOtp.php",
            data: data,
            success: function (response) {

                $("#overlay_form").show();

                $(".normotp").hide();
                $(".lesdsotp").show();
                var m = response;
                $(".otpdssend").val(m.otpdssend);


                //                $("#overlay_form").show();
                //                var myEcho = "<h3>M.S.P = " + m.msp + "</h3>";
                //                $(".genotp").hide();
                //                $("#otp").val(m.msp);
                alert("OTP Send to Registered Mobile No.");
                $(".otpdssend").focus();
            }
        });
    });


    function autoAddRows() {
//        if ($(this).closest("tr").is(":last-child")) {
//            AddRows();
//        }
        var ctr = $('#items').val();
        var tr = $(this).closest("tr");
        var srno = tr.find(".srno").val();
        if (srno == ctr) {
            AddRows();
        }
    }

    $(".subdsotp").click(function () {
        var otpdsrecv = $(".otpdsrecv").val(),
                otpdssend = $(".otpdssend").val();
        if (otpdsrecv != '') {
            if (otpdsrecv == otpdssend) {
                $(".otpdssucs").val("1");
                $(".disctotp").val(otpdsrecv);
                $("#overlay_form").hide();
                $(".cdiscperc").attr("readonly", true);
                $(".cdiscamt").attr("readonly", true);
                $(".lesother").attr("readonly", true);
                $(".cdiscperc").focus();
                //                $("#ssubmit").show();
                $("#finishTab").show();

            } else {
                alert("OTP Does Not Match");
                $(".otpdsrecv").val("");
                $(".otpdssucs").val("");
                $(".disctotp").val("");
            }
        }
    });

    $(".subotp").click(function () {
        var otprecv = $(".otprecv").val(),
                otpsend = $(".otpsend").val();
        if (otprecv != '') {
            if (otprecv == otpsend) {
                $(".otpsucs").val("1");
                $("#overlay_form").hide();
                $("#finishTab").show();
                //                $("#ssubmit").show();
                //                $(".rate").focus();
                var trimidge = $("#idget").val();
                $("#rate" + trimidge).focus();

            } else {
                alert("OTP Does Not Match");
                $(".otprecv").val("");
                $(".otpsucs").val("");
            }
        }
    });


    ///////////////////////////////////////////////////IMP - START//////////////////////////////////////////////////



    function GetItemFromCode() {
//        if (dont == 1) {
//            return false;
//        }
        var gbarcode = 0;

        var $row = $(this).closest("tr");
        var itemcode = $row.find(".barcode").val();
        var srno = $row.find(".srno").val();
        if (itemcode != "") {
//            $('#saledtltab').find('tr').each(function () {
//                var tr = $(this),
//                        tsrno = tr.find(".srno").val(),
//                        tqty = tr.find(".qty").val(),
//                        tbarcode = tr.find(".barcode").val();
//
//                if (tbarcode == itemcode && srno != tsrno) {
//                    tr.find(".qty").val(parseFloat(tqty) + 1);
//                    gbarcode = 1;
//                    caltran();
//                    return false;
//                }
//
//            });

            if (gbarcode == 0) {
                var prodtype = $(".prodtype").val();
                $.post('show_item_dtl.php', {itemcode: itemcode, prodtype: prodtype}, function (data) {
                    if (data != '') {
                        $row.find(".item").html(data).trigger("change");
                        if ($row.find(".stkqty").val() > 0) {
                            $row.find(".qty").val(1);
                        } else {
                            $row.find(".qty").val(0);
                        }
//                        $row.find(".discperc").focus();
//                $row.find(".item").html(data).trigger("change");

                    } else {
                        $row.find(".barcode").val("");
                        alert("Barcode does not exist.");

                    }
//            $row.find(".itemcode").val(itemcode);
                });
            } else {
                $row.find(".barcode").val("").focus();
            }


//        var $row = $(this).closest("tr");
//
//        var itemcode = $row.find(".barcode").val();
//
//        var nofind = 0;
////            $(this).val(barcode);
//
//        $('#saledtltab').find('tr').each(function () {
//            var tr = $(this),
//                    tqty = tr.find(".qty").val(),
//                    tbarcode = tr.find(".barcode").val();
//
//            if (tbarcode == itemcode) {
//                tr.find(".qty").val(parseFloat(tqty) + 1);
//                nofind = 1;
//                caltran();
//                return false;
//            }
//
//        });
//
//        if (nofind == 0) {
//            var prodtype = $(".prodtype").val();
//            $.post('show_item_dtl.php', {itemcode: itemcode, prodtype: prodtype}, function (data) {
//                if (itemcode != '') {
//                    if (data != '') {
//                        $row.find(".item").html(data).trigger("change");
//                        $row.find(".qty").val(1);
//                        $row.find(".discperc").focus();
////                    
//                        //                $row.find(".item").html(data).trigger("change");
//
//                    }
//                }
//                //            $row.find(".itemcode").val(itemcode);
//            });
//        }
        }
    }



    function prodSelect() {
        var prodtype = $(".prodtype").val(),
                data = {prodtype: prodtype};

        $.ajax({
            type: 'GET',
            dataType: 'html',
            url: "getTypeItem.php",
            data: data,
            success: function (response) {
                var m = response;
                $(".item").html(m);
            },
            error: function (request, textStatus, errorThrown) {

            }
        });

    }

    function validMsp() {
        $(".ratemspless").show();
        var tr = $(this).closest("tr"),
                otpsucs = $(".otpsucs").val(),
                otprowsucs = tr.find(".otprowsucs").val(),
                itemname = tr.find(".item").val(),
                rate = tr.find(".rate").val(),
                msp = tr.find(".msp").val(),
                mrp = tr.find(".mrp").val(),
                qty = tr.find(".qty").val(),
                srno = tr.find(".srno").val(),
                total = tr.find(".total").val(),
                discperc = tr.find(".discperc").val(),
                idget = $(this).attr('id'),
                mspamt = parseFloat(msp) * parseFloat(qty);
        if (otpsucs == "1" || otprowsucs == "1") {

        } else {
            if (rate > 0) {
                if (parseFloat(rate) < parseFloat(msp) && parseFloat(rate) != parseFloat(msp)) {
                    //                alert("Rate Cannot Be Less Than M.S.P");
                    $("#overlay_form").show();
                    $("#close_form1").hide();
                    $("#close_form").show();

                    $(".normotp").show();
                    $(".lesdsotp").hide();
                    //                var myEcho = "<h3>M.S.P = " + msp + "</h3>";
                    $(".genotp").show();
                    $("#browdata").val(msp);
                    $("#rowitm").val(itemname);
                    $("#rowsrno").val(srno);
                    $("#rowqty").val(qty);
                    $("#rowrate").val(rate);
                    $("#rowmsp").val(msp);
                    $("#rowmrp").val(mrp);

                    var newidget = idget.substring(4, 10),
                            trimidget = newidget;
                    $("#idget").val(trimidget);
                    //                    tr.find(".rate").val("0");
                    tr.find(".rate").attr("readonly", true);
                    $("#finishTab").hide();
                    //                    $("#ssubmit").hide();
                    //                    tr.find(".rate").focus();

                }
                if (discperc > 0) {
                    if (parseFloat(total) < parseFloat(mspamt) && parseFloat(total) != parseFloat(mspamt)) {
                        alert("Total Cannot Be Less Than M.S.P-Total");
                        tr.find(".discperc").val("0");
                        tr.find(".discount").val("0");
                        tr.find(".discperc").focus();

                    }
                }
            }
        }
    }

    function validMrp() {
        //        var tr = $(this).closest("tr"),
        //                rate = tr.find(".rate").val(),
        //                mrp = tr.find(".mrp").val();
        //        if (rate > 0) {
        //            if (parseFloat(rate) > parseFloat(mrp)) {
        //                alert("Rate Cannot Be Greater Than M.R.P");
        //                tr.find(".rate").val("0");
        //            }
        //        }
    }

    if ($(".prodtype").val() == "") {
        $(".item").prop("disabled", true);
        $(".barcode").prop("disabled", true);
        $(".myPrint").attr("href", "");
    }

    function generatePrint() {
        var vouch = $(".vouchno").val();
        var prodtype = $(".prodtype").val();


        if (prodtype == "P") {
            $(".myPrint").attr("href", "salep_print.php?vouchno=" + vouch);
            $(".myPrint").attr("target", "_blank");
        } else {
            $(".myPrint").attr("href", "#");
            $(".myPrint").attr("target", "");
        }
    }
    generatePrint();

    $(document).keydown(function (e) {
        if (e.ctrlKey && (String.fromCharCode(e.which).toLowerCase() === 'm')) {
            rajEvent = new Event('CTR+M');
            document.dispatchEvent(rajEvent);
        }
    });

    $(document).keydown(function (e) {
        if (e.ctrlKey && e.altKey && (String.fromCharCode(e.which).toLowerCase() === 'b')) {
            rajEvent = new Event('CTR+B');
            document.dispatchEvent(rajEvent);
        }
    });

    document.addEventListener('CTR+M', showMsp, false);
    document.addEventListener('CTR+B', showPrint, false);

    function showPrint() {
        var vouchno = $(".vouchno").val();
        var prodtype = $(".prodtype").val();
        if (prodtype == "P") {
            window.open("salep_print.php?vouchno=" + vouchno, "_blank");
        }
    }

    $(".genotp").click(function () {
        var rowitem = $(".rowitm").val(),
                rowqty = $(".rowqty").val(),
                rowrate = $(".rowrate").val(),
                rowmsp = $(".rowmsp").val(),
                rowmrp = $(".rowmrp").val(),
                vouchno = $(".vouchno").val(),
                salesman = $(".salesman").val(),
                data = {rowitem: rowitem, rowqty: rowqty, rowrate: rowrate, vouchno: vouchno, salesman: salesman, rowmsp: rowmsp, rowmrp: rowmrp};

        $.ajax({
            type: 'GET',
            dataType: 'json',
            url: "getGenratedOtp.php",
            data: data,
            success: function (response) {
                var m = response;
                $(".otpsend").val(m.otpsend);
                //alert(m.otpsend);

                //                $("#overlay_form").show();
                //                var myEcho = "<h3>M.S.P = " + m.msp + "</h3>";
                //                $(".genotp").hide();
                $("#browdata").val(m.msp);
                alert("OTP Send to Registered Mobile No.");
                $(".otpsend").focus();
            }
        });
    });

    function getMsp() {
        var tr = $(this).closest("tr"),
                itemname = tr.find(".item").val(),
                rate = tr.find(".rate").val(),
                sintrate = tr.find(".sintrate").val(),
                ratebfdisc = tr.find(".ratebfdisc").val(),
                addflg = $(".addflg").val(),
                data = {itemname: itemname};

        if (itemname != '') {

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

                    tr.find(".barcode").val(m.barcode);
                    tr.find(".mrp").val(m.mrp);
                    tr.find(".hsncode").val(m.hsncode);
//                    tr.find(".stkqty").val(m.stkqty);
                    if (addflg != 1) {
                        if (rate > 0) {
                            tr.find(".rate").val(rate);
                            tr.find(".ratebfdisc").val(ratebfdisc);
                        } else {
                            tr.find(".rate").val(m.rate);
                            tr.find(".ratebfdisc").val(m.rate);
                        }
                        if (sintrate > 0) {
                            tr.find(".sintrate").val(sintrate);
                        } else {
                            tr.find(".sintrate").val(m.sintrate);
                        }
                    } else {
                        tr.find(".ratebfdisc").val(m.rate);
                        tr.find(".sintrate").val(m.sintrate);

                    }
                    tr.find(".stkqty").val(m.stkqty);
                    tr.find(".qty").val("0");


                    tr.find(".msp").val(m.msp);
                    tr.find(".cost").val(m.cost);
                    tr.find(".unit").val(m.unit).trigger("change");
                    //                $("#overlay_form").show();
                    var myEcho = "<h3>M.S.P = " + m.msp + "</h3>";
                    $(".genotp").hide();
                    $("#browdata").html(myEcho);
                }
            });
        } else {
            tr.find(".barcode").val("");
            tr.find(".rate").val("0");
            tr.find(".sintrate").val("0");
            tr.find(".ratebfdisc").val("0");
            tr.find(".qty").val("0");
            tr.find(".mrp").val("0");
            tr.find(".amount").val("0");
        }
        caltran();
    }

    function showMsp() {
        //        var tr = $(this).closest("tr"),
        //                itemname = tr.find(".item").val(),
        //                data = {itemname: itemname};


        var itemname = $(document.activeElement.closest("tr")).find('.item').val(),
                data = {itemname: itemname};


        $.ajax({
            type: 'GET',
            dataType: 'json',
            url: "getItemMsp_new.php?m=a",
            data: data,
            success: function (response) {
                var m = response;
                var str = "MSP  = " + m.msp;
                var result = str;


                alert(result);
                //                $("#overlay_form").show();
                //                var myEcho = "<h3>M.S.P = " + m.msp + "</h3>";
                //                $("#browdata").html(myEcho);
                //                $(".ratemspless").hide();
                //                $(".lesdsotp").hide();
                ////                $(".normotp").show();
                //                $(".close_form1").hide();
                //                $(".genotp").hide();
            }
        });
    }

    function validProdType() {
        var prodtype = $(".prodtype").val();

        if (prodtype == "") {
            $(".barcode").prop("disabled", true)
            $(".item").prop("disabled", true)
            $(".prodtype").select2("open");
            alert("Please Select The Product Type");
        } else {
            $(".barcode").prop("disabled", false);
            $(".item").prop("disabled", false);
        }
    }

    ///////////////////////////////////////////////////IMP - END//////////////////////////////////////////////////

    ///////////////////////////////////////////////////CALCULATION - START//////////////////////////////////////////////////



    function mainCal() {
        var subtotal = $(".subtotal").val(),
                litemdisc = $(".litemdisc").val(),
                cdiscperc = $(".cdiscperc").val(),
                cdiscamt = ((subtotal * cdiscperc) / 100).toFixed(2),
                //                cdiscamt = (((subtotal - litemdisc) * cdiscperc) / 100).toFixed(2),
                coukg = $('.coukg').val(),
                courate = $(".courate").val(),
                lesother = $(".lesother").val(),
                couamt = (parseFloat(coukg) * parseFloat(courate)).toFixed(2);
        var taxable = parseFloat(subtotal) - parseFloat(litemdisc) - parseFloat(lesother);

        var cgstperc = parseFloat($(".cgstperc").val());
        var sgstperc = parseFloat($(".sgstperc").val());
        var igstperc = parseFloat($(".igstperc").val());

        var cgstamt = taxable * cgstperc / 100;
        var sgstamt = taxable * sgstperc / 100;
        var igstamt = taxable * igstperc / 100;
        //                netamt = (parseFloat(subtotal) - parseFloat(litemdisc) - parseFloat(cdiscamt) - parseFloat(lesother) + parseFloat(couamt)).toFixed(0),
        var netamt = (parseFloat(subtotal) - parseFloat(litemdisc) + parseFloat(cgstamt) + parseFloat(sgstamt) + parseFloat(igstamt)).toFixed(0),
                ladvance = $(".ladvance").val(),
                balance = (parseFloat(netamt) - parseFloat(ladvance)).toFixed(0),
                dcperc = $(".dcperc").val(),
                dcbperc = $(".dcbperc").val(),
                dcamt = Math.round((netamt * dcbperc / 100) * dcperc / 100);

        if (dcamt > 0) {
            if (dcamt > netamt) {
                $(".dcbperc").val("0");
                //                $(".dcamt").val("0");
                alert('Driver Amount Cannot Be Greater than Net Amount');
                $(".dcperc").focus();
            }
        }

        var totalamount = $(".totalamount").val(),
                roundoff = $(".roundoff").val(),
                redeempoint = $(".redeempoint").val(),
                pointrate = $(".pointrate").val(),
                redeem = redeempoint * pointrate,
                final = parseFloat(totalamount) + parseFloat(roundoff) - parseFloat(redeem);
        $(".redeem").val(redeem);
        $(".netamt").val(final);




        $(".cdiscamt").val(cdiscamt);
        $(".couamt").val(couamt);
        //        $(".netamt").val(netamt);
        $(".balance").val(balance);
        $(".dcamt").val(dcamt);

        //        $(".taxamt").val(taxable.toFixed(2));
        //        $(".igstamt").val(igstamt.toFixed(2));
        //        $(".cgstamt").val(cgstamt.toFixed(2));
        //        $(".sgstamt").val(sgstamt.toFixed(2));


    }

    printLast();

    function printLast() {
        var vouchno = $(".vouchno").val(),
                para = $(".para").val(),
                link = "salegstmulti_print.php?vouchno=" + vouchno;

        $.ajax({
            type: "POST",
            datatype: "json",
            data: {vouchno: vouchno},
            url: "print_last.php",
            success: function (response) {
                if (response.success == true) {
                    window.open(link, "_blank");
                }
            },
            error: function (request, errorThrown, textStatus) {

            }
        });
    }


    function checkMspTotal() {
        var subtotal = $(".subtotal").val(),
                cdiscamt = $(".cdiscamt").val(),
                //                cdiscamt = (((subtotal - litemdisc) * cdiscperc) / 100).toFixed(2),
                lesother = $(".lesother").val(),
                msptotal = $(".msptotal").val(),
                //                msptotal = $(".msptotal").val(),
                otpdssucs = $(".otpdssucs").val(),
                newtotal = subtotal - cdiscamt - lesother;
        if (otpdssucs == "1") {
            $("#finishTab").show();
            //            $("#ssubmit").show();

        } else {
            if (msptotal > newtotal) {
                $("#overlay_form").show();
                $("#finishTab").hide();
                //                $("#ssubmit").hide();
                $(".normotp").hide();
                $(".lesdsotp").show();
                $("#close_form1").show();
                $("#close_form").hide();

            } else {
                $("#overlay_form").hide();
                $("#finishTab").show();
                //                $("#ssubmit").show();

            }
        }


    }
    ///////////////////////////////////////////////////CALCULATION - END  //////////////////////////////////////////////////


    $("#close_form").click(function () {
        var trimidge = $("#idget").val();

        $("#rate" + trimidge).removeAttr("readonly", true);
        //        $(".rate").removeAttr("readonly", true);
        //        alert("rate" + trimidge);
        $("#rate" + trimidge).focus();
        $("#rate" + trimidge).val("0");
        $("#overlay_form").hide();

        //        $(".rate").val("0");
        $("#finishTab").show();
        //        $("#ssubmit").show();


    });
    $("#close_form1").click(function () {
        $("#overlay_form").hide();
        //        $(".les").removeAttr("readonly", true);
        $(".cdiscperc").val("0");
        $(".cdiscamt").val("0");
        $(".lesother").val("0");
        $(".cdiscperc").focus();
        $("#finishTab").show();
        //        $("#ssubmit").show();


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

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

    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;
        }
        $(".otpsend").val("");
        $(".otprecv").val("");
        $(".otpsucs").val("");
        //        $(".otprowsucs").val("");
        //        $(".otpvalue").val("");
        //        $(".idget").val("");
        ctr++;
        $('#items').val(ctr);
        var detail = ".fetchpart_" + ctr;
        var focusfield = ".focusfield_" + ctr;
        $.post('salegstmulti_add.php', {ctr: ctr, hide: hide_check, prodtype: prodtype}, function (data) {
            $(data).appendTo('.tbody');

            $(detail).select2();
            $(focusfield).focus();
            if (prodtype == "") {
                $(".barcode").prop("disabled", true);
                $(".item").prop("disabled", true);
            }


//            $(".barcode").scannerDetection({
//                //https://github.com/kabachello/jQuery-Scanner-Detection
//
//                timeBeforeScanTest: 200, // wait for the next character for upto 200ms
//                avgTimeByChar: 40, // it's not a barcode if a character takes longer than 100ms
//                preventDefault: true,
//                endChar: [13],
////        ignoreIfFocusOn: '.form',
//                onComplete: function (barcode, qty) {
//                    var nofind = 0;
////            $(this).val(barcode);
//
////                    $('#saledtltab').find('tr').each(function () {
////                        var tr = $(this),
////                                tqty = tr.find(".qty").val(),
////                                tbarcode = tr.find(".barcode").val();
////
////                        if (tbarcode == barcode) {
////                            tr.find(".qty").val(parseFloat(tqty) + 1);
////                            nofind = 1;
////                            dont = 1;
////                            caltran();
////                            return false;
////                        }
////
////                    });
//
//                    if (nofind == 0) {
//                        var $row = $(".barcode").last().closest("tr"),
//                                prodtype = $(".prodtype").val();
//                        $row.find(".barcode").val(barcode);
//                        $.post('show_item_dtl.php', {itemcode: barcode, prodtype: prodtype}, function (data) {
//                            if (barcode != '') {
//                                if (data != '') {
//                                    $row.find(".item").html(data).trigger("change");
////                                    $row.find(".qty").val(1);
//                                    if ($row.find(".stkqty").val() > 0) {
//                                        $row.find(".qty").val(1);
//                                    } else {
//                                        $row.find(".qty").val(0);
//                                    }
////                        caltran();
////                        AddRows();
//                                    dont = 1;
//                                    $row.find(".discperc").focus();
//
//                                    //                $row.find(".item").html(data).trigger("change");
//
//                                } else {
//                                    $row.find(".barcode").val("");
//                                    alert("Barcode does not exist.");
//                                }
//                            }
//                            //            $row.find(".itemcode").val(itemcode);
//                        });
//                    }
//
//                } // main callback function	,
//                ,
//                onError: function (string, qty) {
//
////	$('#userInput').val ($('#userInput').val()  + string);
//
//                }
//
//
//            });
        });
//        var ictr = $("#items").val(),
//            newctr = parseFloat(ictr) + 1; 
//        $("#barcode_" + newctr).focus();
//            $(detail).focus();

    }

});

