<script>

{*-- ここからjsでのデータ表示用 ---------------------------------------------------*}
function doHeaderEnable(pmode) { {*pmode:H Header有効・D 明細有効*}
  let h = $("#headerTop");
  let d = $("#detailTop");
  let m = $("#funcMenu");
  let h1 = h.find(".header1");
  let h2 = h.find(".header2");
  let w_newmode = common.getValue(h1.find(".newmode"));

  if (pmode == "H") { {*Header有効*}
    h1.removeClass("noevent");
    h2.addClass("noevent");
    d.addClass("noevent");
    $(".Func2").removeClass("noevent");
    $(".Func3").addClass("noevent");
    $(".Func4").addClass("noevent");
    $(".Func5").addClass("noevent");
    $(".Func6").addClass("noevent");
    $(".Func9").addClass("noevent");
    $(".Func12").removeClass("noevent");

    {*削除タイトル表示*}
    d.find(".delttl1").show();
    d.find(".delttl2").show();

    $("#lastDetail").addClass("hide");  {*行追加アイテム*}

    {*右上モード表示*}
    h.find(".cutaxLabel").hide();
    h.find(".cutaxLabel_none").show();
    h.find(".newLabel").hide();

    h.find(".cucd").focus();
  } else {
    h1.addClass("noevent");
    h2.removeClass("noevent");
    d.removeClass("noevent");
    $(".Func2").addClass("noevent");
    if (w_newmode == "UNDER") { {*下敷きの場合行挿入・行削除不可*}
      $(".Func3").addClass("noevent");
      $(".Func4").addClass("noevent");
    } else {
      $(".Func3").removeClass("noevent");
      $(".Func4").removeClass("noevent");
    }
    {if $header["pmode"] == "1"}  {*照会からはクリア不可*}
    $(".Func5").addClass("noevent");
    {else}
    $(".Func5").removeClass("noevent");
    {/if}
    if (w_newmode == "NEW" || w_newmode == "UNDER") { {*新規/下敷きの場合削除不可*}
      $(".Func6").addClass("noevent");
    } else {
      $(".Func6").removeClass("noevent");
    }
    $(".Func9").removeClass("noevent");
    $(".Func12").removeClass("noevent");

    if (w_newmode == "UNDER") { {*下敷きの場合行追加不可*}
      $("#lastDetail").addClass("hide");
      {*削除タイトル非表示*}
      d.find(".delttl1").hide();
      d.find(".delttl2").hide();
    } else {
      $("#lastDetail").removeClass("hide");
    }

    h2.find(".dat2")[0].focus();
  }
}

function clearHeader() {  {*headerクリア*}
  let frm = $("#headerTop");
  let container = frm.closest(".container");
  doHeaderEnable("H");
  common.clearInputData(container);
  common.setValue(frm.find(".newmode"), "NEW");
  frm.find(".cutaxLabel").hide();
  frm.find(".cutaxLabel_none").show();
  frm.find(".newLabel").hide();
}

function clearDetail() {
  common.clearAllError();

  $("#detail .detail").remove(); {*明細クリア*}
}

var init_data={
  vlin:'1',
};

function setOneRow() {
  clearDetail();  {*一旦クリア*}
  {*明細に最初の一行追加*}
  var el = af222x_detail.appendRow(init_data);
  $("#detail").append(el);
  var detail = $("#detail").find(".detail");
  detail.find(".datepicker").each(function (index) {
    common.setDatepickerInfo($(this));
  });
}

function dspDetail() { {*データ表示*}
  let frm = $("#headerTop");
  let frm_f = $("#footer_content");

  var detail = $("#detail").find(".detail");

  clearDetail();  {*一旦クリア*}
  var el = "";

  var container = $(".container");
  sendData = {};
  sendData = common.getContainerInputData(container);

  common.postData(
    "./search.php"
    , sendData
    , function name(data) {
      var d = JSON.parse(data);
      if(d.ret == "0") {

        console.log(d.ret_header);

        {*ヘッダー情報*}
        common.dspDetailData(d.ret_header, frm);
        if (d.ret_header.newmode == "UNDER") { {*下敷き*}
          frm.find(".spktcd").attr("readonly", true);
          frm.find(".cmdKtktcd").addClass("noevent");
        } else {
          frm.find(".spktcd").attr("readonly", false);
          frm.find(".cmdKtktcd").removeClass("noevent");
        }
        {*フッター情報*}
        common.dspDetailData(d.ret_header, frm_f);

        {*ヘッダー右上表示切替*}
        setLblCutax(d.ret_header.cutax, d.ret_header.newmode);

        if(d.ret_header.newmode == "NEW") { {*新規モード*}
          setOneRow();
          doHeaderEnable("D");
        } else {  {*修正モード*}
          {*行作成*}
          d.ret_array.forEach((item, i) => {
            el += af222x_detail.appendRow(item);
          });
          $("#detail").append(el);

          var detail = $("#detail .detail");
          for(i = 0 ; i  < detail.length ; i++) {
            let $me = $(detail[i]);

            $me.find(".datepicker").each(function (index) {
              common.setDatepickerInfo($(this));
            });

            $me.find("select").each(function(index) {
              var $selectVal = $(this);
              common.setValue($selectVal,common.getValue($me.find(".memo"+$selectVal.attr("name"))));
            });

          }
          calcSum("s_cst")
          doHeaderEnable("D");
        }
      } else if (d.ret == "-1") { {*売上伝票なし：ありえない*}
        setOneRow();
        alert("該当するデータがありません");
        doHeaderEnable("H");
      } else if (d.ret == "-2") { {*受注伝票なし*}
        setOneRow();
        alert("該当する受注データがありません");
        doHeaderEnable("H");
      } else if (d.ret == "1") {  {*売上伝票複数*}
        common.setValue(frm.find(".vseq222"), common.getValue(frm.find(".vseq")));
        frm.find(".vseq");
        frm.find(".cmdAf222x1").trigger("click");
      } else if (d.ret == "1") {  {*受注伝票複数*}
        frm.find(".cvseq");
        frm.find(".cmdAf203x1").trigger("click");
      } else {  {*エラー*}
        alert(d.msg);
        frm.find(".cucd").focus();
      }
    }, function name(params) {
      alert(params.msg);
    }
  )
}

{*明細行用関数*}
var af222x_detail = {
  appendRow: function (d) {
    var n = stringUtil.nvl;
    var row =
    ' <div class="col wp-100 detail"> ' +
    '<div class="col wp-100 rowinfo detailMain janGrp">' +
    '  <div class="col wp-100"> ' +
    '    <input name="vlin" type="text" class="form-control item input-sm wd-kbn vlin number" readonly tabindex="-1" value="' + n(d.vlin) + '" />';
    if (common.getValue($("#headerTop").find(".newmode")) == "NEW") { {*新規の場合入力可*}
      row = row + '    <input name="jan" type="text" class="form-control input-sm item wd-jan jan popJan inpjan eventjan" maxlength="13" value="' + n(d.jan) + '"> ';
      row = row + '    <input type="button" class="col popbtn cmdJan" tabindex="-1" value="?"/> ';
    } else {
      row = row + '    <input name="jan" type="text" class="form-control input-sm item wd-jan jan popJan inpjan eventjan" maxlength="13" readonly value="' + n(d.jan) + '"> ';
      row = row + '    <input type="button" class="col popbtn cmdJan noevent" tabindex="-1" value="?"/> ';
    }
    row = row + '  <input name="ijan" type="hidden" class="ijan" value="' + n(d.ijan) + '"> ';
    row = row + '    <input name="gdcls9" type="hidden" class="gdcls9nm" readonly value="' + n(d.gdcls9) + '"> '+
    '    <input name="gdcls9nm" type="text" class="form-control input-sm item wd-020 gdcls9nm" readonly value="' + n(d.gdcls9nm) + '"> ';
{if $header.tcls == "01"} {*売上*}
    row = row + '    <input name="gdjnm" type="text" class="form-control input-sm item wd-LL gdjnm longnm" readonly value="' + n(d.gdjnm) + '"> ';
{else} {*値引*}
{*    row = row + '    <input name="gdjnm" type="text" class="form-control input-sm item wd-LL gdjnm" maxlength="40" value="' + n(d.gdjnm) + '"> '; *}
    row = row + '    <input name="gdjnm" type="text" class="form-control input-sm item wd-LL gdjnm longnm" readonly value="' + n(d.gdjnm) + '"> ';
{/if}
    row = row + '    <input name="jpno" type="text" class="form-control input-sm item wd-number jpno number"readonly value="' + common.addFigure(n(d.jpno)) + '"> '+
    '    <input name="tpno" type="text" class="form-control input-sm item wd-number tpno number" maxlength="5" value="' + common.addFigure(n(d.tpno)) + '"> '+
    '    <input name="ncst" type="text" class="form-control input-sm item wd-number ncst number" maxlength="10" fixed="2" tabindex="-1" value="' + common.addFigure(n(d.dsp_ncst),2) + '"> '+
    '    <input name="s_cst" type="text" class="form-control input-sm item wd-number s_cst number" readonly value="' + common.addFigure(n(d.s_cst)) + '"> '+
    '    <input name="gdcst" type="text" class="form-control input-sm item wd-number gdcst number" readonly value="' + common.addFigure(n(d.gdcst), 2) + '"> '+
    '    <input name="jmcatnm" type="text" class="form-control input-sm item wd-M jmcatnm blue" readonly value="' + n(d.jmcatnm) + '"> ';
    if (common.getValue($("#headerTop").find(".newmode")) != "UNDER") { {*下敷き以外削除可*}
      row = row + '    <input name="chkLineDel"  type="checkbox" class="form-control item input-sm wd-kbn chkLineDel" value="1" tabindex="-1"/>';
    }
    row = row + '  </div>' +
    '  <div class="col wp-100"> ' +
    '    <div class="item wd-kbn">&nbsp;</div> ' +
    '    <input name="taxinfo" type="text" class="form-control input-sm item taxinfo" style="width:156px;" readonly value="' + n(d.taxinfo) + '"> ';
    {if $header.tcls == "01"} {*売上*}
        row = row + '    <input name="gdjstnd" type="text" class="form-control input-sm item wd-LL gdjstnd longnm" readonly value="' + n(d.gdjstnd) + '"> ';
    {else} {*値引*}
{*        row = row + '    <input name="gdjstnd" type="text" class="form-control input-sm item wd-LL gdjstnd" maxlength="40" value="' + n(d.gdjstnd) + '"> '; *}
        row = row + '    <input name="gdjstnd" type="text" class="form-control input-sm item wd-LL gdjstnd longnm" readonly value="' + n(d.gdjstnd) + '"> ';
    {/if}
    row = row + '  <div class="item wd-number">&nbsp;</div> '+
    '    <div class="item wd-number">&nbsp;</div> '+
    '    <div class="item wd-number">&nbsp;</div> '+
    '    <div class="item wd-number">&nbsp;</div> '+
    '    <input name="sal" type="text" class="form-control input-sm item sal number" style="width:84px;" readonly value="' + common.addFigure(n(d.sal)) + '"> '+
    '    <div class="item inputReadOnly" style="width:14px;">&nbsp;</div> '+
    '  </div>' +
    '  <input name="iseq30" type="hidden" class="iseq30 keyItem forDeleteData" value="' + n(d.iseq30) + '"> '+
    '  <input name="iseq3123" type="hidden" class="iseq3123" value="' + n(d.piseq) + '"> '+
    '  <input name="taxrt" type="hidden" class="taxrt clear" value="' + n(d.taxrt) + '"> '+
    '  <input name="snum1" type="hidden" class="snum1 clear" value="' + n(d.snum1) + '"> '+ {*未使用?*}
    '  <input name="prop" type="hidden" class="prop clear" value="' + n(d.prop) + '"> '+
    '  <input name="spktcd" type="hidden" class="spktcd clear" value="' + n(d.spktcd) + '"> '+
    '  <input name="gdtax" type="hidden" class="gdtax clear" value="' + n(d.gdtax) + '"> '+
    '  <input name="gdtaxrt" type="hidden" class="gdtaxrt clear" value="' + n(d.gdtaxrt) + '"> '+
    '  <input name="taxrt" type="hidden" class="taxrt clear" value="' + n(d.taxrt) + '"> '+
    '  <input name="hpno" type="hidden" class="hpno clear" value="' + n(d.hpno) + '"> '+
    {*old*}
    '  <input name="old_vlin" type="hidden" class="old_vlin clear" value="' + n(d.vlin) + '"> '+
    '  <input name="old_jan" type="hidden" class="old_jan clear" value="' + n(d.jan) + '"> '+
    '  <input name="old_gdjnm" type="hidden" class="old_gdjnm clear" value="' + n(d.gdjnm) + '"> '+
    '  <input name="old_gdjstnd" type="hidden" class="old_gdjstnd clear" value="' + n(d.gdjstnd) + '"> '+
    '  <input name="old_tpno" type="hidden" class="old_tpno clear" value="' + n(d.tpno) + '"> '+
    '  <input name="old_ncst" type="hidden" class="old_ncst clear" value="' + n(d.dsp_ncst) + '"> '+
    '</div>' +
    '<hr>' +
    ' </div> ';
    return row;
  },
}


{*-- ここまでjsでのデータ表示用 ---------------------------------------------------*}

  function setNewLineData($me) {
    let detail = $me.closest(".contents").find(".detail.selectRow");

    detail.find(".popbtn").each(function (index) {
      common.setValue($(this),"?");
    });

    detail.find(".jan").prop("readonly",false);
    detail.find(".cmdJan").removeClass("noevent");

    detail.find(".jan").focus();
  }

  function setLblCutax(p_cutax, p_mode) { {*p_cutax, p_mode*}
    let frm = $("#headerTop");
    if (p_mode == "NEW" || p_mode == "UNDER") {
      common.setValue(frm.find(".newLabel"), "新規");
    } else {
      common.setValue(frm.find(".newLabel"), "更新");
    }
    frm.find(".newLabel").show();

    if (p_cutax == "0") {
      frm.find(".cutaxLabel").hide();
      frm.find(".cutaxLabel_none").show();
    } else {
      frm.find(".cutaxLabel").show();
      frm.find(".cutaxLabel_none").hide();
    }
  }

  function getCunmInfo($me) {  {*得意先コード入力時*}
    let frmh = $("#headerTop");
    let w_cucd = common.getValue($me);
    if (!stringUtil.isEmpty(w_cucd)) {  {*入力あり*}
      var sendData = {};
      sendData["cucd"] = w_cucd;
      common.postData(
          "./getCunmInfo.php"
        , sendData
        , function (data) {
          var obj = JSON.parse(data);
          let ret = obj.ret;
          if(ret == '0') {
            common.setValue(frmh.find(".cusacls"),obj.cusacls);
          } else {
            common.setValue(frmh.find(".cusacls"), "");
          }
        }
        , function (error) {
          alert(error.msg);
        }
      );
    } else {
      common.setValue(frmh.find(".cusacls"), "");
    }
  }

  function getGdnmInfo($me) {  {*JANコード入力時*}
    let frmh = $("#headerTop");
    let detail = $me.closest(".detail");
    let w_jan = common.getValue($me);
    let w_ijan = common.getValue(detail.find(".ijan"));

    if (!stringUtil.isEmpty(w_ijan)) {  {*入力あり*}
      var sendData = {};
      sendData["ijan"] = w_ijan;
      sendData["tcls"] = "{$header.tcls}";
      sendData["cucd"] = common.getValue(frmh.find(".cucd"));
      sendData["adat"] = common.getValue(frmh.find(".adat"));
      common.postData(
          "./getGdnmInfo.php"
        , sendData
        , function (data) {
          var obj = JSON.parse(data);
          let ret = obj.ret;
          if(ret == '0') {
            common.setValue(detail.find(".ncst"), common.addFigure(obj.ncst, "2"));
            common.setValue(detail.find(".sal"), obj.sal);
            common.setValue(detail.find(".gdcst"), common.addFigure(obj.gdcst, "2"));
            common.setValue(detail.find(".taxinfo"), obj.taxinfo);
            common.setValue(detail.find(".gdtax"), obj.gdtax);
            common.setValue(detail.find(".gdtaxrt"), obj.gdtaxrt);
            common.setValue(detail.find(".taxrt"), obj.taxrt);

            {if $header.tcls == "03"}
              if (!stringUtil.isEmpty(w_ijan)) {
                detail.find(".gdjnm").attr("readonly", true);
                detail.find(".gdjstnd").attr("readonly", true);
                detail.find(".ncst").attr("readonly", true);
              } else {
                detail.find(".gdjnm").attr("readonly", false);
                detail.find(".gdjstnd").attr("readonly", false);
                detail.find(".ncst").attr("readonly", false);
              }
            {/if}

            calcSum("s_cst")
            detail.find(".tpno").focus();
          }
        }
        , function (error) {
          alert(error.msg);
        }
      );
    } else {
      common.setValue(detail.find(".ijan"), "");
      common.setValue(detail.find(".gdcls9"), "");
      common.setValue(detail.find(".gdcls9nm"), "");
      common.setValue(detail.find(".gdjnm"), "");
      common.setValue(detail.find(".gdjstnd"), "");
      common.setValue(detail.find(".jpno"), "");
      common.setValue(detail.find(".ncst"), "");
      common.setValue(detail.find(".sal"), "");
      common.setValue(detail.find(".gdcst"), "");
      common.setValue(detail.find(".taxinfo"), "");
      common.setValue(detail.find(".gdtax"), "");
      common.setValue(detail.find(".gdtaxrt"), "");
      common.setValue(detail.find(".taxrt"), "");
      calcSum("s_cst")
    }
  }

  function calcScst(detail) { {*納入金額計算*}
    let frmh = $("#headerTop");

    var sendData = {};
    sendData["cucd"] = common.getValue(frmh.find(".cucd"));
    sendData["tpno"] = common.delFigure(common.getValue(detail.find(".tpno")));
    sendData["ncst"] = common.delFigure(common.getValue(detail.find(".ncst")));
    sendData["cutaxc"] = common.getValue(frmh.find(".cutaxc"));
    common.postData(
        "./calcScst.php"
      , sendData
      , function (data) {
        common.setValue(detail.find(".s_cst"), common.addFigure(data));
        calcSum("s_cst")
      }
      , function (error) {
        alert(error.msg);
      }
    );
  }

  {*合計の計算 引数は要素の名前(ex. amt)*}
  function calcSum(el_name) {
    let detail = $("#detail .detail");
    let sum_tpno = new BigNumber(0);
    for (var i = 0; i < detail.length; i++) {
      $me = $(detail[i]);
      if(!$me.find(".chkLineDel").prop("checked")) {
        var wtpno = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue($me.find("."+el_name))),"0"));
        sum_tpno = sum_tpno.plus(wtpno);
      }
    }
    common.setValue($("#sum_"+el_name), common.addFigure(sum_tpno));
  }

  $(document).ready(function(){
    /* 明細 高さ 自動設定
    //===================================================================*/
    common.setDetailHeight( $("#detail") );

    /* イベント
    //===================================================================*/
    //　F1
    $(document).on("click", ".Func1:not('.noevent')", function(e) {
    });
    //　F2
    $(document).on("click", ".Func2:not('.noevent')", function(e) {
      $(".btn-search-before").trigger("click");
    });
    //　F3 行削除
    $(document).on("click", ".Func3:not('.noevent')", function(e) {
      $(".btn-del").trigger("click");
      calcSum("s_cst")
    });
    //　F4 行挿入
    $(document).on("click", ".Func4:not('.noevent')", function(e) {
      {*行数チェック*}
      let frmh = $("#headerTop");
      let maxvlin = common.getValue(frmh.find(".maxvlin"));
      var detail = $("#detail .detail");
      let length = detail.length;
      var cnt = 0;

      for(i = 0 ; i < length ; i++) {
        var $me = $(detail[i]);
        console.log($me.find(".chkLineDel").prop("checked"));
        if(!$me.find(".chkLineDel").prop("checked")) {
          cnt = cnt + 1;
        }
      }
      console.log("maxvlin,cnt = "+maxvlin+", "+cnt);

      if(parseInt(maxvlin) <= cnt) {
        alert("伝票入力は"+maxvlin+"行までです。");
        detail.find(".jan")[0].focus();
        return false;
      }
      $(".btnLineIns").trigger("click");
    });
    //　F5 クリア
    $(document).on("click", ".Func5:not('.noevent')", function(e) {
        clearHeader();
        setOneRow();
    });
    //　F6 削除
    $(document).on("click", ".Func6:not('.noevent')", function(e) {
      $(".btn-delete").trigger("click");
    });
    //　F7
    $(document).on("click", ".Func7:not('.noevent')", function(e) {
    });
    //　F8
    $(document).on("click", ".Func8:not('.noevent')", function(e) {
    });
    //　F9 登録/実行
    $(document).on("click", ".Func9:not('.noevent')", function(e) {
      $(".Func9").addClass("noevent");
      $(".btn-reg-before").trigger("click");
    });
    //　F10
    $(document).on("click", ".Func10:not('.noevent')", function(e) {
    });
    //　F11 表示
    $(document).on("click", ".Func11:not('.noevent')", function(e) {
    });
    //　F12 メニュー/戻る
    $(document).on("click", ".Func12:not('.noevent')", function(e) {
      {if $header.pmode eq "1"}
        window.opener.closeAf222x();
        window.close();
      {else}
        $('.btn-close').trigger('click');
      {/if}
    });

    //画面初期表示時動作
    setOneRow(); {*最初に一行出したい*}
    doHeaderEnable("H");
    {if $header.pmode eq "1"}
      dspDetail();
    {/if}


    //タイトル変更
    var $frmh = $("#headerTop");
    if(!stringUtil.isEmpty(common.getValue($frmh.find(".title")))) {
      common.setValue($("#topPrgTitle"), common.getValue($frmh.find(".title")));
      $("title").html(common.getValue($frmh.find(".title")));
    }


    //MENUボタン===============================
    $(document).on("delSuccess", ".btn-delete", function(e,option){
      if (option.ret == "0") {
        alert("削除しました。");
        {if $header.pmode eq "1"}
          window.opener.closeAf222x();
          window.close();
        {else}
          $(".Func5").trigger("click");
        {/if}
      } else {
        alert(option.errmsg);
      }
    });

    $(document).on("regSuccess", ".btn-reg", function(e,option){
      if (option.ret == "0") {
        let w_msg = "登録しました。\n";
        w_msg = w_msg + "伝票番号は【"　+　option.vseq + "】です。\n"
        alert(w_msg);

        {if $header.pmode eq "1"}
          window.opener.closeAf222x();
          window.close();
        {else}
          $(".Func5").trigger("click");
        {/if}
      } else {
        alert(option.errmsg);
      }
    });

    $(document).on("click", ".btn-search-before", function(e) {

      var errflg = false;
      var frmh = $("#headerTop").find(".header1");
      common.clearFormError(frmh);

      frmh.find(".required").each(function (index) {
        if (stringUtil.isEmpty(common.getValue($(this)))) {
          common.addError($(this), "入力して下さい", null, true);
          errflg = true;
        }
      });

      if (errflg) {
        alert('エラーがあります');
      } else {
        dspDetail();
      }

    });

    $(document).on("click", ".btn-reg-before", function(e) {
      let detail = $("#detail .detail");
      let frmh = $(this).closest(".contents").find(".header");
      let errflg = false;

      common.clearFormError($(this).closest(".contents"));

      frmh.find(".required").each(function (index) {  {*ヘッダー必須チェック*}
        if (stringUtil.isEmpty(common.getValue($(this)))) {
          errflg = true;
          common.addError($(this), "入力して下さい", null, true);
        }
      });

      {*明細*}
      let detailcnt = detail.length;
      let w_tpno = 0;
      let w_jpno = 0;
      let w_tgcnt = 0;
      let w_taxkey = "";
      let w_buf = "";
      for (var i = 0; i < detailcnt; i++) {
        $me = $(detail[i]);
        if (!stringUtil.isEmpty(common.getValue($me.find(".iseq30")))
            || !stringUtil.isEmpty(common.getValue($me.find(".ijan")))
            || !stringUtil.isEmpty(common.getValue($me.find(".jan")))
            || !stringUtil.isEmpty(common.getValue($me.find(".gdjnm")))
            || !stringUtil.isEmpty(common.getValue($me.find(".gdjstnd"))) ) {
          if(!$me.find(".chkLineDel").prop("checked")) { {*削除データはﾁｪｯｸから除外する*}

              w_tpno = Number(stringUtil.nvl0(common.delFigure(common.getValue($me.find(".tpno"))), "0"));
              w_jpno = Number(stringUtil.nvl0(common.delFigure(common.getValue($me.find(".jpno"))), "0"));
  {if $header.tcls == "01"} {*売上*}
              if (stringUtil.isEmpty(common.getValue($me.find(".jan")))) {
                errflg = true;
                common.addError($me.find(".jan"), "入力して下さい", null, true);
              }
              if ( w_tpno < 0) {
                if (common.getValue($me.find(".prop")) != "3") {
                  errflg = true;
                  common.addError($me.find(".tpno"), "０以上を入力して下さい", null, true);
                }
              }
              {* prop=2の場合は在庫にも影響する為、マイナスにならないかチェックが必要 *}
              if (common.getValue($me.find(".prop")) == "2") {
                if (w_tpno > w_jpno) {
                  errflg = true;
                  common.addError($me.find(".tpno"), "受注数以下を入力して下さい", null, true);
                }
              }
    {else if $header.tcls == "03"} {*値引き*}
              if (stringUtil.isEmpty($me.find(".jan")) && stringUtil.isEmpty($me.find(".gdjnm")) && stringUtil.isEmpty($me.find(".gdjstnd"))) {
                errflg = true;
                common.addError($me.find(".jan"), "入力して下さい", null, true);
{*                common.addError($me.find(".jan"), "JAN、または品名を入力して下さい", null, true);*}
              }
              if (w_tpno < 1) {
                errflg = true;
                common.addError($me.find(".jan"), "１以上を入力して下さい", null, true);
              }
    {/if}
              w_tgcnt = w_tgcnt + 1;
            }
          }
        }

      if(errflg) {
        alert("エラーがあります");
        $(".Func9").removeClass("noevent");
      } else if(w_tgcnt == 0) {
        alert("商品を入力して下さい。")
        $(".Func9").removeClass("noevent");
      } else {

        var container = $(".container");
        sendData = {};
        sendData = common.getContainerInputData(container);

        common.postData(
            "./chkRegBefore.php"
          , sendData
          , function (data) {
            // 特殊処理があれば
            var obj = JSON.parse(data);
            let ret = obj.ret;
            let objlst = obj.ret_meisai;

            if(ret == '0') {
              $(".headermenu").find(".btn-reg").trigger("click");
            } else if(ret == '-1') {
              if (obj.ret1 != "0") {
                common.addError(frmh.find(".adat"), "計上日が不正です。", null, true);
              }
              if (obj.ret2 != "0") {  {*明細エラー有*}
                for ( var i = 0; i < objlst.length; i++) {
                  var obj1 = objlst[i];
                  colJan = $(detail[i]).find(".jan");
                  colTpno = $(detail[i]).find(".tpno");
                  if(obj1.ret == "err") {
                    if (!stringUtil.isEmpty(obj1.janmsg)) {
                      common.addError(colJan, obj1.janmsg, null, true,true);
                    }
                    if (!stringUtil.isEmpty(obj1.tpnomsg)) {
                      common.addError(colTpno, obj1.tpnomsg, null, true,true);
                    }
                  }
                }
              }
              alert("エラーがあります");
            } else {
              alert("登録前チェックに失敗しました");
            }
            $(".Func9").removeClass("noevent");
          }
          , function (error) {
            alert(error.msg);
            $(".Func9").removeClass("noevent");
          }
        );
      }

    });

    $(document).on("focus", ".dummy", function(e) {
      if ($(this).hasClass("h_dummy")) {  {*headerのDummy*}
        $("#topmenu").find(".Func2").focus();
      } else if ($(this).hasClass("f_dummy")) {  {*headerのDummy*}
        $("#topmenu").find(".Func9").focus();
      }
    });

    $(document).on("change", ".vseq", function(e) {
      common.setValue($("#headerTop").find(".viseq"), "");  {*viseqクリア*}
    });
    {*伝票検索で伝票を選択したら、そのまま表示*}
    $(document).on("afterSelectaf222x1", ".vseq", function(e) {
      dspDetail();
    });
    {*受注検索で伝票を選択したら、そのまま表示*}
    $(document).on("afterSelectaf203x2", ".cvseq", function(e) {
      dspDetail();
    });

    //=== header ===
    {*得意先入力・選択 ↓ ----------------------------*}
    $(document).on("afterSelectAfm03x", ".cucd", function(e) {
      getCunmInfo($(this));
    });
    $(document).on("afterChangeCucd", ".cucd", function(e) {
      getCunmInfo($(this));
    });
    $(document).on("clearChangeCucd", ".cucd", function(e) {
      getCunmInfo($(this));
    });
    $(document).on("errChangeCucd", ".cucd", function(e) {
      getCunmInfo($(this));
    });
    {*得意先入力・選択 ↑ ----------------------------*}

    {*JAN入力・選択 ↓ ----------------------------*}
    $(document).on("afterSelectAfm02x", ".jan", function(e) {
      getGdnmInfo($(this));
    });
    $(document).on("afterChangeJan", ".jan", function(e) {
      getGdnmInfo($(this));
    });
    $(document).on("clearChangeJan", ".jan", function(e) {
      getGdnmInfo($(this));
    });
    $(document).on("errChangeJan", ".jan", function(e) {
      getGdnmInfo($(this));
    });
    {*JAN入力・選択 ↑ ----------------------------*}

    $(document).on("change", ".ncst", function(e) {
      {if $header.tcls == "03"} {*値引きは納入価の入力値を符号反転*}
        let $me = $(this);
        let w_ncst = new BigNumber(common.getValue($me)).times(-1);
        common.setValue($me, common.addFigure(w_ncst, "2"));
      {/if}
      let detail = $(this).closest(".detail");
      calcScst(detail);
    });

    $(document).on("focus", ".tpno", function(e) {  {*数量にフォーカスが来た時商品が入っていたなかったら備考へ*}
      let detail = $(this).closest(".detail");
      {if $header.tcls == "01"}
        if (stringUtil.isEmpty(common.getValue(detail.find(".jan")))) {
          $("#footer_content").find(".txt1").focus();
        }
      {else} {*値引き*}
      if (stringUtil.isEmpty(common.getValue(detail.find(".jan")))
            && stringUtil.isEmpty(common.getValue(detail.find(".gdjnm")))
            && stringUtil.isEmpty(common.getValue(detail.find(".gdjstnd")))) {
        $("#footer_content").find(".txt1").focus();
      }
      {/if}
    });
    $(document).on("change", ".tpno", function(e) {
      let detail = $(this).closest(".detail");
      calcScst(detail);
    });

    $(document).on("change", ".chkLineDel", function(e) {
      var chkDel = $(this);

      if(!chkDel.prop("checked")) {
        {*行数チェック*}
        let frmh = $("#headerTop");
        let maxvlin = common.getValue(frmh.find(".maxvlin"));
        var detail = $("#detail .detail");
        let length = detail.length;

        var cnt = 0;

        for(i = 0 ; i < length ; i++) {
          var $me = $(detail[i]);
          console.log($me.find(".chkLineDel").prop("checked"));
          if(!$me.find(".chkLineDel").prop("checked")) {
            cnt = cnt + 1;
          }
        }

        if(parseInt(maxvlin) < cnt ) { {*この時自分のチェックは外れているので、自分含め最大行数を超えないかのチェック*}
          chkDel.prop("checked",true);
          alert("伝票入力は"+maxvlin+"行までです。");
          detail.find(".jan")[0].focus();
          return false;
        }
      }

      calcSum("s_cst");
    });


    //====明細行動作======
    $(document).on("afterDelLine", ".chkLineDel", function(e) {
      calcSum("s_cst");
    });

    $(document).on("insertLine", ".selectRow", function(e) {
      setNewLineData($(this));
    });
    $("#lastDetail").focus(function(){
      var details = $("#detailTop .detail:last")[0];
      if(!!!details){
        return true;
      }

      {*行数チェック*}
      let frmh = $("#headerTop");
      let maxvlin = common.getValue(frmh.find(".maxvlin"));
      var detail = $("#detail .detail");
      let length = detail.length;

      var cnt = 0;

      for(i = 0 ; i < length ; i++) {
        var $me = $(detail[i]);
        console.log($me.find(".chkLineDel").prop("checked"));
        if(!$me.find(".chkLineDel").prop("checked")) {
          cnt = cnt + 1;
        }
      }

      if(parseInt(maxvlin) <= cnt) {
        alert("伝票入力は"+maxvlin+"行までです。");
        detail.find(".jan")[0].focus();
        return false;
      }

      var newRow = commonLine.insertDetail(details);
      common.setDetailHeight();
      $(newRow).find(":enabled")[0].focus();
      $(window).scrollTop($(newRow).parent().offset().top);
      setNewLineData($(newRow));
    });


  });

</script>
