<script>
{*-- ここからjsでのデータ表示用 ---------------------------------------------------*}

let detail_data=[];
let new_data={};

function setArrayData(pgno) {
  var detail = $("#detail .detail");

  for(i = 0 ; i < detail.length ; i++) {
    let $me = $(detail[i]);
    var rnum = Number($me.find(".rnum").val())-1;
    $me.find("input, select").each(function (index) {
      var inputnm = $(this).attr("name");
      if(i == 0) {
        //console.log("["+rnum+"]"+inputnm+":"+common.getValue($(this)));
      }
      detail_data[rnum][inputnm] = common.getValue($(this));
    });
  }

  return true;
}

function dsp_detail(p_pgno) {
  $("#detail .detail").remove();

  var frm = $("#headerTop");
  var el = "";

  console.log(p_pgno+"/"+$("#lastpage").val());


  common.setValue(frm.find(".modelbl"), "修正");
  var ret_len = detail_data.length;
  for (var i = 0; i < ret_len; i++) { {*既存データページを表示*}
    if (Number(detail_data[i].pgno) == Number(p_pgno)) {
      el += af235x2_detail.appendRow(detail_data[i]);
    }
  }

  $("#detail").append(el);

  doHeaderEnable('D');

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

  for(i = 0 ; i < detail.length ; i++) {
    var $me = $(detail[i]);
    if($me.find(".chkval").val()=='1') {
      $me.find(".chk").prop("checked",true);
    }

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

  //$("#detail .detail").first().find(".keycd").focus();
}


function doHeaderEnable(pmode) { {*pmode:H Header有効・D 明細有効*}
  let h = $("#headerTop");
  let d = $("#detailTop");
  let m = $("#funcMenu");
  let mode = h.find(".mode").val();
  if (pmode == "H") { {*Header有効*}
    h.removeClass("noevent");
    d.addClass("noevent");
    $(".Func2").removeClass("noevent");
    $(".Func5").removeClass("noevent");
    $(".Func7").addClass("noevent");
    $(".Func8").addClass("noevent");
    $(".Func10").addClass("noevent");
    $(".Func12").removeClass("noevent");

    {*ヘッダー項目クリア*}
    h.find(".modelbl").removeClass("newLabel");
    {*ヘッダーフォーカス*}
    h.find(".keycd")[0].focus();
  } else {
    d.removeClass("noevent");
    $(".Func2").removeClass("noevent");
    $(".Func5").removeClass("noevent");
    $(".Func7").removeClass("noevent");
    $(".Func8").removeClass("noevent");
    $(".Func10").removeClass("noevent");
    $(".Func12").removeClass("noevent");

    {*ヘッダー項目*}
    h.find(".modelbl").addClass("newLabel");
    {*データ部フォーカス*}
    //d.find(".tdat")[0].rdo_order();
  }
}

function clearHeader() {  {*headerクリア*}
  let frm = $("#headerTop");
  let container = frm.closest(".container");
  doHeaderEnable("H");
  common.clearInputData(container);
  common.setValue(frm.find(".rdo_ord"), "{$header.rdo_ord}");
  $('[name=mode]').prop("selectedIndex", 0);
  $('[name=mode]').trigger("change");

}

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

function clearDetail() {
  common.clearAllError();
  $("#detail .detail").remove(); {*明細クリア*}
  $("#lastDetail").show();
}

function setOneRow() {
  clearDetail();  {*一旦クリア*}
}

function chgDetail(pgno) {  {*明細表表示・非表示*}
  let wpgno = "pgno" + pgno;

  dsp_detail(pgno);

  if (common.getValue($("#pagecnt")) == common.getValue($("#lastpage"))) { {*次頁なし*}
    $("#funcMenu").find(".Func8").addClass("noevent");
  } else {
    $("#funcMenu").find(".Func8").removeClass("noevent");
  }
  if (common.getValue($("#pagecnt")) == "1") { {*前頁なし*}
    $("#funcMenu").find(".Func7").addClass("noevent");
  } else {
    $("#funcMenu").find(".Func7").removeClass("noevent");
  }
}
function dspDetail() { {*データ表示*}
  let frm = $("#headerTop");
  let detail = $("#detail").find(".detail");

  clearDetail();  {*一旦クリア*}

  {*明細行配列クリア*}
  detail_data.splice(0);

  {if $header.ret == "0"}
    {*配列作成*}
    detail_data = {$dataList};

    {*行作成*}
    dsp_detail("1");

    doHeaderEnable("D")
    {*頁情報*}
    chgDetail("1");
  {else if $header.ret == "new"}
    {if $header.p_mode == "2"}  {*明細選択*}
      $("#pagecnt").val("1");
      $(".btn-search").trigger("click");
    {else}
      doHeaderEnable("H")
      common.setValue($("#pagecnt"), "");
      common.setValue($("#lastpage"), "");
    {/if}
  {else if $header.ret == "1"}
    dsp_detail("1");
    doHeaderEnable("H");
    alert("該当データがありません。");
    {*頁情報*}
    common.setValue($("#pagecnt"), "");
    common.setValue($("#lastpage"), "");
  {else}
    doHeaderEnable("H")
    {if $hasError eq true}
      alert("{$errorMsg}")
    {/if}
  {/if}
}

{*明細行用関数*}
var af235x2_detail = {
  appendRow: function (d) {
    let frm = $("#headerTop");
    var n = stringUtil.nvl;
    var n0 = stringUtil.nvl0;
    var row =
    ' <div class="col wp-100 detail"> ' +
    '<div class="col wp-100 rowinfo detailMain">' +
    {*1行目*}
    '  <div class="col wp-100 "> ' +
    '     <div class="item wd-S inputReadOnly mcd">' + n(d.mcd) + '</div>' +
    '     <div class="item wd-LL inputReadOnly mnm ">' + n(d.mnm) + '</div>' +
    '     <div class="item wd-date inputReadOnly adat">' + n(d.adat) + '</div>' +
    '     <div class="item wd-number inputReadOnly amt01 number">' + common.addFigure(n(d.amt01)) + '</div>' +
    '     <div class="item wd-number inputReadOnly amt02 number">' + common.addFigure(n(d.amt02)) + '</div>' +
    '     <div class="item wd-number inputReadOnly rt02 number">' + common.addFigure(n(d.rt02), "2") + '</div>' +
    '     <div class="item wd-number inputReadOnly amt03 number">' + common.addFigure(n(d.amt03)) + '</div>' +
    '     <div class="item wd-number inputReadOnly rt03 number">' + common.addFigure(n(d.rt03), "2") + '</div>' +
    '     <div class="item wd-number inputReadOnly amt number">' + common.addFigure(n(d.amt)) + '</div>' +
    '  </div>' +
      {*非表示項目*}
    '  <input name="rnum" type="hidden" class="rnum" value="' + n(d.rnum) + '"/>' +
    '<hr>' +
    '</div>' +
    ' </div> ';


    return row;
  },
}


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

  function chkBefore() {
    var errflg = false;
    var frmh = $("#headerTop");
    common.clearFormError(frmh);

    if(stringUtil.isEmpty(frmh.find(".adats").val()) && stringUtil.isEmpty(frmh.find(".adate").val())) {
      errflg = true;
      common.addError(frmh.find(".adats"), "必須です。", null, true);
      common.addError(frmh.find(".adate"), "必須です。", null, true);
    } else {
      if (stringUtil.isEmpty(frmh.find(".adats").val()) && !stringUtil.isEmpty(frmh.find(".adate").val())) {
        common.setValue(frmh.find(".adats"), common.getValue(frmh.find(".adate")));
      }
      if (!stringUtil.isEmpty(frmh.find(".adats").val()) && stringUtil.isEmpty(frmh.find(".adate").val())) {
        common.setValue(frmh.find(".adate"), common.getValue(frmh.find(".adats")));
      }
    }

    if(!stringUtil.isEmpty(frmh.find(".adats").val()) && !stringUtil.isEmpty(frmh.find(".adate").val())) {
      let wsadat = dateUtil.getYYYYMMDDDate(common.getValue(frmh.find(".adats")));
      let weadat = dateUtil.getYYYYMMDDDate(common.getValue(frmh.find(".adate")));
      if(wsadat > weadat) {
        errflg = true;
        common.addError(frmh.find(".adats"), "正しい範囲を入力してください。", null, true);
        common.addError(frmh.find(".adate"), "正しい範囲を入力してください。", null, true);
      }
      if (!errflg) {
        if (weadat > dateUtil.getAddMonthDate(common.getValue(frmh.find(".adats")), 2)) {
          common.addError(frmh.find(".adats"), "計上日範囲は2ヶ月以内を指定してください。", null, true);
          errflg = true;
        }
      }
    }

    return errflg;
  }

  function doPrint() { {*発行*}
    let detail = $("#detail .detail");
    let frmh = $("#headerTop");
    let lcnt = 0;

    var chk_array = detail_data;

    if(chkBefore()) {
      alert("エラーがあります");
    } else if(window.confirm("【仕入日報(仕入先別)】を発行します。\nよろしいですか？")) {

      {* 以下発行処理 *}
      let headerData = [];
      let footerData = [];
      let h = common.getInputData(frmh);
      headerData.push(encodeJson(h));
      let f = common.getInputData($("#FooterArea"));
      footerData.push(encodeJson(f));

      var sendData = {};
      sendData["header"] = headerData;
      sendData["footer"] = footerData;
      sendData["data"] = chk_array;

      common.postData(
          "./insertAfw851.php"
        , sendData
        , function (data) {
          // 特殊処理があれば
          var obj = JSON.parse(data);
          let param2 = { "method": "GetWseqMjan" };
          let w_irep = "AF431E2";

          $.ajax({
            type: "GET",
            url: "../../api/getWseq.php",
            data: param2,
            dataType: "json",
            scriptCharset: 'utf-8',
            success: function(data, status, xhr) {
              var wurl = "{$_REPORT_URL}" + "AF999JE?WSEQ=" + JSON.parse(data.data)
                      + "&IREP=" + w_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=" + obj.wseq;
              window.open(wurl, JSON.parse(data.data));
            }
          });
        }
        , function (error) {
          alert(error.msg);
          doHeaderEnable("D");
        }
      );
    }
  }

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

    common.removeLoading();
    dspDetail();  {*明細表示*}

    /* イベント
    //===================================================================*/
    //　F1
    $(document).on("click", ".Func1:not('.noevent')", function(e) {
    });
    //　F2
    $(document).on("click", ".Func2:not('.noevent')", function(e) {
      $(".btn-search-before").trigger("click");
    });
    //　F3
    $(document).on("click", ".Func3:not('.noevent')", function(e) {
    });
    //　F4
    $(document).on("click", ".Func4:not('.noevent')", function(e) {
    });
    //　F5 クリア
    $(document).on("click", ".Func5:not('.noevent')", function(e) {
      setOneRow();
      clearHeader();
    });
    //　F6
    $(document).on("click", ".Func6:not('.noevent')", function(e) {
    });
    //　F7 前頁
    $(document).on("click", ".Func7:not('.noevent')", function(e) {
      if(setArrayData($("#pagecnt").val())) { {*現在ページの変更を配列に記憶*}
        let pgcnt = 0;
        if (stringUtil.isEmpty(common.getValue($("#pagecnt")))) {
          pgcnt = 1;
        } else {
          pgcnt = Number(common.getValue($("#pagecnt"))) - 1;
        }
        common.setValue($("#pagecnt"),pgcnt); {*最初は1ページ*}
        chgDetail(String(pgcnt));
      } else {
        alert("エラーがあります");
      }
    });
    //　F8 次頁
    $(document).on("click", ".Func8:not('.noevent')", function(e) {
      if(setArrayData($("#pagecnt").val())) { {*現在ページの変更を配列に記憶*}
        let pgcnt = 0;
        if (stringUtil.isEmpty(common.getValue($("#pagecnt")))) {
          pgcnt = 1;
        } else {
          pgcnt = Number(common.getValue($("#pagecnt"))) + 1;
        }
        common.setValue($("#pagecnt"),pgcnt); //最初は1ページ
        chgDetail(String(pgcnt));
      } else {
        alert("エラーがあります");
      }
    });
    //　F9
    $(document).on("click", ".Func9:not('.noevent')", function(e) {
    });
    //　F10 Excel
    $(document).on("click", ".Func10:not('.noevent')", function(e) {
      doPrint();
    });
    //　F11
    $(document).on("click", ".Func11:not('.noevent')", function(e) {
    });
    //　F12 メニュー/戻る
    $(document).on("click", ".Func12:not('.noevent')", function(e) {
      window.opener.closeAf235x();
      window.close();
    });

    //画面初期表示時動作

    //MENUボタン===============================
    $(document).on("click", ".btn-search-before", function(e) {
      $(".Func2").addClass("noevent");

      var errflg = false;
      errflg = chkBefore();

      if (errflg) {
        $(".Func2").removeClass("noevent");
        alert('エラーがあります');
      } else {
        common.dispLoading();
        $("#pagecnt").val("1");
        $(".btn-search").trigger("click");
      }
    });

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

  });

</script>
