$(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("focus", ".qty", autoaddrow);
    $("body").on("change", ".product", getDetail);
    $("body").on("change blur keyup", ".otpdsrecv", chkOtp);

    function chkOtp() {
        var otpdsrecv = $(".otpdsrecv").val();
        if (otpdsrecv.length == 6) {
            $.post('chkOtp.php', {otpdsrecv: otpdsrecv}, function (data) {
                $(".otpdssend").val(data);
            });
        }
    }

    function getDetail() {
        var tr = $(this).closest("tr"),
                prodname = tr.find(".product").val(),
                data = {prodname: prodname};
        $.ajax({
            type: 'GET',
            dataType: 'json',
            url: "getItDetail.php",
            data: data,
            success: function (response) {

                var m = response;

                tr.find(".rate").val(m.rate);
                tr.find(".unit").val(m.unit);


            }
        });

    }

    $(".gendsotp").click(function () {
        var party = $(".party").val(),
                subtotal = $(".subtotal").val(),
                vouchno = $(".vouchno").val(),
                data = {party: party, subtotal: subtotal, vouchno: vouchno};

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

                    alert("OTP Send to Registered Mobile No.");
                    $(".otpdsrecv").removeAttr("readonly", true);
                    $(".otpdsrecv").focus();
//                    $(".otpdssend").val(m.otp);
                    $("#submit").show();
                }


            }
        });
    });



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

    var otpdsrecv = $(".otpdsrecv").val();
    if (otpdsrecv != "") {
        $(".gendsotp").hide();
        $(".otpdsrecv").hide();
        $(".otplbl").hide();
        $("#hedit").hide();

    }

    $("form").submit(function () {
        $("#submit").hide();

        var party = $('.party').val(),
                otpdsrecv = $('.otpdsrecv').val(),
                totbillamt = $('.subtotal').val(),
                valid = true;

        if (otpdsrecv == "") {
            var message = "OTP Cannot Be Empty";
            alert(message);
            $("#submit").show();

            return false;
            valid = false;
        }

        var otpdssend = $('.otpdssend').val();
        if (otpdssend != "1") {
            var message = "OTP Mismatch";
            alert(message);
            $("#submit").show();

            return false;
            valid = false;
        }

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

            return false;
            valid = false;
        }

        if (parseFloat(totbillamt) <= 0 || totbillamt == '') {
            var message = "Netamt Cannot zero";
            alert(message);
            $("#submit").show();

            return false;
            valid = false;
        }

        if (valid) {
            var isValid = true;

            if (isValid) {
                $("#submit").hide();
                $("#cancel").hide();

            }
        }
    });

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

    function autoaddrow() {
        var ctr = $('#items').val();
        var tr = $(this).closest("tr");
        var srno = tr.find(".srno").val();
        if (srno == ctr) {
            AddRows();
        }
    }

    function calDetail() {
        var tr = $(this).closest("tr"),
                qty = tr.find(".qty").val(),
                rate = tr.find(".rate").val(),
                amount = (rate * qty).toFixed(2),
                discperc = tr.find(".discperc").val(),
                discamt = 0,
                vatperc = tr.find(".vatperc").val(),
                subtot = 0,
                total = 0,
                vat = 0;

        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(".amount").val(amount);
        tr.find(".discamt").val(discamt);
        tr.find(".vat").val(vat);
        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);
            }
        });

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

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

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

    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;
        }
        var focusFld = ".focusFld_" + ctr;
        var detail = ".fetchpart_" + ctr;

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

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