$(document).ready(function () {
    $("body").off('click').on("click", '.remove', remove);
    $(".tbody").on("keyup change blur focus", ".qty, .rate, .amount,.discperc,.discamt,.vatperc", calDetail);
    $("body").on("keyup change blur focus", ".ldiscperc, .vatperc, .totdisc, .totadv", mainCal);
    $("body").on("blur", ".invno", chkinvno);
//    $("body").on("change keyup blur", ".qty, .rate,.totbillamt,.discperc,.roundoff,.freightperc,.packing,.courier", caltran);
    $("body").on("blur ", ".vatperc", autoadd);
//    $("body").on("click", "#submit ,#cancel", hide_but);

    $("form").submit(function () {

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


        if (party == '') {
            var message = "Party Cannot Be Empty";
            alert(message);
            return false;
            valid = false;
        }

        if (parseFloat(totbillamt) <= 0 || totbillamt == '') {
            var message = "Netamt Cannot zero";
            alert(message);
            return false;
            valid = false;
        }

        if (valid) {
            var isValid = true;

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

            }
        }
    });

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

            }
        }, 'json');
    });

    function autoadd() {
        if ($(this).closest('tr').is(":last-child")) {
            AddRows();
        }
    }

    $('.invno').blur(function () {
        $('.party').select2("open");
    });


    function calDetail() {
        var tr = $(this).closest("tr"),
                cartqty = tr.find(".cartqty").val(),
                qty = tr.find(".qty").val(),
                pairs = cartqty * qty,                
                rate = tr.find(".rate").val(),
                amount = (rate * pairs).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)).toFixed(2);

        tr.find(".pairs").val(pairs);
        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;

        $(".amount").each(function () {
            if (!isNaN(this.value) && this.value.lenght != 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);
        //     }
        // });
        // $(".total").each(function () {
        //     if (!isNaN(this.value) && this.value.lenght != 0) {
        //         tottotal += parseFloat(this.value);
        //     }
        // });

        $(".totamt").val(totamt);
        // $(".totdisc").val(totdisc);
        // $(".totvat").val(totvat);
        // $(".tottotal").val(totamt);
        mainCal();
    }

     function mainCal() {
        var tdiscperc = $(".ldiscperc").val(),
                vatperc = $(".vatperc").val(),
                amount = $(".totamt").val(),
                totadv = $(".totadv").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 = parseFloat(subtot) + parseFloat(vat),
                totbal = parseFloat(finamt) - parseFloat(totadv);
        $(".totdisc").val(discamt);
        $(".vatamt").val(vat);
        $(".tottotal").val(finamt);
        $(".totbal").val(totbal);
    }


    function chkinvno() {
        var invno = $('.invno').val();
        var party = $(".party").val();
        if (invno.length > 0) {
            $.post('check_inv_dtl.php', {invno: invno, party: party}, function (data) {
                if (data == 'success') {
                    alert('This Bill No. For This Party Already Exist');
                    $('.invno').val('');
                    $('.invno').focus();
                }
            });
        }
    }

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

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


    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;
        ctr++;
        $('#items').val(ctr);
        $.post('purchase_add.php', {ctr: ctr, hide: hide_check, prodtype: prodtype}, function (data) {
            $(data).appendTo('.tbody');

//            $(detail).select2();
            $(focusFld).focus();
//            caltran();
        });
    }




});