<script>

  {*初期化用配列 初期表示にも使用*}
  let = init_data = {$init_data};
  var detail = $("#detail").find(".detail");
  common.dspDetailData(init_data, detail);

  {*-- ここからjsでのデータ表示用 ---------------------------------------------------*}
  function doHeaderEnable(pmode) { {*pmode:H Header有効・D 明細有効*}
    let h = $("#headerTop");
    let d = $("#detailTop");
    let m = $("#funcMenu");
    if (pmode == "H") { {*Header有効*}
      h.removeClass("noevent");
      //d.addClass("noevent");
      $(".Func2").removeClass("noevent");
      $(".Func4").addClass("noevent");
      $(".Func5").addClass("noevent");
      $(".Func9").addClass("noevent");
      common.setValue($(".Func4"),"廃止設定(F4)");

      {*ヘッダー項目クリア*}
      h.find(".modelbl").removeClass("newLabel");
      {*ヘッダーフォーカス*}
      h.find(".keycd").focus();

    } else { {*Detail有効*}

      h.addClass("noevent");
      d.removeClass("noevent");
      $(".Func2").addClass("noevent");
      $(".Func4").removeClass("noevent");
      $(".Func5").removeClass("noevent");
      $(".Func9").removeClass("noevent");
      if(stringUtil.isEmpty(common.getValue(d.find(".stpdat")))) {
        common.setValue($(".Func4"),"廃止設定(F4)");
      } else {
        common.setValue($(".Func4"),"廃止取消(F4)");
      }
      {*ヘッダー項目*}
      h.find(".modelbl").addClass("newLabel");
      {*データ部フォーカス*}
      d.find(".keycd")[0].focus();
    }
  }

  var init_data = {
    vlin:'1',
  };
  function clearMeisai() {  {*明細クリア*}
    clearMeisai02e();
    clearMeisai02d();
  }
  function clearMeisai02e() {  {*明細クリア*}
    $("#detail2 .detail").remove();
  }
  function clearMeisai02d() {  {*明細クリア*}
    $("#detail3 .detail").remove();
  }

  function setOneRow() {
    setOneRow02d();
    setOneRow02e();
  }
  function setOneRow02e() {
    clearMeisai02e();
    var el2 = af902ex_detail2.appendRow(init_data);
    $("#detail2").append(el2);
    var detail2 = $("#detail2").find(".detail");
    detail2.find(".datepicker").each(function (index) {
      common.setDatepickerInfo($(this));
    });
  }
  function setOneRow02d() {
    clearMeisai02d();
    var el3 = af902dx_detail3.appendRow(init_data);
    $("#detail3").append(el3);
    var detail3 = $("#detail3").find(".detail");
    detail3.find(".datepicker").each(function (index) {
      common.setDatepickerInfo($(this));
    });
  }


  function clearDetail() {  {*クリア*}
    let frm = $("#headerTop");
    let container = frm.closest(".container");
    let detail = $("#detail .detail");
    common.clearInputData(container);
    common.clearAllError();

    common.dspDetailData(init_data, detail);
    $("#p01").click();
    $("#p11").click();

    doHeaderEnable("H");
  }

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

    var headerData = [];
    var f = common.getInputData(frm);
    headerData.push(encodeJson(f));

    var sendData = {};
    sendData["header"] = headerData;

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

        {*税コンボボックス作成*}
        var listGdtax = JSON.parse(options.listGdtax);
        var listGdtaxn = JSON.parse(options.listGdtaxn);
        reCreateCbo(listGdtax, listGdtaxn);

        {*分類コンボボックス作成*}
        let $cbo2 = $('select#gdcls2');
        let $cbo3 = $('select#gdcls3');
        var listGdcls2 = d.listGdcls2;
        var listGdcls3 = d.listGdcls3;
        {*中分類*}
        $('select#gdcls2 option').remove();
        $cbo2.append($('<option>').html("").val(""));
        $.each(listGdcls2,
          function(index, elem) {
            $cbo2.append($('<option>').html(elem.nm).val(elem.cd));
          }
        );
        {*小分類*}
        $('select#gdcls3 option').remove();
        $cbo3.append($('<option>').html("").val(""));
        $.each(listGdcls3,
          function(index, elem) {
            $cbo3.append($('<option>').html(elem.nm).val(elem.cd));
          }
        );

        common.dspDetailData(d[0], detail);
        doHeaderEnable("D");


        {*仕入先明細について*}
        
        clearMeisai();
        var el2 = "";
        if(d.afm02e_cnt == '0') {
          setOneRow02e();
        } else {
          d.array_afm02e.forEach((item, i) => {
            el2 += af902ex_detail2.appendRow(item);
          });
          el2 += af902ex_detail2.appendRow(init_data); {*空白行の追加*}
         $("#detail2").append(el2);
        }
        var detail2 = $("#detail2 .detail");
        for(i = 0 ; i < detail2.length ; i++) {
          var $me = $(detail2[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"))));
          });
          if($me.find(".rkbn").val()=='0') {
            $me.find(".chkRkbn").prop("checked",true);
          }
          if(!stringUtil.isEmpty($me.find(".gdstp").val())) {
            $me.find(".chkLineDel").prop("checked",true);
          }
        }

        var el3 = "";
        if(d.afm02d_cnt == '0') {
          setOneRow02d();
        } else {
          d.array_afm02d.forEach((item, i) => {
            el3 += af902dx_detail3.appendRow(item);
          });
          el3 += af902dx_detail3.appendRow(init_data); {*空白行の追加*}
         $("#detail3").append(el3);
        }
        var detail3 = $("#detail3 .detail");
        for(i = 0 ; i < detail3.length ; i++) {
          var $me = $(detail3[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"))));
          });
          if(!stringUtil.isEmpty($me.find(".gdstp").val())) {
            $me.find(".chkLineDel").prop("checked",true);
          }
          setAfm02dReadonly($me); {*区分の値によって、readonlyを切り替える*}
        }

        if (d[0].ijan == "") {
          common.setValue(frm.find(".modelbl"), "新規");
        } else {
          common.setValue(frm.find(".modelbl"), "修正");
        }


      }, function name(params) {
        alert(params.msg);
      }
    );

  }


{*明細行用関数*}

var af902ex_detail2 = {
  appendRow: function (d) {
    var n = stringUtil.nvl;
    var row =
    ' <div class="col wp-100 detail"> ' +
    '<div class="col wp-100 rowinfo detailMain">' +
    '  <div class="col wp-100 mcdGrp date"> ' +
    '    <div class="col wp-100"> ' +
    '      <input name="m02echkRkbn"  type="checkbox" class="form-control item input-sm wd-kbn chkRkbn" value="ON" tabindex="-1"/>' +
    '      <input name="m02emcd" type="text" class="form-control input-sm item wd-S mcd eventmcd popMcd " ' + n(d.readflg) + '  maxlength="7" value="' + n(d.mcd) + '"> '+
    '      <input type="button" class="col popbtn cmdMcd ' + n(d.eventflg) + '" tabindex="-1" value="?"/> '+
    '      <input name="m02emnm" type="text" class="form-control input-sm item wd-MM mnm" readonly value="' + n(d.mnm) + '"> '+
    '      <input name="m02egdcst" type="text" class="form-control input-sm item  wd-S m02egdcst number" maxlength="10" fixed="2" value="' + common.addFigure(n(d.gdcst),'2') + '"> '+
    '      <input name="m02egdcst1" type="text" class="form-control input-sm item wd-S m02egdcst1 number" maxlength="10" fixed="2" value="' + common.addFigure(n(d.gdcst1),'2') + '"> '+
    '      <input name="m02egdhcst" type="text" class="form-control input-sm item wd-S m02egdhcst number" maxlength="10" fixed="2" value="' + common.addFigure(n(d.gdhcst),'2') + '"> '+
    '      <select name="m02egdretcls" class="col form-control input-sm wd-060 gdretcls item clear"> '+
    '      <option value=""></option>' +
    '        {foreach from=$listGdretcls item=select name=select} '+
    '          <option value="{$select.cd}" >{$select.nm}</option> '+
    '        {/foreach} '+
    '      </select> '+
    '      <input name="m02echkLineDel"  type="checkbox" class="form-control item input-sm wd-kbn chkLineDel" value="1" tabindex="-1"/>' +
    '    </div> '+
    '    <input name="tblnm" type="hidden" class="tblnm" value="afm02e" />' + {*登録時にどの明細か判断するため*}
    '    <input name="m02eorgRkbn" type="hidden" class="orgRkbn keyItem forDeleteData" value="' + n(d.rkbn) + '"/>' +
    '    <input name="m02eorgMcd" type="hidden" class="orgMcd keyItem forDeleteData" value="' + n(d.mcd) + '"/>' +
    '    <input name="m02eorgGdcst" type="hidden" class="orgGdcst keyItem forDeleteData" value="' + common.addFigure(n(d.gdcst),'2') + '"/>' +
    '    <input name="m02eorgGdcst1" type="hidden" class="orgGdcst1 keyItem forDeleteData" value="' + common.addFigure(n(d.gdcst1),'2') + '"/>' +
    '    <input name="m02eorgGdhcst" type="hidden" class="orgGdhcst keyItem forDeleteData" value="' + common.addFigure(n(d.gdhcst),'2') + '"/>' +
    '    <input name="m02eorgGdretcls" type="hidden" class="orgGdretcls keyItem forDeleteData" value="' + n(d.gdretcls) + '"/>' +
    '    <input name="m02eorgGdstp" type="hidden" class="orgGdstp keyItem forDeleteData" value="' + n(d.gdstp) + '"/>' +
    '    <input name="m02ememogdretcls" type="hidden" class="memom02egdretcls" value="' + n(d.gdretcls) + '"/>' +
    '    <input name="m02erkbn" type="hidden" class="rkbn" value="' + n(d.rkbn) + '"/>' +
    '    <input name="m02egdstp" type="hidden" class="gdstp stpdat" value="' + n(d.gdstp) + '"/>' +
    '  </div>' +
    '</div>' +
    '<hr>' +
    ' </div> ';
    return row;
  },
}

var af902dx_detail3 = {
  appendRow: function (d) {
    var n = stringUtil.nvl;
    var row =
    ' <div class="col wp-100 detail"> ' +
    '<div class="col wp-100 rowinfo detailMain">' +
    '  <div class="col wp-100 ktktcdGrp date"> ' +
    '    <div class="col wp-100"> ' +
    '      <input name="m02dktktcd" type="text" class="form-control input-sm item wd-SS ktktcd eventktktcd popKtktcd " ' + n(d.readflg) + '  maxlength="2" value="' + n(d.ktktcd) + '"> '+
    '      <input type="button" class="col popbtn cmdKtktcd ' + n(d.eventflg) + '" tabindex="-1" value="?"/> '+
    '      <input name="m02dktktnm" type="text" class="form-control input-sm item wd-L ktktnm" readonly value="' + n(d.ktktnm) + '"> '+
    '      <select name="m02dhtcls" class="col form-control input-sm wd-150 htcls item clear"> '+
    '      <option value=""></option>' +
    '        {foreach from=$listHtcls item=select name=select} '+
    '          <option value="{$select.cd}" >{$select.nm}</option> '+
    '        {/foreach} '+
    '      </select> '+
    '      <select name="m02dhtpcls" class="col form-control input-sm wd-130 htpcls item clear"> '+
    '      <option value=""></option>' +
    '        {foreach from=$listHtpcls item=select name=select} '+
    '          <option value="{$select.cd}" >{$select.nm}</option> '+
    '        {/foreach} '+
    '      <input name="m02dhtpnt1" type="text" class="form-control input-sm item wd-100 htpnt1 number" maxlength="7" value="' + common.addFigure(n(d.htpnt1)) + '"> '+
    '      <input name="m02dhtpnt2" type="text" class="form-control input-sm item wd-100 htpnt2 number" maxlength="7" value="' + common.addFigure(n(d.htpnt2)) + '"> '+
    '      <input name="m02dfhtpnt1" type="text" class="form-control input-sm item wd-100 fhtpnt1 number" maxlength="7" value="' + common.addFigure(n(d.fhtpnt1)) + '"> '+
    '      <input name="m02dfhtpnt2" type="text" class="form-control input-sm item wd-100 fhtpnt2 number" maxlength="7" value="' + common.addFigure(n(d.fhtpnt2)) + '"> '+
    '      <input name="m02dchkLineDel"  type="checkbox" class="form-control item input-sm wd-kbn chkLineDel" value="1" tabindex="-1"/>' +
    '    </div> '+
    '    <input name="tblnm" type="hidden" class="tblnm" value="afm02d" />' + {*登録時にどの明細か判断するため*}
    '    <input name="m02dorgKtktcd" type="hidden" class="orgKtktcd keyItem forDeleteData" value="' + n(d.ktktcd) + '"/>' +
    '    <input name="m02dorgHtcls" type="hidden" class="orgHtcls keyItem forDeleteData" value="' + n(d.htcls) + '"/>' +
    '    <input name="m02dorgHtpcls" type="hidden" class="orgHtpcls keyItem forDeleteData" value="' + n(d.htpcls) + '"/>' +
    '    <input name="m02dmemohtcls" type="hidden" class="memom02dhtcls" value="' + n(d.htcls) + '"/>' +
    '    <input name="m02dmemohtpcls" type="hidden" class="memom02dhtpcls" value="' + n(d.htpcls) + '"/>' +
    '    <input name="m02dorgHtpnt1" type="hidden" class="orgHtpnt1 keyItem forDeleteData" value="' + common.addFigure(n(d.htpnt1),'2') + '"/>' +
    '    <input name="m02dorgHtpnt2" type="hidden" class="orgHtpnt2 keyItem forDeleteData" value="' + common.addFigure(n(d.htpnt2),'2') + '"/>' +
    '    <input name="m02dorgFhtpnt1" type="hidden" class="orgFhtpnt1 keyItem forDeleteData" value="' + common.addFigure(n(d.fhtpnt1),'2') + '"/>' +
    '    <input name="m02dorgFhtpnt2" type="hidden" class="orgFhtpnt2 keyItem forDeleteData" value="' + common.addFigure(n(d.fhtpnt2),'2') + '"/>' +

    '    <input name="m02dorgGdstp" type="hidden" class="orgGdstp keyItem forDeleteData" value="' + n(d.gdstp) + '"/>' +
    '    <input name="m02dgdstp" type="hidden" class="gdstp stpdat" value="' + n(d.gdstp) + '"/>' +
    '  </div>' +
    '</div>' +
    '<hr>' +
    ' </div> ';
    return row;
  },
}


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

  {*ピース体積計算*}
  function calcGdpcap($elem) {
    var grp = $elem.closest(".calCapGrp");
    let calcflg;
    common.clearError(grp.find(".pcap"));
    {*Null->初期値セット*}
    if (stringUtil.isEmpty(common.getValue(grp.find(".cnum")))) {
      common.setValue(grp.find(".cnum"), "0");
    }
    if (stringUtil.isEmpty(common.getValue(grp.find(".cwid")))) {
      common.setValue(grp.find(".cwid"), "0");
    }
    if (stringUtil.isEmpty(common.getValue(grp.find(".cdep")))) {
      common.setValue(grp.find(".cdep"), "0");
    }
    if (stringUtil.isEmpty(common.getValue(grp.find(".chig")))) {
      common.setValue(grp.find(".chig"), "0");
    }
    if (stringUtil.isEmpty(common.getValue(grp.find(".bnum")))) {
      common.setValue(grp.find(".bnum"), "0");
    }
    if (stringUtil.isEmpty(common.getValue(grp.find(".bwid")))) {
      common.setValue(grp.find(".bwid"), "0");
    }
    if (stringUtil.isEmpty(common.getValue(grp.find(".bdep")))) {
      common.setValue(grp.find(".bdep"), "0");
    }
    if (stringUtil.isEmpty(common.getValue(grp.find(".bhig")))) {
      common.setValue(grp.find(".bhig"), "0");
    }
    if (stringUtil.isEmpty(common.getValue(grp.find(".pwid")))) {
      common.setValue(grp.find(".pwid"), "0");
    }
    if (stringUtil.isEmpty(common.getValue(grp.find(".pdep")))) {
      common.setValue(grp.find(".pdep"), "0");
    }
    if (stringUtil.isEmpty(common.getValue(grp.find(".phig")))) {
      common.setValue(grp.find(".phig"), "0");
    }

    let gdcnum = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue(grp.find(".cnum"))),"0"));
    let gdcwid = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue(grp.find(".cwid"))),"0"));
    let gdcdep = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue(grp.find(".cdep"))),"0"));
    let gdchig = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue(grp.find(".chig"))),"0"));
    let gdbnum = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue(grp.find(".bnum"))),"0"));
    let gdbwid = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue(grp.find(".bwid"))),"0"));
    let gdbdep = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue(grp.find(".bdep"))),"0"));
    let gdbhig = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue(grp.find(".bhig"))),"0"));
    let gdpwid = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue(grp.find(".pwid"))),"0"));
    let gdpdep = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue(grp.find(".pdep"))),"0"));
    let gdphig = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue(grp.find(".phig"))),"0"));
    let orgGdpcap = common.getValue(grp.find(".pcap"));
    let wret = new BigNumber(0);

    {*体積計算の優先順位はピース＞ボール＞ケースとする（ピース最優先）*}
    {*ケース入り数をセット*}
    if (gdcnum.lte(0)) { {*<=0*}
      gdcnum = new BigNumber(1);
      common.setValue(grp.find(".cnum"), "1");
    }
    {*ボール入数*}
    if (gdbnum.eq(0)) {
      gdbnum = new BigNumber(1);
      common.setValue(grp.find(".bnum"), "1");
    }

    {*ピースサイズより算出*}
    calcflg = 'p';
    wret = gdpwid.times(gdpdep).times(gdphig);
    if (wret.lte(0)) { {*<=0*}
      calcflg = 'b';
      {* ボールサイズより算出*}
      if (gdbnum.gt(0)) { {*>0*}
        wret = gdbwid.times(gdbdep).times(gdbhig);
        wret = wret.div(gdbnum);
      }
      {* ケースサイズより算出*}
      if (wret.lte(0)) { {*<=0*}
        calcflg = 'c';
        wret = gdcwid.times(gdcdep).times(gdchig);
        wret = wret.div(gdcnum);
      }
      {*入力データからピース体積が求まらない場合、ピースサイズを強制セット*}
      if (wret.lte(0)) { {*<=0*}
        if (gdpwid.lte(0)) { {*<=0*}
          gdpwid = new BigNumber(1);
          common.setValue(grp.find(".pwid"), "1");
        }
        if (gdpdep.lte(0)) { {*<=0*}
          gdpdep = 1;
          common.setValue(grp.find(".pdep"), "1");
        }
        if (gdphig.lte(0)) { {*<=0*}
          gdphig = 1;
          common.setValue(grp.find(".phig"), "1");
        }
        wret = gdpwid.times(gdpdep).times(gdphig);
      }
    }
    common.setValue(grp.find(".pcap"),common.addFigure(wret.toString()));
    if(wret.toString().length > 12) {
      common.addError(grp.find(".pcap"), "ピース体積が12桁以内になるように入力して下さい。");
    }
  }

  {*コンボボックス変更*}
  function reCreateCbo(listGdtax, listGdtaxn) {
    let $cbo1 = $('select#gdtax');
    let $cbo2 = $('select#gdtaxn');
    {*旧*}
    $('select#gdtax option').remove();
    $.each(listGdtax,
       function(index, elem) {
         $cbo1.append($('<option>').html(elem.nm).val(elem.cd));
       }
     );
    {*新*}
    $('select#gdtaxn option').remove();
    $.each(listGdtaxn,
       function(index, elem) {
         $cbo2.append($('<option>').html(elem.nm).val(elem.cd));
       }
     );
  }
    {*税区分コンボボックス変更 and 税率表示 pmode:0=全部, 1=現税率表示のみ, 2=新税率表示のみ*}
  function dspTaxCombo($me, pmode) {
    let frm = $(".detail");
    var sendData = {};
    sendData["taxrtd"] = common.getValue(frm.find(".taxrtd"));
    sendData["gdtax"] = common.getValue(frm.find(".gdtax"));
    sendData["gdtaxn"] = common.getValue(frm.find(".gdtaxn"));
    sendData["pmode"] = pmode;

    let phpnm = '';
    if (pmode == '0') {
      phpnm = "./chgTaxCombo.php";
    } else {  {*税率表示のみ*}
      phpnm = "./getTaxRt.php";
    }

    common.postData(
      phpnm
      , sendData
      , function (data,options) {
        // 特殊処理があれば
        var ret = JSON.parse(options.ret);   {*各項目*}
        if (pmode == '0') { {*全部*}
          {*リスト内容*}
          var listGdtax = JSON.parse(options.listGdtax);
          var listGdtaxn = JSON.parse(options.listGdtaxn);
          reCreateCbo(listGdtax, listGdtaxn);
        }
        if (pmode == '0') { {*全部*}
          common.setValue(frm.find(".gdtax"), ret.gdtax);
          common.setValue(frm.find(".gdtaxn"), ret.gdtaxn);
        }
        {*税率変更はいつも*}
        if (pmode == '0' || pmode == '1') { {*全部 or 現税率表示のみ*}
          common.setValue(frm.find(".gdcls6"), ret.gdcls6);
          common.setValue(frm.find(".gdcls6nm"), ret.gdcls6nm);
        }
        if (pmode == '0' || pmode == '2') { {*全部 or 新税率表示のみ*}
          common.setValue(frm.find(".gdclsg"), ret.gdclsg);
          common.setValue(frm.find(".gdclsgnm"), ret.gdclsgnm);
        }
      }
      , function (error) {
        if ($me.attr("regError")) {
          $me.val("");
          $me.trigger("regError", [error, $(me)]);
        } else {
          $me.val("");
          common.addError($me, error.msg, null);
        }
        $me.focus();
      }
    );
  }

  {*仕入先多明細用*}
  function setNewLineData2($me) {
    let frm = $("#headerTop");
    let detail = $me.closest("#detail2").find(".detail.selectRow");

    detail.find(".datepicker").each(function (index) {
      common.setDatepickerInfo($(this));
    });
    detail.find(".popbtn").each(function (index) {
      common.setValue($(this),"?");
    });
    common.setValue(detail.find(".gdkflg"),'0');
    detail.find(".chkRkbn").prop("checked",false);
    detail.find(".chkLineDel").prop("checked",false);
    detail.find(".mcd").prop("readonly",false);
    detail.find(".cmdMcd").removeClass("noevent");
    common.setValue(detail.find(".tblnm"),"afm02e"); {*登録時にどの明細か判断するため*}

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

  {*倉庫とか他明細用*}
  function setNewLineData3($me) {
    let frm = $("#headerTop");
    let detail = $me.closest("#detail3").find(".detail.selectRow");

    detail.find(".datepicker").each(function (index) {
      common.setDatepickerInfo($(this));
    });
    detail.find(".popbtn").each(function (index) {
      common.setValue($(this),"?");
    });
    common.setValue(detail.find(".tblnm"),"afm02d"); {*登録時にどの明細か判断するため*}

    detail.find(".chkLineDel").prop("checked",false);
    detail.find(".ktktcd").focus();
  }

  {*区分の値によってreadonlyを切り替える*}
  function setAfm02dReadonly(detail) {
    var htcls = common.getValue(detail.find(".htcls"));
    var htpcls = common.getValue(detail.find(".htpcls"));

    if(htcls == '0' || htcls == '-2') {
      if(htpcls == '0') { {*変動発注店*}
      detail.find(".htpnt1").prop("readonly", false);
      detail.find(".htpnt2").prop("readonly", false);
      detail.find(".fhtpnt1").prop("readonly", true);
      detail.find(".fhtpnt2").prop("readonly", true);
      } else {            {*固定発注店*}
      detail.find(".htpnt1").prop("readonly", true);
      detail.find(".htpnt2").prop("readonly", true);
      detail.find(".fhtpnt1").prop("readonly", false);
      detail.find(".fhtpnt2").prop("readonly", false);
      }
    } else {
      detail.find(".htpnt1").prop("readonly", true);
      detail.find(".htpnt2").prop("readonly", true);
      detail.find(".fhtpnt1").prop("readonly", true);
      detail.find(".fhtpnt2").prop("readonly", true);
    }
}

  $(document).ready(function(){
    /* 明細 高さ 自動設定
    //===================================================================*/
    /* イベント
    //===================================================================*/
    //　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) {
    });
    //　F4 削除/廃止
    $(document).on("click", ".Func4:not('.noevent')", function(e) {
      $(".btn-haishi").trigger("click");
    });
    //　F5 クリア
    $(document).on("click", ".Func5:not('.noevent')", function(e) {
      clearDetail();
      setOneRow();
    });
    //　F6
    $(document).on("click", ".Func6:not('.noevent')", function(e) {
    });
    //　F7 コード変更
    $(document).on("click", ".Func7:not('.noevent')", function(e) {
      $(".popup-af902x1").trigger("click");
    });
    //　F8
    $(document).on("click", ".Func8:not('.noevent')", function(e) {
    });
    //　F9 登録/実行
    $(document).on("click", ".Func9:not('.noevent')", function(e) {
       $(".btn-reg-before").trigger("click");
   });
    //　F10 Excel
    $(document).on("click", ".Func10:not('.noevent')", function(e) {
      $(".popup-af02m").trigger("click");
    });
    //　F11
    $(document).on("click", ".Func11:not('.noevent')", function(e) {
    });
    //　F12 メニュー/戻る
    $(document).on("click", ".Func12:not('.noevent')", function(e) {
      $('.btn-close').trigger('click')
    });

    //操作可/不可ボタン
    doHeaderEnable("H");
    setOneRow();

    //タイトル変更
    var $frmh = $("#headerTop");
    var detail = $("#detailTop");

    //=== header ===

    //MENUボタン===============================
    $(document).on("regSuccess", ".btn-reg", function(e, options){
      var ret = options.ret;
        alert("登録しました");
        clearDetail();
        setOneRow();
    });

    $(document).on("click", ".btn-search-before", function(e) {
      var errflg = false;
      var frm = $(this).closest(".contents").find(".header");

      
      var jan = common.getValue(frm.find(".jan"));
      if (stringUtil.isEmpty(frm.find(".jan").val())) {
        errflg = true;
        common.addError(frm.find(".jan"), "入力して下さい。", null, true);
      }
      if(jan.length != 13 && jan.length != 8) {
        errflg = true;
        common.addError(frm.find(".jan"), "桁数が不正です。", null, true);
      }

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

        var jan = common.getValue(frm.find(".jan"));

        var sendData = {};
        sendData["jan"] = jan;
        common.postData(
            "./chkJan.php"
          , sendData
          , function (data, options) {
            // 特殊処理があれば
            var ret = options.ret;
            if (ret != '0') { //OK
              common.addError( frm.find(".jan"), "C/Dが不正です。", null, false);
              frm.find(".jan").focus();
            } else {
              dspDetail();
            }
          }
          , function (error) {
            alert(error.msg);
          }
        );
      }
    });

    $(document).on("click", ".btn-reg-before", function(e) {
      //登録前チェック
      var errflg = false;
      var warflg = false;
      var frm = $("#detailTop");
      var frmh = $("#headerTop");
      common.clearFormError(frm);

      //必須チェック
      if (stringUtil.isEmpty(frm.find(".vjan").val())) {
        errflg = true;
        common.addError(frm.find(".vjan"), "入力して下さい。", null, true);
      }
      if (stringUtil.isEmpty(frm.find(".gdjnm").val())) {
        errflg = true;
        common.addError(frm.find(".gdjnm"), "入力して下さい。", null, true);
      }

      //半角チェック
      if (!stringUtil.checkCharType(frm.find(".gdnm").val(), "hankaku")) {
        errflg = true;
        common.addError(frm.find(".gdnm"), "半角で入力して下さい。", null, true);
      }
      if (!stringUtil.checkCharType(frm.find(".gdstnd").val(), "hankaku")) {
        errflg = true;
        common.addError(frm.find(".gdstnd"), "半角で入力して下さい。", null, true);
      }

      {*nullはいいけど、0はダメ*}
      if(!stringUtil.isEmpty(frm.find(".gdstun"))) {
        if(common.getValue(frm.find(".gdstun")) == '0') {
          warflg = true;
          common.addError(frm.find(".gdstun"), "1以上で入力して下さい", null, true);
        }
      }

      let gdpcap = common.delFigure(common.getValue(frm.find(".gdpcap")));
      if(!stringUtil.isEmpty(common.getValue(frm.find(".gdpcap")))) {
        if(gdpcap.length > 12) {
          errflg = true;
          common.addError(frm.find(".gdpcap"), "12桁以内になるように入力して下さい。", null, true);
          $("#p11").click();
        }
      }
      let gdpcap2 = common.delFigure(common.getValue(frm.find(".gdpcap2")));
      if(!stringUtil.isEmpty(common.getValue(frm.find(".gdpcap2")))) {
        if(gdpcap2.length > 12) {
          errflg = true;
          common.addError(frm.find(".gdpcap2"), "12桁以内になるように入力して下さい。", null, true);
          $("#p12").click();
        }
      }

      {*消費税適用日がｾｯﾄされているのに、新課税区分、新消費税率区分がNullはｴﾗｰ*}
      if(!stringUtil.isEmpty(common.getValue(frm.find(".taxrtd")))
      &&(stringUtil.isEmpty(common.getValue(frm.find(".gdtaxn"))) || stringUtil.isEmpty(common.getValue(frm.find(".gdclsg"))))) {
        errflg = true;
        common.addError(frm.find(".gdtaxn"), "新税率適用日を登録する場合は、新課税区分を入力してください", null, true);
      }


      {*afm02eのチェック*}
      var detail2 = $("#detail2 .detail");
      var cntRkbn = 0;
      for(i = 0 ; i < detail2.length ; i++) {
        var $me = $(detail2[i]);
        if($me.find(".chkRkbn").prop("checked")) {
          cntRkbn = cntRkbn + 1;
          if(cntRkbn > 1) {
            errflg = true;
            common.addError($me.find(".mcd"), "代表仕入先を複数設定する事は出来ません。", null, true);
          }
        }
      }

      {*afm02dのチェック*}
      var detail3 = $("#detail3 .detail");
      for(x = 0 ; x < detail3.length ; x++) {
        var $me = $(detail3[x]);
        if(!stringUtil.isEmpty(common.getValue($me.find(".ktktcd")))) {
          if(stringUtil.isEmpty(common.getValue($me.find(".htcls")))) {
            errflg = true;
            common.addError($me.find(".htcls"), "選択して下さい", null, true);
          } else if(common.getValue($me.find(".htcls"))=='0' || common.getValue($me.find(".htcls"))=='-2') {
            if(stringUtil.isEmpty(common.getValue($me.find(".htpcls")))) {
              errflg = true;
              common.addError($me.find(".htpcls"), "選択して下さい", null, true);
            }
          }
        }
      }

      if(!errflg) {
        {*エラーが無ければ重複チェック*}

        {*afm02eの重複チェック*}
        var detail2 = $("#detail2 .detail");
        var cntRkbn = 0;
        for(i = 0 ; i < detail2.length ; i++) {
          var $me2 = $(detail2[i]);
          for(j = i + 1 ; j < detail2.length ; j++) {
            var $me2_sub = $(detail2[j]);
            //console.log($me2.find(".mcd").val()+', '+$me2_sub.find(".mcd").val());
            if($me2.find(".mcd").val() == $me2_sub.find(".mcd").val()) {
              errflg = true;
              common.addError($me2_sub.find(".mcd"), "同一仕入先が入力されています", null, true);
            }
          }
        }

        {*afm02dの重複チェック*}
        var detail3 = $("#detail3 .detail");
        for(x = 0 ; x < detail3.length ; x++) {
          var $me3 = $(detail3[x]);
          for(y = x + 1 ; y < detail3.length ; y++) {
            var $me3_sub = $(detail3[y]);
            //console.log($me3.find(".ktktcd").val()+', '+$me3_sub.find(".ktktcd").val());
            if($me3.find(".ktktcd").val() == $me3_sub.find(".ktktcd").val()) {
              errflg = true;
              common.addError($me3_sub.find(".ktktcd"), "同一倉庫が入力されています", null, true);
            }
          }
        }

        if(errflg) {
          alert("エラーがあります");
          return false;
        } else {

          {*エラーが無ければ既存マスタとのチェック*}
          {*vjanが既に登録されていないかをチェック*}
          sendData = {};
          sendData["vjan"] = common.getValue(frm.find(".vjan"));
          sendData["ijan"] = common.getValue(frmh.find(".ijan"));

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

              if(ret == '0') {
                $(".headermenu").find(".btn-reg").trigger("click");
              } else {
                if(ret == '-1') {
                  common.addError(frm.find(".vjan"), "既に利用されています", null, true);
                  alert("エラーがあります");
                  return false;
                }
              }

              $(".Func9").removeClass("noevent");
            }
            , function (error) {
              alert(error.msg);
              $(".Func9").removeClass("noevent");
            }
          );

        }


      } else {
        alert("エラーがあります");
        return false;
      }

    });


    //=== header ===
    $(document).on("focus", "#headerTop .dummy", function(e) {
      $("#topmenu").find(".Func2").focus();
    });

    $(document).on("afterSelectAfm02x", "#headerTop .jan", function(e){ //検索画面から戻る
      $(".btn-search-before").trigger("click");
    });
    $(document).on("afterSelectAfm02x1", "#headerTop .jan", function(e){ //検索画面から戻る
      $(".btn-search-before").trigger("click");
    });


    //=== body ===


    {*分類*}
    $(document).on("change",".gdcls1, .gdcls2", function(e) {
      var $me = $(this);
      var grp = $me.closest(".gdclsGrp");

      var sendData = {};
      sendData["gdcls1"] = common.getValue(grp.find(".gdcls1"));
      sendData["gdcls2"] = common.getValue(grp.find(".gdcls2"));
      common.postData(
          "./getListGdcls.php"
        , sendData
        , function (data, options) {
          // 特殊処理があれば
            let $cbo2 = $('select#gdcls2');
            let $cbo3 = $('select#gdcls3');

            var listGdcls2 = JSON.parse(options.listGdcls2);
            var listGdcls3 = JSON.parse(options.listGdcls3);

            {*中分類*}
            if($me.hasClass("gdcls1")) {
              $('select#gdcls2 option').remove();
              $cbo2.append($('<option>').html("").val(""));
              $.each(listGdcls2,
                function(index, elem) {
                  $cbo2.append($('<option>').html(elem.nm).val(elem.cd));
                }
              );
            }

            {*小分類*}
            $('select#gdcls3 option').remove();
            $cbo3.append($('<option>').html("").val(""));
            $.each(listGdcls3,
              function(index, elem) {
                $cbo3.append($('<option>').html(elem.nm).val(elem.cd));
              }
            );
        }
        , function (error) {
          alert(error.msg);
        }
      );
    });



    $(document).on("change",".gdpkf", function(e) {

      var $me = $(this);
      var frmh = $("#headerTop");

      var ijan = common.getValue(frmh.find(".ijan"));
      var gdpkf = $me.val();

      if(!stringUtil.isEmpty(gdpkf) && !stringUtil.isEmpty(ijan)) {

        var sendData = {};
        sendData["ijan"] = ijan;
        sendData["gdpkf"] = gdpkf;
        common.postData(
            "./chkAfm0312.php"
          , sendData
          , function (data, options) {
            // 特殊処理があれば
            var obj = JSON.parse(data);
            if (obj.ret != '0') {
              alert(obj.msg);
              common.setValue($me, obj.gdpkf);
            }
          }
          , function (error) {
            alert(error.msg);
          }
        );
      }
    });


    {*体積計算*}
    $(document).on("change", ".calcCap", function(e) {
      calcGdpcap($(this));
    });

    {*税率計算*}
    $('#taxrtd').change(function() {
      dspTaxCombo($(this), '0');
    });
    $('#gdtax').change(function() {
      dspTaxCombo($(this), '1');
    });
    $('#gdtaxn').change(function() {
      dspTaxCombo($(this), '2');
    });


    {*仕入先の明細で仕入単価にフォーカスがあった時、その行の仕入先に入力が無ければ、補填用仕入先にフォーカス移動*}
    $(document).on("focus", "#detail2 .m02egdcst", function(e) {
      var detail = $(this).closest(".detail");
      if(stringUtil.isEmpty(common.getValue(detail.find(".mcd")))) {
        $("#detail .meka").focus();
      }
    });

    {*出荷制限の次のフォーカスは、通常タブのケース入数に移動する*}
    $(document).on("focus", ".gdclsGrp .dummy", function(e) {
      $("#p11").trigger("click");
      $("#p11_content").find(".gdcnum").focus();      
    });

    {*ケースボールピースの、通常タブの単位名(最後の項目)のフォーカスがenter/tabで移動したら、物流用タブのケース入数に移動する*}
    $(document).on("focus", "#p11_content .dummy", function(e) {
      $("#p12").trigger("click");
      $("#p12_content").find(".gdcnum2").focus();
    });

    {*ケースボールピースの、物流用タブのピースっ重量(最後の項目)のフォーカスがenter/tabで移動したら、注釈タブのメーカー名に移動する*}
    $(document).on("focus", "#p12_content .dummy", function(e) {
      $("#p01").trigger("click");
      $("#p01_content").find(".mknm").focus();
    });

    {*注釈タブの中止日(最後の項目)のフォーカスがenter/tabで移動したら、発注業務関連タブの発注単位数量に移動する*}
    $(document).on("focus", "#p01_content .dummy", function(e) {
      $("#p02").trigger("click");
      $("#p02_content").find(".gdhtun").focus();
    });

    {*発注業務関連タブの発注計算区分にフォーカスがあった時、その行の倉庫に入力が無ければ、消費税関連タブの課税区分に移動する*}
    $(document).on("focus", "#p02_content .htcls", function(e) {
      var detail = $(this).closest(".detail");
      if(stringUtil.isEmpty(common.getValue(detail.find(".ktktcd")))) {
        $("#p03").trigger("click");
        $("#p03_content").find(".gdtax").focus();
      }
    });

    {*最後までフォーカスが移動したら、登録ボタン*}
    $(document).on("focus", "#detail .dummy2", function(e) {
      $("#topmenu").find(".Func9").focus();
    });



    //====明細行動作======
    $(document).on("change", ".chkLineDel", function(e) {
      var me = $(this);
      var detail = me.closest(".detail");
      var gdstp = detail.find(".stpdat");
      if(me.prop("checked")) {
        gdstp.val(stringUtil.getToday() + " " + stringUtil.getNowTime());
      } else {
        gdstp.val("");
      }
      $("#detail").trigger("selectedDetail");
    });

    {*代表仕入先はひとつだけ + afm02にも反映*}
    $(document).on("change", ".chkRkbn", function(e) {
      var $me = $(this).closest(".detail");
      if($me.find(".chkRkbn").prop("checked")) {
        $("#m02mcd").val($me.find(".mcd").val());

        var detail2 = $("#detail2 .detail");
        for(i = 0 ; i < detail2.length ; i++) {
          var div = $(detail2[i]);
          if(div.find(".chkRkbn").prop("checked")) {
            if($me.attr("id") != div.attr("id")) {
              div.find(".chkRkbn").prop("checked",false);
            }
          }
        }
      } else {
        $("#m02mcd").val("");
      }
    });

    $(document).on("change", "#detail3 .htcls, #detail3 .htpcls", function(e) {
      var $me = $(this);
      var detail = $me.closest(".detail");

      setAfm02dReadonly(detail);
    });




    $("#lastDetail2").focus(function(){
      var details = $("#detailTop #detail2 .detail:last")[0];
      if(!!!details){
        return true;
      }

      var newRow = commonLine.insertDetail(details);
      common.setDetailHeight();
      $(newRow).find(":enabled")[0].focus();
      $(window).scrollTop($(newRow).parent().offset().top);
      setNewLineData2($(newRow));
    });
    $("#lastDetail3").focus(function(){
      var details = $("#detailTop #detail3 .detail:last")[0];
      if(!!!details){
        return true;
      }

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



    //=== footer ===


    // 初回フォーカス
    var form = $(".header");
    if(!(form.hasClass("noevent"))){
      $(".header").find(".cucd").focus();
    }else{
      $("#detail").find(".vcuscd").focus();
    }
  });

</script>
