$(document).ready(function () {
    $("body").off('click').on("click", '.remove', remove);
    $("body").on("click", '.reqModal', showImgModal);
    $("body").on("blur", '.unitname', autoAddRows);
    $("body").on("change", '.itemgrp', GetItem);
    $("body").on("change keyup blur", '.item', showDetail);
    $("body").on("change keyup blur", '.item', getDispUnit);
    $("body").on("change keyup blur", '.item', getStkUnit);
    $("body").on("change keyup blur", '.status', getApprvd);
    $("body").on("change blur keyup", '.item, .stkunit, .unit, .qty, .itempart', checkUnit);
    $("body").on("change blur keyup ", '.item, .qty,.vol', checkCount);
    $("body").on("keyup focus blur", '.qty, .rate, .amount, .advance,.gstperc,.addgst,.unload,.delvchg', itemCal);


    $(".applbl").hide();
    $(".apprvdt").hide();
    function getApprvd() {
        var status = $(".status").val(),
            apprvdt = $(".apprvdt").val();
        if (status == "A") {
            $(".applbl").show();
            $(".apprvdt").show();

        } else {
            $(".applbl").hide();
            $(".apprvdt").hide();
        }
        
    }

    function itemCal() {

        var tr = $(this).closest("tr"),
                amount = 0, val = 0, val1 = 0 , transport = 0;
        var qty = tr.find(".qty").val() || 0,
                calby = tr.find(".calby").val(),
                unit = tr.find(".unit").val(),
                rate = tr.find(".rate").val() || 0,
                transpamt = tr.find(".transpamt").val() || 0;
             

        if (rate > 0) {
            if (calby == 'S') {
                amount = unit * rate;
                transport = unit * transpamt;
            } else {
                amount = qty * rate;
                transport = qty * transpamt;
            }
            
            var fnamt = parseFloat(amount) + parseFloat(transport);
            tr.find(".amount").val(fnamt);
        }

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

        var gstperc = $(".gstperc").val() || 0,
           unload = $(".unload").val() || 0,
           delvchg = $(".delvchg").val() || 0,
           addgst = 0;
        
        var advance = $(".advance").val() || 0;
//        var totamt = $(".totamt").val();
        var finamt = Math.round(parseFloat(tot) - parseFloat(advance) + parseFloat(unload) + parseFloat(delvchg));

        if (gstperc > 0) {
            addgst = ((gstperc * finamt) / 100).toFixed(2);
        } else {
            addgst = $(".addgst").val();
        }
        $(".addgst").val(addgst);

        var final = Math.round(parseFloat(finamt) + parseFloat(addgst));
        $('.finaltot').val(final);

    }

    function checkCount() {
        var val1 = 0;
        var val2 = 0;
        var val3 = 0;
        $(".item").each(function () {
            if (!isNaN(this.value) && this.value.length != 0) {
                val1 += 1;
            }
        });
        $(".vol").each(function () {
            if (!isNaN(this.value) && this.value.length != 0) {
                val2 += parseFloat(this.value);
            }
        });
        $(".qty").each(function () {
            if (!isNaN(this.value) && this.value.length != 0) {
                val3 += parseFloat(this.value);
            }
        });
        $(".totvol").val(val2);
        $(".totqty").val(val3);
        $(".totitem").val(val1);
    }


    function checkUnit() {
        var tr = $(this).closest("tr"),
                itemgrp = tr.find(".itemgrp").val(),
                itemcode = tr.find(".item").val(),
                stkunit = tr.find(".stkunit").val(),
                itempart = tr.find(".itempart").val(),
                unit = tr.find(".unit").val(),
                qty = tr.find(".qty").val(),
                vol = tr.find(".vol").val();
        if (qty > 0) {
            $.ajax({
                type: 'GET',
                dataType: 'json',
                url: "get_Vol.php",
                data: "stkunit=" + stkunit + "&itemcode=" + itemcode + "&unit=" + unit + "&qty=" + qty + "&vol=" + vol + "&itempart=" + itempart + "&itemgrp=" + itemgrp,
                success: function (response) {
                    var vol = response.vol;
                    var stkvol = response.stkvol;
                    tr.find('.vol').val(vol);
                    tr.find('.stkvol').val(stkvol);
                },
                error: function (request, textStatus, errorThrown) {
                    alert(errorThrown);
                }
            });
        }
    }

    function GetItem() {
        var tr = $(this).closest("tr"),
                itemcode = tr.find(".item").val(),
                itemgrp = tr.find(".itemgrp").val();
        $.post('get_Item.php', {itemgrp: itemgrp, itemcode: itemcode}, function (data) {
            if (data != '') {
                tr.find(".item").html(data).trigger('change');
                tr.find(".item").focus();
            }
        });
    }

    function showImgModal() {
        var tr = $(this).closest("tr"),
          vouchno = $(".vouchno").val(),
          srno = tr.find(".srno").val();
        if (vouchno != "" && srno != "") {
          $.post(
            "showImageDiv.php",
            { vouchno: vouchno, srno: srno },
            function (data) {
              if (data != "") {
                $(".imagefetch").html(data);
                $(".showingModal").modal("show");
              }
            }
          );
        }
      }

    function getDispUnit() {
        var tr = $(this).closest("tr"),
                itemcode = tr.find(".item").val();
        $.post('get_Unit.php', {itemcode: itemcode, flag: 'I', disp: 'D'}, function (data) {
            if (data != '') {
                tr.find(".unit").html(data).trigger('change');
//                tr.find(".unit").focus();
            }
        });
    }

    function getStkUnit() {
        var tr = $(this).closest("tr"),
                itemcode = tr.find(".item").val();
        $.post('get_Unit.php', {itemcode: itemcode, flag: 'I', disp: 'S'}, function (data) {
            if (data != '') {
                tr.find(".stkunit").val(data);

//                tr.find(".stkunit").html(data).trigger('change');
//                tr.find(".stkunit").focus();
            }
        });
    }

    function showDetail() {
        var tr = $(this).closest("tr");
        var name = tr.find('.item').val();
        $.ajax({
            type: 'GET',
            dataType: 'json',
            url: "get_itemrate_dtl.php",
            data: "name=" + name + "",
            success: function (response) {
                var hsncode = response.hsncode;
                $(tr.find('.hsncode')).val(hsncode);
            },
            error: function (request, textStatus, errorThrown) {
                alert(errorThrown);
            }
        });
    }



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

    function autoAddRows() {
        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;
        }
        ctr++;
        $('#items').val(ctr);
        var detail = ".fetchpart_" + ctr;
        $(detail).select2();
        $.post('estimate_add.php', {ctr: ctr, hide: hide_check}, function (data) {
            $(data).appendTo('.tbody');

        });
    }
});