<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="im" uri="http://www.intra-mart.co.jp/taglib/im-tenant" %>
<%@ taglib prefix="k" uri="http://kaiden.slcs.co.jp/taglib/ui" %>
<%@ taglib prefix="klist_wkf" uri="http://kaiden.slcs.co.jp/taglib/listdata/workflow" %>
<%@ taglib prefix="kmsb" uri="http://kaiden.slcs.co.jp/taglib/master_search/base" %>
<%@ taglib prefix="kmsw" uri="http://kaiden.slcs.co.jp/taglib/master_search/workflow" %>
<%@ page import="java.util.Map"%>
<%@ page import="java.util.HashMap"%>
<c:if test="${empty pwkfCommonIncluded}" scope="request">
  <jsp:include page="/WEB-INF/view/kaiden2/product_workflow/foundation/commonInclude.jsp"></jsp:include>
  <c:set var="pwkfCommonIncluded"  scope="request">true</c:set>
</c:if>
<%-- expenseDetail v01 --%>
<c:set scope="request" var="gadgetClass">expenseDetail</c:set> 
<c:set scope="request" var="gadgetVariation">v01</c:set>
<c:set scope="request" var="gadgetInstance">${param.gadget_instance}</c:set>
<c:set scope="request" var="gadgetId">${gadgetClass}_${gadgetVariation}_${gadgetInstance}</c:set>
<c:set var="accessUrl">kaiden/gadget/expenseDetailV01</c:set>
<c:set var="tmtableId">expenseDetailTable</c:set>
<c:set var="tmtableControllerBlockId">tmtableController</c:set>
<c:set var="searchCriteriaCompany">${param.searchCriteriaCompany}</c:set>
<c:set var="searchCriteriaDate">${param.searchCriteriaDate}</c:set>
<c:set var="companyCurrencyCd">${param.companyCurrencyCd}</c:set>
<c:set scope="request" var="gadget" value="${appDto.gadgets[gadgetId]}" />
<c:set var="detail" value="${gadget.blocks['expenseDetailTable']}" />
<%-- tmtable --%>
<c:set var="allowAddDetail" value="${'1' == detail.allowAddFlag}" />
<c:set var="allowDelDetail" value="${'1' == detail.allowDelFlag}" />
<%-- Surface --%>
<c:set var="surfaceChapterTitle">${gadget.surfaces["chapterTitle"]}</c:set>
<c:set var="surfaceOccurDate">${gadget.surfaces["occurDate"]}</c:set>
<c:set var="surfaceSummary">${gadget.surfaces["summary"]}</c:set>
<c:set var="surfaceExpType">${gadget.surfaces["expType"]}</c:set>
<c:set var="surfaceAccount">${gadget.surfaces["account"]}</c:set>
<c:set var="surfaceTaxType">${gadget.surfaces["taxType"]}</c:set>
<c:set var="surfaceTransAmount">${gadget.surfaces["amount"]}</c:set>
<c:set var="surfacePayType">${gadget.surfaces["payType"]}</c:set>
<c:set var="surfacePayee">${gadget.surfaces["payee"]}</c:set>
<c:set var="surfaceDepartment">${gadget.surfaces["department"]}</c:set>
<c:set var="surfaceProject">${gadget.surfaces["project"]}</c:set>
<%-- Mode --%>
<c:set var="modeOccurDate">${detail.fields["occurDate"].inputType}</c:set>
<c:set var="modeSummary">${detail.fields["summary"].inputType}</c:set>
<c:set var="modeExpTypeCd">${detail.fields["expTypeCd"].inputType}</c:set>
<c:set var="modeAccountCd">${detail.fields["accountCd"].inputType}</c:set>
<c:set var="modeTaxTypeCd">${detail.fields["taxTypeCd"].inputType}</c:set>
<c:set var="modeTransAmount">${detail.fields["transAmount"].inputType}</c:set>
<c:set var="modePayTypeCd">${detail.fields["payTypeCd"].inputType}</c:set>
<c:set var="modePayeeName">${detail.fields["payeeName"].inputType}</c:set>
<c:set var="modeDepartmentCd">${detail.fields["departmentCd"].inputType}</c:set>
<c:set var="modeProjectCd">${detail.fields["projectCd"].inputType}</c:set>
<%-- RequiredMark --%>
<c:set var="reqOccurDate" >${detail.fields["occurDate"].requiredFlag}</c:set>
<c:set var="reqSummary" >${detail.fields["summary"].requiredFlag}</c:set>
<c:set var="reqExpTypeCd" >${detail.fields["expTypeCd"].requiredFlag}</c:set>
<c:set var="reqAccountCd" >${detail.fields["accountCd"].requiredFlag}</c:set>
<c:set var="reqTaxTypeCd" >${detail.fields["taxTypeCd"].requiredFlag}</c:set>
<c:set var="reqTransAmount" >${detail.fields["transAmount"].requiredFlag}</c:set>
<c:set var="reqPayTypeCd" >${detail.fields["payTypeCd"].requiredFlag}</c:set>
<c:set var="reqPayeeName" >${detail.fields["payeeName"].requiredFlag}</c:set>
<c:set var="reqDepartmentCd" >${detail.fields["departmentCd"].requiredFlag}</c:set>
<c:set var="reqProjectCd" >${detail.fields["projectCd"].requiredFlag}</c:set>
<%-- Validator --%>
<c:set var="validOccurDate_def">{k_date:['']}</c:set>
<c:set var="validOccurDate_apply">{${"true" == reqOccurDate ? "k_required:['']" : ""}}</c:set>
<c:set var="validOccurDate_tempsave"></c:set>
<c:set var="validOccurDate_reapply">{${"true" == reqOccurDate ? "k_required:['']" : ""}}</c:set>
<c:set var="validOccurDate_process">{${"true" == reqOccurDate ? "k_required:['']" : ""}}</c:set>
<c:set var="validSummary_def">{k_maxLength:['250']}</c:set>
<c:set var="validSummary_apply">{${"true" == reqSummary ? "k_required:['']" : ""}}</c:set>
<c:set var="validSummary_tempsave"></c:set>
<c:set var="validSummary_reapply">{${"true" == reqSummary ? "k_required:['']" : ""}}</c:set>
<c:set var="validSummary_process">{${"true" == reqSummary ? "k_required:['']" : ""}}</c:set>
<c:set var="validExpTypeCd_def">{k_expTypeExists:['expTypeCd', 'searchCriteriaCompany', 'searchCriteriaDate']}</c:set>
<c:set var="validExpTypeCd_apply">{${"true" == reqExpTypeCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validExpTypeCd_tempsave"></c:set>
<c:set var="validExpTypeCd_reapply">{${"true" == reqExpTypeCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validExpTypeCd_process">{${"true" == reqExpTypeCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validAccountCd_def">{k_accountExists:['accountCd', 'searchCriteriaCompany', 'searchCriteriaDate']}</c:set>
<c:set var="validAccountCd_apply">{${"true" == reqAccountCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validAccountCd_tempsave"></c:set>
<c:set var="validAccountCd_reapply">{${"true" == reqAccountCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validAccountCd_process">{${"true" == reqAccountCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validTaxType_def">{k_taxTypeExists:['taxTypeCd', 'searchCriteriaCompany', 'searchCriteriaDate']}</c:set>
<c:set var="validTaxType_apply">{${"true" == reqTaxTypeCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validTaxType_tempsave"></c:set>
<c:set var="validTaxType_reapply">{${"true" == reqTaxTypeCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validTaxType_process">{${"true" == reqTaxTypeCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validPayTypeCd_def">{k_payTypeExists:['payTypeCd', 'searchCriteriaCompany', 'searchCriteriaDate']}</c:set>
<c:set var="validPayTypeCd_apply">{${"true" == reqPayTypeCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validPayTypeCd_tempsave"></c:set>
<c:set var="validPayTypeCd_reapply">{${"true" == reqPayTypeCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validPayTypeCd_process">{${"true" == reqPayTypeCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validPayeeName_def">{k_maxLength:['250']}</c:set>
<c:set var="validPayeeName_apply">{${"true" == reqPayeeName ? "k_required:['']" : ""}}</c:set>
<c:set var="validPayeeName_tempsave"></c:set>
<c:set var="validPayeeName_reapply">{${"true" == reqPayeeName ? "k_required:['']" : ""}}</c:set>
<c:set var="validPayeeName_process">{${"true" == reqPayeeName ? "k_required:['']" : ""}}</c:set>
<c:set var="validDepartmentCd_def">{k_departmentExists:['searchCriteriaCompany', 'departmentSetCd', 'departmentCd', 'searchCriteriaDate']}</c:set>
<c:set var="validDepartmentCd_apply">{k_requiredAny:['departmentCd', 'projectCd']}</c:set>
<c:set var="validDepartmentCd_tempsave"></c:set>
<c:set var="validDepartmentCd_reapply">{k_requiredAny:['departmentCd', 'projectCd']}</c:set>
<c:set var="validDepartmentCd_process">{k_requiredAny:['departmentCd', 'projectCd']}</c:set>
<c:set var="validProjectCd_def">{k_projectExists:['projectCd', 'searchCriteriaCompany', 'searchCriteriaDate']}</c:set>
<c:set var="validProjectCd_apply">{k_requiredAny:['departmentCd', 'projectCd']}</c:set>
<c:set var="validProjectCd_tempsave"></c:set>
<c:set var="validProjectCd_reapply">{k_requiredAny:['departmentCd', 'projectCd']}</c:set>
<c:set var="validProjectCd_process">{k_requiredAny:['departmentCd', 'projectCd']}</c:set>
    <%
      @SuppressWarnings("unchecked")
      Map<String,Object> search = new HashMap<String,Object>();
      search.put("use", "true");
      search.put("surface","searchTransitManager");
      search.put("sprite","kaiden-ui-icon-iccard_gray-16");
      
      Map<String,Object> importSetting = new HashMap<String,Object>();
      importSetting.put("use", "true");
      importSetting.put("surface","importTransitManager");
      importSetting.put("sprite","kaiden-ui-icon-iccard_gray-16");
      
      Map<String,Object> settings = new HashMap<String,Object>();
      settings.put("search", search);
      settings.put("import", importSetting);
      
      Map<String,Object> occurDate = new HashMap<String,Object>();
      occurDate.put("value","payDate");
      occurDate.put("mode","0");
      occurDate.put("disabled","true");
      occurDate.put("readonly","true");
      Map<String,Object> transAmount = new HashMap<String,Object>();
      transAmount.put("value","payment");
      transAmount.put("mode","0");
      transAmount.put("disabled","true");
      transAmount.put("readonly","true");
      Map<String,Object> payTypeCd = new HashMap<String,Object>();
      payTypeCd.put("value","0001");
      payTypeCd.put("mode","0");
      payTypeCd.put("disabled","true");
      Map<String,Object> summary = new HashMap<String,Object>();
      summary.put("value","memo");
      summary.put("mode","1");
      
      Map<String,Object> relations = new HashMap<String,Object>();
      relations.put("occurDate", occurDate);
      relations.put("transAmount", transAmount);
      relations.put("payTypeCd", payTypeCd);
      relations.put("summary", summary);
      
      Map<String,Object> args = new HashMap<String,Object>();
      args.put("settings", settings);
      args.put("relations", relations);
      
      Map<String,Object> include = new HashMap<String,Object>();
      include.put("args", args);
      include.put("tmtableId", "expenseDetailTable");
      request.setAttribute("include", include);
      
      Map<String,Object> url = new HashMap<String,Object>();
      url.put("url", "kaiden/gadget/gadgetBuilder");
      request.setAttribute("config.url", "kaiden/gadget/gadgetBuilder");
      
      Map<String,Object> block = new HashMap<String,Object>();
      block.put("allowAddFlag", pageContext.getAttribute("allowAddDetail"));
      request.setAttribute("block", block);
    %>
<c:set scope="request" var="surfaces" value="${gadget.surfaces}"/>
<c:import url="/WEB-INF/view/kaiden2/product_workflow/generic/gadget/include/searchTransitManager.jsp"/>
<k:gadgetContainer gadgetClass="${gadgetClass}"
                   gadgetVariation="${gadgetVariation}"
                   gadgetInstance="${gadgetInstance}"
                   gadgetTitle="${surfaceChapterTitle}"
                   gadgetId="${gadgetId}"
                   style="width:850px;overflow:hidden;">
  <div id="${gadgetId}-under" style="width:100%; margin:10px 1px;"></div>
  <k:blockContainer id="caution" style="display:block;"></k:blockContainer> 
  <form id="gadget_form" onsubmit="return false;">
    <k:tmtable id="${tmtableId}" class="imui-form kaiden-ui-tmt-form" style="table-layout:fixed" rowNumberTarget="rowNumber">
      <colgroup>
         <col style="width:42px;overflow:hidden">
         <col style="width:230px;overflow:hidden">
         <col style="width:185px;overflow:hidden">
         <col style="width:185px;overflow:hidden">
         <col style="width:185px;overflow:hidden">
      </colgroup>
      <thead>
        <tr>
          <td rowspan="3" style="vertical-align:middle;">
            <k:tmtableOperationPanel
              position="header"
              allowAdd="${allowAddDetail}"
              allowDel="${allowDelDetail}"
            />
          </td>
          <th>
            <k:surface
              name="occurDateSurface"
              surfaceKey="${surfaceOccurDate}"
              requiredMark="${reqOccurDate}"
            />
          </th>
          <th colspan="3">
            <k:surface
              name="summarySurface"
              surfaceKey="${surfaceSummary}"
              requiredMark="${reqSummary}"
            />
          </th>
        </tr>
        <tr>
          <th colspan="2">
            <k:surface
              name="expTypeSurface"
              surfaceKey="${surfaceExpType}"
              requiredMark="${reqExpTypeCd}"
              style="display:inline;"
            />
            <k:surface
              name="accountSurface"
              surfaceKey="${surfaceAccount}"
              style="display:inline;"
            />
            <k:surface
              name="taxTypeSurface"
              surfaceKey="${surfaceTaxType}"
              style="display:inline;"
            />
          </th>
          <th>
            <k:surface
              name="departmentSurface"
              surfaceKey="${surfaceDepartment}"
              style="display:inline;"
            />
          </th>
          <th>
            <k:surface
              name="projectSurface"
              surfaceKey="${surfaceProject}"
            />
          </th>
        </tr>
        <tr>
          <th>
            <k:surface
              name="payTypeSurface"
              surfaceKey="${surfacePayType}"
              requiredMark="${reqPayTypeCd}"
              style="display:inline;"
            />
          </th>
          <th>
            <k:surface
              name="payeeSurface"
              surfaceKey="${surfacePayee}"
              requiredMark="${reqPayeeName}"
              style="display:inline;"
            />
          </th>
          <th colspan="2">
            <k:surface
              name="transAmountSurface"
              surfaceKey="${surfaceTransAmount}"
              requiredMark="${reqTransAmount}"
            />
          </th>
        </tr>
     </thead>
     <tbody>
        <tr>
          <td rowspan="3">
            <k:tmtableOperationPanel
              position="detail"
              allowAdd="${allowAddDetail}"
              allowDel="${allowDelDetail}"
              name="rowNumber"
            />
            <div style="display:none;">
              <k:hidden name="relation" mode="0" data-kaiden-exempt-data="true" />
              <k:hidden name="relationType" mode="0" data-kaiden-exempt-data="true" />
              <k:hidden name="relationId" mode="0" data-kaiden-exempt-data="true" />
              <k:hidden name="relationData" mode="0" data-kaiden-exempt-data="true" />
            </div>
          </td>
          <td>
            <k:date
              name="occurDate"
              mode="${modeOccurDate}"
              surfaceKey="${surfaceOccurDate}"
              validationDefault="${validOccurDate_def}"
              validationApply="${validOccurDate_apply}"
              validationTempsave="${validOccurDate_tempsave}"
              validationReapply="${validOccurDate_reapply}"
              validationProcess="${validOccurDate_process}"
            />
          </td>
          <td  colspan="3">
            <k:text
              name="summary"
              mode="${modeSummary}"
              imeMode="on"
              surfaceKey="${surfaceSummary}"
              style="width:545px;"
              maxlength="250"
              validationDefault="${validSummary_def}"
              validationApply="${validSummary_apply}"
              validationTempsave="${validSummary_tempsave}"
              validationReapply="${validSummary_reapply}"
              validationProcess="${validSummary_process}"
            />
          </td>
        </tr>
        <tr>
          <td colspan="2">
            <k:hidden
              name="expTypeCd"
              mode="${modeExpTypeCd}"
            />
            <kmsw:expType
              name="expTypeName"
              mode="${modeExpTypeCd}"
              imeMode="on"
              surfaceKey="${surfaceExpType}"
              resultValue="expTypeName"
              resultChain="{expTypeCd:'expTypeCd', accountCd:'accountCd', accountName:'accountName', taxTypeCd:'taxTypeCd', taxTypeName:'taxTypeName'}"
              primaryTarget="expTypeCd"
              searchCriteriaDate="searchCriteriaDate"
              searchCriteriaCompany="searchCriteriaCompany"
              searchCriteriaExpTypeCd="expTypeCd"
              style="width:150px;"
              validationDefault="${validExpTypeCd_def}"
              validationApply="${validExpTypeCd_apply}"
              validationTempsave="${validExpTypeCd_tempsave}"
              validationReapply="${validExpTypeCd_reapply}"
              validationProcess="${validExpTypeCd_process}"
            />
            <k:hidden
              name="accountCd"
              mode="${modeAccountCd}"
              surfaceKey="${surfaceAccount}"
              validationDefault="${validAccountCd_def}"
              validationApply="${validAccountCd_apply}"
              validationTempsave="${validAccountCd_tempsave}"
              validationReapply="${validAccountCd_reapply}"
              validationProcess="${validAccountCd_process}"
            />
            <k:text
              name="accountName"
              mode="1"
              class="kaiden-ui-mst-search-chain-item"
              style="width:115px;"
            />
            <k:hidden
              name="taxTypeCd"
              mode="${modeTaxTypeCd}"
              surfaceKey="${surfaceTaxType}"
              validationDefault="${validTaxType_def}"
              validationApply="${validTaxType_apply}"
              validationTempsave="${validTaxType_tempsave}"
              validationReapply="${validTaxType_reapply}"
              validationProcess="${validTaxType_process}"
            />
            <k:text
              name="taxTypeName"
              mode="1"
              class="kaiden-ui-mst-search-chain-item"
              style="width:115px;"
            />
          </td>
          <td>
            <k:hidden
              name="departmentSetCd"
              mode="${modeDepartmentCd}"
            />
            <k:hidden
              name="departmentCd"
              mode="${modeDepartmentCd}"
              surfaceKey="${surfaceDepartment}"
            />
            <kmsb:department
              name="departmentName"
              mode="${modeDepartmentCd}"
              imeMode="on"
              surfaceKey="${surfaceDepartment}"
              resultValue="departmentName"
              resultChain="{departmentSetCd:'departmentSetCd', departmentCd:'departmentCd'}"
              primaryTarget="departmentCd,departmentSetCd"
              searchCriteriaDate="searchCriteriaDate"
              searchCriteriaCompany="searchCriteriaCompany"
              searchCriteriaDepartmentCd="departmentCd"
              searchCriteriaDepartmentSetCd="departmentSetCd"
              style="width:150px;"
              validationDefault="${validDepartmentCd_def}"
              validationApply="${validDepartmentCd_apply}"
              validationTempsave="${validDepartmentCd_tempsave}"
              validationReapply="${validDepartmentCd_reapply}"
              validationProcess="${validDepartmentCd_process}"
            />
          </td>
          <td>
            <k:hidden
              name="projectCd"
              mode="${modeProjectCd}"
              surfaceKey="${surfaceProject}"
            />
            <kmsw:project
              name="projectName"
              mode="${modeProjectCd}"
              imeMode="on"
              surfaceKey="${surfaceProject}"
              resultValue="projectName"
              resultChain="{projectCd:'projectCd'}"
              primaryTarget="projectCd"
              searchCriteriaDate="searchCriteriaDate"
              searchCriteriaCompany="searchCriteriaCompany"
              searchCriteriaProjectCd="projectCd"
              style="width:150px;"
              validationDefault="${validProjectCd_def}"
              validationApply="${validProjectCd_apply}"
              validationTempsave="${validProjectCd_tempsave}"
              validationReapply="${validProjectCd_reapply}"
              validationProcess="${validProjectCd_process}"
            />
          </td>
        </tr>
        <tr>
          <td>
            <klist_wkf:listDataPayType
              blank="false"
              name="payType"
              companyCd="${param.searchCriteriaCompany}"
              searchCriteriaDate="${param.searchCriteriaDate}"
            />
            <k:select
              name="payTypeCd"
              mode="${modePayTypeCd}"
              surfaceKey="${surfacePayType}"
              viewModeName="payTypeName"
              dataName="payType"
              selectChain="{paymentFlag:'paymentFlag'}"
              style="width:230px;"
              validationDefault="${validPayTypeCd_def}"
              validationApply="${validPayTypeCd_apply}"
              validationTempsave="${validPayTypeCd_tempsave}"
              validationReapply="${validPayTypeCd_reapply}"
              validationProcess="${validPayTypeCd_process}"
            />
            <k:hidden
              name="paymentFlag"
              mode="${modePayTypeCd}"
            />
          </td>
          <td>
            <k:text
              name="payeeName"
              mode="${modePayeeName}"
              imeMode="on"
              surfaceKey="${surfacePayee}"
              style="width:160px;"
              maxlength="250"
              validationDefault="${validPayeeName_def}"
              validationApply="${validPayeeName_apply}"
              validationTempsave="${validPayeeName_tempsave}"
              validationReapply="${validPayeeName_reapply}"
              validationProcess="${validPayeeName_process}"
            />
          </td>
          <td colspan="2">
            <jsp:include page="/WEB-INF/view/kaiden2/product_workflow/foundation/genericAmountInputParts.jsp">
              <jsp:param name="gadgetId" value="${gadgetId}" />
              <jsp:param name="tmtableId" value="${tmtableId}" />
              <jsp:param name="searchCriteriaCompany" value="${searchCriteriaCompany}" />
              <%-- 金額 --%>
              <jsp:param name="modeTransAmnt" value="${modeTransAmount}" />
              <jsp:param name="surfaceTransAmnt" value="${surfaceTransAmount}" />
              <jsp:param name="requiredTransAmntApply" value="${reqTransAmount}" />
              <jsp:param name="requiredTransAmntReapply" value="${reqTransAmount}" />
              <jsp:param name="requiredTransAmntProcess" value="${reqTransAmount}" />
            </jsp:include>
          </td>
        </tr>
      </tbody>
    </k:tmtable>
  </form>
</k:gadgetContainer>
<script type="text/javascript">
  jQuery(function($){
    var eventMan = KAIDEN.getGadget("${gadgetId}").eventManager
     ,  tmt = KAIDEN.getGadget("${gadgetId}").tmtables["expenseDetailTable"]
     ,  tma = tmt.tmtableAccessor;
    /***********************************
     * 内部イベント 
     ***********************************/
     
     
     //明細行:行挿入(データ設定前)
     tmt.addEventPostNewRowBeforeSetData(function(tupleId, tma, data) {
       
       //デフォルト部門を要求
       var defaultDept = KAIDEN.gadgetMan.execPull("claimDefaultDepartment", undefined, "${gadgetId}");
       defaultDept = defaultDept[0].result; //先頭行のみ利用
       tma("departmentSetCd", tupleId).setValue(defaultDept.departmentSetCd);
       tma("departmentCd", tupleId).setValue(defaultDept.departmentCd);
       tma("departmentName", tupleId).setValue(defaultDept.departmentName);
       
       //デフォルトプロジェクトを要求
       var defaultPrj = KAIDEN.gadgetMan.execPull("claimDefaultProject", undefined, "${gadgetId}");
       defaultPrj = defaultPrj[0].result; //先頭行のみ利用
       tma("projectCd", tupleId).setValue(defaultPrj.projectCd);
       tma("projectName", tupleId).setValue(defaultPrj.projectName);
       
     });
    
     //明細行:行挿入(データ設定後)
     tmt.addEventPostNewRow(function(tupleId, tma, data) {
       //マスタ検索部品の整合性確認.
       KAIDEN.MasterSearch.refresh(tma("expTypeName", tupleId).elem().get(0));
       KAIDEN.MasterSearch.refresh(tma("departmentName", tupleId).elem().get(0));
       KAIDEN.MasterSearch.refresh(tma("projectName", tupleId).elem().get(0));
       
       //初期表示に先頭行を選択しているため、立替フラグ(hidden)の更新を実施 ※入力モードの場合のみ
       if (tma("payTypeCd", tupleId).elem(true).length > 0) { 
         KAIDEN.base.foundation.SelectListData.setChainValue(tma("payTypeCd", tupleId).elem(true).get(0));
       }
       
       //事前申請書取込では、会社通貨額が設定されているため、取引通貨額に会社通貨額を設定する
       //※外貨版から標準版にコピーする際、会社通貨額(レート換算後)の金額を設定する
       var compAmnt = tma("companyAmount", tupleId).getValue();
       if (compAmnt) {
         tma("transAmount", tupleId).setValue([compAmnt, KAIDEN.Util.addFigure(compAmnt)]);
         tma("companyAmount", tupleId).getValue("");
       }
       
       KAIDEN.gadgetMan.complementData(undefined, "${gadgetId}", "${gadgetId}");
     });
    
    
    /***********************************
     * 受信イベント(push) 
     ***********************************/
     
    //loadData データ読み込み  イベントリスナの登録
    eventMan.registPushListener("loadData", function(/**Object*/arg) {
      tmt.deleteAll();
      return KAIDEN.ImwModerator.genericLoadDataEvent("${gadgetId}", "${accessUrl}", arg);
    });
    
    
    //loadData4Copy 申請書コピー  イベントリスナの登録
    eventMan.registPushListener("loadData4Copy", function(/**Object*/arg) {
      return KAIDEN.ImwModerator.genericLoadData4CopyEvent("${gadgetId}", "${accessUrl}", arg);
    });
    
    //loadData4Settle 事前申請書取り込み  イベントリスナの登録
    eventMan.registPushListener("loadData4Settle", function(/**Object*/arg) {
      return KAIDEN.ImwModerator.genericLoadData4SettleEvent("${gadgetId}", "${accessUrl}", arg);
      
    });
    
    
    /***********************************
     * 受信イベント(pull) 
     ***********************************/
     
    //claimDateDetail 明細日付を要求  イベントリスナの登録
    eventMan.registPullListener("claimDateDetail", function(/**Object*/arg) { 
      return tmt.getColumnValues(["occurDate", "occurDate"]); 
    });
    
    //claimExpenseAmount 費用合計を要求  イベントリスナの登録
    eventMan.registPullListener("claimExpenseAmount", function(/**Object*/arg) {
      var amounts = tmt.getColumnValues("transAmount");
      var result = new BigDecimal().ZERO;
      $.each(amounts, function(index, value) {
        if ($.isNumeric(value)) {
          result = result.add(new BigDecimal(value));
        }
      });
      return result.toString();
    });
    
    //claimTemporaryPayAmount 従業員立替金額を要求  イベントリスナの登録
    eventMan.registPullListener("claimTemporaryPayAmount", function(/**Object*/arg) {
      var amounts = tmt.getColumnValues(["transAmount", "paymentFlag"]);
      var result = new BigDecimal().ZERO;
      $.each(amounts, function(index, value) {
        if ($.isNumeric(value[0]) && value[1] == "1") {
          result = result.add(new BigDecimal(value[0]));
        }
      });
      return result.toString();
    });
    
    //claimCompanyPayAmount 会社支払額を要求  イベントリスナの登録
    eventMan.registPullListener("claimCompanyPayAmount", function(/**Object*/arg) {
      var amounts = tmt.getColumnValues(["transAmount", "paymentFlag"]);
      var result = new BigDecimal().ZERO;
      $.each(amounts, function(index, value) {
        if ($.isNumeric(value[0]) && value[1] != "1") {
          result = result.add(new BigDecimal(value[0]));
        }
      });
      return result.toString();
    });
    
    //claimExpenseDetail 費用明細を要求  イベントリスナの登録
    eventMan.registPullListener("claimExpenseDetail", function(/**Object*/arg) {
      return tmt.getColumnValues("transAmount");
    });
    
    //claimExpenceCount 費用明細行数を要求  イベントリスナの登録
    eventMan.registPullListener("claimExpenceCount", function(/**Object*/arg) {
      return tmt.getCount();
    });
    
    /**
     * Complement(Global)イベント
     */
     eventMan.registPullListener("getGlobalComplement", function(/**Object*/args) {
      if(!KAIDEN.getGadget("${gadgetId}").variable["getComplementFunction"]){
        return new Array();
      }
      var global = new Array();
      $.each(KAIDEN.getGadget("${gadgetId}").variable["getComplementFunction"], function(index, func) {
        if ($.isFunction(func)) {
          var comples = func(args);
          if(comples){
            global = global.concat(comples);
          }
        }
      });
      return global;
    });
    
    /**
     * データ読込前(preLoadData)処理
     */
     eventMan.registPushListener("preLoadData", function(/**Object*/arg) {
      if(KAIDEN.getGadget("${gadgetId}").variable["preLoadData"]){
        $.each(KAIDEN.getGadget("${gadgetId}").variable["preLoadData"], function(index, func) {
          if ($.isFunction(func)) {
            func(arg);
          }
        });
      }
      return true;
    });
  });
</script>