<script>



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

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

function chkPageError() { {*表示中のページをチェック!*}
  var frm = $("#headerTop");
  var detail = $("#detail .detail");
  var errflg = false;
  for(i = 0 ; i < detail.length ; i++) {
    var $me = $(detail[i]);
  }

  return errflg;
}


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

  if(chkPageError()) { {*配列に格納する前に、妥当性チェック*}
    return false;
  } else {

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

  var ret_len = detail_data.length;
  for (var i = 0; i < ret_len; i++) { {*既存データページを表示*}
    if (Number(detail_data[i].pgno) == Number(p_pgno)) {
      el += af484x_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) { {*Dialog Dialog以外触れなくする, pmode:H Header有効・D 明細有効*}
  let h = $("#headerTop");
  let d = $("#detailTop");
  let m = $("#funcMenu");
  let mode = h.find(".mode").val();
  if (pmode == "H") { {*Header有効*}
    $("#funcMenu").removeClass("noevent");
    h.removeClass("noevent");
    d.addClass("noevent");
    $(".Func2").removeClass("noevent");
    $(".Func5").addClass("noevent");
    $(".Func7").addClass("noevent");
    $(".Func8").addClass("noevent");
    $(".Func9").addClass("noevent");
    $(".Func10").addClass("noevent");
    $(".Func12").removeClass("noevent");

    {*ヘッダーフォーカス*}
    h.find(".keycd")[0].focus();
  } else {
    $("#funcMenu").removeClass("noevent");
    h.removeClass("noevent");
    d.removeClass("noevent");
    $(".Func2").removeClass("noevent");
    $(".Func5").removeClass("noevent");
    $(".Func7").removeClass("noevent");
    $(".Func8").removeClass("noevent");
    $(".Func9").removeClass("noevent");
    $(".Func10").removeClass("noevent");
    $(".Func12").removeClass("noevent");

  }
}

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

var init_data={
};

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

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(frm.find(".pagecnt").val());
  {else if $header.ret == "new"}
    doHeaderEnable("H")
    common.setValue($("#pagecnt"), "");
    common.setValue($("#lastpage"), "");
  {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}
}


</script>

<script>


{*明細行用関数*}
var af484x_detail = {
  appendRow: function (d) {
    let frm = $("#headerTop");
    let mode = common.getValue(frm.find(".mode"));
    var n = stringUtil.nvl;
    var n0 = stringUtil.nvl0;
    var row =
    ' <div class="col wp-100 detail"> ' +
    '<div class="col wp-100 rowinfo detailMain mcdGrp janGrp">' +
      {*1行目*}
    '  <div class="col wp-100 "> ' +
    '    <input name="chk"  type="checkbox" class="form-control item input-sm wd-020 chk" value="1" tabindex="-1"/>' +
    '    <input name="mcd" type="text" class="form-control input-sm item wd-S  mcd" readonly value="'+ n(d.mcd) +'"/> '+
    '    <input name="mnm" type="text" class="form-control input-sm item wd-LL mnm" readonly value="'+ n(d.mnm) +'"/> '+
    '  </div>' +
      {*非表示項目*}
    '  <input name="rnum" type="hidden" class="rnum" value="' + n(d.rnum) + '"/>' +
    '  <input name="chkval" type="hidden" class="chkval" value="' + n(d.chkval) + '"/>' +
    '  <input name="" type="hidden" class="sbat" value="' + n(d.sbat) + '"/>' +
    '  <input name="" type="hidden" class="bal" value="' + n(d.bal) + '"/>' +
    '<hr>' +
    '</div>' +
    ' </div> ';


    return row;
  },
}

{*-- ここまでjsでのデータ表示用 ---------------------------------------------------*}
  function chkBefore(pmode) { {*確定・削除前チェック pcls:1->確定, 9->削除*} 
    let detail = $("#detail .detail");
    let frmh = $("#headerTop");
    let lcnt = 0;

    if(setArrayData($("#pagecnt").val())) { {*現在ページの変更を配列に記憶*}

      var chk_array = detail_data;

      for(i = 0 ; i < chk_array.length ; i++) {
        if(chk_array[i]["chkval"] == '1') {
          lcnt = lcnt + 1;
        }
      }

      if (lcnt == 0) {
        alert("出力対象を選択してください");
        return false;
      } else {
        make_af484k(pmode);
      }
    } else {
      alert("エラーがあります");
      return false;
    }
  }

  function make_af484k(pmode) {
    if(window.confirm("【仕入先元帳発行】をします。\nよろしいですか？")) {
      let frmh = $("#headerTop");
      var chk_array = detail_data;

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

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

      common.postData(
          "./insAfw85.php"
        , sendData
        , function (data) {
          // 特殊処理があれば
          var obj = JSON.parse(data);
          if (obj.ret == "0") {
            common.setValue(frmh.find(".wseq"),obj.wseq);
            svf_printout(pmode);
          }
        }
        , function (error) {
          alert(error.msg);
        }
      );
    }
  }

  function delAfw85() {
    let frmh = $("#headerTop");

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

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

    common.postData(
        "./delAfw85.php"
      , sendData
      , function (data) {
        // 特殊処理があれば
        var obj = JSON.parse(data);
        $(".btn-close").trigger("click"); {*とじる*}
      }
      , function (error) {
        alert(error.msg);
      }
    );
  }

  function svf_printout(pmode) {

    var frmh = $("#headerTop");
    var wseq = common.getValue(frmh.find(".wseq"));
    var dats  = common.getValue(frmh.find(".dats"));

    if(pmode == 'P') {
      let param2 = { "method": "GetWseqMjan" };
      let irep = "AF484X";
    
      $.ajax({
        type: "GET",
        url: "../../api/getWseq.php",
        data: param2,
        dataType: "json",
        scriptCharset: 'utf-8',
        success: function(data, status, xhr) {
          var wurl = "{$_REPORT_URL}" + "AF999I?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=" + dats
                  + "&JOKEN2=" + wseq
                  + '&PDF=1';
          window.open(wurl, irep+JSON.parse(data.data));
          //setOneRow();
          clearDetail();
        }
      });

    } else if(pmode == 'C') {
      let param2 = { "method": "GetWseqMjan" };
      let csvid = "AF484C";

      $.ajax({
        type: "GET",
        url: "../../api/getWseq.php",
        data: param2,
        dataType: "json",
        scriptCharset: 'utf-8',
        success: function(data, status, xhr) {
          var wurl = "{$_REPORT_URL}" + "AF999C?WSEQ=" + JSON.parse(data.data)
                  + "&CSVID=" + csvid
                  + "&CHGCD=" + "{$_SYSTEM_NAME_EN_CHGCD}"
                  + "&KTKTCD=" + "{$_SYSTEM_NAME_EN_LGKTKTCD}"
                  + "&VEND=" + "{$_SYSTEM_NAME_EN_VEND}"
                  + "&ACCD=" + "{$_SYSTEM_NAME_EN_ACCD}"
                  + "&DBNO=" + "{$_SYSTEM_NO}"
                  + "&JOKEN1=" + dats
                  + "&JOKEN2=" + wseq;
          window.open(wurl, csvid+JSON.parse(data.data));
          //setOneRow();
          clearDetail();
        }
      });
    }
  }


  $(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) {
      chkBeforeKakutei('9');
    });
    //　F4
    $(document).on("click", ".Func4:not('.noevent')", function(e) {
      openAf212x();
    });
    //　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 PDF
    $(document).on("click", ".Func9:not('.noevent')", function(e) {
      chkBefore('P');
    });
    //　F10 CSV
    $(document).on("click", ".Func10:not('.noevent')", function(e) {
      chkBefore('C');
    });
    //　F11
    $(document).on("click", ".Func11:not('.noevent')", function(e) {
    });
    //　F12 メニュー/戻る
    $(document).on("click", ".Func12:not('.noevent')", function(e) {
      var frmh = $("#headerTop");
      if(stringUtil.isEmpty(common.getValue(frmh.find(".wseq")))) {
        $('.btn-close').trigger('click'); 
      } else {
        delAfw85(); {*ワークを削除してから閉じる*}
      }
    });

    //画面初期表示時動作

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

      var frm = $("#headerTop");
      var errflg = false;

      if(stringUtil.isEmpty(common.getValue(frm.find(".dats")))) {
        errflg = true;
        common.addError(frm.find(".dats"), "入力してください", null, true);
      } 

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


    //====明細行動作======
    {*選択動作 チェックをchkvalに覚える*}
    $(document).on("change", ".chk", function(e) {
      var me = $(this);
      var detail = me.closest(".detail");

      var chkval;
      if(me.prop("checked")) {
        chkval = '1';
      } else {
        chkval = '0';
      }
      common.setValue(detail.find(".chkval"),chkval);
    });

    {*全選択・全解除ボタン動作------------------------------*}
    $(document).on("click","#putChk",function(e){
      var detail = $("#detail .detail");
      detail.each(function(e){ {*表示データの更新*}
        var div = $(this);
        var ckflg = div.find(".chk");
        var chkval = div.find(".chkval");
        ckflg.prop("checked",true);
        chkval.val("1");
      });

      var ret_len = detail_data.length;
      for (var i = 0; i < ret_len; i++) { {*配列データも更新*}
        detail_data[i]["chkval"] = '1';
      }
    });
    $(document).on("click","#removeChk",function(e){
      var detail = $("#detail .detail");
      detail.each(function(e){ {*表示データの更新*}
        var div = $(this);
        var ckflg = div.find(".chk");
        var chkval = div.find(".chkval");
        ckflg.prop("checked", false);
        chkval.val("0");
      });

      var ret_len = detail_data.length;
      for (var i = 0; i < ret_len; i++) { {*配列データも更新*}
        detail_data[i]["chkval"] = '0';
      }
    });
    {*全選択・全解除ボタン動作------------------------------*}

  });

</script>
