$(document).ready(function () {
    $("body").off('click').on("click", '.remove', remove);
//    $(".tbody").on("blur", '.rate', autoAddRows);
    $("body").on("keyup focus blur", '.taka, .qty, .flag, .flagqty, .invqty, .batch, .actbatch, .totqty, .qty, .invqty, .rate, .amount', itemCal);
//    $("body").on("keyup focus blur", '.rate, .amount', amtCal);
    $("body").on("blur", '.totqty', checkTotqty);
    $("body").on("blur", '.totqty', addQty);
    $("body").on("blur", '.flagqty', addFlag);
//    $("body").on("keyup focus blur", '.flag', checkFlag);
    $("body").on("keyup focus blur", '.flagqty', checkFlagQty);
    $("body").on("keyup focus blur", '.rate, .amount,.discount, .discperc, .frgperc, .freight,.labour,.tempo,.packing,.allchrg', mainbCal);
    $("body").on("change focus", '.item', getItemdtl);
    $("body").on("click", '#close_form', closeForm);
    $("body").on("click", '.mycheck2', check2);
    $("body").on("click", '.mycheck', check);
    $("body").on("blur", '.batch', checkSave);
    $("body").on("blur change", '.customer', getBroker);
//    $("body").on('blur change', '.item', getItem);
    $("body").on('blur change', '.itemcode, .item', showdtl);
    $("body").on("change", '.brand', filterItem);
//    $("body").on("change", '.itemcode', getDet);


    function filterItem() {
        var tr = $(this).closest("tr");
        var brand = tr.find(".brand").val();
        $.post('get_ditem.php', {brand: brand}, function (data) {
            tr.find("#itemcode").html(data);
        });
    }
//    function filterItem() {
//        var tr = $(this).closest("tr");
//        var brand = tr.find(".brand").val();
//        $.post('get_ditem.php', {brand: brand}, function (data) {
//            tr.find("#itemcode").html(data);
//        });
//    }
    function showdtl() {
        var $row = $(this).closest("tr");
        var brand = $row.find(".brand").val();

        var name = $row.find('.itemcode').val();
        $.ajax({
            type: 'GET',
            dataType: 'json',
            url: "show_item_dtl.php",
            data: "name=" + name + "&brand=" + brand,
            success: function (response) {
//                    var barcode = response.barcode;
                if (response.selling > 0) {
                    var rate = response.selling;
                }
                if (response.name != "") {
                    var name = response.name;

                }
//                    $($row.find('.barcode')).val(barcode);
                $($row.find('.rate')).val(rate);
                $($row.find('.item')).val(name);

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

//
//    function getItem() {
//        var $row = $(this).closest("tr");
//        var brand = $row.find('.brand').val();
//        
//        $.post('get_ditem.php', {brand: brand}, function (data) {
//            $(".item").val(data);
//            var item = $(".item").select2();
//            item.val(data).trigger("change");
//            $($row.find('.item')).val(item);
//        });
//    }


    function getItemdtl() {
        var vouchno = $(".vouchno").val();
        var source = $(".source").val();
        var godown = $(".godown").val();
        var count = $("#items").val();

        var tr = $(this).closest("tr");
        var itemcode = tr.find(".itemcode").val();
        var brand = tr.find(".brand").val();

        tr.find(".containerno").addClass("oncheck");

        tr.find(".totqty").addClass("ogtotqty");
        tr.find(".baleqty").addClass("ogbaleqty");
        tr.find(".qty").addClass("ogqty");


        $.post('debnote_itemDtl.php', {itemcode: itemcode, brand: brand, godown: godown, count: count, source: source, vouchno: vouchno}, function (data) {
            $("#browdata").html(data);
            $("#check_0").focus();
        });
        $("#overlay_form").show("fast");
    }


    function getBroker() {
        var customer = $(".customer").val();
        $.post('get_broker.php', {customer: customer}, function (data) {
            $(".broker").val(data);
            var broker = $(".broker").select2();
            broker.val(data).trigger("change");
        });
    }

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

    function checkSave() {
        var vouchno = $(".vouchno").val(),
                godown = $(".godown").val(),
                source = $(".source").val(),
                tr = $(this).closest("tr"),
                srno = tr.find(".srno").val(),
                item = tr.find(".item").val(),
                actbatch = tr.find(".actbatch").val();
        $.post('sale_SaveBatch.php', {
            vouchno: vouchno,
            item: item,
            godown: godown,
            source: source,
            srno: srno,
            actbatch: actbatch}, function (data) {
        });
    }
    function addQty() {
        var vouchno = $(".vouchno").val(),
                tr = $(this).closest("tr"),
                srno = tr.find(".srno").val(),
                item = tr.find(".item").val(),
                actbatch = tr.find(".actbatch").val(),
                totqty = tr.find(".totqty").val();
        $.post('sale_addQty.php', {
            vouchno: vouchno,
            srno: srno,
            item: item,
            totqty: totqty,
            actbatch: actbatch}, function (data) {
        });
    }
    function addFlag() {
        var vouchno = $(".vouchno").val(),
                tr = $(this).closest("tr"),
                srno = tr.find(".srno").val(),
                item = tr.find(".item").val(),
                actbatch = tr.find(".actbatch").val(),
                flag = tr.find(".flag").val(),
                flagqty = tr.find(".flagqty").val();
        $.post('sale_addFlag.php', {
            vouchno: vouchno,
            srno: srno,
            item: item,
            flag: flag,
            flagqty: flagqty,
            actbatch: actbatch}, function (data) {
        });
    }
    function checkTotqty() {
        var tr = $(this).closest("tr");
        var totqty = parseFloat(tr.find(".totqty").val());
        var dtotqty = parseFloat(tr.find(".dtotqty").val());
        if (totqty > dtotqty) {
            alert("Total Qty. Exceeds Stock");
            tr.find(".totqty").val("0");
            tr.find(".taka").val("0");
            tr.find(".qty").val("0");
        }
    }
//    function checkFlag(){
//        var tr      = $(this).closest("tr");
//        var flag    = tr.find(".flag").val();
//        var dflag   = tr.find(".dflag").val();
//        if(flag > dflag){
//            alert("No. Of Flag Exceeds Stock");
//            tr.find(".flag").val('0');
//        }
//    }
    function checkFlagQty() {
        var tr = $(this).closest("tr");
        var flag = parseFloat(tr.find(".flag").val());
        var dflag = parseFloat(tr.find(".dflag").val());
        var flagqty = parseFloat(tr.find(".flagqty").val());
        var dflagqty = parseFloat(tr.find(".dflagqty").val());
        if (flag > dflag) {
            alert("No. Of Flag Exceeds Stock");
            tr.find(".flagqty").val("0");
            tr.find(".flag").val("0");
        }
    }


    function check2() {
        var tr = $(this).closest("tr");

        var actbatch = tr.find(".checkactbatch").val();
        var totqty = tr.find(".checktotqty").val();
        var qty = tr.find(".checkqty").val();
        var baleqty = tr.find(".checkbaleqty").val();
        
        $(".oncheck").val(actbatch);
        $(".ogqty").val(qty);
        $(".ogbaleqty").val(baleqty);

        $(".ogtotqty").val(totqty);
        closeForm();
        $(".oncheck").closest("tr").find(".rate").focus();
        $(".oncheck").removeClass("oncheck");
        $(".ontotqty").removeClass("ontotqty");
        $(".onqty").removeClass("onqty");
        $(".onbaleqty").removeClass("onbaleqty");

        $(".ogcheck").removeClass("ogcheck");
        $(".ogtotqty").removeClass("ogtotqty");
        $(".ogqty").removeClass("ogqty");
        $(".ogbaleqty").removeClass("ogbaleqty");
        $(".ogtaka").removeClass("ogtaka");
        $(".ogacttaka").removeClass("ogacttaka");
        
    }

    function check() {
        var tr = $(this).closest("tr");
        var actbatch = tr.find(".checkactbatch").val();
        var totqty = tr.find(".checktotqty").val();
        var flag = tr.find(".checkflag").val();
        var flagqty = tr.find(".checkflagqty").val();

        $(".oncheck").val(actbatch);
        $(".ontotqty").val(totqty);
        $(".onflag").val(flag);
        $(".onflagqty").val(flagqty);
        closeForm();
        $(".oncheck").closest("tr").find(".batch").focus();
        $(".oncheck").removeClass("oncheck");
        $(".ontotqty").removeClass("ontotqty");
        $(".onflag").removeClass("onflag");
        $(".onflagqty").removeClass("onflagqty");

        $(".ogcheck").removeClass("ogcheck");
        $(".ogtotqty").removeClass("ogtotqty");
        $(".ogflag").removeClass("ogflag");
        $(".ogflagqty").removeClass("ogflagqty");
        $(".ogtaka").removeClass("ogtaka");
        $(".ogacttaka").removeClass("ogacttaka");
        $(".ogqty").removeClass("ogqty");
    }

    function closeForm() {
        $("#overlay_form").hide("fast");
    }
//    function autoAddRows() {
//        var ctr = $('#items').val();
//        var tr = $(this).closest("tr");
//        var srno = tr.find(".srno").val();
//        if (srno == ctr) {
//            AddRows();
//        }
//    }

    function remove() {
        var tr = $(this).closest("tr"),
                srno = tr.find(".srno").val(),
                vouchno = $(".vouchno").val(),
                source = $(".source").val();

        $.post('del_dumstock.php', {
            vouchno: vouchno,
            srno: srno,
            source: source}, function (data) {
            tr.remove();
        });

    }

    function AddRows() {
        var dctr = $('#items').val();
        var hide_check = "";
        if ($("#del_all").prop("checked")) {
            hide_check = 0;
        } else {
            hide_check = 1;
        }
        var detail = ".fetchpart_" + dctr;
        $.post('outward_add.php', {ctr: dctr, hide: hide_check}, function (data) {
            $(data).appendTo('.tbody');
            dctr++;
            $('#items').val(dctr);
            $(detail).select2();
        });
    }

    function itemCal() {
        var tr = $(this).closest("tr");
        var baleqty = tr.find(".baleqty").val();
        var qty = tr.find(".qty").val();
        var totqty = qty * baleqty;
        tr.find(".totqty").val(totqty);
        var rate = tr.find(".rate").val();
//        var invqty = tr.find(".invqty").val();
        var amt1 = rate * qty;
        var amt = amt1.toFixed(2);
        tr.find(".amount").val(amt);
        mainbCal();
    }

//    function amtCal() {
//        var tr = $(this).closest("tr");
//        var rate = tr.find(".rate").val();
//        var invqty = tr.find(".invqty").val();
//        var amt1 = rate * invqty;
//        var amt = amt1.toFixed(2);
//        tr.find(".amount").val(amt);
//        mainbCal();
//    }

    function mainbCal() {
        var tot = 0;
        var val = 0;
        var totfrg = 0;
        var totlab = 0;
        var tottemp = 0;
        var totpack = 0;
        var totallchrg = 0;
        var netamt = 0;

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

        var discperc = parseFloat($(".discperc").val());
        var subtotal = parseFloat($(".subtotal").val());
        var totfrg = parseFloat($(".freight").val());
        var totlab = parseFloat($(".labour").val());
        var tottemp = parseFloat($(".tempo").val());
        var totpack = parseFloat($(".packing").val());
        var totallchrg = parseFloat($(".allchrg").val());
        var totdisc = subtotal * discperc / 100;
        $(".discount").val(totdisc);

        netamt = subtotal - totdisc + totfrg + totlab + tottemp + totpack + totallchrg;
        if (isNaN(netamt)) {
            $('.netamt').val("0");
        } else {
            $('.netamt').val(netamt);
        }
        $(".netamt").val(netamt);
    }
});