$(document).ready(function () {
    $("body").off('click').on("click", '.remove', remove);
    $("body").on("keyup change blur focus", ".qty, .rate, .amount,.discperc,.discamt,.vatperc,.sqft,.calby,.eamount,.samount, .purcost,.purcalby", calDetail);
    $("body").on("keyup change blur focus", ".ldiscperc, .tvatperc, .totdisc, .totadv,.addpack,.addgst,.totadv", mainCal);

//    $("body").on("focus blur change", ".vouchdt", getvoucher);
//    $("body").on("blur", ".mobile", getParty);
    $("body").on("blur", '.rate', autoaddrow);
    $("body").on("blur", '.eamount', autoaddrow2);
    $("body").on("change", '.paidby', chgType);
    $("body").on("keydown", 'td', updown);
    $("body").on("click", "#btn-sale", showSaleModal);
    // $("body").on("change", ".party", getMobNum);
    $("body").on("change", ".party", getAddress);
    $("body").on("change", ".architect, .commby", getComm);
    $("body").on("change", ".architect", getarchno);
//    $("body").on("change keyup", ".cashamt, .upiamt, .cashchk, .upichk, .bothchk", getCred);

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

//    function getCred(){
//        var cashamt = $(".cashamt").val(),
//                upiamt = $(".upiamt").val(),
//                netamt = $(".totbillamt").val(),
//                credamt = parseFloat(netamt) - parseFloat(cashamt) - parseFloat(upiamt);
//        $(".credamt").val(credamt);
//    }


    $(".cashchk").click(function () {
        if (($(".credchk").prop("checked") == true) || ($(".upichk").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 = $(".totbillamt").val();
            if ($(".cashchk").prop("checked")) {
                $(".cashamt").val(netamt);
            } else {
                $(".cashamt").val(0);
            }
        }
    });


    $(".upichk").click(function () {
        if (($(".cashchk").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 = $(".totbillamt").val();
            if ($(".upichk").prop("checked")) {
                $(".upiamt").val(netamt);
            } else {
                $(".upiamt").val(0);
            }
            $(".upiname").select2("open");
        }
    });



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

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


    $("#saleedit").click(function () {

        $('#hprevious, #hnext, #hsearch, #hprint, #hadd, #hedit, #hdelete, #hexit, #sdelotp,#whatsapp, #print, #saleedit').hide();
        $('body').find('.delchal, .mancp, .delivery_date, .srno, .items, #finishTab').removeAttr('disabled', 'disabled');
        $('#finishButt,  #scancel').show();

        $(".addflg").val("3");
//        $(".remove").show();
    });
    getComm2();
    function getComm2() {
        var architect = $(".architect").val();
        var commby = $(".commby").val();
        if (commby == "S") {
            $(".commsqft").show();
            $(".commperc").hide();
//            $(".commperc").val("0");
        } else {
            $(".commsqft").hide();
//            $(".commsqft").val("0");
            $(".commperc").show();
        }
    }
    function getComm() {
        var architect = $(".architect").val();
        var commby = $(".commby").val();
        if (commby == "S") {
            $(".commsqft").show();
            $(".commperc").hide();
//            $(".commperc").val("0");
        } else {
            $(".commsqft").hide();
//            $(".commsqft").val("0");
            $(".commperc").show();
        }

        $.ajax({
            type: "POST",
            dataType: "json",
            url: "get_Comm.php",
            data: {architect: architect},
            success: function (response) {
                if (response != "") {
                    var commperc = response.commperc,
                            commsqft = response.commsqft;

                    $(".commperc").val(commperc);
                    $(".commsqft").val(commsqft);


                }
            },
            error: function (request, textStatus, errorThrown) {},
        });
    }


    function getAddress() {
        var party = $(".party").val();

        $.ajax({
            type: "POST",
            dataType: "json",
            url: "get_parnum.php",
            data: {party: party},
            success: function (response) {
                if (response != "") {
                    var add1 = response.add1,
                            add2 = response.add2,
                            add3 = response.add3,
                            mobile = response.mobile;

                    $(".add1").val(add1);
                    $(".add2").val(add2);
                    $(".add3").val(add3);
                    $(".mobile").val(mobile);
                }
            },
            error: function (request, textStatus, errorThrown) {},
        });
    }

    function getarchno() {
        var architect = $(".architect").val();

        $.ajax({
            type: "POST",
            dataType: "json",
            url: "get_archno.php",
            data: {architect: architect},
            success: function (response) {
                if (response != "") {
                    var mobile = response.mobile;

                    $(".archno").val(mobile);
                }
            },
            error: function (request, textStatus, errorThrown) {},
        });
    }


    function showSaleModal() {
        var vouchno = $('.vouchno').val();
        var tr = $(this).closest('tr');
        var srno = tr.find(".srno").val();
        var itemname = tr.find(".itemname").val();
        $('#modelWindow').modal('show');



    }

    chgType();
    function chgType() {
        var paidby = $(".paidby").val();
        if (paidby == "C" || paidby == "B") {
            $(".totadv").attr("readonly", true);
            $(".totadv").val("0");
            mainCal();
        } else {
            $(".totadv").removeAttr("readonly", true);

        }
//        if (paidby == "B") {
//            $(".bknm").show();
//        } else {
//            $(".bknm").hide();
//
//        }
    }
    function updown() {
        var tr = $(this).closest('tr'),
                newsrno = tr.find(".srno").val(),
                srno = parseFloat(newsrno) - 2,
                curcls = $(this).attr('class');

        $(document).keydown(function (event) {
            if (event.keyCode == 40) { // Down key maps to keycode `40`
                if (curcls == 'p2') {
                    $('#rate_' + newsrno).focus();
                    $('#rate_' + newsrno).select();
                } else if (curcls == 'p1') {
                    $('#qty_' + newsrno).focus();
                    $('#qty_' + newsrno).select();
                }
            }
        });


        $(document).keydown(function (event) {
            if (event.keyCode == 38) { // Up key maps to keycode `38`
                if (curcls == 'p2') {
                    $('#rate_' + srno).focus();
                    $('#rate_' + srno).select();
                } else if (curcls == 'p1') {
                    $('#qty_' + srno).focus();
                    $('#qty_' + srno).select();
                }
            }
        });
    }


    $("#hedit").click(function () {
        $("#submit").hide();
    });
//    $("#submit").click(function () {
    $("#submit").hide();
//    });

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



        var party = $('.party').val(),
                salesman = $('.salesman').val(),
                godown = $('.godown').val(),
                totbillamt = $('.totbillamt').val(),
                valid = true,
                cashamt = $('.cashamt').val(),
                credamt = $('.credamt').val(),
                upiamt = $('.upiamt').val(),
                totcamt = parseFloat(cashamt) + parseFloat(credamt) + parseFloat(upiamt),
                a = 1;

        $(".tbody").find('tr').each(function () {
            var row = $(this);
            var srno = row.find('.srno').val();
            var qty = row.find('.qty').val();
            var itemname = row.find('.itemname').val();

            if (qty > 0 && itemname == "") {
                alert("Itemname Empty at Sr. " + srno);
                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 (godown == '') {
            var message = "Godown Cannot Be Empty";
            alert(message);
            $("#finishTab").show();

            return false;
            valid = false;
        }

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

            return false;
            valid = false;
        }

//        if (parseFloat(totbillamt) != parseFloat(totcamt)) {
//            $('.upiamt').val('0');
//            $('.cashamt').val('0');
//            $('.credamt').val('0');
//            $('.cashchk').focus();
//            alert('Cash, CC , Credit Total Amount Should Be Same As Netamt');
//            return false;
//            valid = false;
//        }


        if (valid) {
            var isValid = true;
            if (isValid) {
                $("#finishTab").hide();
                $("#submit").click();
                $("#cancel").hide();

            }
        }
    });



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

    }


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


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

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

    var lrno = $('.lrno').val();
    if (lrno != '') {
        $(".lrdetail").show();
    } else {
        $(".lrdetail").hide();
    }




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

    function calDetail() {

        var commby = $(".commby").val(),
                commperc = $(".commperc").val(),
                commsqft = $(".commsqft").val();

        var tr = $(this).closest("tr"),
                cartqty = tr.find(".cartqty").val(),
                qty = tr.find(".qty").val(),
                sqft = tr.find(".sqft").val(),
                calby = tr.find(".calby").val(),
                totqty = cartqty * qty,
                rate = tr.find(".rate").val(),
                discperc = tr.find(".discperc").val(),
                discamt = 0,
                vatperc = tr.find(".vatperc").val(),
                purcost = tr.find(".purcost").val(),
                purcalby = tr.find(".purcalby").val(),
                puramt = 0,
                subtot = 0,
                total = 0,
                amount = 0,
                suppamt = 0,
                vat = 0;


        if (calby == "S") {
            amount = (rate * sqft).toFixed(2);
        } else {
            amount = (rate * qty).toFixed(2);
        }
        if (purcalby == "S") {
            puramt = (purcost * sqft).toFixed(2);
        } else {
            puramt = (purcost * qty).toFixed(2);

        }

        if (commby == "S") {
            suppamt = (commsqft * sqft).toFixed(2);
        } else {
            suppamt = ((commperc * amount) / 100).toFixed(2);
        }

        tr.find(".suppamt").val(suppamt);


        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(".amount").val(amount);
        tr.find(".puramt").val(puramt);
        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,
                totcart = 0,
                totexp = 0,
                totadv = 0;
        $(".qty").each(function () {
            if (!isNaN(this.value) && this.value.length != 0) {
                totalqty += parseFloat(this.value);
            }
        });
        $(".totalqty").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);
            }
        });
        $(".totamt").val(totamt);

        $(".eamount").each(function () {
            if (!isNaN(this.value) && this.value.lenght != 0) {
                totcart += parseFloat(this.value);
            }
        });
        $(".cartpaid").val(totcart);

        $(".samount").each(function () {
            if (!isNaN(this.value) && this.value.lenght != 0) {
                totexp += parseFloat(this.value);
            }
        });
        $(".addpack").val(totexp);

//        $(".tottotal").val(tottotal);
        mainCal();
    }
    function mainCal() {
        var tdiscperc = $(".ldiscperc").val(),
                vatperc = $(".tvatperc").val(),
                amount = $(".totamt").val(),
                addpack = $(".addpack").val(),
                addgst = $(".addgst").val(),
                totadv = $(".totadv").val(),
                paidby = $(".paidby").val(),
                discamt = 0, vat = 0,
                totbal = 0;
        if (tdiscperc > 0) {
            discamt = ((tdiscperc * amount) / 100).toFixed(2);
        } else {
            discamt = $(".totdisc").val();
        }
        var subtot = amount - discamt;
        if (vatperc > 0) {
            vat = ((vatperc * subtot) / 100).toFixed(2);
        } else {
            vat = 0;
        }
        var finamt = Math.round(parseFloat(subtot) + parseFloat(vat) + parseFloat(addpack) + parseFloat(addgst));
        $(".totdisc").val(discamt);
        $(".totvat").val(vat);
        $(".tottotal").val(finamt);
        if (paidby == "C") {
            totadv = finamt;
        }
        $(".totadv").val(totadv);
        totbal = parseFloat(finamt) - parseFloat(totadv);
        $(".totbal").val(totbal);


    }


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

    $('#sldescadd').click(function () {
        AddSldescRows();
    });
    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;
        }
        var focusFld = ".focusFld_" + ctr;
        ctr++;
        $('#items').val(ctr);
        $.post('sale_add.php', {ctr: ctr, hide: hide_check, prodtype: prodtype, addflag: addflag}, function (data) {
            $(data).appendTo('.tbody');

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

    function AddRows2() {
        var ctr = $('#items2').val();
        var addflag = $('.addflag').val();
        var hide_check = "";
        var focusFld = ".focusFld_" + ctr;
        ctr++;
        $('#items2').val(ctr);
        $.post('saleexp_add.php', {ctr: ctr, hide: hide_check, addflag: addflag}, function (data) {
            $(data).appendTo('.tbodyexp');

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


    function AddSldescRows() {
        var ctr = $('#items3').val();
        var focusFld = ".focusFld_" + ctr;
        ctr++;
        $('#items3').val(ctr);
        $.post('saleModal_data.php', {ctr: ctr}, function (data) {
            $(data).appendTo('.tbody2');
            $(focusFld).focus();
        });
    }



});