$(document).ready(function () {
    $("body").off('click').on("click", '.remove', remove);
    $("body").on("blur", '.gstperc', 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("click", '.reqModal', showImgModal);
//    $("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 change", '.qty, .rate, .amount,.gstperc,.oms,.unit,.delchg', itemCal);

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

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

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


        if (party == '') {
            var message = "Client Cannot Be Empty";
            alert(message);
            return false;
            valid = false;
            $("#submit").show();

        }

        if (valid) {
            var isValid = true;

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

            }
        }
    });


    $(".applbl").hide();
    $(".apprvdt").hide();

    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 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"),
                val = 0, val1 = 0;
        var qty = tr.find(".qty").val(),
                unit = tr.find(".unit").val(),
                gstperc = tr.find(".gstperc").val(),
                rate = tr.find(".rate").val(),
                amount = tr.find(".amount").val(),
                gstperc = tr.find(".gstperc").val(),
                gstamt = tr.find(".gstamt").val(),
                total = tr.find(".total").val(),
                totamt = 0,
                cgst3 = 0,
                cgst5 = 0,
                cgst12 = 0,
                cgst18 = 0,
                cgst28 = 0,
                igst3 = 0,
                igst5 = 0,
                igst12 = 0,
                igst18 = 0,
                igst28 = 0,
                cgst3a = 0,
                cgst5a = 0,
                cgst12a = 0,
                cgst18a = 0,
                cgst28a = 0,
                igst3a = 0,
                igst5a = 0,
                igst12a = 0,
                igst18a = 0,
                igst28a = 0,
                totgst3 = 0,
                totgst5 = 0,
                totgst12 = 0,
                totgst18 = 0,
                totgst28 = 0,
                totbillamt = 0;
        
//        if (rate > 0) {
            var amount = unit * rate;
//        }    
        tr.find(".amount").val(amount);
        
        gstamt = ((amount * gstperc) / 100).toFixed(2);
        totamt = (parseFloat(amount) + parseFloat(gstamt)).toFixed(2);

        tr.find(".gstamt").val(gstamt);
        tr.find(".total").val(totamt);

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

        $(".total").each(function () {
            if (!isNaN(this.value) && this.value.length != 0) {
                val1 += parseFloat(this.value);
            }
        });
        var delchg = $('.delchg').val();
        var totval = parseFloat(val1) + parseFloat(delchg) ;
        $('.netamt').val(totval);


        $('.tbody').find('tr').each(function () {
            var row = $(this),
                    oms = $('.oms').val(),
                    gstperc = row.find(".gstperc").val(),
                    crate = gstperc / 2,
                    camt = row.find('.gstamt').val() / 2,
                    irate = gstperc,
                    iamt = row.find('.gstamt').val();
//                    alert(gstperc);


            if (oms == "") {
                if (crate == 2.5) {
                    cgst5a = parseFloat(camt);
                    cgst5 += parseFloat(cgst5a);
                    igst5a = 0;
                } else if (crate == 6) {
                    cgst12a = parseFloat(camt);
                    cgst12 += parseFloat(cgst12a);
                    igst12a = 0;
                } else if (crate == 9) {
                    cgst18a = parseFloat(camt);
                    cgst18 += parseFloat(cgst18a);
                    igst18a = 0;
                } else if (crate == 14) {
                    cgst28a = parseFloat(camt);
                    cgst28 += parseFloat(cgst28a);
                    igst28a = 0;
                }

            } else {
                if (irate == 5) {
                    igst5a = parseFloat(iamt);
                    igst5 += parseFloat(igst5a);
                    cgst5a = 0;
                } else if (irate == 12) {
                    igst12a = parseFloat(iamt);     // the problem was here += used previously that is why it was adding iamt in igst12a
                    igst12 += parseFloat(igst12a);
                    cgst12a = 0;
                } else if (irate == 18) {
                    igst18a = parseFloat(iamt);
                    igst18 += parseFloat(igst18a);
                    cgst18a = 0;
                } else if (irate == 28) {
                    igst28a = parseFloat(iamt);
                    igst28 += parseFloat(igst28a);
                    cgst28a = 0;
                }

            }


        });

        totgst5 = parseFloat(cgst5) + parseFloat(cgst5) + parseFloat(igst5);
        totgst12 = parseFloat(cgst12) + parseFloat(cgst12) + parseFloat(igst12);
        totgst18 = parseFloat(cgst18) + parseFloat(cgst18) + parseFloat(igst18);
        totgst28 = parseFloat(cgst28) + parseFloat(cgst28) + parseFloat(igst28);

        $('.cgst5').val(cgst5.toFixed(2));
        $('.sgst5').val(cgst5.toFixed(2));
        $('.igst5').val(igst5.toFixed(2));

        $('.cgst12').val(cgst12.toFixed(2));
        $('.sgst12').val(cgst12.toFixed(2));
        $('.igst12').val(igst12.toFixed(2));



        $('.cgst18').val(cgst18.toFixed(2));
        $('.sgst18').val(cgst18.toFixed(2));
        $('.igst18').val(igst18.toFixed(2));

        $('.cgst28').val(cgst28.toFixed(2));
        $('.sgst28').val(cgst28.toFixed(2));
        $('.igst28').val(igst28.toFixed(2));

        $('.totgst3').val(totgst3.toFixed(2));
        $('.totgst5').val(totgst5.toFixed(2));
        $('.totgst12').val(totgst12.toFixed(2));
        $('.totgst18').val(totgst18.toFixed(2));
        $('.totgst28').val(totgst28.toFixed(2));
    }

//    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 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_gst_add.php', {ctr: ctr, hide: hide_check}, function (data) {
            $(data).appendTo('.tbody');

        });
    }


    $("body").on("keyup", ".ssearch", getSearchData);
    $("body").on("click", ".sload", getSearchData);
    $("body").on("click", "#search", getSearchData);

    //////////////////////////////////////////////Search Part - Start//////////////////////////////////////////////
    $(".snoRecord").hide();
    $(".sloader").hide();


    var imrangeFrom = 0,
            imrangeTo = 40;

    function getSearchData(pagination) {

        $(".sloader").show();

        if (pagination == 'prev') {
            if (imrangeFrom > 0) {
                imrangeFrom = (imrangeFrom - 40);
                imrangeTo = (imrangeTo - 40);
            }
        }
        if (pagination == 'next') {
            imrangeFrom = (imrangeFrom + 40);
            imrangeTo = (imrangeTo + 40);
        }

        var series = $(".series").val(),
                vouchno = $(".vouchno").val(),
                ssearch = $(".ssearch").val(),
                sfield = $(".sfield").val(),
                sortBy = $(".sortBy").val(),
                orderAs = $(".orderAs").val(),
                soperator = $(".soperator").val(),
                data = {ssearch: ssearch, sfield: sfield, sortBy: sortBy, orderAs: orderAs, soperator: soperator,
                    series: series, vouchno: vouchno, rangeFrom: imrangeFrom, rangeTo: imrangeTo},
                values = "";
        $.ajax({
            type: 'GET',
            dataType: 'json',
            url: "inward_search.php",
            data: data,
            success: function (response) {
                if (response == "") {
                    $(".snoRecord").show();
                    $(".snext").hide();
                } else {
                    $(".snext").show();
                    $(".snoRecord").hide();

                    $.each(response, function () {
                        values += "<tr class='clickable-row' data-href='" + this.action + "'>" +
                                "<td align='left' width='13%'>" + this.vouchno + "</td>" +
                                "<td align='left' width='13%'>" + this.mydt + "</td>" +
                                "<td align='left' width='13%'>" + this.godown + "</td>" +
                                "<td align='left' width='13%'>" + this.remark + "</td>" +
                                "<td align='left' width='5%'><a href='" + this.action + "' ><i class='fa fa-pencil'></i></a></td>" +
                                "</tr>";
                    });
                    $(".sloader").hide();
                    $(".sTbody").empty();
                    $(".sTbody").html(values);
                    if (response) {
                        $(".search-action-bar").show();
                    }
                }
            },
            error: function (request, textStatus, errorThrown) {

            }
        });
    }
    $("#search").click(function () {
        $(".searchModal").on('shown.bs.modal', function () {
            $(".ssearch").focus();
            $(".ssearch").val("");
            $(".sfield").val("1");
            getSearchData();
        });

        getSearchData();
    });
    $(".sprev").click(function () {
        getSearchData('prev');
    });
    $(".snext").click(function () {
        getSearchData('next');
    });


    //////////////////////////////////////////////Search Part - End  //////////////////////////////////////////////
});