<script>


let m03array = [];

{*-- ここからjsでのデータ表示用 ---------------------------------------------------*}
let detail_data=[];

function doHeaderEnable(pmode) { {*pmode: Dialog Dialog以外触れなくする, H Header有効, D 明細有効*}
  let h = $("#headerTop");
  let h1 = h.find(".header1");
  let h2 = h.find(".header2");
  let d = $("#detailTop");
  let m = $("#funcMenu");
  if (pmode == "Dialog") { {*ダイアログ表示するので、裏側触れなくする*}
    h1.addClass("noevent");
    h2.addClass("noevent");
    d.addClass("noevent");
    $("#funcMenu").addClass("noevent");
    $("#funcMenu .Func2").addClass("noevent");
    $("#funcMenu .Func3").addClass("noevent");
    $("#funcMenu .Func4").addClass("noevent");
    $("#funcMenu .Func6").addClass("noevent");
    $("#funcMenu .Func5").addClass("noevent");
    $("#funcMenu .Func6").addClass("noevent");
    $("#funcMenu .Func7").addClass("noevent");
    $("#funcMenu .Func8").addClass("noevent");
    $("#funcMenu .Func9").addClass("noevent");
    $("#funcMenu .Func12").addClass("noevent");

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

    h.find(".inchklbl").removeClass("inchkLabel");
    h.find(".newlbl").removeClass("newLabel");
    h.find(".asnlbl").removeClass("newLabel");
    h.find(".entlbl").removeClass("eosLabel");
    h.find(".lblcutax").removeClass("cutaxLabel");

    h.find(".keycd")[0].focus();

    $("#lastDetail").show(); {*EOSで新規行不可にしたものを戻す*}

  } else {
    h1.addClass("noevent");
    h2.removeClass("noevent");
    d.removeClass("noevent");
    $("#funcMenu").removeClass("noevent");
    $("#funcMenu .Func2").addClass("noevent");
    $("#funcMenu .Func3").removeClass("noevent");
    $("#funcMenu .Func4").removeClass("noevent");
    $("#funcMenu .Func6").removeClass("noevent");
    $("#funcMenu .Func7").removeClass("noevent");
    $("#funcMenu .Func8").removeClass("noevent");
    $("#funcMenu .Func9").removeClass("noevent");
    $("#funcMenu .Func5").removeClass("noevent");
    $("#funcMenu .Func12").removeClass("noevent");

    if(!stringUtil.isEmpty(h.find(".inchklbl").text())) {
      h.find(".inchklbl").addClass("inchkLabel");
    }
    h.find(".newlbl").addClass("newLabel");
    if(!stringUtil.isEmpty(h.find(".asnlbl").text())) {
      h.find(".asnlbl").addClass("newLabel");
    }
    if(!stringUtil.isEmpty(h.find(".lblcutax").text())) {
      h.find(".lblcutax").addClass("cutaxLabel");
    }

    h2.find(".spktcd")[0].focus();


  }
}

function clearHeader() {  {*headerクリア*}
  let frm = $("#headerTop");
  let container = frm.closest(".container");
  doHeaderEnable("H");
  common.clearInputData(container);
}

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

function clearDetail() {
  common.clearAllError();
  $("#detail .detail").remove(); {*明細クリア*}
  $("#detail2 .detail2").remove(); {*明細(編集中店舗)クリア*}
}

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

{*ヘッダー情報を埋める*}
function dspHeader(frm, arr_header) {
  console.log(arr_header);

  common.setValue(frm.find(".cunm"),arr_header["cunm"]);
  common.setValue(frm.find(".spnm"),arr_header["spnm"]);

  common.setValue(frm.find(".asnlbl"),arr_header["asnmsg"]);
  common.setValue(frm.find(".gdflg"), stringUtil.nvl(arr_header.gdflg));
  common.setValue(frm.find(".jdat"), stringUtil.nvl(arr_header.jdat));
  common.setValue(frm.find(".ydat"), stringUtil.nvl(arr_header.ydat));
  common.setValue(frm.find(".climit"), stringUtil.nvl(arr_header.climit));
  common.setValue(frm.find(".spktcd"), stringUtil.nvl(arr_header.spktcd));
  common.setValue(frm.find(".spktnm"), stringUtil.nvl(arr_header.spktnm));
  common.setValue(frm.find(".cudcd"), stringUtil.nvl(arr_header.cudcd));
  common.setValue(frm.find(".cudnm"), stringUtil.nvl(arr_header.cudnm));
  common.setValue(frm.find(".dcubcd"), stringUtil.nvl(arr_header.dcubcd));
  common.setValue(frm.find(".cuslip2"), stringUtil.nvl(arr_header.cuslip2));
  common.setValue(frm.find(".bbno"), stringUtil.nvl(arr_header.bbno));
  common.setValue(frm.find(".com"), stringUtil.nvl(arr_header.com));
  common.setValue(frm.find(".cslno"), stringUtil.nvl(arr_header.cslno));
  common.setValue(frm.find(".jmcat"), stringUtil.nvl(arr_header.jmcat));
  common.setValue(frm.find(".dtxt1"), stringUtil.nvl(arr_header.dtxt1));
  common.setValue(frm.find(".dtxt2"), stringUtil.nvl(arr_header.dtxt2));
  common.setValue(frm.find(".ltxt1"), stringUtil.nvl(arr_header.ltxt1));
  common.setValue(frm.find(".ltxt2"), stringUtil.nvl(arr_header.ltxt2));
  common.setValue(frm.find(".chgcdnm"), stringUtil.nvl(arr_header.chgcdnm));
  common.setValue(frm.find(".idat"), stringUtil.nvl(arr_header.idat));
  common.setValue(frm.find(".upchgnm"), stringUtil.nvl(arr_header.upchgnm));
  common.setValue(frm.find(".udat"), stringUtil.nvl(arr_header.udat));
  common.setValue(frm.find(".hflg"), stringUtil.nvl(arr_header.hflg));

  common.setValue(frm.find(".cutax"), stringUtil.nvl(arr_header.cutax));
  common.setValue(frm.find(".lblcutax"), stringUtil.nvl(arr_header.lblcutax));
  common.setValue(frm.find(".maxvlin"), stringUtil.nvl(arr_header.maxvlin));

  if(stringUtil.isEmpty(arr_header.iseq)) {
    common.setValue(frm.find(".newlbl"),"新規");
  } else {
    common.setValue(frm.find(".newlbl"),"修正");
  }

}

{*伝票内容(afw80)を表示する*}
function dspDetailAfw80(arr_detail) {
  $("#detail .detail").remove(); {*明細クリア*}

  {*行作成*}
  var el = "";
  arr_detail.forEach((item, i) => {
    el += af203x_detail.appendRow(item);
  });
  $("#detail").append(el);

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

  {*画面表示後に必要なこと*}
  for(i = 0 ; i < detail.length ; i++) {
    var $me = $(detail[i]);

    set_visual_cst($me); {*単価の色*}
  }

  salVisible(); {*afm03.cusacls 0:受注入力画面に小売売価を表示しない　1:する*}

  calcSum("scst"); {*合計値の計算*}
  calcSum("ssal");

}

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

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

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

  {*Fm_AF203X_Getを呼んで、afw80, afw81を作成してもらい、それを表示*}
  common.postData(
    "./search.php"
    , sendData
    , function name(data) {
      var d = JSON.parse(data);

      frm.find(".wseq").val(d.wseq);

      if (d.ret == "0") {

        console.log(d.ret_header);

        common.setValue(frm.find(".wret"), stringUtil.nvl(d.wret));
        
        {*ヘッダー内容を埋める*}
        dspHeader(frm, d.ret_header);

        if(d.cnt != '0') {

          {*フッター情報を埋める 登録修正者なので、新規時はない*}
          common.setValue($("#chgnm"), stringUtil.nvl(d.ret_header.chgnm));
          common.setValue($("#idat"), stringUtil.nvl(d.ret_header.idat));
          common.setValue($("#upchgnm"), stringUtil.nvl(d.ret_header.upchgnm));
          common.setValue($("#udat"), stringUtil.nvl(d.ret_header.udat));


          {*伝票内容一覧表示(afw80)*}
          dspDetailAfw80(d.ret_array);


        } else {
          common.setValue(frm.find(".newlbl"),"新規");
          setOneRow();
        }

        {*行作成(編集中店舗一覧afw81)*}
        var el = "";
        d.ret_array2.forEach((item, i) => {
          el += af203x_detail2.appendRow(item);
        });
        $("#detail2 .detail2").remove(); {*明細クリア*}
        $("#detail2").append(el);


        set_enabled_jmcat("main1",common.getValue(frm.find(".jmcat")));


        doHeaderEnable("D")
      } else {
        alert(d.msg);
        setOneRow();
        if(d.wret!='2') {
          clearHeader();
        }
        doHeaderEnable("H")
      }
    }, function name(params) {
      alert(params.msg);
    }
  )
}


{*明細行用関数*}
var af203x_detail = {
  appendRow: function (d) {
    var n = stringUtil.nvl;
    var row =
    ' <div class="col wp-100 detail"> ' +
    '<div class="col wp-100 rowinfo detailMain janGrp">' +
      {*1行目*}
    '  <div class="col wp-100 calcGrp r1"> ' +
    '    <input name="vlin" type="text" class="form-control input-sm item wd-kbn vlin" readonly value="' + n(d.vlin) + '"> '+
    '    <div class="col" style="width:168px;"> ' +
    '      <input name="jan" type="text" class="form-control input-sm item wd-jan jan popJan inpjan eventjan"  maxlength="13" value="' + n(d.jan) + '"> '+
    '      <input type="button" class="col popbtn cmdJan noclear  " tabindex="-1" value="?"/> '+
    '      <input name="gdcls9nm" type="text" class="form-control input-sm item wd-kbn gdcls9nm center" readonly value="' + n(d.gdcls9nm) + '"> '+
    '    </div>' +
    '    <input name="gdjnm" type="text" class="form-control input-sm item wd-50b gdjnm" readonly value="' + n(d.gdjnm) + '"> '+
    '    <input name="gdcnum" type="text" class="form-control input-sm item wd-number gdcnum number" readonly value="' + common.addFigure(n(d.gdcnum)) + '"> '+ //ケース入数
    '    <input name="mvpno" type="text" class="form-control input-sm item wd-number mvpno number"  maxlength="7" value="' + common.addFigure(n(d.mvpno)) + '"> '+ //受注数
    '    <input name="cst" type="text" class="form-control input-sm item wd-number cst number"  maxlength="10" fixed="2" value="' + common.addFigure(n(d.cst),'2') + '"> '+ //原単価
    '    <input name="sal" type="text" class="form-control input-sm item wd-number sal number chgvisible"  maxlength="10" value="' + common.addFigure(n(d.sal)) + '"> '+ //売価
    '    <div class="col chgvisiblehide" style="width:102px; display:none;">&nbsp;</div>  ' +
    '    <label class="control-label checkbox-label lbljmcat " style="margin-bottom:0px; padding-bottom:0px;"> ' +
    '      <input name="jmcat2" type="checkbox" value="3" class="form-control item input-sm wd-kbn jmcat2 clear" ' + common.addFigure(n(d.chkjmcat)) + ' tabindex="-1" />添付品  ' +
    '    </label> '+
    '    <div class="col" style="width:40px;">&nbsp;</div>'+
    '    <div class="col taxinfo clear" >' + n(d.taxinfo) + '</div>'+
    '  </div>' +
      {*2行目*}
    '  <div class="col wp-100 calcGrp r2"> ' +
    '    <div class="col" style="width:200px;"> '+
    '      <label class="control-label checkbox-label " style="margin-bottom:0px; padding-bottom:0px;"> ' +
    '        <div class="col" style="width:35px;">&nbsp;</div>'+
    '        <input name="cstflg" type="checkbox" value="1" class="form-control item input-sm wd-kbn cstflg clear" tabindex="-1" />マスタ単価登録  ' +
    '      </label> '+
    '    </div>' +
    '    <input name="gdjstnd" type="text" class="form-control input-sm item wd-50b gdjstnd" readonly value="' + n(d.gdjstnd) + '"> '+
    '    <input name="gdbnum" type="text" class="form-control input-sm item wd-number gdbnum number" readonly value="' + common.addFigure(n(d.gdbnum)) + '"> '+ //ボール入数
   '     <div class="col" style="width:102px;">&nbsp;</div>'+
    '    <input name="scst" type="text" class="form-control input-sm item wd-number scst number" style="width:83px;" readonly fixed="2" value="' + common.addFigure(n(d.scst)) + '"> '+ //原価金額
    '    <div class="item inputReadOnly" style="width:15px;">&nbsp;</div> '+
    '    <input name="ssal" type="text" class="form-control input-sm item wd-number ssal number chgvisible" readonly value="' + common.addFigure(n(d.ssal)) + '"> '+ //売価金額
    '    <div class="col chgvisiblehide" style="width:102px; display:none;">&nbsp;</div>' +
    '    <input name="psum" type="text" class="form-control input-sm item wd-number psum number" readonly value="' + common.addFigure(n(d.psum)) + '"> '+ //有効在庫
    '    <input name="chkLineDel"  type="checkbox" class="form-control item input-sm wd-kbn chkLineDel  " value="1" tabindex="-1"/> '+
    '  </div>' +
    '  <input name="iseq"       type="hidden" class="iseq keyItem forDeleteData" value="' + n(d.iseq) + '"> '+
    '  <input name="iseq80"     type="hidden" class="iseq80 keyItem forDeleteData" value="' + n(d.iseq80) + '"> '+
    '  <input name="ijan"       type="hidden" class="ijan"    value="' + n(d.ijan) + '"> '+
    '  <input name="orgijan"    type="hidden" class="orgijan" value="' + n(d.ijan) + '"> '+
    '  <input name="gdstun"     type="hidden" class="gdstun"  value="' + n(d.gdstun) + '"> '+
    '  <input name="gdcls9"     type="hidden" class="gdcls9"  value="' + n(d.gdcls9) + '"> '+
    '  <input name="gdcls7"     type="hidden" class="gdcls7"  value="' + n(d.gdcls7) + '"> '+ {*商品外区分 0:通常商品 1:商品以外(運送料等)*}
    '  <input name="gdcst"      type="hidden" class="gdcst"   value="' + n(d.gdcst) + '"> '+
    '  <input name="calcgdbcst" type="hidden" class="calcgdbcst"   value="' + n(d.calcgdbcst) + '"> '+ {*総額得意先かつ、画面税込入力の場合用の、税抜納入単価*}
    '  <input name="taxrt"      type="hidden" class="taxrt"   value="' + n(d.taxrt) + '"> '+
    '  <input name="taxdiv"     type="hidden" class="taxdiv"  value="' + n(d.taxdiv) + '"> '+
    '  <input name="cnt0311"    type="hidden" class="cnt0311" value="' + n(d.cnt0311) + '"> '+ {*新規の場合に、単価マスタ有無チェック？*}
    '  <input name=""           type="hidden" class="chkjmcat2"    value="' + n(d.jmcat2) + '"> '+
    {*ヘッダー情報覚え*}
    '  <input name="spktcd"     type="hidden" class="spktcd"  value="' + n(d.spktcd) + '"> '+
    '  <input name="spktnm"     type="hidden" class="spktnm"  value="' + n(d.spktnm) + '"> '+
    '  <input name="gdflg"      type="hidden" class="gdflg"   value="' + n(d.gdflg) + '"> '+
    '  <input name="jmcat"      type="hidden" class="jmcat"   value="' + n(d.jmcat) + '"> '+
    '  <input name="jdat"       type="hidden" class="jdat"    value="' + n(d.jdat) + '"> '+
    '  <input name="ydat"       type="hidden" class="ydat"    value="' + n(d.ydat) + '"> '+
    '  <input name="climit"     type="hidden" class="climit"  value="' + n(d.climit) + '"> '+
    '  <input name="dcubcd"     type="hidden" class="dcubcd"  value="' + n(d.dcubcd) + '"> '+
    '  <input name="cuslip2"    type="hidden" class="cuslip2" value="' + n(d.cuslip2) + '"> '+
    '  <input name="bbno"       type="hidden" class="bbno"    value="' + n(d.bbno) + '"> '+
    '  <input name="cudcd"      type="hidden" class="cudcd"   value="' + n(d.cudcd) + '"> '+
    '  <input name="cudnm"      type="hidden" class="cudnm"   value="' + n(d.cudnm) + '"> '+
    '  <input name="com"        type="hidden" class="com"     value="' + n(d.com) + '"> '+
    '  <input name="cslno"      type="hidden" class="cslno"   value="' + n(d.cslno) + '"> '+
    '  <input name="dtxt1"      type="hidden" class="dtxt1"   value="' + n(d.dtxt1) + '"> '+
    '  <input name="dtxt2"      type="hidden" class="dtxt2"   value="' + n(d.dtxt2) + '"> '+
    '  <input name="ltxt1"      type="hidden" class="ltxt1"   value="' + n(d.ltxt1) + '"> '+
    '  <input name="ltxt2"      type="hidden" class="ltxt2"   value="' + n(d.ltxt2) + '"> '+
    '</div>' +
    '<hr>' +
    ' </div> ';
    return row;
  },
}
var af203x_detail2 = {
  appendRow: function (d) {
    var n = stringUtil.nvl;
    var row =
    ' <div class="col wp-100 detail2 "> ' +
    '<div class="col wp-100 rowinfo " >' +
    '  <input name="cuscd" type="text" class="form-control input-sm item wd-S cuscd2" readonly value="' + n(d.cuscd) + '"/> '+
    '  <input name="spnm" type="text" class="form-control input-sm item wd-M spnm2" readonly value="' + n(d.spnm) + '"/> '+
    '  <input type="button" class="wd-func btn-main changecuscd wd-040 " style="height:23px;margin-top:1px;border-radius: 7px;" value="切替" /> ' + 
    '</div> '+
    ' </div> ';
    return row;
  },
}

{*複写伝票の選択画面確定後処理*}
{*callFmAF203XCopy してから、表示するafw81をとってくる*}
function callFmAF203XCopy() {
  let frm = $("#headerTop");

  $("#detail2 .detail2").remove(); {*明細(編集中店舗)クリア*}

  var container = $(".container");
  sendData = {};
  sendData["wseq"] = common.getValue(frm.find(".wseq"));
  sendData["cucd"] = common.getValue(frm.find(".cucd"));
  sendData["cuscd"] = common.getValue(frm.find(".cuscd"));


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

      if (d.ret == "0") {

        {*行作成(編集中店舗一覧)*}
        var el = "";
        d.ret_array2.forEach((item, i) => {
          el += af203x_detail2.appendRow(item);
        });
        $("#detail2").append(el);

      }
    }
  );
}


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

  {*afm03.cusaclsより小売売価の表示⇔非表示を制御 0:非表示,1:表示*}
  function salVisible() {
    var frmh = $("#headerTop");
    var container = $("#headerTop").closest(".container");

    var cusacls = common.getValue(frmh.find(".cusacls"));
    console.log(cusacls);

    container.find(".chgvisible, .chgvisiblehide").each(function(e) {
      var $me = $(this);
      if(cusacls == '0') {
        if($me.hasClass("chgvisible")) {
          $me.hide();
        } else {
          $me.show(); {*非表示にすると詰まるので、その分の余白を表示*}
        }
      } else {
        if($me.hasClass("chgvisible")) {
          $me.show();
        } else {
          $me.hide();
        } 
      }
    });
  }

  function setNewLineData($me) {
    let detail = $me.closest(".contents").find(".detail.selectRow");
    detail.find(".datepicker").each(function (index) {
      common.setDatepickerInfo($(this));
    });
    detail.find(".popbtn").each(function (index) {
      common.setValue($(this),"?");
    });
    detail.find("input:checkbox").each(function (index) {
      $(this).prop("checked",false);
    });


    detail.find(".taxinfo").text("");

    {*afm03.cusaclsより小売売価の表示/非表示を切り替える*}
    salVisible();


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


  {*合計の計算 引数は要素の名前(ex. r1tpno)*}
  function calcSum(el_name) {
    common.clearError($("#sum_scst"));
    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));
  }

  {*納入単価の色*}
  function set_visual_cst(detail) {
    var frmh = $("#headerTop");

    {*売上区分が 2:ｻﾝﾌﾟﾙ･交換 or 3:添付品 の場合は、単価チェックしない*}
    if(common.getValue(frmh.find(".jmcat"))!='2' && !detail.find(".jmcat2").prop("checked")) {

      var wsal = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue(detail.find(".sal"))),"0"));
      var wgdcst = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue(detail.find(".gdcst"))),"0"));
      if(stringUtil.nvl0(common.getValue(frmh.find(".cutaxcls")),'0') == '1' && stringUtil.nvl0(common.getValue(frmh.find(".cutax")),'0') == '1') {
        var wcst = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue(detail.find(".calcgdbcst"))),"0")); {*総額得意先かつ、画面税込入力の場合用の、画面入力(税込単価)から計算した税抜単価を用いる*}
      } else {
        var wcst = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue(detail.find(".cst"))),"0"));
      }

        if(wsal.lt(wcst)) { {*sal<cst*}
          detail.find(".cst").addClass("blue");
          detail.find(".cst").removeClass("red");
        } else if(wgdcst.gt(wcst)) { {*gdcst>cst*}
          detail.find(".cst").removeClass("blue");
          detail.find(".cst").addClass("red");
        } else {
          detail.find(".cst").removeClass("blue");
          detail.find(".cst").removeClass("red");
        }
        //detail.find(".cst").removeClass("blue");
        //detail.find(".cst").removeClass("red");
    }
  }

  {*jmcatについて pblock->main1:ヘッダー部,main2:明細部*}
  function set_enabled_jmcat(pblock,pjmcat) {

    console.log("block: "+pblock);
    console.log("jmcat: "+pjmcat);
    
    var detail = $("#detail .detail");
    let selectRow = $("#detail").closest(".contents").find(".detail.selectRow");

    if(pblock == 'main1') {
      if(pjmcat == '1') {  {*(main1のjmcat(ヘッダーに持ってるjmcat)は、3の場合1にしている)*}
        {*入力別選択：商品 の場合、基本的に単価は変えれるし、明細毎に添付チェックを付けれる。*}
        for(i = 0 ; i < detail.length ; i++) {
          var $me = $(detail[i]);
          $me.find(".cst").prop("readonly",false);
          $me.find(".sal").prop("readonly",false);
          $me.find(".lbljmcat").show();
        }
      } else if(pjmcat == '2') {
        {*入力別選択：販促品・サンプル の場合、単価は変更不可で、添付品の設定も不可（非表示にしてしまう）*}
        for(i = 0 ; i < detail.length ; i++) {
          var $me = $(detail[i]);
          $me.find(".cst").prop("readonly",true);
          $me.find(".sal").prop("readonly",true);
          $me.find(".lbljmcat").hide();
        }

      }
    } else if(pblock == 'main2') {
      if(stringUtil.nvl0(pjmcat,'1') == '1') {
        //未チェック（商品）なら、単価入力可。単価は取り直す
        selectRow.find(".cst").prop("readonly",false);
        selectRow.find(".sal").prop("readonly",false);
        
        reGetCst();

      } else if(pjmcat == '3') {
        //添付品チェックありなら単価修正不可。かつゼロにする。
        selectRow.find(".cst").prop("readonly",true);
        selectRow.find(".sal").prop("readonly",true);
        common.setValue(selectRow.find(".cst"),"0.00");
        common.setValue(selectRow.find(".sal"),"0");
        common.setValue(selectRow.find(".gdcst"),"0.00");
        calcSum("mvpno");
        calcSum("scst");
        calcSum("ssal");
        calcSum("aamt");
        calcAmt();
      }
    }
  }

  {*明細添付品チェック時に呼ぶ*}
  function reGetCst() {
    var $me = $(this);
    var $frmh = $("form.header");
    let detail = $("#detail").closest(".contents").find(".detail.selectRow");

    var sendData = {};
    sendData["ijan"] = common.getValue(detail.find(".ijan"));
    sendData["cucd"]  = common.getValue($frmh.find(".cucd"));
    sendData["climit"]  = common.getValue($frmh.find(".climit")); 
    sendData["cutaxcls"] = common.getValue($frmh.find(".cutaxcls")); 
    sendData["cutax"] = common.getValue($frmh.find(".cutax")); 
    sendData["jmcat"] = common.getValue($frmh.find(".jmcat")); 
    sendData["jmcat2"] = common.getValue(detail.find(".jmcat2")); 
    sendData["pno"]  = common.getValue(detail.find(".mvpno"));


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

        if(ret == '0') {
          common.setValue(detail.find(".sal"),common.addFigure(obj.sal));
          common.setValue(detail.find(".cst"),common.addFigure(obj.cst,2));
          common.setValue(detail.find(".calcgdbcst"),common.addFigure(obj.calcgdbcst,2));
          common.setValue(detail.find(".gdcst"),obj.gdcst);
          common.setValue(detail.find(".scst"),common.addFigure(obj.scst));
          common.setValue(detail.find(".ssal"),common.addFigure(obj.ssal));
          common.setValue(detail.find(".aamt"),common.addFigure(obj.aamt));
          calcSum("scst");
          calcSum("ssal");
          set_visual_cst(detail);
        } else {
        }
      }
      , function (error) {
        alert(error.msg);
      }
    );
  }

  {*単価取得(F7)で呼ぶ(afm02.gdbcstそのまま納入単価に埋める) *}
  function reGetAfm02Gdbcst() {
    var $me = $(this);
    var $frmh = $("form.header");
    let detail = $("#detail").closest(".contents").find(".detail.selectRow");

    var sendData = {};
    sendData["cucd"]  = common.getValue($frmh.find(".cucd"));
    sendData["ijan"] = common.getValue(detail.find(".ijan"));
    sendData["pno"]  = common.getValue(detail.find(".mvpno"));


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

        if(ret == '0') {
          common.setValue(detail.find(".cst"),common.addFigure(obj.afm02gdbcst,2));
          common.setValue(detail.find(".calcgdbcst"),common.addFigure(obj.afm02calcgdbcst,2));
          common.setValue(detail.find(".scst"),common.addFigure(obj.afm02sgdbcst));
          calcSum("scst");
          set_visual_cst(detail);
        } else {
        }
      }
      , function (error) {
        alert(error.msg);
      }
    );

  }

  {*数量入力時と、単価入力時、明細添付品チェック時に呼ぶ*}
  {*ついでに税抜単価も返しておく（総額得意先かつ税込入力の時の単価チェックで使用）*}
  function calcAmt() {
    var $me = $(this);
    var frmh = $("form.header");
    let detail = $("#detail").closest(".contents").find(".detail.selectRow");

    var sendData = {};
    sendData["cucd"]  = common.getValue(frmh.find(".cucd"));
    sendData["pno"]  = common.getValue(detail.find(".mvpno"));
    sendData["cst"]  = common.getValue(detail.find(".cst"));
    sendData["sal"]  = common.getValue(detail.find(".sal"));
    sendData["gdcst"]  = common.getValue(detail.find(".gdcst"));

    {*税抜単価取得用*}
    sendData["climit"]  = common.getValue(frmh.find(".climit"));
    sendData["ijan"]  = common.getValue(detail.find(".ijan"));
    

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

        if(ret == '0') {
          common.setValue(detail.find(".scst"),common.addFigure(obj.scst));
          common.setValue(detail.find(".ssal"),common.addFigure(obj.ssal));
          common.setValue(detail.find(".aamt"),common.addFigure(obj.aamt));
          common.setValue(detail.find(".calcgdbcst"),common.addFigure(obj.calcgdbcst,2)); {*税抜単価*}
          calcSum("scst");
          calcSum("ssal");
          set_visual_cst(detail);
        } else {
        }
      }
      , function (error) {
        alert(error.msg);
      }
    );
  }

  function chkRegBefore() {
    var frmh = $("#headerTop");
    var detail = $("#detail .detail");
    var errflg = false;
    var taxerr = false;
    var pnoerr = false;
    var warflg = false;
    var cnt = 0; {*udpate.phpに渡すデータのカウント*}
    var inscnt = 0; {*削除以外のデータのカウント*}
    var wtax;
    common.clearFormError($("#detail"));
    common.clearFormError($(".footer"));

    {*22.05.17 EOS(ent='1')の場合、チェック不要なものあり byFukuda*}
    var ent = common.getValue(frmh.find(".ent"));

    {*ヘッダー必須チェック*}
    frmh.find(".required").each(function (index) {
      var $me = $(this)
      if (stringUtil.isEmpty($me.val())) {
        errflg = true;
        common.addError($me, "入力して下さい", null, true);
      }
    });
    /*
    if(stringUtil.isEmpty(frmh.find(".ydat").val()) && stringUtil.isEmpty(frmh.find(".climit").val())) {
      errflg = true;
      common.addError(frmh.find(".ydat"), "出庫予定日または納品日を入力して下さい", null, true);
      common.addError(frmh.find(".climit"), "出庫予定日または納品日を入力して下さい", null, true);
    }
    */

    {*日付妥当性チェック*}
    var sdday = common.getValue(frmh.find(".sdday"));
    var ydat = common.getValue(frmh.find(".ydat"));
    var climit = common.getValue(frmh.find(".climit"));
    var wsdday = dateUtil.getYYYYMMDDDate(sdday);

    if(!stringUtil.isEmpty(frmh.find(".climit").val())) {
      var wclimit = dateUtil.getYYYYMMDDDate(climit);
      if(wclimit < wsdday) {
        errflg = true;
        common.addError(frmh.find(".climit"), "本日以降を入力して下さい", null, true);
      }
    }
    if(!stringUtil.isEmpty(frmh.find(".ydat").val()) && !stringUtil.isEmpty(!frmh.find(".climit").val())) {
      var wydat = dateUtil.getYYYYMMDDDate(ydat);
      if(wydat > wclimit) {
        errflg = true;
        common.addError(frmh.find(".ydat"), "納品日以前を入力して下さい", null, true);
      }
    }

    {*納入金額合計＜最低受注金額(afm03.dlwamt)であった場合エラー*}
    if(!frmh.find(".jmcat").prop("checked")) {
      var wgcst = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue($("#sum_scst"))),"0"));
      var wdlwamt = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue(frmh.find(".dlwamt"))),"0"));
      if(wgcst.lt(wdlwamt)) {
        errflg = true;
        common.addError($("#sum_scst"), "最低受注金額に達していません。送料を追加してください", null, true);
      }
    }


    if(!errflg) {
      detail.each(function(e){
        var $me = $(this);

        if(!stringUtil.isEmpty(common.getValue($me.find(".ijan"))) || $me.find(".chkLineDel").prop("checked")
        || !stringUtil.isEmpty(common.getValue($me.find(".iseq80")))) {
          {*該当データの件数カウント*}
          cnt = cnt + 1;
          pnoerr = false;

          if(!$me.find(".chkLineDel").prop("checked")) {

            {*22.07.26 削除チェックついてないものは、商品必須*}
            if(stringUtil.isEmpty(common.getValue($me.find(".ijan")))) {
              errflg = true;
              common.addError($me.find(".jan"), "入力して下さい", null, true);
            }


            inscnt = inscnt + 1;
            {*税率混在不可*}
            if(frmh.find(".cutaxdiv").val() == '0') { {*0:税率混在不可, 1:税率混在許可*}
              if(inscnt == 1) {
                wtax = common.getValue($me.find(".taxrt"));
              } else {
                if(wtax != common.getValue($me.find(".taxrt"))) {
                  taxerr = true;
                }
              }
            }

            {*受注数について*}
            if (stringUtil.isEmpty($me.find(".mvpno").val())) {
              errflg = true;
              pnoerr = true;
              common.addError($me.find(".mvpno"), "入力して下さい", null, true);
            } else {
              {*mvpno > 1*}
              var wmvpno = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue($me.find(".mvpno"))),"0"));
              if(wmvpno.lt(1)) { {*mvpno<1*}
                errflg = true;
                pnoerr = true;
                common.addError($me.find(".mvpno"), "１以上を入力して下さい", null, true);
              }

              {*サンプル・代替品でなければ、マスタの最小受注単位数の倍数か*}
              if(common.getValue(frmh.find(".rdo_jmcat")) != '2' && common.getValue(common.getValue($me.find(".jmcat2")))) {
                var wgdstun = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue($me.find(".gdstun"))),"1"));
                if(wmvpno.mod(wgdstun) != 0) {
                  errflg = true;
                  common.addError($me.find(".mvpno"), "最小受注単位数の倍数を入力して下さい(最小受注単位数："+stringUtil.nvl0(common.delFigure(common.getValue($me.find(".gdstun"))),"1")+")", null, true);
                }
              }
            }


            {*マスタ単価登録にチェックなし」かつ「得意先商品マスタに登録なし」はエラーとする*}
            if(common.getValue($me.find(".gdcls7")) == '0' && !$me.find(".cstflg").prop("checked") && common.getValue($me.find(".cnt0311")) == '0') {
              errflg = true;
              common.addError($me.find(".jan"), "得意先商品単価マスタの登録がありません", null, true);
            }

            {*単価のチェックをする/しないは構成定義マスタで制御(axm994.cls(Af203x))*}
            if(frmh.find(".cstchk").val() == '1') {
              {*サンプル・代替品の場合は、単価チェックしない*}
              if(common.getValue(frmh.find(".rdo_jmcat")) != '2' && common.getValue(common.getValue($me.find(".jmcat2"))) != '3') {
                var wcst = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue($me.find(".cst"))),"0"));
                var wsal = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue($me.find(".sal"))),"0"));
                var wgdcst = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue($me.find(".gdcst"))),"0"));
                var wcst0311 = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue($me.find(".cst0311"))),"0"));
                
                {*
                if(wcst.lt(0)) {
                  errflg = true;
                  common.addError($me.find(".cst"), "０より大きい値を入力して下さい", null, true);
                }
                *}

                {*
                if(wgdcst.gt(wcst)) {
                  warflg = true;
                  common.addError($me.find(".cst"), "納入単価より小さいです", null, true);
                }
                *}

                if(wsal.lt(wcst)) {
                  errflg = true;
                  common.addError($me.find(".cst"), "小売単価より大きいです", null, true);
                }
              }
            }
          }

        }
      });

      {*エラーがない場合に、ワーニングチェック*}
      if(!errflg && !taxerr && cnt !=0) {

        detail.each(function(e){
          var $me = $(this);

          if(!stringUtil.isEmpty(common.getValue($me.find(".ijan"))) || $me.find(".chkLineDel").prop("checked")
          || !stringUtil.isEmpty(common.getValue($me.find(".iseq80")))) {
            {*単価のチェックをする/しないは構成定義マスタで制御(axm994.cls(Af203x))*}
            if(frmh.find(".cstchk").val() == '1') {
              {*サンプル・代替品の場合は、単価チェックしない*}
              if(common.getValue(frmh.find(".rdo_jmcat")) != '2' && common.getValue(common.getValue($me.find(".jmcat2"))) != '3') {
                var wcst = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue($me.find(".cst"))),"0"));
                var wsal = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue($me.find(".sal"))),"0"));
                var wgdcst = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue($me.find(".gdcst"))),"0"));
                var wcst0311 = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue($me.find(".cst0311"))),"0"));

                if(wgdcst.gt(wcst)) {
                  warflg = true;
                  common.addError($me.find(".cst"), "納入単価より小さいです", null, true);
                }
              }
            }
          }
        });
      }
    }

    if(errflg) {
      return -1;
    } else if(taxerr) {
      return -2;
    } else if(cnt == 0) {
      return -3;
    } else if(warflg) {
      return -4;
    } else {
      return 0;
    }
  }



  function doCopy() {

    var errflg = "";
    errflg = chkRegBefore();

    
    if(errflg == -1) {
      $(".Func9").removeClass("noevent");
      alert("エラーがあります");
    } else if(errflg == -2) {
      $(".Func9").removeClass("noevent");
      alert("税率が混在しています");
    } else if(errflg == -3) {
      $(".Func9").removeClass("noevent");
      alert("商品を入力して下さい。");
    } else {

      if(errflg == -4) {
        if(!window.confirm("納入単価が仕入単価より小さいです。\nよろしいですか？")) {
          return false;
        } 
      }


      {*画面入力をafw80に登録してから、複写選択画面の起動*}
      var container = $(".container");
      sendData = {};
      sendData = common.getContainerInputData(container);

      sendData["type"] = "copyCuscd";

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

          {*伝票内容一覧表示(afw80)*}
          {*afw80にinsertした後のiseq80がほしいので、登録内容まま再表示して画面に埋める*}
          dspDetailAfw80(obj.ret_array);


          {*複数店舗選択画面の起動*}
          $(".popup-af203x1").trigger("click");

        }
        , function (error) {
          alert(error.msg);
        }
      );
    
    }

  }


  function deleteWork(mode) {
    var frmh = $("#headerTop");
    var wseq = frmh.find(".wseq").val();
    if(!stringUtil.isEmpty(wseq)) {

      var sendData = {};
      sendData["wseq"]  = wseq;

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

          if(ret == '0') {
            if(mode=="close") {
              $('.btn-close').trigger('click');
            }
          } else {
            common.setValue($me,"");
            common.addError($me, obj.msg, null);
          }
        }
        , function (error) {
          alert(error.msg);
        }
      );
    } else {
      if(mode=="close") {
        console.log("btn-close");
        $('.btn-close').trigger('click');
      }
    }
  }


  $(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("scst");
        calcSum("ssal");
    });
    //　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;

      if(maxvlin == length) {
        alert("伝票入力は"+maxvlin+"行までです。");
        detail.find(".jan")[0].focus();
        return false;
      }
 
      $(".btnLineIns").trigger("click");
    });
    //　F5 クリア
    $(document).on("click", ".Func5:not('.noevent')", function(e) {
        deleteWork();
        clearHeader();
        setOneRow();
    });
    //　F6
    $(document).on("click", ".Func6:not('.noevent')", function(e) {
      $(".headermenu").find(".btn-delete").trigger("click");
    });
    //　F7
    $(document).on("click", ".Func7:not('.noevent')", function(e) {
      reGetAfm02Gdbcst();
    });
    //　F8 複写
    $(document).on("click", ".Func8:not('.noevent')", function(e) {
      doCopy();
    });
    //　F9 登録/実行
    $(document).on("click", ".Func9:not('.noevent')", function(e) {
      //$(".Func9").addClass("noevent");
      console.log($("#af895x").css("display"));
      if($("#af895x").css("display")=='block') {
        {*伝票印字区分選択画面が開いているときのF9は、登録処理*}
        doReg();
      } else {
        $(".btn-reg-before").trigger("click"); {*main画面のF9は登録前チェック*}
      }
    });
    //　F10 Excel
    $(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) {
      console.log($("#af895x").css("display"));
      if($("#af895x").css("display")=='block') {
        {*伝票印字区分選択画面が開いているときのF12は、伝票印字区分選択画面を閉じる*}
        doHeaderEnable('D');
        $("#af895x").find(".wd-func").addClass("noevent");
        $("#af895x").hide(); 
      } else {
        deleteWork("close"); {*main画面のF12は画面を閉じる*}
      }
    });

    //画面初期表示時動作
    setOneRow(); {*最初に一行出したい*}

    console.log({$header.nodspselectjmcat});

    {*最初の子画面を出さない場合は、初期値を埋める必要がある。*}
    {if $header.nodspselectjmcat eq "1"}
      setInitJmcat("1");
    {else}
      doHeaderEnable("Dialog");
      $("#selectJmcat .kettei").focus();
    {/if}


    {*画面初期表示時の入力種別を選択したら*}
    $(document).on("click", "#selectJmcat .kettei", function(e) {
      frmh = $("#headerTop");
      dialog = $("#selectJmcat");

      {*ダイアログの値をヘッダー項目にコピー*}
      common.setValue(frmh.find(".defjmcat"),common.getValue(dialog.find(".rdo_jmcat")));
      common.setValue(frmh.find(".deftoday"),common.getValue(dialog.find(".rdo_today")));

      if(common.getValue(dialog.find(".rdo_jmcat")) == '1') {
        frmh.find(".jmcatlbl").text("商品");
        frmh.find(".jmcatlbl").addClass("jmcatLabel");
      } else if(common.getValue(dialog.find(".rdo_jmcat")) == '2') {
        frmh.find(".jmcatlbl").text("販促・サンプル");
        frmh.find(".jmcatlbl").addClass("jmcatLabel");
        frmh.find(".jmcatlbl").css("letter-spacing","-2px");
      } else {
        frmh.find(".jmcatlbl").text("");
        frmh.find(".jmcatlbl").removeClass("jmcatLabel");
      }

      doHeaderEnable("H");
      dialog.hide();
    });

    function setInitJmcat(flg) {
      frmh = $("#headerTop");
      if(flg == '1') {
        common.setValue($("#selectJmcat").find(".rdo_jmcat"),'1');
        common.setValue($("#selectJmcat").find(".rdo_today"),'1');
        common.setValue(frmh.find(".defjmcat"),'1'); {*商品*}
        common.setValue(frmh.find(".deftoday"),'1'); {*当日*}

        frmh.find(".jmcatlbl").text("商品");
        frmh.find(".jmcatlbl").addClass("jmcatLabel");
      }
      doHeaderEnable("H");
    }



    //MENUボタン===============================
    $(document).on("regSuccess", ".btn-reg", function(e,option){
      var frmh = $("#headerTop");
      if(option.vret != '0') {
        if(frmh.find(".hflg").val() == '1') {
          alert('引当結果を取消に失敗しました。システム管理者に連絡してください。('+option.vret+')');
        } else {
          alert('登録に失敗しました。システム管理者に連絡してください。('+option.vret+')');
        }
      } else {
        if(frmh.find(".hflg").val() == '1') {
          alert('引当結果を取消しました。\n再度引当を行ってください。');
        }
        let w_msg = "登録しました。\n";
        if(!stringUtil.isEmpty(option.vseq)) {
          w_msg = w_msg + "伝票番号は【"+option.vseq+"】です。\n";
        }
        alert(w_msg);
        setOneRow();
        clearHeader();
      }
    });
    $(document).on("delSuccess", ".btn-delete", function(e,option){
      var frmh = $("#headerTop");
      let w_msg = "削除しました。\n";
      alert(w_msg);
      setOneRow();
      clearHeader();

    });

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

      var errflg = false;
      var frmh = $(this).closest(".contents").find(".header1");
      common.clearFormError(frmh);

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

      var frmh2 = $(this).closest(".contents").find(".header2");
      var frm = $("#headerTop");

      if (errflg) {
        $(".Func2").removeClass("noevent");
        alert('エラーがあります');
      } else {
        if(stringUtil.isEmpty(frmh.find(".vseq").val()) || !stringUtil.isEmpty(frm.find(".cuiseq").val())) {
          dspDetail();
        } else {
          {*伝票入力ありのときは、同一得意先・店舗・伝票番号のデータが複数ないか検索。複数ある場合には選択画面を表示する*}
          if(!stringUtil.isEmpty(frmh.find(".vseq").val())) {
            var sendData = {};
            sendData["cucd"]  = common.getValue(frmh.find(".cucd"));
            sendData["cuscd"]  = common.getValue(frmh.find(".cuscd"));
            sendData["vseq"]  = common.getValue(frmh.find(".vseq"));

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

                $(".Func2").removeClass("noevent");
                
                if(ret == '0') {
                  if(obj.cnt == '0' || obj.cnt == '1') {
                    if(obj.cnt == '1') {
                      common.setValue($("#headerTop").find(".cuiseq"),obj.cuiseq); {*伝票ある場合だけ、埋める*}
                    }
                    dspDetail(); //そのまま表示
                  } else {
                    {*複数伝票有*}
                    $(".Func2").removeClass("noevent");
			              $(".cmdAf203x2").trigger("click");
                  }
                } else {
                  alert(obj.msg);
                }
              }
              , function (error) {
                alert(error.msg);
              }
            );
          } else {
            dspDetail();
          }
        }
      }
    });
    {*複数伝票で選択後*}
    $(document).on("afterSelectaf2003x", ".cuiseq", function(e) {
      $(".btn-search-before").trigger("click");
    });




    $(document).on("click", ".btn-reg-before", function(e) {
      //$(".Func9").addClass("noevent");

      var errflg = "";
      errflg = chkRegBefore();

      if(errflg == -1) {
        $(".Func9").removeClass("noevent");
        alert("エラーがあります");
      } else if(errflg == -2) {
        $(".Func9").removeClass("noevent");
        alert("税率が混在しています");
      } else if(errflg == -3) {
        $(".Func9").removeClass("noevent");
        alert("商品を入力して下さい。");
      } else {

        if(errflg == -4) {
          if(!window.confirm("納入単価が仕入単価より小さいです。\nよろしいですか？")) {
            return false;
          } else {
            common.clearFormError($("#detail"));
          }
        }

        {*伝票印字区分の選択画面の起動*}
        {*販促・サンプルの場合、「納入単価印字する」チェックOFFデフォルト表示*}
        var frm = $("#headerTop");
        $("#af895x").find(".pkbn1").prop("checked",true);
        if(common.getValue(frm.find(".defjmcat")) == '2') {
          $("#af895x").find(".pkbn2").prop("checked",false);
        } else {
          $("#af895x").find(".pkbn2").prop("checked",true);
        }

        {if $header.nodspselectpkbn eq "1"}
          {*伝票印字区分(社名) チェック:0, 未チェック:1*}
          common.setValue(frm.find(".pkbn1"),'0');
          {*伝票印字区分(納入単価) チェック:0, 未チェック:1*}
          common.setValue(frm.find(".pkbn2"),'0');
          $(".headermenu").find(".btn-reg").trigger("click");
        {else}
          doHeaderEnable('Dialog');
          $("#af895x").show();
          $("#af895x").find(".wd-func").removeClass("noevent");
          $("#af895x").find(".modoru").focus();
        {/if}

      }
    });
    {*伝票印字区分の選択画面で次に進む処理*}
    function doReg() {
      var frm = $("#headerTop");

      doHeaderEnable('D');
      $("#af895x").find(".wd-func").addClass("noevent");
      $("#af895x").hide(); {*伝票印字区分選択画面が開いているときのF12は、伝票印字区分選択画面を閉じる*}

      {*伝票印字区分(社名) チェック:0, 未チェック:1*}
      if($("#af895x").find(".pkbn1").prop("checked")) {
        common.setValue(frm.find(".pkbn1"),'0');
      } else {
        common.setValue(frm.find(".pkbn1"),'1');
      }

      {*伝票印字区分(納入単価) チェック:0, 未チェック:1*}
      if($("#af895x").find(".pkbn2").prop("checked")) {
        common.setValue(frm.find(".pkbn2"),'0');
      } else {
        common.setValue(frm.find(".pkbn2"),'1');
      }

      $(".headermenu").find(".btn-reg").trigger("click");

    }



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



    //=== header ===
    {*得意先情報取得。flg:1->通常, flg:2->伝票検索したときに呼ぶ。*}
    function getCunmInfo($me,flg) {
      var frmh = $("#headerTop");
      var frmd = $("#detailHeader");
      var grp = $me.closest(".cucdGrp");
      var sendData = {};
      sendData["cucd"]  = $me.val();

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

            common.setValue(frmh.find(".com3"),obj.com3);
            common.setValue(grp.find(".stp"),obj.stp);
            common.setValue(frmh.find(".maxvlin"),obj.maxvlin);
            common.setValue(frmh.find(".cutaxdiv"),obj.cutaxdiv);
            common.setValue(frmh.find(".cutax"),obj.cutax); 
            common.setValue(frmh.find(".cusacls"),obj.cusacls); 

            salVisible();

          } else {
            common.setValue($me,"");
            common.addError($me, obj.msg, null);
          }
        }
        , function (error) {
          alert(error.msg);
        }
      );
    }

    $(document).on("afterSelectAfm032x1", ".cucd", function(e) {
      getCunmInfo($(this)),'1';
    });
    $(document).on("afterSelectAfm032x", ".cucd", function(e) {
      getCunmInfo($(this),'1');
    });
    {*伝票検索から戻ってきたときも、得意先情報を取得*}
    $(document).on("afterSelectaf203x2", ".cucd", function(e) {
      getCunmInfo($(this),'2');
    });
    $(document).on("afterChangeCucd", "#headerTop .cucd", function(e) {
      getCunmInfo($(this),'1');
    });

    {*伝票選択でそのまま表示*}
    $(document).on("afterSelectaf203x2", ".vseq", function(e) {
      $(".btn-search-before").trigger("click");
    });

    {*ヘッダーのjmcat（基本的には呼ばれないはず）*}
    $(document).on("click","#headerTop .rdo_jmcat", function(e) {
      set_enabled_jmcat("main1",common.getValue(frm.find(".jmcat")));
    });


    {*販売区分のチェック*}
    $(document).on("change", ".gdflg", function(e) {
      var $me = $(this);
      var gdflg = $me.val();

      if(gdflg != '1' && gdflg != '2') {
        common.addError($me, "確認してください", null);
        $me.val("");
      }
    });


    {*出庫予定日変わったら、納品日取得し直し*}
    $(document).on("afterChangeDatePicker", ".ydat", function(e) {

      var $me = $(this);
      var ydat = $me.val();

      if(!stringUtil.isEmpty(ydat)) {

        var sendData = {};
        sendData["ydat"] = ydat;

        common.postData(
            "./getClimit.php"
          , sendData
          , function (data) {
            // 特殊処理があれば
            var obj = JSON.parse(data);
            common.setValue($("#headerTop").find(".climit"),obj.climit);

          }
          , function (error) {
            alert(error.msg);
          }
        );        
      }
    });


    {*編集中店舗一覧をクリックしたら、そこのselectRowをきりかえる*}
    $(document).on("focus", "#detail2 .detail2", function(e) {
{*編集中一覧のselectRowを付け替える。*}
      var detail2 = $(this)
      var detailArea = detail2.closest("#detail2").find(".detail2");
      for(i = 0 ; i < detailArea.length ; i++) {
        var $me = $(detailArea[i]);
        $me.removeClass("selectRow");
      }
      detail2.addClass("selectRow");
    });

    {*編集中店舗の切替*}
    $(document).on("click", "#detail2 .detail2 .changecuscd", function(e) {
      var frmh = $("#headerTop");
      var detail = $(this).closest(".detail2");

      console.log("header:"+common.getValue(frmh.find(".cuscd"))+"  |  detail:"+common.getValue(detail.find(".cuscd2")));

      if(common.getValue(frmh.find(".cuscd")) != common.getValue(detail.find(".cuscd2"))) {
        var errflg = "";

        {*登録前チェックと同じチェックを行う*}
        errflg = chkRegBefore();
        
        alert(errflg);

        if(errflg == -1) {
          $(".Func9").removeClass("noevent");
          alert("エラーがあります");
        } else if(errflg == -2) {
          $(".Func9").removeClass("noevent");
          alert("税率が混在しています");
        } else if(errflg == -3) {
          $(".Func9").removeClass("noevent");
          alert("商品を入力して下さい。");
        } else {

          if(errflg == -4) {
            if(!window.confirm("納入単価が仕入単価より小さいです。\nよろしいですか？")) {
              return false;
            } 
          }

          {*現在編集中店舗の画面入力をafw80に登録してから、切替後店舗情報を表示する*}
          var container = $(".container");
          sendData = {};
          sendData = common.getContainerInputData(container);

          sendData["header"]["cuscd2"] = common.getValue(detail.find(".cuscd2"));
          sendData["type"] = "changeCuscd";

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

              {*切替後ヘッダー情報を埋める*}
              dspHeader(frmh, obj.ret_header);
              {*切替後店舗情報・伝票番号(あれば)を埋める*}
              common.setValue(frmh.find(".cuscd"),obj.ret_header["cuscd"]);
              common.setValue(frmh.find(".spnm"),obj.ret_header["spnm"]);
              common.setValue(frmh.find(".vseq"),obj.ret_header["vseq"]);

              {*行作成*}
              {*切替後店舗用の伝票内容(afw80)*}
              dspDetailAfw80(obj.ret_array);

            }
            , function (error) {
              alert(error.msg);
            }
          );


        }
      }
      
    });

    //=== body ===
    $(document).on("click",".jmcat2", function(e) {
      var detail = $(this).closest(".detail")
      set_enabled_jmcat("main2",common.getValue(detail.find(".jmcat2")));

    });

    {*jan,vjanのいずれの入力も可
      課税区分、税率も欲しいので自力でとってる
      一部一致の一覧表示の為、名称取得までは共通部分*}
    $(document).on("afterSelectAfm02x", ".jan", function(e) {
      get_gdnminfo($(this));
    });
    $(document).on("clearChangeJan", ".jan", function(e) {
      get_gdnminfo($(this));
    });
    $(document).on("afterChangeJan", ".jan", function(e) {
      get_gdnminfo($(this));
    });
    function get_gdnminfo($me) {
      let inpcd = common.getValue($me);
      var grp = $me.closest(".janGrp");
      var detail = $me.closest(".detail");

      common.setValue(grp.find(".gdcls7"),"");
      common.setValue(grp.find(".gdstun"),"");
      common.setValue(grp.find(".gdcnum"),"");
      common.setValue(grp.find(".gdbnum"),"");
      common.setValue(grp.find(".sal"),"");
      common.setValue(grp.find(".cst"),"");
      common.setValue(grp.find(".gdcst"),"");
      common.setValue(grp.find(".calcgdbcst"),"");
      common.setValue(grp.find(".psum"),"");

      common.setValue(grp.find(".taxrt"),"");
      common.setValue(grp.find(".taxdiv"),"");
      common.setValue(grp.find(".taxinfo"),"");

      common.setValue(grp.find(".mvpno"),"");
      common.setValue(grp.find(".scst"),"");
      common.setValue(grp.find(".ssal"),"");
      common.setValue(grp.find(".aamt"),"");
      common.setValue(grp.find(".sgdccst"),"");
      common.setValue(grp.find(".cnt0311"),"");


      if(stringUtil.isEmpty(inpcd)) {
        return false;
      }

      var $frmh = $("form.header");

      var sendData = {};
      sendData["jan"]     = inpcd;
      sendData["ijan"]    = common.getValue(grp.find(".ijan"));
      sendData["spktcd"]  = common.getValue($frmh.find(".spktcd"));
      sendData["cucd"]    = common.getValue($frmh.find(".cucd"));
      sendData["climit"]  = common.getValue($frmh.find(".climit")); 
      sendData["iseq"]    = common.getValue(grp.find(".iseq"));

      sendData["cutaxcls"] = common.getValue($frmh.find(".cutaxcls")); 
      sendData["cutax"]    = common.getValue($frmh.find(".cutax")); 

      sendData["jmcat"]  = common.getValue($frmh.find(".jmcat")); 
      sendData["jmcat2"] = common.getValue(detail.find(".jmcat2")); 


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

          if(ret == '0') {

            common.setValue(grp.find(".gdcls7"),obj.gdcls7);
            common.setValue(grp.find(".gdstun"),obj.gdstun);
            common.setValue(grp.find(".gdcnum"),obj.gdcnum);
            common.setValue(grp.find(".gdbnum"),obj.gdbnum);
            common.setValue(grp.find(".sal"),common.addFigure(obj.sal));
            common.setValue(grp.find(".cst"),common.addFigure(obj.cst,2));
            common.setValue(grp.find(".gdcst"),obj.gdcst);
            common.setValue(grp.find(".calcgdbcst"),common.addFigure(obj.calcgdbcst,2));
            common.setValue(grp.find(".psum"),common.addFigure(obj.psum));
            common.setValue(grp.find(".taxrt"),obj.taxrt);
            common.setValue(grp.find(".taxdiv"),obj.taxdiv);
            common.setValue(grp.find(".taxinfo"),obj.taxinfo);
            common.setValue(grp.find(".cnt0311"),obj.cnt0311);
            set_visual_cst(grp);
          } else {
            common.setValue($me,"");
            common.addError($me, obj.msg, null);
          }

        }
        , function (error) {
          alert(error.msg);
        }
      );
    }

    $(document).on("change", ".mvpno, .cst, .sal", function(e) {
      calcAmt()
    });
    $(document).on("click", ".chkLineDel", function(e) {
      calcSum("scst");
      calcSum("ssal");
    });


    $(document).on("focus", ".mvpno", function(e) { {*数量にフォーカスが来た時商品が入っていたなかったら登録へ*}
      let detail = $(this).closest(".detail");
      if (stringUtil.isEmpty(common.getValue(detail.find(".jan")))) {
        $("#topmenu").find(".Func9").focus();
      }
    })
    $(document).on("focus", ".footer .dummy", function(e) {
      $("#topmenu").find(".Func9").focus();
    });



    //====明細行動作======
    $(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;

      if(maxvlin == length) {
        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));
    });


    //=== footer ===



  });



</script>
