<script>


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

function doHeaderEnable(pmode) { {*pmode: H Header有効, D 明細有効*}
  let h = $("#headerTop");
  let h1 = h.find(".header1");
  let h2 = h.find(".header2");
  let d = $("#detailTop");
  let m = $("#funcMenu");
  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 .Func6").addClass("noevent");
    $("#funcMenu .Func5").addClass("noevent");
    $("#funcMenu .Func6").addClass("noevent");
    $("#funcMenu .Func7").addClass("noevent");
    $("#funcMenu .Func8").addClass("noevent");
    $("#funcMenu .Func9").addClass("noevent");
    $("#funcMenu .Func11").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();

    h2.find(".newonly").each(function(index) {
      $(this).prop("readonly",false);
    });

  } else {
    h1.addClass("noevent");
    h2.removeClass("noevent");
    d.removeClass("noevent");
    $("#funcMenu").removeClass("noevent");
    $("#funcMenu .Func2").addClass("noevent");
    if(stringUtil.isEmpty(common.getValue(h1.find(".vseq")))) {
      $("#funcMenu .Func3").removeClass("noevent"); {*修正時行削除ダメらしい*}
    }
    $("#funcMenu .Func5").removeClass("noevent");
    $("#funcMenu .Func6").removeClass("noevent");
    $("#funcMenu .Func7").removeClass("noevent");
    $("#funcMenu .Func8").removeClass("noevent");
    $("#funcMenu .Func9").removeClass("noevent");
    $("#funcMenu .Func11").removeClass("noevent");
    $("#funcMenu .Func12").removeClass("noevent");

    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");
    }

    {*修正*}
    if(!stringUtil.isEmpty(common.getValue(h1.find(".vseq")))) {
      h2.find(".newonly").each(function(index) { {*修正時は*}
        $(this).prop("readonly",true);
      });
      $("#lastDetail").hide();
    } else {
      $("#lastDetail").show();
    }
     h2.find(".dat1")[0].focus();
  }
}

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

  frm.find(".maxvlin").val("6"); {*最大6行(但し修正時は、その伝票のMAX(VLIN))*}
}

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

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

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

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

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

  common.setValue(frm.find(".gdflg"), stringUtil.nvl(arr_header.gdflg));
  common.setValue(frm.find(".dat1"), stringUtil.nvl(arr_header.dat1));
  common.setValue(frm.find(".climit"), stringUtil.nvl(arr_header.climit));
  common.setValue(frm.find(".pgvseq"), stringUtil.nvl(arr_header.pgvseq));
  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(".com1"), stringUtil.nvl(arr_header.com1));
  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(".cutax"), stringUtil.nvl(arr_header.cutax));
  common.setValue(frm.find(".lblcutax"), stringUtil.nvl(arr_header.lblcutax));
  common.setValue(frm.find(".cutaxdiv"), stringUtil.nvl(arr_header.cutaxdiv));
  common.setValue(frm.find(".mtaxdiv"), stringUtil.nvl(arr_header.mtaxdiv));
  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 += af215x_detail.appendRow(item);
  });
  $("#detail").append(el);

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

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

  }

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

}

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

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

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

  {*Fm_AF215X_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 += af215x_detail2.appendRow(item);
        });
        $("#detail2 .detail2").remove(); {*明細クリア*}
        $("#detail2").append(el);


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


{*明細行用関数*}
var af215x_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="gdcst" type="text" class="form-control input-sm item wd-number gdcst number"  maxlength="10" fixed="2" value="' + common.addFigure(n(d.gdcst),'2') + '"> '+ //仕入単価
    '    <input name="sgdcst" type="text" class="form-control input-sm item wd-number sgdcst number " readonly value="' + common.addFigure(n(d.sgdcst)) + '"> '+ //仕入金額
    '    <input name="com" type="text" class="form-control input-sm item wd-MM com"  maxlength="20" value="' + n(d.com) + '"> '+
    '  </div>' +
      {*2行目*}
    '  <div class="col wp-100 calcGrp r2"> ' +
    '    <div class="col" style="width:200px;"> '+
    '       <div class="col taxinfo clear" >' + n(d.taxinfo) + '</div>'+
    '       <div class="col" >&nbsp;</div>'+
    '    </div>' +
    '    <input name="gdjstnd" type="text" class="form-control input-sm item wd-50b gdjstnd" readonly value="' + n(d.gdjstnd) + '"> '+
    '    <input name="gdhtun" type="text" class="form-control input-sm item wd-number gdhtun number" readonly value="' + common.addFigure(n(d.gehtun)) + '"> '+ //発注単位数
   '     <div class="col" style="width:102px;">&nbsp;</div>'+
    '    <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="scst" type="text" class="form-control input-sm item wd-number scst number" readonly value="' + common.addFigure(n(d.scst)) + '"> '+ //原価金額
    '    <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="gdbnum"     type="hidden" class="gdbnum"  value="' + n(d.gdbnum) + '"> '+
    '  <input name="gdcls9"     type="hidden" class="gdcls9"  value="' + n(d.gdcls9) + '"> '+
    '  <input name="taxrt"      type="hidden" class="taxrt"   value="' + n(d.taxrt) + '"> '+
    '  <input name="taxdiv"     type="hidden" class="taxdiv"  value="' + n(d.taxdiv) + '"> '+
    '  <input name="undkbn"     type="hidden" class="undkbn"  value="' + n(d.undkbn) + '"> '+
    '</div>' +
    '<hr>' +
    ' </div> ';
    return row;
  },
}
var af215x_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;
  },
}

{*複写伝票の選択画面確定後処理*}
{*callFmAF215XCopy してから、表示するafw81をとってくる*}
function callFmAF215XCopy() {
  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(
    "./callFmAF215XCopy.php"
    , sendData
    , function name(data) {
      var d = JSON.parse(data);

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

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

      }
    }
  );
}


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

  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("");

    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));
  }


  {*単価取得(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(".scst"),common.addFigure(obj.afm02sgdbcst));
          detail.find(".cst").focus();
          calcSum("scst");
        } 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["gdcst"]  = common.getValue(detail.find(".gdcst"));

    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(".sgdcst"),common.addFigure(obj.sgdcst));
          calcSum("scst");
          calcSum("sgdcst");
        } else {
        }
      }
      , function (error) {
        alert(error.msg);
      }
    );
  }

  function chkRegBefore(pmode) { {*F8:複写, F9:登録, changecuscd:切替*}
    var frmh = $("#headerTop");
    var detail = $("#detail .detail");
    var errflg = false;
    var taxerr = false;
    var pnoerr = false;
    var warflg = false;
    var duperr = 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(common.getValue(frmh.find(".dat1"))) && !stringUtil.isEmpty(common.getValue(frmh.find(".climit")))) {
      let wdat1   = dateUtil.getYYYYMMDDDate(common.getValue(frmh.find(".dat1")));
      let wclimit = dateUtil.getYYYYMMDDDate(common.getValue(frmh.find(".climit")));
      if(wdat1 > wclimit) {
        errflg = true;
        common.addError(frmh.find(".climit"), "発注日より過去の日付は入力できません。", 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")) {

            inscnt = inscnt + 1;
            {*税率混在不可*}
            if(frmh.find(".cutaxdiv").val() == '0' || frmh.find(".mtaxdiv").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(common.getValue($me.find(".ijan")))) {
              errflg = true;
              common.addError($me.find(".jan"), "入力して下さい", null, 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);
              }

              {*マスタの最小発注単位数の倍数か*}
              var wgdhtun = new BigNumber(stringUtil.nvl0(common.delFigure(common.getValue($me.find(".gdhtun"))),"1"));
              if(wmvpno.mod(wgdhtun) != 0) {
                errflg = true;
                common.addError($me.find(".mvpno"), "最小発注単位数の倍数を入力して下さい(最小発注単位数："+stringUtil.nvl0(common.delFigure(common.getValue($me.find(".gdhtun"))),"1")+")", null, true);
              }
            }
          }
        }
      });
    }

    //重複チェック
    var detail = $("#detail .detail");
    console.log(detail.length);

    for(i = 0 ; i < detail.length ; i++) {
      if(duperr) {
        break;
      }
      var div = $(detail[i]);
      if(!stringUtil.isEmpty(div.find(".jan").val())) {
        var joken1 = div.find(".jan");
        for(j = i+1 ; j < detail.length ; j++) {
          if(duperr) {
            break;
          }
          var div2 = $(detail[j]);
          if(!stringUtil.isEmpty(div2.find(".jan").val())) {
            var joken1_2 = div2.find(".jan");
            if(div.attr("id") != div2.attr("id")){
              if(joken1.val() == joken1_2.val()) {
                duperr = true;
                joken1_2.focus();
              }
            }
          }
        }
      }
    }

    var sendData = {};
    sendData["cucd"]       = frmh.find(".cucd").val();
    sendData["cuscd"]      = frmh.find(".cuscd").val();
    sendData["climit"]     = frmh.find(".climit").val();
    sendData["pgvseq"]     = frmh.find(".pgvseq").val();
    sendData["old_pgvseq"] = frmh.find(".old_pgvseq").val();

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

        if(ret != '0') {
          if(!stringUtil.isEmpty(obj.climitMsg)) {
            errflg = true;
            common.addError(frmh.find(".climit"), obj.climitMsg, null, true);
          }
          if(!stringUtil.isEmpty(obj.pgvseqMsg)) {
            errflg = true;
            common.addError(frmh.find(".pgvseq"), obj.pgvseqMsg, 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")))) {
              if($me.find(".undkbn").val()=='1') {
                common.addError(me.find(".jan"), "バラ発注不可品です。", null, true);
                warflg = true;
              }
            }
          });
        }

        if(errflg) {
          $(".Func9").removeClass("noevent");
          alert("エラーがあります");
        } else if(taxerr) {
          $(".Func9").removeClass("noevent");
          alert("税率が混在しています");
        } else if(cnt == 0) {
          $(".Func9").removeClass("noevent");
          alert("商品を入力して下さい。");
        } else if(duperr) {
          $(".Func9").removeClass("noevent");
          alert("重複しています");          
        } else if(warflg) {
          if(!window.confirm("バラ発注不可品が含まれます。\n続行しますか？")) {
            return false;
          } else {
            {*F8:複写, F9:登録, changecuscd:切替*}
            if(pmode == 'F8') {
              doCopy();
            } else if(pmode == 'F9' || pmode == 'F10' || pmode == 'F11') {
              doReg();
            } else {
              changecuscd();
            }
          }
        } else {
          {*F8:複写, F9:登録, changecuscd:切替*}
          if(pmode == 'F8') {
            doCopy();
          } else if(pmode == 'F9' || pmode == 'F10' || pmode == 'F11') {
            doReg();
          } else {
            changecuscd();
          }
        }

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


  }

  {*登録(F9)押下後の、登録処理を呼ぶ*}
  function doReg() {
    var frm = $("#headerTop");
    doHeaderEnable('D');
    $(".headermenu").find(".btn-reg").trigger("click");
  }

  {*複写(F8)押下後の、afw80insertと複写店舗選択画面起動*}
  function doCopy() {

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

    console.log("errflg: "+errflg);

    {*画面入力を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-af215x1").trigger("click");

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

  }

  {*店舗切替押下後の、現在店舗をafw80にinsertしてから、切替後店舗情報を表示する*}
  function changecuscd() {
    var container = $(".container");
    var frmh = $("#headerTop");
    var detail = $("#detail2 .selectRow");

    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"]);

        {*フッター情報を埋める*}
        common.setValue($("#chgnm"), stringUtil.nvl(obj.ret_header.chgnm));
        common.setValue($("#idat"), stringUtil.nvl(obj.ret_header.idat));
        common.setValue($("#upchgnm"), stringUtil.nvl(obj.ret_header.upchgnm));
        common.setValue($("#udat"), stringUtil.nvl(obj.ret_header.udat));

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

      }
      , 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');
      }
    }
  }

  {*発注書発行。対象データはワークから*}
  function svf_printout(pwseq) {
    var frm = $("#headerTop");

    let param2 = { "method": "GetWseqMjan" };
    let irep = "AF412X2";
    $.ajax({
      type: "GET",
      url: "../../api/getWseq.php",
      data: param2,
      dataType: "json",
      scriptCharset: 'utf-8',
      success: function(data, status, xhr) {
        var wurl = "{$_REPORT_URL}" + "AF412X?WSEQ=" + JSON.parse(data.data)
                + "&IREP=" + irep
                + "&CHGCD=" + "{$_SYSTEM_NAME_EN_CHGCD}"
                + "&KTKTCD=" + "{$_SYSTEM_NAME_EN_LGKTKTCD}"
                + "&VEND=" + "{$_SYSTEM_NAME_EN_VEND}"
                + "&ACCD=" + "{$_SYSTEM_NAME_EN_ACCD}"
                + "&DBNO=" + "{$_SYSTEM_NO}"
                + "&JOKEN1=" + pwseq
                + '&PDF=1';
        window.open(wurl, irep+JSON.parse(data.data));

      }
    });
  }


  $(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("sgdcst");
    });
    //　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();
      chkRegBefore('F8');
    });
    //　F9 登録/実行
    $(document).on("click", ".Func9:not('.noevent')", function(e) {
      //$(".btn-reg-before").trigger("click"); {*main画面のF9は登録前チェック*}
      common.setValue($("#headerTop .sflg"),'0');
      chkRegBefore('F9');
    });
    //　F10 {*呼ばれないはず*}
    $(document).on("click", ".Func10:not('.noevent')", function(e) {
      common.setValue($("#headerTop .sflg"),'1'); {*呼ばれないけど動作あった*}
      chkRegBefore('F10');
    });
    //　F11 プリンタ
    $(document).on("click", ".Func11:not('.noevent')", function(e) {
      common.setValue($("#headerTop .sflg"),'2'); 
      chkRegBefore('F11');
    });
    //　F12 メニュー/戻る
    $(document).on("click", ".Func12:not('.noevent')", function(e) {
      deleteWork("close"); {*main画面のF12は画面を閉じる*}
    });

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


    //MENUボタン===============================
    $(document).on("regSuccess", ".btn-reg", function(e,option){
      var frmh = $("#headerTop");
      if(option.ret != '0') {
        alert('登録に失敗しました。システム管理者に連絡してください。('+option.ret+')');
      } else {
        let w_msg = "登録しました。\n";
        if(!stringUtil.isEmpty(option.vseq)) {
          w_msg = w_msg + "伝票番号は【"+option.vseq+"】です。\n";
        }


        if(frmh.find(".sflg").val() == '1' || frmh.find(".sflg").val() == '2') {
          if(option.pret == '0') {
            svf_printout(option.pwseq);
          } else {
            alert("発注書データ作成に失敗しました。");
          }
        }

        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);
        }
      });

      if(stringUtil.isEmpty(common.getValue(frmh.find(".vseq")))) {
        if(stringUtil.isEmpty(common.getValue(frmh.find(".cucd")))) {
          errflg = true;
          common.addError(frmh.find(".cucd"), "入力して下さい", null, true);
        }
        if(stringUtil.isEmpty(common.getValue(frmh.find(".cuscd")))) {
          errflg = true;
          common.addError(frmh.find(".cuscd"), "入力して下さい", null, true);
        }
      }

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

      if (errflg) {
        $(".Func2").removeClass("noevent");
        alert('エラーがあります');
      } else {
        dspDetail();
      }
    });


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

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

      console.log("errflg: "+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;
          } else {
            common.clearFormError($("#detail"));
          }
        }

        {*伝票印字区分の選択画面の起動*}
        {*販促・サンプルの場合、「納入単価印字する」チェックOFFデフォルト表示*}
        var frm = $("#headerTop");

      }
    });




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



    //=== header ===

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


    {*編集中店舗一覧をクリックしたら、そこの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('changecuscd');
        
      }
      
    });

    //=== body ===

    {*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(".gdhtun"),"");
      common.setValue(grp.find(".gdcnum"),"");
      common.setValue(grp.find(".gdbnum"),"");
      common.setValue(grp.find(".cst"),"");
      common.setValue(grp.find(".gdcst"),"");

      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(".sgdcst"),"");
      common.setValue(grp.find(".undkbn"),"");


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

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

      var sendData = {};
      sendData["jan"]     = inpcd;
      sendData["ijan"]    = common.getValue(grp.find(".ijan"));
      sendData["mcd"]     = common.getValue($frmh.find(".mcd"));
      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["modelbl"]  = common.getValue($frmh.find(".newlbl"));


      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(".gdhtun"),obj.gdhtun);
            common.setValue(grp.find(".gdcnum"),obj.gdcnum);
            common.setValue(grp.find(".gdbnum"),obj.gdbnum);
            common.setValue(grp.find(".cst"),common.addFigure(obj.cst,2));
            common.setValue(grp.find(".gdcst"),common.addFigure(obj.gdcst,2));
            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(".undkbn"),obj.undkbn);
          } else {
            common.setValue($me,"");
            common.addError($me, obj.msg, null);

            common.setValue(grp.find(".gdjnm"),"");
            common.setValue(grp.find(".gdjstnd"),"");
            common.setValue(grp.find(".ijan"),"");
            common.setValue(grp.find(".gdcls9nm"),"");

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

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


    $(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>
