$(document).ready(function () {
    $("body").off('click').on("click", '.remove', remove);
//    $(".tbody").on("blur", '.rate', autoAddRows);
    $("body").on("change keyup blur", '.qty, .rate, .amount, .discperc, .total', itemCal);
//    $("body").on("keyup focus blur", '.rate, .amount', amtCal);
    $("body").on("keyup focus blur", '.qty, .rate, .amount, .subtotal, .litemdisc, .cdiscperc, .cdiscamt, .lesother, .cgstperc, .packing, .netamt', mainbCal);
    $("body").on("blur change", '.itemcode', GetItemFromCode);
    $("body").on("blur change focus", '.item', showDetail);
    $("body").on("focus", '.total', autoAddRows);
    $("body").on("click change blur", ".oms, .gstperc", gethsn);
    $("body").on("click change blur", ".oms, .gstperc", getGSTPerc);


    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');
        mainbCal();
    }

    function gethsn() {
//        var tr = $(this).closest("tr");
        var gstperc = $('.gstperc').val(),
                mgst = gstperc / 2;
//        $.post('gethsncode.php', {item: item}, function (data) {
//            tr.find('.hsncode').val(data.hsn);

//        if ($(".oms").prop('checked')) {
//            $('.igstperc').val(gstperc);
//            $('.cgstperc').val(0);
//            $('.sgstperc').val(0);
//
//        } else {
//            $('.cgstperc').val(mgst);
//            $('.sgstperc').val(mgst);
//            $('.igstperc').val(0);
//        }
        mainbCal();
        getGSTPerc();
//        }, 'json');
    }

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

    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();
//        }
    }

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

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

    function itemCal() {
        var tr = $(this).closest("tr"),
                qty = tr.find(".qty").val(),
                mrp = tr.find(".mrp").val(),
                rate = tr.find(".rate").val(),
                amount = Math.round(parseFloat(qty) * parseFloat(rate)),
                discperc = tr.find(".discperc").val(),
                discount = Math.round(discperc * amount / 100),
                total = Math.round(parseFloat(amount) - parseFloat(discount));

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

    function mainbCal() {
        var subtot = $(".subtotal").val();
        var litemdisc = $(".litemdisc").val();
//        var lesother = $(".lesother").val();
//        var cdiscperc = $(".cdiscperc").val();

        var cdiscamt = $(".cdiscamt ").val();
        var lesother = $(".lesother").val();
        var packing = $(".packing").val();



        var disc1 = Math.round(subtot - litemdisc);

        var discperc = $(".cdiscperc").val(),
                cdiscamt = Math.round((discperc * disc1) / 100);

        if (isNaN(cdiscamt)) {
            $('.cdiscamt').val("0");
        } else {
            $('.cdiscamt').val(cdiscamt);
        }


        var subtot1 = Math.round(subtot - litemdisc - cdiscamt - lesother);
//        var vatperc = $(".vatperc").val(),
//                vatamt = Math.round((vatperc * subtot1) / 100);
//
//        if (isNaN(vatamt)) {
//            $('.vatamt').val("0");
//        } else {
//            $('.vatamt').val(vatamt);
//        }

        var taxable = parseFloat(subtot1) + parseFloat(packing);


        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;


        $(".taxamt").val(taxable);
        $(".igstamt").val(igstamt);
        $(".cgstamt").val(cgstamt);
        $(".sgstamt").val(sgstamt);
//        var pack = $(".packing").val();

        var net = Math.round(parseFloat(taxable) + parseFloat(cgstamt) + parseFloat(sgstamt) + parseFloat(igstamt));

        if (isNaN(net)) {
            $('.netamt').val("0");
        } else {
            $('.netamt').val(net);
        }


    }

    function GetItemFromCode() {
        var $row = $(this).closest("tr");
        var itemcode = $row.find(".itemcode").val();
        $.post('show_item_dtl.php', {itemcode: itemcode}, function (data) {
            if (data != '') {
                $row.find(".item").html(data).trigger("change");
//                $row.find(".item").html(data).trigger("change");

            }
//            $row.find(".itemcode").val(itemcode);
        });
    }

    //getting rate from item
    function showDetail() {
        var tr = $(this).closest("tr");
        var name = tr.find('.item').val();
        var mrate = tr.find('.rate').val();
        $.ajax({
            type: 'GET',
            dataType: 'json',
            url: "get_itemrate_dtl.php",
            data: "name=" + name + "",
            success: function (response) {
                var code = response.code;
                var rate = response.rate;
                var cost = response.cost;
                var hsncode = response.hsncode;
                var msp = response.msp;
                var mrp = response.mrp;
                var unit = response.unit;
                $(tr.find('.itemcode')).val(code);
//                if ($(tr.find('.rate').val()) == '0') {

//                }
                if (mrate > 0 && name != code) {
                    $(tr.find('.rate')).val(mrate);
                } else {
                    $(tr.find('.rate')).val(cost);
                }
                $(tr.find('.msp')).val(msp);
                $(tr.find('.mrp')).val(mrp);
                $(tr.find('.hsncode')).val(hsncode);

                $(tr.find(".unit")).val(unit).trigger("change");
            },
            error: function (request, textStatus, errorThrown) {
                alert(errorThrown);
            }
        });
    }
});