$(document).ready(function () {
  $("body").off("click").on("click", ".remove", remove);
  //    $(".tbody").on("blur", '.rate', autoAddRows);
  //    $("body").on("keyup focus blur", ', .flagqty, .invqty', itemCal);
  $("body").on(
    "keyup focus blur",
    ".baleqty, .qty, .totqty, .rate, .amount",
    amtCal
  );
  $("body").on(
    "keyup focus blur",
    ".baleqty, .qty, .totqty, .rate, .amount,.discount, .discperc, .frgperc, .freight,.othchgs,.expamt",
    mainbCal
  );
  $("body").on("blur change", ".itemcode, .item", showdtl);
  //    $("body").on("keyup focus blur", '', discCal);
  $("body").on("change", ".brand", filterItem);
  $("body").on("focus", ".rate", autoAddRows);
  $("body").on("focus", ".expamt", autoadd2);

  //    $("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=" + encodeURIComponent(name) + "&brand=" + brand,
      success: function (response) {
        //                    var barcode = response.barcode;
        var name = response.name;
        if (response.cost > 0) {
          var rate = response.cost;
        }
        //                    $($row.find('.barcode')).val(barcode);
        $($row.find(".rate")).val(rate);
        $($row.find(".item")).val(name);
      },
      error: function (request, textStatus, errorThrown) {
        alert(errorThrown);
      },
    });
  }

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

  $("#addnew2").click(function () {
    SlexpAdd();
  });

  function autoAddRows() {
    var ctr = $("#items").val();
    var tr = $(this).closest("tr");
    var srno = tr.find(".srno").val();
    if (srno == ctr) {
      AddRows();
    }
  }

  function autoadd2() {
    if ($(this).closest("tr").is(":last-child")) {
      SlexpAdd();
    }
  }

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

  function SlexpAdd() {
    var ctr = $("#items2").val();
    var prodtype = $(".type").val();
    var hide_check = "";
    if ($("#del_all").prop("checked")) {
      hide_check = 0;
    } else {
      hide_check = 1;
    }
    var focusFld = ".focusFld_" + ctr;
    var detail = ".fetchpart_" + ctr;

    ctr++;
    $("#items2").val(ctr);
    $.post(
      "purchexp_add.php",
      { ctr: ctr, hide: hide_check, prodtype: prodtype },
      function (data) {
        $(data).appendTo(".tbodyexp");
        $(detail).select2();

        $(focusFld).focus();
      }
    );
  }

  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("purchase_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");
  //        var taka = tr.find(".taka").val();
  //        var qty = tr.find(".qty").val();
  //        var totqty = qty * taka;
  //        tr.find(".totqty").val(totqty);
  //
  //        var flag = tr.find(".flag").val();
  //        var flagqty1 = flag * 0.10;
  //        var flagqty = flagqty1.toFixed(2);
  //        tr.find(".flagqty").val(flagqty);
  //
  //        var invqty1 = totqty - flagqty;
  //        var invqty = invqty1.toFixed(2);
  //        tr.find(".invqty").val(invqty);
  //    }

  function amtCal() {
    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);
  }

  function mainbCal() {
    var tot = 0;
    var val = 0,
      valqty = 0,
      valtotqty = 0;
    var totexpamt = 0;
    var billamt = 0;

    $(".qty").each(function () {
      if (!isNaN(this.value) && this.value.length != 0) {
        valqty += parseFloat(this.value);
      }
    });

    $(".totqty").each(function () {
      if (!isNaN(this.value) && this.value.length != 0) {
        valtotqty += parseFloat(this.value);
      }
    });

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

    $(".expamt").each(function () {
      if (!isNaN(this.value) && this.value.lenght !== 0) {
        totexpamt += parseFloat(this.value);
      }
    });

    $(".totexpamt").val(totexpamt);

    var tot = parseFloat(val);
    $(".tqty").val(valqty);
    $(".tweight").val(valtotqty);
    $(".subtotal").val(val);

    var discperc = $(".discperc").val();
    var subtotal = $(".subtotal").val();
    var totdisc = (subtotal * discperc) / 100;
    $(".discount").val(totdisc);

    var freight = $(".freight").val();
    var othchgs = $(".othchgs").val();

    var billamt =
      subtotal - totdisc + parseFloat(freight) + parseFloat(othchgs);
    $(".billamt").val(billamt);

    var roe = $(".roe").val();

    var netamt = billamt * roe + parseFloat(totexpamt);
    if (isNaN(netamt)) {
      //            var netamt = subtotal - totdisc;
      $(".netamt").val(netamt);
    } else {
      $(".netamt").val(netamt);
    }
  }
});
