intra-mart Accel Kaiden! プログラミングガイド 第16版 2022-03-31

5.1.8. 日当明細(複数通貨)

日当明細(複数通貨)のサンプルソースです。
本サンプルソースは「intra-mart Accel Kaiden! ワークフローモジュール 2.0.2」から抜粋したソースです。

5.1.8.1. 一覧

src
└─main
    ├─generated
    │  └─jp
    │      └─co
    │          └─slcs
    │              └─kaiden2
    │                  └─product_workflow
    │                      └─foundation
    │                          └─model
    │                              ├─entity
    │                              │      K30tAllowanceDetail.java
    │                              │      K30tAllowanceDetailNames.java
    │                              │      Ka30tAllowanceDetail.java
    │                              │      Ka30tAllowanceDetailNames.java
    │                              └─service
    │                                      K30tAllowanceDetailCondition.java
    │                                      K30tAllowanceDetailService.java
    │                                      Ka30tAllowanceDetailCondition.java
    │                                      Ka30tAllowanceDetailService.java
    ├─java
    │  └─jp
    │      └─co
    │          └─slcs
    │              └─kaiden2
    │                  └─product_workflow
    │                      ├─feature
    │                      │  ├─action
    │                      │  │  └─kaiden
    │                      │  │      └─gadget
    │                      │  │              AbstractAllowanceDetailActionBase.java
    │                      │  │              AllowanceDetailV02Action.java
    │                      │  ├─conf
    │                      │  │  └─kaiden
    │                      │  │      └─gadget
    │                      │  │          └─allowancedetail
    │                      │  │                  AllowanceDetailFieldName.java
    │                      │  ├─form
    │                      │  │  └─kaiden
    │                      │  │      └─gadget
    │                      │  │              AllowanceDetailV02Form.java
    │                      │  └─logic
    │                      │      └─kaiden
    │                      │          └─gadget
    │                      │              └─allowancedetail
    │                      │                      AbstractAllowanceDetailLogicBase.java
    │                      │                      AllowanceDetailV02Logic.java
    │                      └─foundation
    │                          └─manager
    │                              └─allowancedetail
    │                                  │  AllowanceDetailManager.java
    │                                  │  AllowanceDetailManagerDto.java
    │                                  └─impl
    │                                          AllowanceDetailManagerImpl.java
    ├─resources
    │  └─META-INF
    │      └─sql
    │          └─jp
    │              └─co
    │                  └─slcs
    │                      └─kaiden2
    │                          └─product_workflow
    │                              └─foundation
    │                                  ├─manager
    │                                  │  └─allowancedetail
    │                                  │      └─impl
    │                                  │          └─AllowanceDetailManagerImpl
    │                                  │                  selectForJournalSourceDtl.sql
    │                                  └─model
    │                                      └─service
    │                                          └─K30tAllowanceDetailService
    │                                                  selectView.sql
    │                                                  selectViewForCopy.sql
    └─webapp
        └─WEB-INF
            └─view
                └─kaiden2
                    └─product_workflow
                        └─gadget
                            └─allowanceDetail
                                    allowanceDetailV02.jsp
                                    allowanceDetailV02_sp.jsp

5.1.8.2. Java

5.1.8.2.1. Action(基底)

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/feature/action/kaiden/gadget/AbstractAllowanceDetailActionBase.java
package jp.co.slcs.kaiden2.product_workflow.feature.action.kaiden.gadget;

import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.COMPANY_AMOUNT;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.COMPANY_AMOUNT_SUM;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.COMPANY_CURRENCY_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.COMPANY_RATE;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.QUANTITY;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.TRANS_AMOUNT;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.TRANS_CURRENCY_CD;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
import java.util.Stack;
import jp.co.slcs.kaiden2.base.foundation.helper.NumberHelper;
import jp.co.slcs.kaiden2.base.foundation.model.dto.LogicResultDto;
import jp.co.slcs.kaiden2.base.foundation.util.ConvertForJsonSource;
import jp.co.slcs.kaiden2.base.foundation.util.ResponseWriter;
import jp.co.slcs.kaiden2.base.foundation.util.StringUtil;
import jp.co.slcs.kaiden2.extension_imw.foundation.imw_page.AbstractImwPageForm;
import jp.co.slcs.kaiden2.product_workflow.foundation.gadget.GadgetActionIF;
import net.arnx.jsonic.JSON;
import org.seasar.framework.container.SingletonS2Container;
import org.seasar.struts.annotation.Execute;

/**
 * 日当明細ガジェット用Actionの抽象クラス.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public abstract class AbstractAllowanceDetailActionBase implements GadgetActionIF {
    
    /**
     * 申請画面のデータロード.
     * 
     * @return 検索結果
     */
    @Override
    @Execute(validator = false)
    public String loadApply() {
        ResponseWriter.writeJSon(JSON.encode(getViewData()));
        return null;
    }
    
    /**
     * 再申請画面のデータロード.
     * 
     * @return 検索結果
     */
    @Override
    @Execute(validator = false)
    public String loadReapply() {
        ResponseWriter.writeJSon(JSON.encode(getViewData()));
        return null;
    }
    
    /**
     * 一時保存画面のデータロード.
     * <p>
     * レスポンスに、JSON化した、ロジッククラスの戻り値{@link LogicResultDto}を出力
     * </p>
     * 
     * @return null
     */
    @Override
    @Execute(validator = false)
    public String loadTempsave() {
        ResponseWriter.writeJSon(JSON.encode(getViewData()));
        return null;
    }
    
    /**
     * 処理画面のデータロード.
     * <p>
     * レスポンスに、JSON化した、ロジッククラスの戻り値{@link LogicResultDto}を出力
     * </p>
     * 
     * @return null
     */
    @Override
    @Execute(validator = false)
    public String loadProcess() {
        ResponseWriter.writeJSon(JSON.encode(getViewData()));
        return null;
    }
    
    /**
     * 確認画面のデータロード.
     * <p>
     * レスポンスに、JSON化した、ロジッククラスの戻り値{@link LogicResultDto}を出力
     * </p>
     * 
     * @return null
     */
    @Override
    @Execute(validator = false)
    public String loadConfirm() {
        ResponseWriter.writeJSon(JSON.encode(getViewData()));
        return null;
    }
    
    /**
     * 処理詳細画面のデータロード.
     * <p>
     * レスポンスに、JSON化した、ロジッククラスの戻り値{@link LogicResultDto}を出力
     * </p>
     * 
     * @return null
     */
    @Override
    @Execute(validator = false)
    public String loadProcessDetail() {
        ResponseWriter.writeJSon(JSON.encode(getViewData()));
        return null;
    }
    
    /**
     * 画面表示用データを返却.
     * 
     * @return Managerからの返却値
     */
    @Override
    public LogicResultDto getViewData() {
        return getLogic().view(getForm(), getConvertor());
    }
    
    /**
     * 参照詳細画面のデータロード.
     * <p>
     * レスポンスに、JSON化した、ロジッククラスの戻り値{@link LogicResultDto}を出力
     * </p>
     * 
     * @return null
     */
    @Override
    @Execute(validator = false)
    public String loadReferenceDetail() {
        ResponseWriter.writeJSon(JSON.encode(getViewData()));
        return null;
    }
    
    /**
     * 確認詳細画面のデータロード.
     * <p>
     * レスポンスに、JSON化した、ロジッククラスの戻り値{@link LogicResultDto}を出力
     * </p>
     * 
     * @return null
     */
    @Override
    @Execute(validator = false)
    public String loadConfirmDetail() {
        ResponseWriter.writeJSon(JSON.encode(getViewData()));
        return null;
    }
    
    /**
     * 申請書コピーのデータロード.
     * <p>
     * レスポンスに、JSON化した、ロジッククラスの戻り値{@link LogicResultDto}を出力
     * </p>
     * 
     * @return null
     */
    @Override
    @Execute(validator = false)
    public String loadCopy() {
        ResponseWriter.writeJSon(JSON.encode(getLogic().viewForCopy(getForm(), getConvertor())));
        return null;
    }
    
    /**
     * 過去案件詳細画面のデータロード.
     * <p>
     * レスポンスに、JSON化した、ロジッククラスの戻り値{@link LogicResultDto}を出力
     * </p>
     * 
     * @return null
     */
    @Override
    @Execute(validator = false)
    public String loadArchiveMatterDetail() {
        ResponseWriter.writeJSon(JSON.encode(getLogic().viewArchive(getForm(), getConvertor())));
        return null;
    }
    
    /**
     * 書式変換設定を返却.
     * <p>
     * 標準では{@link #AllowanceDetailConvertor 日当明細(標準)ガジェットの書式変換}を返却します。<br>
     * 書式を変更する場合は、サブクラスでオーバーライドしてください
     * </p>
     * 
     * @return 書式変換後データ
     */
    protected AllowanceDetailConvertor getConvertor() {
        return new AllowanceDetailConvertor(getForm());
    }
    
    /**
     * 日当明細(標準)ガジェットの書式変換.
     * 
     * @author Sumitomo Life Information Systems Co.,Ltd.
     */
    private static class AllowanceDetailConvertor extends ConvertForJsonSource {
        
        /** リクエストパラメータ. */
        private AbstractImwPageForm frm;
        
        /** NumberHelper. */
        private NumberHelper numberHelper;
        
        /**
         * コンストラクタ.
         * 
         * @param frm リクエストパラメータ
         */
        public AllowanceDetailConvertor(AbstractImwPageForm frm) {
            this.frm = frm;
            numberHelper = SingletonS2Container.getComponent(NumberHelper.class);
        }
        
        /**
         * {@inheritDoc}
         * <p>
         * 本サブクラスでは、以下の書式変換を行う。<br>
         * <table border="1">
         * <tr>
         * <td>項目名</td>
         * <td>書式</td>
         * </tr>
         * <tr>
         * <td>取引通貨額</td>
         * <td>スケールを通貨のスケールに変換</td>
         * </tr>
         * <tr>
         * <td>会社通貨換算レート</td>
         * <td>スケールをレートスケールに変換</td>
         * </tr>
         * <tr>
         * <td>会社通貨額</td>
         * <td>スケールを会社通貨のスケールに変換</td>
         * </tr>
         * <tr>
         * <td>日数</td>
         * <td>整数表示に変換</td>
         * </tr>
         * <tr>
         * <td>会社通貨額合計</td>
         * <td>スケールを会社通貨のスケールに変換</td>
         * </tr>
         * </table>
         * </p>
         */
        @Override
        protected Map<String, Object> formatPlainValue(Map<String, Object> map, Stack<String> fldNameStack) {
            
            Map<String, Object> result = new HashMap<String, Object>(map);
            
            // 取引通貨額の書式変換
            if (result.containsKey(TRANS_AMOUNT)) {
                BigDecimal amount = (BigDecimal) result.get(TRANS_AMOUNT);
                Object currencyCd = result.get(TRANS_CURRENCY_CD);
                result.put(TRANS_AMOUNT,
                        numberHelper.formatCurrencyAmount4Input(amount, frm.searchCriteriaCompany, (String) currencyCd));
            }
            // レートの書式変換
            if (result.containsKey(COMPANY_RATE)) {
                BigDecimal rate = (BigDecimal) result.get(COMPANY_RATE);
                result.put(COMPANY_RATE, numberHelper.formatRate4Input(rate));
            }
            
            String companyCurrencyCd = (String) result.get(COMPANY_CURRENCY_CD);
            
            // 換算額の書式変換
            if (result.containsKey(COMPANY_AMOUNT)) {
                BigDecimal companyAmount = (BigDecimal) result.get(COMPANY_AMOUNT);
                result.put(COMPANY_AMOUNT, numberHelper.formatCurrencyAmount4Input(companyAmount,
                        frm.searchCriteriaCompany, companyCurrencyCd));
            }
            
            // 日数の書式変換
            if (result.containsKey(QUANTITY)) {
                BigDecimal quantity = (BigDecimal) map.get(QUANTITY);
                if (quantity == null) {
                    result.put(QUANTITY, "");
                } else {
                    result.put(QUANTITY, StringUtil.toString(quantity.setScale(0)));
                }
            }
            
            // 金額(換算額*日数)の書式変換
            if (result.containsKey(COMPANY_AMOUNT_SUM)) {
                BigDecimal companyAmountSum = (BigDecimal) map.get(COMPANY_AMOUNT_SUM);
                result.put(COMPANY_AMOUNT_SUM, numberHelper.formatCurrencyAmount4Input(companyAmountSum,
                        frm.searchCriteriaCompany, companyCurrencyCd));
            }
            
            return result;
            
        }
        
        /**
         * {@inheritDoc}
         * <p>
         * 本サブクラスでは、以下の書式変換を行う。<br>
         * <table border="1">
         * <tr>
         * <td>項目名</td>
         * <td>書式</td>
         * </tr>
         * <tr>
         * <td>取引通貨額</td>
         * <td>スケールを通貨のスケールに変換</td>
         * </tr>
         * <tr>
         * <td>会社通貨換算レート</td>
         * <td>スケールをレートスケールに変換</td>
         * </tr>
         * <tr>
         * <td>会社通貨額</td>
         * <td>スケールを会社通貨のスケールに変換</td>
         * </tr>
         * <tr>
         * <td>日数</td>
         * <td>整数表示に変換</td>
         * </tr>
         * <tr>
         * <td>会社通貨額合計</td>
         * <td>スケールを会社通貨のスケールに変換</td>
         * </tr>
         * </table>
         * </p>
         */
        @Override
        protected Map<String, String> formatFormatedValue(Map<String, Object> map, Stack<String> fldNameStack) {
            Map<String, String> result = super.formatFormatedValue(map, fldNameStack);
            
            // 取引通貨額の書式変換
            if (map.containsKey(TRANS_AMOUNT)) {
                BigDecimal amount = (BigDecimal) map.get(TRANS_AMOUNT);
                Object currencyCd = map.get(TRANS_CURRENCY_CD);
                result.put(TRANS_AMOUNT,
                        numberHelper.formatCurrencyAmount4View(amount, frm.searchCriteriaCompany, (String) currencyCd));
            }
            // レートの書式変換
            if (map.containsKey(COMPANY_RATE)) {
                BigDecimal rate = (BigDecimal) map.get(COMPANY_RATE);
                result.put(COMPANY_RATE, numberHelper.formatRate4View(rate));
            }
            
            String companyCurrencyCd = result.get(COMPANY_CURRENCY_CD);
            // 換算額の書式変換
            if (map.containsKey(COMPANY_AMOUNT)) {
                BigDecimal companyAmount = (BigDecimal) map.get(COMPANY_AMOUNT);
                result.put(COMPANY_AMOUNT, numberHelper.formatCurrencyAmount4View(companyAmount,
                        frm.searchCriteriaCompany, companyCurrencyCd));
            }
            
            // 日数の書式変換
            if (map.containsKey(QUANTITY)) {
                BigDecimal quantity = (BigDecimal) map.get(QUANTITY);
                if (quantity == null) {
                    result.put(QUANTITY, "");
                } else {
                    result.put(QUANTITY, StringUtil.toString(quantity.setScale(0)));
                }
            }
            
            // 金額(換算額*日数)の書式変換
            if (map.containsKey(COMPANY_AMOUNT_SUM)) {
                BigDecimal companyAmountSum = (BigDecimal) map.get(COMPANY_AMOUNT_SUM);
                result.put(COMPANY_AMOUNT_SUM, numberHelper.formatCurrencyAmount4View(companyAmountSum,
                        frm.searchCriteriaCompany, companyCurrencyCd));
            }
            
            return result;
        }
    }
}

5.1.8.2.2. Action

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/feature/action/kaiden/gadget/AllowanceDetailV02Action.java
package jp.co.slcs.kaiden2.product_workflow.feature.action.kaiden.gadget;

import javax.annotation.Resource;
import jp.co.slcs.kaiden2.extension_imw.foundation.imw_page.AbstractImwPageForm;
import jp.co.slcs.kaiden2.extension_imw.foundation.manager.PluginLogicIF;
import jp.co.slcs.kaiden2.product_workflow.feature.form.kaiden.gadget.AllowanceDetailV02Form;
import jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.allowancedetail.AllowanceDetailV02Logic;
import org.seasar.struts.annotation.ActionForm;

/**
 * 日当明細(標準・外貨)ガジェット(Action).
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public class AllowanceDetailV02Action extends AbstractAllowanceDetailActionBase {
    
    /**
     * AllowancedetailV02Logic.
     */
    @Resource
    public AllowanceDetailV02Logic allowanceDetailV02Logic;
    
    /**
     * AllowanceDetailV02Form.
     */
    @ActionForm
    @Resource
    public AllowanceDetailV02Form allowanceDetailV02Form;
    
    /**
     * {@inheritDoc}
     */
    @Override
    public PluginLogicIF getLogic() {
        return allowanceDetailV02Logic;
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public AbstractImwPageForm getForm() {
        return allowanceDetailV02Form;
    }
    
}

5.1.8.2.3. Form

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/feature/form/kaiden/gadget/AllowanceDetailV02Form.java
package jp.co.slcs.kaiden2.product_workflow.feature.form.kaiden.gadget;

import jp.co.slcs.kaiden2.extension_imw.foundation.imw_page.AbstractImwPageForm;

/**
 * 日当明細(標準・外貨)ガジェット(Form).
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public class AllowanceDetailV02Form extends AbstractImwPageForm {
    
}

5.1.8.2.4. Logic(基底)

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/feature/logic/kaiden/gadget/allowancedetail/AbstractAllowanceDetailLogicBase.java
package jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.allowancedetail;

import static jp.co.slcs.kaiden2.base.foundation.util.StringUtil.isEmpty;
import static jp.co.slcs.kaiden2.base.foundation.util.StringUtil.isNotEmpty;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_CURRENCY_AMNT;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_DEPARTMENT_EXISTS;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_DIGITS;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_IMM_CURRENCY_EXISTS;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_NUMERIC;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_NUMERIC_MIN;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_NUMERIC_RANGE;
import static jp.co.slcs.kaiden2.extension_imw.foundation.conf.WorkflowConstants.LAST_RESULT_STATUS_APPROVEEND;
import static jp.co.slcs.kaiden2.extension_imw.foundation.conf.WorkflowConstants.LAST_RESULT_STATUS_MATTERCOMPLETE;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.ACCOUNT_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.ACCOUNT_NAME;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.ALLOWANCE_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.ALLOWANCE_NAME;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.COMPANY_AMOUNT;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.COMPANY_AMOUNT_SUM;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.COMPANY_CURRENCY_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.COMPANY_CURRENCY_NAME;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.COMPANY_RATE;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.DEPARTMENT_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.DEPARTMENT_NAME;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.DEPARTMENT_SET_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.EXP_TYPE_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.EXP_TYPE_NAME;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.PAY_METHOD_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.PROJECT_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.PROJECT_NAME;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.QUANTITY;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.TAX_TYPE_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.TAX_TYPE_NAME;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.TRANS_AMOUNT;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.TRANS_CURRENCY_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.TRANS_CURRENCY_NAME;
import static jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.conf.ConstValidationIdKaidenProductWorkflow.VALID_ACCOUNT_EXISTS;
import static jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.conf.ConstValidationIdKaidenProductWorkflow.VALID_ALLOWANCE_EXISTS;
import static jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.conf.ConstValidationIdKaidenProductWorkflow.VALID_EXP_TYPE_EXISTS;
import static jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.conf.ConstValidationIdKaidenProductWorkflow.VALID_PAY_METHOD_EXISTS;
import static jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.conf.ConstValidationIdKaidenProductWorkflow.VALID_PROJECT_EXISTS;
import static jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.conf.ConstValidationIdKaidenProductWorkflow.VALID_TAX_TYPE_EXISTS;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import javax.annotation.Resource;
import jp.co.slcs.kaiden2.base.foundation.conf.BaseProp;
import jp.co.slcs.kaiden2.base.foundation.event.GadgetMediatorParams;
import jp.co.slcs.kaiden2.base.foundation.exception.KaidenApplicationException;
import jp.co.slcs.kaiden2.base.foundation.exception.KaidenSystemException;
import jp.co.slcs.kaiden2.base.foundation.model.dto.ErrorDetailDto;
import jp.co.slcs.kaiden2.base.foundation.model.dto.KaidenDto;
import jp.co.slcs.kaiden2.base.foundation.util.BeanUtil;
import jp.co.slcs.kaiden2.base.foundation.util.CollectionUtil;
import jp.co.slcs.kaiden2.base.foundation.util.ConvertForJsonSource;
import jp.co.slcs.kaiden2.base.foundation.util.JsonUtil;
import jp.co.slcs.kaiden2.base.foundation.util.StringUtil;
import jp.co.slcs.kaiden2.base.foundation.util.validate.CurrencyAmntValidator;
import jp.co.slcs.kaiden2.base.foundation.util.validate.DepartmentExistsValidator;
import jp.co.slcs.kaiden2.base.foundation.util.validate.DigitsValidator;
import jp.co.slcs.kaiden2.base.foundation.util.validate.ImmCurrencyExistsValidator;
import jp.co.slcs.kaiden2.base.foundation.util.validate.KaidenValidateResult;
import jp.co.slcs.kaiden2.base.foundation.util.validate.NumericMinValidator;
import jp.co.slcs.kaiden2.base.foundation.util.validate.NumericRangeValidator;
import jp.co.slcs.kaiden2.base.foundation.util.validate.NumericValidator;
import jp.co.slcs.kaiden2.extension_imw.foundation.conf.WorkflowConstants;
import jp.co.slcs.kaiden2.extension_imw.foundation.manager.CriteriaForSqlDto;
import jp.co.slcs.kaiden2.extension_imw.foundation.manager.PluginGadgetManager;
import jp.co.slcs.kaiden2.extension_imw.foundation.model.dto.MatterEndProcessDto;
import jp.co.slcs.kaiden2.extension_imw.foundation.model.dto.PluginGadgetDTO;
import jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.common.ClaimCompanyPayAmountIF;
import jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.common.ClaimExpenceCountIF;
import jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.common.ClaimExpenseAmountIF;
import jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.common.ClaimExpenseDetailIF;
import jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.common.ClaimPayMethodIF;
import jp.co.slcs.kaiden2.product_workflow.foundation.conf.JournalDataTypeCd;
import jp.co.slcs.kaiden2.product_workflow.foundation.conf.ProductWorkflowProp;
import jp.co.slcs.kaiden2.product_workflow.foundation.gadget.AbstractExpensePluginGadgetLogic;
import jp.co.slcs.kaiden2.product_workflow.foundation.manager.allowancedetail.AllowanceDetailManager;
import jp.co.slcs.kaiden2.product_workflow.foundation.manager.allowancedetail.AllowanceDetailManagerDto;
import jp.co.slcs.kaiden2.product_workflow.foundation.manager.journalsourcedtl.JournalSourceDtlManager;
import jp.co.slcs.kaiden2.product_workflow.foundation.manager.journalsourcedtl.JournalSourceDtlManagerDto;
import jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.AccountExistsValidator;
import jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.AllowanceExistsValidator;
import jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.ExpTypeExistsValidator;
import jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.PayMethodExistsValidator;
import jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.ProjectExistsValidator;
import jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.TaxTypeExistsValidator;
import org.seasar.framework.beans.util.Beans;
import org.seasar.util.beans.util.BeanMap;

/**
 * 日当明細ガジェット用Logicの抽象クラス.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public abstract class AbstractAllowanceDetailLogicBase extends AbstractExpensePluginGadgetLogic {
    
    /** ガジェットブロックキー: 日当明細ガジェット・日当明細テーブル. */
    protected static final String BLOCK_KEY_ALLOWANCE_DETAIL_TABLE = "allowanceDetailTable";
    
    /** 金額、整数部桁数. */
    public static final int COMPANY_RATE_INT_LEN = 18;
    /** 金額、小数部桁数. */
    public static final int COMPANY_RATE_DEC_LEN = 10;
    /** 日数 最大値. */
    public static final int QUANTITY_MAX = 999;
    
    /** AllowanceDetailManager. */
    @Resource(name = "allowanceGadegetManager")
    protected AllowanceDetailManager allowanceDetailManager;
    
    /** JournalSourceDtlManager. */
    @Resource
    protected JournalSourceDtlManager journalSourceDtlManager;
    
    /** コンストラクタ. */
    public AbstractAllowanceDetailLogicBase() {
        super();
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 日当明細を登録します。
     * </p>
     */
    @Override
    public int apply(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        return insertTable();
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 対象となる日当明細テーブルを削除後に、日当明細テーブルを登録します。<br>
     * 削除条件のシステム案件IDは、"{@link WorkflowConstants#SYSTEM_MATTER_ID_TEMPORARY temporary}"を利用します。
     * </p>
     */
    @Override
    public int applyFromTempSave(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        deleteTable(true);
        return insertTable();
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 日当明細を登録します。
     * </p>
     */
    @Override
    public int applyFromUnapply(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        return insertTable();
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 直前のユーザデータIDが設定されている場合に、日当明細テーブルを登録します。
     * </p>
     */
    @Override
    public int approve(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        int rv = 0;
        if (StringUtil.isNotEmpty(super.getGadgetDto().beforeUserDataId)) {
            rv = insertTable();
        }
        return rv;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 直前のユーザデータIDが設定されている場合に、日当明細テーブルを登録します。
     * </p>
     */
    @Override
    public int approveEnd(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        int rv = 0;
        if (StringUtil.isNotEmpty(super.getGadgetDto().beforeUserDataId)) {
            rv = insertTable();
        }
        return rv;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 本機能では何も処理を行わず、常に0を返却します。
     * </p>
     */
    @Override
    public int deny(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        return 0;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 本機能では何も処理を行わず、常に0を返却します。
     * </p>
     */
    @Override
    public int discontinue(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        return 0;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 本機能では何も処理を行わず、常に0を返却します。
     * </p>
     */
    @Override
    public int matterHandle(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        return 0;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 本機能では何も処理を行わず、常に0を返却します。
     * </p>
     */
    @Override
    public int pullBack(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        return 0;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 日当明細を登録します。
     * </p>
     */
    @Override
    public int reapply(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        return insertTable();
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 直前のユーザデータIDが設定されている場合に、日当明細テーブルを登録します。
     * </p>
     */
    @Override
    public int reserve(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        int rv = 0;
        if (StringUtil.isNotEmpty(super.getGadgetDto().beforeUserDataId)) {
            rv = insertTable();
        }
        return rv;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 直前のユーザデータIDが設定されている場合に、日当明細テーブルを登録します。
     * </p>
     */
    @Override
    public int reserveCancel(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        int rv = 0;
        if (StringUtil.isNotEmpty(super.getGadgetDto().beforeUserDataId)) {
            rv = insertTable();
        }
        return rv;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 直前のユーザデータIDが設定されている場合に、日当明細テーブルを登録します。
     * </p>
     */
    @Override
    public int sendBack(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        int rv = 0;
        if (StringUtil.isNotEmpty(super.getGadgetDto().beforeUserDataId)) {
            rv = insertTable();
        }
        return rv;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 本機能では何も処理を行わず、常に0を返却します。
     * </p>
     */
    @Override
    public int sendBackToPullBack(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        return 0;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 日当明細を登録します。
     * </p>
     */
    @Override
    public int tempSaveCreate(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        return insertTable();
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 日当明細テーブルの対象データを削除します。<br>
     * 削除条件のシステム案件IDは、"{@link WorkflowConstants#SYSTEM_MATTER_ID_TEMPORARY temporary}"を利用します。
     * </p>
     */
    @Override
    public int tempSaveDelete(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        return deleteTable(true);
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 対象となる日当明細テーブルを削除後に、日当明細テーブルを登録します。<br>
     * 削除条件のシステム案件IDは、"{@link WorkflowConstants#SYSTEM_MATTER_ID_TEMPORARY temporary}"を利用します。
     * </p>
     */
    @Override
    public int tempSaveUpdate(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        deleteTable(true);
        return insertTable();
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 本機能では何も処理を行わず、常に0を返却します。
     * </p>
     */
    @Override
    public int matterStart(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        return 0;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 処理結果ステータスが[承認終了]、[最終承認]の場合に、仕訳連携用明細テーブルへのデータ登録処理を行います。<br>
     * ただし上記処理結果ステータスの場合でも、{@link #isRequiredCreateJournalData(JournalDataCreateType)}の判定結果によっては、<br>
     * 仕訳連携用明細テーブルへのデータ登録処理を行わない場合があります。<br>
     * 詳細は、{@link #isRequiredCreateJournalData(JournalDataCreateType)}を参照ください。
     * </p>
     */
    @Override
    public int matterEnd(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        
        PluginGadgetDTO pluginGadgetDTO = BeanUtil.toCast(PluginGadgetDTO.class, dto);
        MatterEndProcessDto matterEndProcessDto = BeanUtil.toCast(MatterEndProcessDto.class,
                pluginGadgetDTO.imwPluginParameterDto);
        
        String status = matterEndProcessDto.lastResultStatus;
        
        int rv = 0;
        
        if (LAST_RESULT_STATUS_APPROVEEND.equals(status) || LAST_RESULT_STATUS_MATTERCOMPLETE.equals(status)) {
            if (isRequiredCreateJournalData(JournalDataCreateType.DETAIL_COST)) {
                // 日当明細データ取得キー
                CriteriaForSqlDto criteriaDto = new CriteriaForSqlDto();
                criteriaDto.systemMatterId = pluginGadgetDTO.systemMatterId;
                criteriaDto.userDataId = pluginGadgetDTO.userDataId;
                criteriaDto.gadgetClass = pluginGadgetDTO.gadgetClass;
                criteriaDto.gadgetInstance = pluginGadgetDTO.gadgetInstance;
                // 日当明細データを取得
                List<BeanMap> beanMapList = allowanceDetailManager.selectForJournalSourceDtl(criteriaDto);
                List<JournalSourceDtlManagerDto> insList = CollectionUtil.toDtoList(JournalSourceDtlManagerDto.class,
                        beanMapList);
                
                // 仕訳連携用明細テーブル登録処理
                rv += insertTableJournalSourceDtl(insList, matterEndProcessDto);
            }
        }
        
        return rv;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 本機能では何も処理を行わず、常に0を返却します。
     * </p>
     */
    @Override
    public int arrive(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        return 0;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 対象となる日当明細の履歴を含めた全てのデータを削除します。
     * </p>
     */
    @Override
    public int actvMatterDelete(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        return deleteTableIncludeBackground();
    }
    
    /**
     * {@inheritDoc} *
     * <p>
     * 対象となる(過去案件)日当明細テーブルを一括削除します。
     * </p>
     */
    @Override
    public int arcMatterDelete(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        int rv = allowanceDetailManager
                .removeAllArchive(super.convCriteriaForSqlDtoForArchive(super.getGadgetDto().imwPluginParameterDto));
        return rv;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 対象となる日当明細の履歴を含めた全てのデータを削除します。
     * </p>
     */
    @Override
    public int cplMatterDelete(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        return deleteTableIncludeBackground();
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * データの取得は、{@link AllowanceDetailManager#selectList(AllowanceDetailManagerDto)}を利用します。
     * </p>
     */
    @Override
    protected LinkedHashMap<String, Object> viewMap(PluginGadgetDTO conditionDto) throws KaidenSystemException {
        LinkedHashMap<String, Object> rv = new LinkedHashMap<String, Object>();
        
        // 日当明細ガジェットテーブル取得
        AllowanceDetailManagerDto allowanceDetailCriteria = Beans.createAndCopy(AllowanceDetailManagerDto.class,
                conditionDto).execute();
        List<AllowanceDetailManagerDto> allowanceDetailDtoList = allowanceDetailManager
                .selectList(allowanceDetailCriteria);
        List<Map<String, Object>> allowanceDetailMapList = CollectionUtil.toMapList(allowanceDetailDtoList);
        rv.put(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, allowanceDetailMapList);
        
        return rv;
    }
    
    /**
     * {@inheritDoc}
     * 
     * @see #viewMap
     */
    @Override
    protected Map<String, Object> viewMapFormated(PluginGadgetDTO conditionDto, ConvertForJsonSource converter)
            throws KaidenSystemException {
        LinkedHashMap<String, Object> map = viewMap(conditionDto);
        if (map == null) {
            return null;
        }
        return converter.mapConvert(map);
    }
    
    /**
     * 仕訳連携用ヘッダテーブルへのデータ登録処理.
     * <p>
     * 当該処理は、処理結果ステータスが"approveEnd"、"matterComplete"の場合のみ行う。
     * </p>
     * 
     * @return 更新カウント
     * @throws KaidenSystemException システムエラー
     * @deprecated<br>
     *                 {@link #insertTableJournalSourceDtl(List, MatterEndProcessDto)} を利用してください。
     */
    @Deprecated
    protected int insertk30tJournalSourceHdr() throws KaidenSystemException {
        return journalSourceDtlManager.entry(makeInsertJshMngDto());
    }
    
    /**
     * 登録用仕訳連携用明細DTOを作成.
     * 
     * @return 仕訳連携用ヘッダDTO
     * @deprecated
     */
    @Deprecated
    protected List<JournalSourceDtlManagerDto> makeInsertJshMngDto() {
        
        CriteriaForSqlDto criteriaDto = new CriteriaForSqlDto();
        
        criteriaDto.systemMatterId = super.getGadgetDto().systemMatterId;
        criteriaDto.userDataId = super.getGadgetDto().userDataId;
        criteriaDto.gadgetClass = super.getGadgetDto().gadgetClass;
        criteriaDto.gadgetInstance = super.getGadgetDto().gadgetInstance;
        List<BeanMap> beanMapList = allowanceDetailManager.selectForJournalSourceDtl(criteriaDto);
        
        List<JournalSourceDtlManagerDto> insList = CollectionUtil.toDtoList(JournalSourceDtlManagerDto.class,
                beanMapList);
        
        return insList;
    }
    
    /**
     * 日当明細データ登録処理.
     * 
     * @return 更新カウント
     * @throws KaidenSystemException システムエラー
     */
    protected int insertTable() throws KaidenSystemException {
        int retCnt = 0;
        
        // 日当明細ガジェットテーブル登録
        List<AllowanceDetailManagerDto> allowanceDetailManagerDtoList = JsonUtil.getDtoList(
                AllowanceDetailManagerDto.class, getJsonDataDetailBlock(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE));
        retCnt += allowanceDetailManager.entry(allowanceDetailManagerDtoList);
        
        return retCnt;
    }
    
    /**
     * 仕訳連携用明細テーブルデータ登録処理.
     * 
     * @param srcList 日当明細テーブルデータリスト
     * @param matterEndProcessDto 案件終了処理用DTO
     * @return 更新カウント
     * @throws KaidenSystemException システムエラー
     */
    protected int insertTableJournalSourceDtl(List<JournalSourceDtlManagerDto> srcList,
            MatterEndProcessDto matterEndProcessDto) throws KaidenSystemException {
        for (JournalSourceDtlManagerDto srcDto : srcList) {
            // 仕訳データ区分をセット
            srcDto.journalDataTypeCd = JournalDataTypeCd.JOURNAL_DATA_TYPE_CD_COST.getCode();
        }
        
        // 仕訳連携用明細テーブル登録
        return journalSourceDtlManager.entry(srcList);
    }
    
    /**
     * 日当明細データ削除処理.
     * 
     * @param tempFlg 一時保存データフラグ
     * @return 更新カウント
     * @throws KaidenSystemException システムエラー
     */
    protected int deleteTable(boolean tempFlg) throws KaidenSystemException {
        int retCnt = 0;
        // 日当明細ガジェットテーブル削除
        AllowanceDetailManagerDto allowanceDetailManagerDto = new AllowanceDetailManagerDto();
        allowanceDetailManagerDto.systemMatterId = super.getGadgetDto().systemMatterId;
        allowanceDetailManagerDto.userDataId = super.getGadgetDto().userDataId;
        allowanceDetailManagerDto.gadgetClass = super.getGadgetDto().gadgetClass;
        allowanceDetailManagerDto.gadgetInstance = super.getGadgetDto().gadgetInstance;
        if (tempFlg) {
            allowanceDetailManagerDto.systemMatterId = WorkflowConstants.SYSTEM_MATTER_ID_TEMPORARY;
        }
        retCnt += allowanceDetailManager.remove(allowanceDetailManagerDto);
        
        return retCnt;
    }
    
    /**
     * 日当明細テーブルデータ削除処理(履歴を含む).
     * 
     * @return 更新カウント
     * @throws KaidenSystemException システムエラー
     */
    protected int deleteTableIncludeBackground() throws KaidenSystemException {
        int retCnt = 0;
        
        // 日当明細ガジェットテーブル削除(履歴を含む)
        AllowanceDetailManagerDto allowanceDetailManagerDto = new AllowanceDetailManagerDto();
        allowanceDetailManagerDto.systemMatterId = super.getGadgetDto().systemMatterId;
        allowanceDetailManagerDto.userDataId = null;
        allowanceDetailManagerDto.gadgetClass = super.getGadgetDto().gadgetClass;
        allowanceDetailManagerDto.gadgetInstance = super.getGadgetDto().gadgetInstance;
        retCnt += allowanceDetailManager.remove(allowanceDetailManagerDto);
        
        return retCnt;
    }
    
    /**
     * {@inheritDoc}
     * 
     * @see #defineValidateForNormal(GadgetMediatorParams, boolean)
     */
    @Override
    protected void defineValidateForApply(GadgetMediatorParams params) throws KaidenSystemException,
            KaidenApplicationException {
        defineValidateForNormal(params, false);
    }
    
    /**
     * {@inheritDoc}
     * 
     * @see #defineValidateForNormal(GadgetMediatorParams, boolean)
     */
    @Override
    protected void defineValidateForApplyFromTempSave(GadgetMediatorParams params) throws KaidenSystemException,
            KaidenApplicationException {
        defineValidateForNormal(params, false);
    }
    
    /**
     * {@inheritDoc}
     * 
     * @see #defineValidateForNormal(GadgetMediatorParams, boolean)
     */
    @Override
    protected void defineValidateForApplyFromUnapply(GadgetMediatorParams params) throws KaidenSystemException,
            KaidenApplicationException {
        defineValidateForNormal(params, false);
    }
    
    /**
     * {@inheritDoc}
     * 
     * @see #defineValidateForNormal(GadgetMediatorParams, boolean)
     */
    @Override
    protected void defineValidateForApprove(GadgetMediatorParams params) throws KaidenSystemException,
            KaidenApplicationException {
        defineValidateForNormal(params, false);
    }
    
    /**
     * {@inheritDoc}
     * 
     * @see #defineValidateForNormal(GadgetMediatorParams, boolean)
     */
    @Override
    protected void defineValidateForApproveEnd(GadgetMediatorParams params) throws KaidenSystemException,
            KaidenApplicationException {
        defineValidateForNormal(params, false);
    }
    
    /**
     * {@inheritDoc}
     * 
     * @see #defineValidateForNormal(GadgetMediatorParams, boolean)
     */
    @Override
    protected void defineValidateForReapply(GadgetMediatorParams params) throws KaidenSystemException,
            KaidenApplicationException {
        defineValidateForNormal(params, false);
    }
    
    /**
     * {@inheritDoc}
     * 
     * @see #defineValidateForNormal(GadgetMediatorParams, boolean)
     */
    @Override
    protected void defineValidateForReserve(GadgetMediatorParams params) throws KaidenSystemException,
            KaidenApplicationException {
        if (StringUtil.isNotEmpty(super.getGadgetDto().beforeUserDataId)) {
            defineValidateForNormal(params, false);
        }
    }
    
    /**
     * {@inheritDoc}
     * 
     * @see #defineValidateForNormal(GadgetMediatorParams, boolean)
     */
    @Override
    protected void defineValidateForReserveCancel(GadgetMediatorParams params) throws KaidenSystemException,
            KaidenApplicationException {
        if (StringUtil.isNotEmpty(super.getGadgetDto().beforeUserDataId)) {
            defineValidateForNormal(params, false);
        }
    }
    
    /**
     * {@inheritDoc}
     * 
     * @see #defineValidateForNormal(GadgetMediatorParams, boolean)
     */
    @Override
    protected void defineValidateForSendBack(GadgetMediatorParams params) throws KaidenSystemException,
            KaidenApplicationException {
        if (StringUtil.isNotEmpty(super.getGadgetDto().beforeUserDataId)) {
            defineValidateForNormal(params, false);
        }
    }
    
    /**
     * {@inheritDoc}
     * 
     * @see #defineValidateForNormal(GadgetMediatorParams, boolean)
     */
    @Override
    protected void defineValidateForTempSaveCreate(GadgetMediatorParams params) throws KaidenSystemException,
            KaidenApplicationException {
        defineValidateForNormal(params, true);
    }
    
    /**
     * {@inheritDoc}
     * 
     * @see #defineValidateForNormal(GadgetMediatorParams, boolean)
     */
    @Override
    protected void defineValidateForTempSaveUpdate(GadgetMediatorParams params) throws KaidenSystemException,
            KaidenApplicationException {
        defineValidateForNormal(params, true);
    }
    
    /**
     * フィールドバリデート定義.
     * <p>
     * <table border="1">
     * <tr>
     * <td align="center">対象フィールド名</td>
     * <td align="center">検証内容</td>
     * <td align="center">モード</td>
     * </tr>
     * <tr>
     * <td>日当コード</td>
     * <td>{@link AllowanceExistsValidator 日当存在チェック}</td>
     * <td align="center">入力/表示</td>
     * </tr>
     * <tr>
     * <td>取引通貨額</td>
     * <td>{@link CurrencyAmntValidator 通貨額チェック}</td>
     * <td align="center">入力</td>
     * </tr>
     * <tr>
     * <td>取引通貨コード</td>
     * <td>{@link ImmCurrencyExistsValidator 通貨存在チェック}</td>
     * <td align="center">入力</td>
     * </tr>
     * <tr>
     * <td rowspan="2">会社通貨換算レート</td>
     * <td>{@link DigitsValidator 小数型チェック}</td>
     * <td align="center">入力</td>
     * </tr>
     * <tr>
     * <td>{@link NumericMinValidator 最小数値チェック}</td>
     * <td align="center">入力</td>
     * </tr>
     * <tr>
     * <td>会社通貨額</td>
     * <td>{@link CurrencyAmntValidator 通貨額チェック}</td>
     * <td align="center">入力</td>
     * </tr>
     * <tr>
     * <td>会社通貨コード</td>
     * <td>{@link ImmCurrencyExistsValidator 通貨存在チェック}</td>
     * <td align="center">入力</td>
     * </tr>
     * <tr>
     * <td rowspan="2">日数</td>
     * <td>{@link NumericValidator 半角数字チェック}</td>
     * <td align="center">入力</td>
     * </tr>
     * <tr>
     * <td>{@link NumericRangeValidator 数値範囲チェック}</td>
     * <td align="center">入力</td>
     * </tr>
     * <tr>
     * <td>経費区分コード</td>
     * <td>{@link ExpTypeExistsValidator 経費区分マスタ存在チェック}</td>
     * <td align="center">入力/表示</td>
     * </tr>
     * <tr>
     * <td>勘定科目コード</td>
     * <td>{@link AccountExistsValidator 勘定科目マスタ存在チェック}</td>
     * <td align="center">入力/表示</td>
     * </tr>
     * <tr>
     * <td>税区分コード</td>
     * <td>{@link TaxTypeExistsValidator 税区分マスタ存在チェック}</td>
     * <td align="center">入力/表示</td>
     * </tr>
     * <tr>
     * <td>支払方法コード</td>
     * <td>{@link PayMethodExistsValidator 支払方法マスタ存在チェック}</td>
     * <td align="center">入力/表示</td>
     * </tr>
     * <tr>
     * <td>組織コード</td>
     * <td>{@link DepartmentExistsValidator 組織コード存在チェック}</td>
     * <td align="center">入力/表示</td>
     * </tr>
     * <tr>
     * <td>プロジェクトコード</td>
     * <td>{@link ProjectExistsValidator プロジェクトマスタ存在チェック}</td>
     * <td align="center">入力/表示</td>
     * </tr>
     * <tr>
     * <td>会社通貨額合計</td>
     * <td>{@link CurrencyAmntValidator 通貨額チェック}</td>
     * <td align="center">入力</td>
     * </tr>
     * </table>
     * </p>
     * 
     * @param params ガジェットメディエータ処理情報クラス
     * @param tmpFlg 一時保存識別 (true:一時保存)
     * @throws KaidenSystemException システムエラーが発生
     * @throws KaidenApplicationException アプリケーションエラーが発生
     */
    protected void defineValidateForNormal(GadgetMediatorParams params, boolean tmpFlg) throws KaidenSystemException,
            KaidenApplicationException {
        
        // 日当明細ガジェットテーブル部
        if (fieldDefsMap.containsKey(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE)) {
            addValidateDefsRequired(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, tmpFlg);
            // 日当コード
            addValidateDefsMap(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, ALLOWANCE_CD, VALID_ALLOWANCE_EXISTS, ALLOWANCE_CD,
                    getGadgetDto().searchCriteriaCampany, dateHelper.toYYYYMMDD(getGadgetDto().searchCriteriaDate));
            // 取引通貨額
            addValidateDefsMapOnlyInput(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, TRANS_AMOUNT, VALID_CURRENCY_AMNT,
                    TRANS_CURRENCY_CD, getGadgetDto().searchCriteriaCampany);
            // 取引通貨コード
            addValidateDefsMapOnlyInput(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, TRANS_CURRENCY_CD, VALID_IMM_CURRENCY_EXISTS,
                    TRANS_CURRENCY_CD, getGadgetDto().searchCriteriaCampany);
            // 会社通貨換算レート
            addValidateDefsMapOnlyInput(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, COMPANY_RATE, VALID_DIGITS,
                    String.valueOf(COMPANY_RATE_INT_LEN), String.valueOf(COMPANY_RATE_DEC_LEN));
            addValidateDefsMapOnlyInput(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, COMPANY_RATE, VALID_NUMERIC_MIN, "0");
            // 会社通貨額
            addValidateDefsMapOnlyInput(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, COMPANY_AMOUNT, VALID_CURRENCY_AMNT,
                    COMPANY_CURRENCY_CD, getGadgetDto().searchCriteriaCampany);
            // 会社通貨コード
            addValidateDefsMapOnlyInput(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, COMPANY_CURRENCY_CD,
                    VALID_IMM_CURRENCY_EXISTS, COMPANY_CURRENCY_CD, getGadgetDto().searchCriteriaCampany);
            // 日数
            addValidateDefsMapOnlyInput(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, QUANTITY, VALID_NUMERIC);
            addValidateDefsMapOnlyInput(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, QUANTITY, VALID_NUMERIC_RANGE,
                    getArgs(1, QUANTITY_MAX));
            // 経費区分コード
            addValidateDefsMap(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, EXP_TYPE_CD, VALID_EXP_TYPE_EXISTS, EXP_TYPE_CD,
                    getGadgetDto().searchCriteriaCampany, dateHelper.toYYYYMMDD(getGadgetDto().searchCriteriaDate));
            // 勘定科目コード
            addValidateDefsMap(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, ACCOUNT_CD, VALID_ACCOUNT_EXISTS, ACCOUNT_CD,
                    getGadgetDto().searchCriteriaCampany, dateHelper.toYYYYMMDD(getGadgetDto().searchCriteriaDate));
            // 税区分コード
            addValidateDefsMap(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, TAX_TYPE_CD, VALID_TAX_TYPE_EXISTS, TAX_TYPE_CD,
                    getGadgetDto().searchCriteriaCampany, dateHelper.toYYYYMMDD(getGadgetDto().searchCriteriaDate));
            // 支払方法コード
            addValidateDefsMap(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, PAY_METHOD_CD, VALID_PAY_METHOD_EXISTS, PAY_METHOD_CD,
                    getGadgetDto().searchCriteriaCampany, dateHelper.toYYYYMMDD(getGadgetDto().searchCriteriaDate));
            // 組織コード
            addValidateDefsMap(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, DEPARTMENT_CD, VALID_DEPARTMENT_EXISTS,
                    getGadgetDto().searchCriteriaCampany, DEPARTMENT_SET_CD, DEPARTMENT_CD,
                    dateHelper.toYYYYMMDD(getGadgetDto().searchCriteriaDate));
            // プロジェクトコード
            addValidateDefsMap(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, PROJECT_CD, VALID_PROJECT_EXISTS, PROJECT_CD,
                    getGadgetDto().searchCriteriaCampany, dateHelper.toYYYYMMDD(getGadgetDto().searchCriteriaDate));
            // 会社通貨額合計
            addValidateDefsMapOnlyInput(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, COMPANY_AMOUNT_SUM, VALID_CURRENCY_AMNT,
                    COMPANY_CURRENCY_CD, getGadgetDto().searchCriteriaCampany);
        }
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 常に空のListを返却。
     * </p>
     */
    @Override
    protected List<KaidenValidateResult> postSingleValidate(String eventKey, GadgetMediatorParams params,
            boolean isAuto, boolean isLump) throws KaidenSystemException, KaidenApplicationException {
        return new ArrayList<KaidenValidateResult>();
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 常に空のListを返却。
     * </p>
     */
    @Override
    protected List<KaidenValidateResult> globalValidateMain(String eventKey, GadgetMediatorParams params,
            boolean isAuto, boolean isLump) throws KaidenSystemException, KaidenApplicationException {
        return new ArrayList<KaidenValidateResult>();
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * システム案件idが未設定の場合(初回表示時など)は、空のリストを返却します。<br>
     * 設定されている場合は、{@link AllowanceDetailManager#selectView(CriteriaForSqlDto)}の取得結果を返却します。
     * </p>
     */
    @Override
    protected Map<String, Object> selectBlockDatasForView(CriteriaForSqlDto criteria) {
        Map<String, Object> result = new HashMap<String, Object>();
        
        if (StringUtil.isEmpty(criteria.systemMatterId)
                || (StringUtil.isEmpty(criteria.userDataId) && !criteria.searchFromArchiveFlag)) {
            result.put(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, new ArrayList<AllowanceDetailManagerDto>());
        } else {
            result.put(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, allowanceDetailManager.selectView(criteria));
        }
        return result;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * {@link AllowanceDetailManager#selectViewForCopy(CriteriaForSqlDto)}の取得結果を返却します。
     * </p>
     */
    @Override
    protected Map<String, Object> selectBlockDatasForCopy(CriteriaForSqlDto criteria) {
        Map<String, Object> result = new HashMap<String, Object>();
        result.put(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, allowanceDetailManager.selectViewForCopy(criteria));
        return result;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * {@link AllowanceDetailManager#selectViewArchive(CriteriaForSqlDto)}の取得結果を返却します。
     * </p>
     */
    @Override
    protected Map<String, Object> selectBlockDatasForArchive(CriteriaForSqlDto criteria) {
        Map<String, Object> result = new HashMap<String, Object>();
        result.put(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, allowanceDetailManager.selectViewArchive(criteria));
        return result;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 取得した日当明細のデータに対して、以下マスタの整合性チェックを行います。
     * <ul>
     * <li>[*1]通貨マスタ(imm_currency)</li>
     * <li>組織マスタ(imm_depaertment)</li>
     * <li>プロジェクトマスタ</li>
     * <li>日当マスタ</li>
     * <li>経費区分マスタ</li>
     * <li>勘定科目マスタ</li>
     * <li>税区分マスタ</li>
     * </ul>
     * *1:取引通貨と会社通貨
     * </p>
     */
    @Override
    protected List<ErrorDetailDto> checkSelectedData(Map<String, Object> dataMap, ProcessType processType) {
        List<ErrorDetailDto> result = new ArrayList<ErrorDetailDto>();
        for (Entry<String, Object> dataEs : dataMap.entrySet()) {
            if (BLOCK_KEY_ALLOWANCE_DETAIL_TABLE.equals(dataEs.getKey())) {
                @SuppressWarnings("unchecked")
                List<AllowanceDetailManagerDto> sqlResultList = CollectionUtil.castListContent(
                        (List<? extends KaidenDto>) dataEs.getValue(), AllowanceDetailManagerDto.class);
                for (AllowanceDetailManagerDto dto : sqlResultList) {
                    // 取引通貨コードチェック
                    if (isNotEmpty(dto.transCurrencyCd) && isEmpty(dto.transCurrencyName)) {
                        String[] fieldId = getArgs(TRANS_CURRENCY_CD, TRANS_CURRENCY_NAME);
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                BaseProp.S.CURRENCY);
                        String[] values = getArgs(dto.transCurrencyCd, dto.transCurrencyName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        result.add(new ErrorDetailDto(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, fieldId, StringUtil
                                .toString(dto.tupleId), masterName, values, message));
                    }
                    // 会社通貨コードチェック
                    if (isNotEmpty(dto.companyCurrencyCd) && isEmpty(dto.companyCurrencyName)) {
                        String[] fieldId = getArgs(COMPANY_CURRENCY_CD, COMPANY_CURRENCY_NAME);
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                BaseProp.S.CURRENCY);
                        String[] values = getArgs(dto.companyCurrencyCd, dto.companyCurrencyName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        result.add(new ErrorDetailDto(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, fieldId, StringUtil
                                .toString(dto.tupleId), masterName, values, message));
                    }
                    // 組織チェック
                    if (isNotEmpty(dto.departmentSetCd) && isNotEmpty(dto.departmentCd) && isEmpty(dto.departmentName)) {
                        String[] fieldId = getArgs(DEPARTMENT_SET_CD, DEPARTMENT_CD, DEPARTMENT_NAME);
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                BaseProp.S.DEPARTMENT);
                        String[] values = getArgs(dto.departmentSetCd, dto.departmentCd, dto.departmentName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        result.add(new ErrorDetailDto(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, fieldId, StringUtil
                                .toString(StringUtil.toString(dto.tupleId)), masterName, values, message));
                    }
                    // プロジェクトチェック
                    if (isNotEmpty(dto.projectCd) && isEmpty(dto.projectName)) {
                        String[] fieldId = getArgs(PROJECT_CD, PROJECT_NAME);
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                ProductWorkflowProp.S.PROJECT);
                        String[] values = getArgs(dto.projectCd, dto.projectName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        result.add(new ErrorDetailDto(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, fieldId, StringUtil
                                .toString(dto.tupleId), masterName, values, message));
                    }
                    // 日当チェック
                    if (isNotEmpty(dto.allowanceCd) && isEmpty(dto.allowanceName)) {
                        String[] fieldId = getArgs(ALLOWANCE_CD, ALLOWANCE_NAME);
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                ProductWorkflowProp.S.ALLOWANCE);
                        String[] values = getArgs(dto.allowanceCd, dto.allowanceName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        result.add(new ErrorDetailDto(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, fieldId, StringUtil
                                .toString(dto.tupleId), masterName, values, message));
                    }
                    // 経費区分チェック
                    if (isNotEmpty(dto.expTypeCd) && isEmpty(dto.expTypeName)) {
                        String[] fieldId = getArgs(EXP_TYPE_CD, EXP_TYPE_NAME);
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                ProductWorkflowProp.S.EXP_TYPE);
                        String[] values = getArgs(dto.expTypeCd, dto.expTypeName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        
                        if (!ProcessType.VIEW_FOR_MATTER_ARCHIVE.equals(processType)) {
                            // 勘定科目、税区分をクリア
                            dto.accountCd = null;
                            dto.accountName = null;
                            dto.taxTypeCd = null;
                            dto.taxTypeName = null;
                            // 税率、税抜金額、税額をクリア
                            dto.taxRate = null;
                            dto.companyAmountExcTax = null;
                            dto.companyAmountTax = null;
                        }
                        
                        result.add(new ErrorDetailDto(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, fieldId, StringUtil
                                .toString(dto.tupleId), masterName, values, message));
                    }
                    // 勘定科目チェック
                    if (isNotEmpty(dto.accountCd) && isEmpty(dto.accountName)) {
                        String[] fieldId = getArgs(ACCOUNT_CD, ACCOUNT_NAME);
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                ProductWorkflowProp.S.ACCOUNT);
                        String[] values = getArgs(dto.accountCd, dto.accountName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        result.add(new ErrorDetailDto(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, fieldId, StringUtil
                                .toString(dto.tupleId), masterName, values, message));
                    }
                    // 税区分チェック
                    if (isNotEmpty(dto.taxTypeCd) && isEmpty(dto.taxTypeName)) {
                        String[] fieldId = getArgs(TAX_TYPE_CD, TAX_TYPE_NAME);
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                ProductWorkflowProp.S.TAX_TYPE);
                        String[] values = getArgs(dto.taxTypeCd, dto.taxTypeName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        result.add(new ErrorDetailDto(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, fieldId, StringUtil
                                .toString(dto.tupleId), masterName, values, message));
                    }
                }
            }
        }
        return result;
    }
    
    /**
     * 支払方法をガジェット間通信で取得.
     * 
     * @return 支払方法
     */
    protected String getGadgetCouplingPayMethod() {
        // 支払方法をガジェット間通信で取得
        Map<String, Object> args = new HashMap<String, Object>();
        String rv = StringUtil.nullToBlank(getSingleValue(String.class, args, ClaimPayMethodIF.class,
                ClaimPayMethodIF.METHOD_NM_GET_CLAIM_PAY_METHOD, ClaimPayMethodIF.RTN_KEY_PAY_METHOD_CD));
        return rv;
    }
    
    /**
     * {@link jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.common.ClaimExpenceCountIF#getClaimExpenceCount(Map)}
     * の値を設定.
     * 
     * @param params アーギュメント
     * @return 費用明細の件数
     */
    public Map<String, Object> putClaimExpenceCount(Map<String, Object> params) {
        
        List<Map<String, Object>> blocjData = getJsonDataDetailBlock(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE);
        Map<String, Object> retMap = new HashMap<String, Object>();
        retMap.put(ClaimExpenceCountIF.RTN_KEY_CLAIM_EXPENCE_COUNT, blocjData.size());
        return retMap;
    }
    
    /**
     * {@link jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.common.ClaimCompanyPayAmountIF#getClaimCompanyPayAmount(Map)}
     * の値を設定.
     * 
     * @param params アーギュメント
     * @return 会社支払額
     */
    public Map<String, Object> putClaimCompanyPayAmount(Map<String, Object> params) {
        Map<String, Object> retMap = new HashMap<String, Object>();
        retMap.put(ClaimCompanyPayAmountIF.RTN_KEY_CLAIM_COMPANY_PAY_AMOUNT, BigDecimal.ZERO);
        return retMap;
    }
    
    /**
     * {@link jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.common.ClaimTemporaryPayAmountIF#getClaimTemporaryPayAmount(Map)}
     * の値を設定.
     * 
     * @param params アーギュメント
     * @return 従業員立替金額
     */
    public Map<String, Object> putClaimTemporaryPayAmount(Map<String, Object> params) {
        List<Map<String, Object>> blocjData = getJsonDataDetailBlock(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE);
        Map<String, Object> retMap = new HashMap<String, Object>();
        BigDecimal sum = BigDecimal.ZERO;
        
        for (Map<String, Object> j : blocjData) {
            String strAmnt = StringUtil.toString(j.get(COMPANY_AMOUNT_SUM));
            if (StringUtil.isNotEmpty(strAmnt)) {
                sum = sum.add(new BigDecimal(strAmnt));
            }
        }
        
        retMap.put(ClaimExpenseAmountIF.RTN_KEY_CLAIM_EXPENSE_AMOUNT, sum);
        
        return retMap;
    }
    
    /**
     * {@link jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.common.ClaimExpenseDetailIF#getClaimExpenseDetail(Map)}
     * の値を設定.
     * 
     * @param params アーギュメント
     * @return 費用明細
     */
    public Map<String, Object> putClaimExpenseDetail(Map<String, Object> params) {
        List<Map<String, Object>> blocjData = getJsonDataDetailBlock(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE);
        Map<String, Object> retMap = new HashMap<String, Object>();
        
        List<BigDecimal> list = new ArrayList<BigDecimal>();
        
        for (Map<String, Object> j : blocjData) {
            String strAmnt = StringUtil.toString(j.get(COMPANY_AMOUNT_SUM));
            if (StringUtil.isNotEmpty(strAmnt)) {
                list.add(new BigDecimal(strAmnt));
            }
        }
        retMap.put(ClaimExpenseDetailIF.RTN_KEY_CLAIM_EXPENSE_DETAIL, list);
        
        return retMap;
    }
    
    /**
     * {@link jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.common.ClaimExpenseAmountIF#getClaimExpenseAmount(Map)}
     * の値を設定.
     * 
     * @param params アーギュメント
     * @return 費用合計
     */
    public Map<String, Object> putClaimExpenseAmount(Map<String, Object> params) {
        List<Map<String, Object>> blocjData = getJsonDataDetailBlock(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE);
        Map<String, Object> retMap = new HashMap<String, Object>();
        BigDecimal sum = BigDecimal.ZERO;
        
        for (Map<String, Object> j : blocjData) {
            String strAmnt = StringUtil.toString(j.get(COMPANY_AMOUNT_SUM));
            if (StringUtil.isNotEmpty(strAmnt)) {
                sum = sum.add(new BigDecimal(strAmnt));
            }
        }
        
        retMap.put(ClaimExpenseAmountIF.RTN_KEY_CLAIM_EXPENSE_AMOUNT, sum);
        
        return retMap;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 日当明細テーブルの対象データを過去案件退避します。
     * </p>
     */
    @Override
    protected int matterArchiveRegister(KaidenDto dto, CriteriaForSqlDto criteria, Map<String, Object> dataMap) {
        // 日当明細
        @SuppressWarnings("unchecked")
        List<AllowanceDetailManagerDto> list = (List<AllowanceDetailManagerDto>) dataMap
                .get(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE);
        int rv = allowanceDetailManager.matterArchiveRegister(criteria, list);
        return rv;
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    protected List<PluginGadgetManager<? extends KaidenDto>> getDeleteTargetsForArchiveManagers() {
        List<PluginGadgetManager<? extends KaidenDto>> list = new ArrayList<PluginGadgetManager<? extends KaidenDto>>();
        list.add(allowanceDetailManager);
        return list;
    }
}

5.1.8.2.5. Logic

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/feature/logic/kaiden/gadget/allowancedetail/AllowanceDetailV02Logic.java
package jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.allowancedetail;

import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_NUMERIC_MIN;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_REQUIRED_ANY;
import static jp.co.slcs.kaiden2.extension_imw.foundation.conf.ImwEntityCommonFieldNames.SEARCH_CRITERIA_COMPANY;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.ALLOWANCE_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.COMPANY_AMOUNT;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.COMPANY_AMOUNT_SUM;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.COMPANY_CURRENCY_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.COMPANY_RATE;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.DEPARTMENT_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.PAY_METHOD_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.PROJECT_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.QUANTITY;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.TRANS_AMOUNT;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail.AllowanceDetailFieldName.TRANS_CURRENCY_CD;
import static jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.conf.ConstValidationIdKaidenProductWorkflow.VALID_ALLOWANCE_AMOUNT_EXISTS;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import jp.co.slcs.kaiden2.base.foundation.event.GadgetMediatorParams;
import jp.co.slcs.kaiden2.base.foundation.exception.KaidenApplicationException;
import jp.co.slcs.kaiden2.base.foundation.exception.KaidenSystemException;
import jp.co.slcs.kaiden2.base.foundation.gadget.GlobalComplenentJsonDataProcess;
import jp.co.slcs.kaiden2.base.foundation.helper.CurrencyHelper;
import jp.co.slcs.kaiden2.base.foundation.util.CollectionUtil;
import jp.co.slcs.kaiden2.base.foundation.util.StringUtil;
import jp.co.slcs.kaiden2.base.foundation.util.validate.NumericMinValidator;
import jp.co.slcs.kaiden2.base.foundation.util.validate.RequiredAnyValidator;
import jp.co.slcs.kaiden2.extension_imw.foundation.gadget.AbstractPluginGadgetLogic;
import jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.common.ClaimCompanyPayAmountIF;
import jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.common.ClaimExpenceCountIF;
import jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.common.ClaimExpenseAmountIF;
import jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.common.ClaimExpenseDetailIF;
import jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.common.ClaimTemporaryPayAmountIF;
import jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.AllowanceAmountValidator;

/**
 * 日当明細(標準・外貨)ガジェット(Logic).
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public class AllowanceDetailV02Logic extends AbstractAllowanceDetailLogicBase implements ClaimExpenseAmountIF,
        ClaimExpenseDetailIF, ClaimTemporaryPayAmountIF, ClaimCompanyPayAmountIF, ClaimExpenceCountIF {
    
    /** コンストラクタ. */
    public AllowanceDetailV02Logic() {
        super();
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * サブクラスで追加定義します。<br>
     * <table border="1">
     * <tr>
     * <td align="center">対象フィールド名</td>
     * <td align="center">検証内容</td>
     * <td align="center">モード</td>
     * </tr>
     * <tr>
     * <td>日当金額</td>
     * <td>{@link AllowanceAmountValidator 日当金額妥当性チェック}</td>
     * <td align="center">入力/表示</td>
     * </tr>
     * <tr>
     * <td>取引通貨額</td>
     * <td>{@link NumericMinValidator 最小数値チェック}</td>
     * <td align="center">入力</td>
     * </tr>
     * <tr>
     * <td>組織コード/プロジェクトコード</td>
     * <td>{@link RequiredAnyValidator 必須チェック(複数項目用)}</td>
     * <td align="center">入力</td>
     * </tr>
     * <tr>
     * <td>会社通貨額</td>
     * <td>{@link NumericMinValidator 最小数値チェック}</td>
     * <td align="center">入力</td>
     * </tr>
     * <tr>
     * <td>会社通貨額合計</td>
     * <td>{@link NumericMinValidator 最小数値チェック}</td>
     * <td align="center">入力</td>
     * </tr>
     * </table>
     * </p>
     */
    @Override
    protected void defineValidateForNormal(GadgetMediatorParams params, boolean tmpFlg) throws KaidenSystemException,
            KaidenApplicationException {
        
        super.defineValidateForNormal(params, tmpFlg);
        
        if (!tmpFlg) {
            // 日当金額
            addValidateDefsMap(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, ALLOWANCE_CD, VALID_ALLOWANCE_AMOUNT_EXISTS,
                    ALLOWANCE_CD, getGadgetDto().searchCriteriaCampany, getGadgetDto().applyAuthUserCd,
                    TRANS_CURRENCY_CD, TRANS_AMOUNT, StringUtil.toString(getGadgetDto().searchCriteriaDate));
        }
        // 取引通貨額
        addValidateDefsMapOnlyInput(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, TRANS_AMOUNT, VALID_NUMERIC_MIN, "0");
        if (!tmpFlg) {
            // 組織コード
            addValidateDefsMapOnlyInput(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, DEPARTMENT_CD, VALID_REQUIRED_ANY,
                    DEPARTMENT_CD, PROJECT_CD);
            // プロジェクトコード
            addValidateDefsMapOnlyInput(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, PROJECT_CD, VALID_REQUIRED_ANY,
                    DEPARTMENT_CD, PROJECT_CD);
        }
        // 会社通貨額
        addValidateDefsMapOnlyInput(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, COMPANY_AMOUNT, VALID_NUMERIC_MIN, "0");
        // 会社通貨額合計
        addValidateDefsMapOnlyInput(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE, COMPANY_AMOUNT_SUM, VALID_NUMERIC_MIN, "0");
    }
    
    /**
     * データ補完処理.
     * <p>
     * {@link AbstractPluginGadgetLogic#preProcess(GadgetMediatorParams) 個別前処理}の最後に実行されます。<br>
     * 下記補完を行います。
     * </p>
     * <ul>
     * <li>会社通貨コード:{@link CurrencyHelper#getCompanyCurrencyCd(String)}を設定</li>
     * <li>会社通貨額:取引通貨額 * 通貨レートの計算結果</li>
     * <li>会社通貨額合計:会社通貨額 * 数量の計算結果</li>
     * </ul>
     * 
     * @param params ガジェットメディエータ処理情報
     */
    @Override
    protected void complementJsonData(GadgetMediatorParams params) {
        List<Map<String, Object>> blockDat = getJsonDataDetailBlock(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE);
        
        String companyCurrencyCd = null;
        
        if (CollectionUtil.isNotEmpty(blockDat)) {
            for (Map<String, Object> j : blockDat) {
                // 会社通貨コード
                if (companyCurrencyCd == null) {
                    companyCurrencyCd = currencyHelper.getCompanyCurrencyCd((String) j.get(SEARCH_CRITERIA_COMPANY));
                }
                j.put(COMPANY_CURRENCY_CD, companyCurrencyCd);
            }
        }
    }
    
    /**
     * グローバルデータ補完処理をセット(ガジェット間通信を行うもの).
     * <p>
     * 以下の補完処理をセットしています。
     * <table border="1">
     * <tr>
     * <th>処理順</th>
     * <th>補完処理</th>
     * </tr>
     * <tr>
     * <td>100</td>
     * <td>{@link #globalComplementJsonData(GadgetMediatorParams)}</td>
     * </tr>
     * <tr>
     * <td>200</td>
     * <td>{@link #calculateJsonData(GadgetMediatorParams)}</td>
     * </tr>
     * </table>
     * </p>
     * 
     * @return グローバルデータ補完処理
     */
    @Override
    protected List<GlobalComplenentJsonDataProcess> setGlobalComplementJsonDataProcess() {
        List<GlobalComplenentJsonDataProcess> methodList = new ArrayList<GlobalComplenentJsonDataProcess>();
        methodList.add(new GlobalComplenentJsonDataProcess(100, "globalComplementJsonData"));
        methodList.add(new GlobalComplenentJsonDataProcess(200, "calculateJsonData"));
        return methodList;
    }
    
    /**
     * グローバルデータ補完処理.
     * <p>
     * 下記計算を行います。
     * </p>
     * <ul>
     * <li>会社通貨額:取引通貨額 * 通貨レートの計算結果</li>
     * <li>会社通貨額合計:会社通貨額 * 数量の計算結果</li>
     * </ul>
     * 
     * @param params ガジェットメディエータ処理情報
     */
    public void calculateJsonData(GadgetMediatorParams params) {
        List<Map<String, Object>> blockDat = getJsonDataDetailBlock(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE);
        
        if (CollectionUtil.isNotEmpty(blockDat)) {
            for (Map<String, Object> j : blockDat) {
                // 会社通貨額
                String companyAmount = calcCompanyAmount((String) j.get(SEARCH_CRITERIA_COMPANY),
                        (String) j.get(TRANS_CURRENCY_CD), (String) j.get(TRANS_AMOUNT), (String) j.get(COMPANY_RATE))
                        .toString();
                j.put(COMPANY_AMOUNT, companyAmount);
                
                // 会社通貨額合計
                j.put(COMPANY_AMOUNT_SUM,
                        calcCompanyAmountSum((String) j.get(SEARCH_CRITERIA_COMPANY), companyAmount,
                                (String) j.get(QUANTITY)));
            }
        }
    }
    
    /**
     * グローバルデータ補完処理.
     * <p>
     * 下記補完を行います。
     * </p>
     * <ul>
     * <li>支払方法コード:ガジェット間連携項目.支払方法コードを設定</li>
     * </ul>
     * 
     * @param params ガジェットメディエータ処理情報
     */
    public void globalComplementJsonData(GadgetMediatorParams params) {
        List<Map<String, Object>> blockDat = getJsonDataDetailBlock(BLOCK_KEY_ALLOWANCE_DETAIL_TABLE);
        
        String gcPayMethodCd = null;
        
        if (CollectionUtil.isNotEmpty(blockDat)) {
            for (Map<String, Object> j : blockDat) {
                // 支払方法コード
                if (gcPayMethodCd == null) {
                    gcPayMethodCd = getGadgetCouplingPayMethod();
                }
                j.put(PAY_METHOD_CD, gcPayMethodCd);
            }
        }
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public Map<String, Object> getClaimExpenceCount(Map<String, Object> params) {
        return super.putClaimExpenceCount(params);
    }
    
    /** {@inheritDoc} */
    @Override
    public Map<String, Object> getClaimCompanyPayAmount(Map<String, Object> params) {
        return super.putClaimCompanyPayAmount(params);
    }
    
    /** {@inheritDoc} */
    @Override
    public Map<String, Object> getClaimTemporaryPayAmount(Map<String, Object> params) {
        return super.putClaimTemporaryPayAmount(params);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public Map<String, Object> getClaimExpenseDetail(Map<String, Object> params) {
        return super.putClaimExpenseDetail(params);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public Map<String, Object> getClaimExpenseAmount(Map<String, Object> params) {
        return super.putClaimExpenseAmount(params);
    }
}

5.1.8.2.6. FieldName

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/feature/conf/kaiden/gadget/allowancedetail/AllowanceDetailFieldName.java
package jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.allowancedetail;

import jp.co.slcs.kaiden2.extension_imw.foundation.conf.ImwEntityCommonFieldNames;

/**
 * 日当明細ガジェット用 フィールド名定義クラス.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public final class AllowanceDetailFieldName extends ImwEntityCommonFieldNames {
    
    /**
     * コンストラクタ.
     */
    protected AllowanceDetailFieldName() {
    }
    
    /** システム案件id. */
    public static final String SYSTEM_MATTER_ID = "systemMatterId";
    /** ユーザデータid. */
    public static final String USER_DATA_ID = "userDataId";
    /** ガジェットクラス. */
    public static final String GADGET_CLASS = "gadgetClass";
    /** ガジェットインスタンス. */
    public static final String GADGET_INSTANCE = "gadgetInstance";
    /** タプルid. */
    public static final String TUPLE_ID = "tupleId";
    /** ガジェットid. */
    public static final String GADGET_ID = "gadgetId";
    /** ガジェットバリエーション. */
    public static final String GADGET_VARIATION = "gadgetVariation";
    /** 行番号. */
    public static final String ROW_NUMBER = "rowNumber";
    /** 日当コード. */
    public static final String ALLOWANCE_CD = "allowanceCd";
    /** 日数. */
    public static final String QUANTITY = "quantity";
    /** 経費区分コード. */
    public static final String EXP_TYPE_CD = "expTypeCd";
    /** 勘定科目コード. */
    public static final String ACCOUNT_CD = "accountCd";
    /** 税区分コード. */
    public static final String TAX_TYPE_CD = "taxTypeCd";
    /** 税率. */
    public static final String TAX_RATE = "taxRate";
    /** 取引通貨コード. */
    public static final String TRANS_CURRENCY_CD = "transCurrencyCd";
    /** 取引通貨額. */
    public static final String TRANS_AMOUNT = "transAmount";
    /** 会社通貨コード. */
    public static final String COMPANY_CURRENCY_CD = "companyCurrencyCd";
    /** 会社通貨換算レート. */
    public static final String COMPANY_RATE = "companyRate";
    /** 会社通貨額. */
    public static final String COMPANY_AMOUNT = "companyAmount";
    /** 会社通貨税抜額. */
    public static final String COMPANY_AMOUNT_EXC_TAX = "companyAmountExcTax";
    /** 会社通貨税額. */
    public static final String COMPANY_AMOUNT_TAX = "companyAmountTax";
    /** 会社通貨額合計. */
    public static final String COMPANY_AMOUNT_SUM = "companyAmountSum";
    /** 支払分類コード. */
    public static final String PAY_TYPE_CD = "payTypeCd";
    /** 支払方法コード. */
    public static final String PAY_METHOD_CD = "payMethodCd";
    /** 支払先コード. */
    public static final String PAYEE_CD = "payeeCd";
    /** 支払先名. */
    public static final String PAYEE_NAME = "payeeName";
    /** 組織セットコード. */
    public static final String DEPARTMENT_SET_CD = "departmentSetCd";
    /** 組織コード. */
    public static final String DEPARTMENT_CD = "departmentCd";
    /** プロジェクトコード. */
    public static final String PROJECT_CD = "projectCd";
    
    /** 取引通貨名称. */
    public static final String TRANS_CURRENCY_NAME = "transCurrencyName";
    /** 会社通貨名称. */
    public static final String COMPANY_CURRENCY_NAME = "companyCurrencyName";
    /** 部門名称. */
    public static final String DEPARTMENT_NAME = "departmentName";
    /** プロジェクト名称. */
    public static final String PROJECT_NAME = "projectName";
    /** 日当名称. */
    public static final String ALLOWANCE_NAME = "allowanceName";
    /** 経費区分名称. */
    public static final String EXP_TYPE_NAME = "expTypeName";
    /** 勘定科目名称. */
    public static final String ACCOUNT_NAME = "accountName";
    /** 税区分名称. */
    public static final String TAX_TYPE_NAME = "taxTypeName";
}

5.1.8.2.7. Manager

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/foundation/manager/allowancedetail/AllowanceDetailManager.java
package jp.co.slcs.kaiden2.product_workflow.foundation.manager.allowancedetail;

import java.util.List;
import jp.co.slcs.kaiden2.extension_imw.foundation.manager.CriteriaForSqlDto;
import jp.co.slcs.kaiden2.extension_imw.foundation.manager.PluginGadgetManager;
import org.seasar.util.beans.util.BeanMap;

/**
 * 日当明細ガジェットマネージャクラスのinterface.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public interface AllowanceDetailManager extends PluginGadgetManager<AllowanceDetailManagerDto> {
    
    /** {@link #selectView(CriteriaForSqlDto) リスト検索(マスタ情報付与)}用SQLファイル名. */
    static final String SELECT_SQLFILE_NM = "selectView.sql";
    
    /** {@link #selectViewForCopy(CriteriaForSqlDto) 申請書コピー用検索}用SQLファイル名. */
    static final String SELECT_SQLFILE_NM_FOR_COPY = "selectViewForCopy.sql";
    
    /** {@link #selectForJournalSourceDtl(CriteriaForSqlDto) 仕訳連携用明細登録データ検索}用SQLファイル名. */
    static final String SELECT_FOR_JOURNAL_SOURCE_DTL = "selectForJournalSourceDtl.sql";
    
    /**
     * 仕訳連携用明細テーブル登録用データ取得.
     * 
     * @param criteria 検索条件
     * @return 検索結果
     */
    public List<BeanMap> selectForJournalSourceDtl(CriteriaForSqlDto criteria);
    
}

5.1.8.2.8. Manager(実装)

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/foundation/manager/allowancedetail/impl/AllowanceDetailManagerImpl.java
package jp.co.slcs.kaiden2.product_workflow.foundation.manager.allowancedetail.impl;

import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import jp.co.slcs.kaiden2.base.foundation.conf.OrderType;
import jp.co.slcs.kaiden2.base.foundation.model.dto.OrderDto;
import jp.co.slcs.kaiden2.base.foundation.util.CollectionUtil;
import jp.co.slcs.kaiden2.extension_imw.foundation.conf.ImwEntityCommonFieldNames;
import jp.co.slcs.kaiden2.extension_imw.foundation.manager.AbstractWfManager;
import jp.co.slcs.kaiden2.extension_imw.foundation.manager.CriteriaForSqlDto;
import jp.co.slcs.kaiden2.product_workflow.foundation.manager.allowancedetail.AllowanceDetailManager;
import jp.co.slcs.kaiden2.product_workflow.foundation.manager.allowancedetail.AllowanceDetailManagerDto;
import jp.co.slcs.kaiden2.product_workflow.foundation.model.service.K30tAllowanceDetailService;
import jp.co.slcs.kaiden2.product_workflow.foundation.model.service.Ka30tAllowanceDetailService;
import org.seasar.util.beans.util.BeanMap;

/**
 * 日当明細テーブルへの各種操作を提供するAPI.
 * 本APIは、主にデータベース操作を行いますが、より業務的な機能を付加した操作を提供します。<br>
 * 検索系機能を使用する際には、{@link CriteriaForSqlDto}クラスをパラメータとして渡し、<br>
 * {@link AllowanceDetailManagerDto}リストが戻り値として返却されます。<br>
 * <br>
 * 更新系機能を使用する際には、{@link AllowanceDetailManagerDto}クラスまたはそのリストをパラメータとして渡し、<br>
 * 処理件数を数値型で返却します。<br>
 * <b>機能一覧(共通)</b>
 * <table border="1">
 * <tr>
 * <td>機能概要</td>
 * <td>メソッド</td>
 * <td>カテゴリ</td>
 * <td>備考</td>
 * </tr>
 * <tr>
 * <td>主キー検索</td>
 * <td>selectByPk</td>
 * <td>主キー検索</td>
 * <td><b>&nbsp;</b></td>
 * </tr>
 * <tr>
 * <td>リスト検索</td>
 * <td>selectList</td>
 * <td>主キー検索</td>
 * <td><b>&nbsp;</b></td>
 * </tr>
 * <tr>
 * <td>表示案件検索</td>
 * <td>selectView</td>
 * <td>リスト検索(マスタ情報付与)</td>
 * <td><b>&nbsp;</b></td>
 * </tr>
 * <tr>
 * <td>コピー案件検索</td>
 * <td>selectViewForCopy</td>
 * <td>リスト検索(マスタ情報付与)</td>
 * <td><b>&nbsp;</b></td>
 * </tr>
 * <tr>
 * <td>過去案件検索</td>
 * <td>selectViewArchive</td>
 * <td>リスト検索(マスタ情報付与)</td>
 * <td><b>&nbsp;</b></td>
 * </tr>
 * <tr>
 * <td>一括挿入</td>
 * <td>entry</td>
 * <td>登録</td>
 * <td><b>&nbsp;</b></td>
 * </tr>
 * <tr>
 * <td>一括更新</td>
 * <td>renew</td>
 * <td>更新</td>
 * <td><b>&nbsp;</b></td>
 * </tr>
 * <tr>
 * <td>削除</td>
 * <td>remove</td>
 * <td>削除</td>
 * <td><b>&nbsp;</b></td>
 * </tr>
 * <tr>
 * <td>一括削除</td>
 * <td>removeAll</td>
 * <td>削除</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>過去案件登録</td>
 * <td>matterArchiveRegister</td>
 * <td>登録</td>
 * <td><b>&nbsp;</b></td>
 * </tr>
 * <tr>
 * <td>過去案件処理時削除</td>
 * <td>matterArchivePostDelete</td>
 * <td>削除</td>
 * <td><b>&nbsp;</b></td>
 * </tr>
 * <tr>
 * <td>過去案件一括削除</td>
 * <td>removeAllArchive</td>
 * <td>削除</td>
 * <td>&nbsp;</td>
 * </tr>
 * </table>
 * <br>
 * <br>
 * <b>機能別DTOクラスのI/Oマトリクス</b>
 * <table border="1">
 * <tr>
 * <td colspan="2" rowspan="2" align="center"><b>DTO</b></td>
 * <td colspan="2" align="center"><b>主キー<br>
 * 検索</b></td>
 * <td colspan="2" align="center"><b>リスト<br>
 * 検索</b></td>
 * <td colspan="2" align="center"><b>表示<br>
 * 案件<br>
 * 検索</b></td>
 * <td colspan="2" align="center"><b>コピー<br>
 * 案件<br>
 * 検索</b></td>
 * <td colspan="2" align="center"><b>過去<br>
 * 案件<br>
 * 検索</b></td>
 * <td colspan="2" align="center"><b>一括<br>
 * 挿入</b></td>
 * <td colspan="2" align="center"><b>一括<br>
 * 更新</b></td>
 * <td colspan="2" align="center"><b>削除</b></td>
 * <td colspan="2" align="center"><b>一括<br>
 * 削除</b></td>
 * <td colspan="2" align="center"><b>過去<br>
 * 案件<br>
 * 登録</b></td>
 * <td colspan="2" align="center"><b>過去<br>
 * 案件<br>
 * 処理時<br>
 * 削除</b></td>
 * <td colspan="2" align="center"><b>過去<br>
 * 案件<br>
 * 一括<br>
 * 削除</b></td>
 * </tr>
 * <tr>
 * <td align="center"><b>I</b></td>
 * <td align="center"><b>O</b></td>
 * <td align="center"><b>I</b></td>
 * <td align="center"><b>O</b></td>
 * <td align="center"><b>I</b></td>
 * <td align="center"><b>O</b></td>
 * <td align="center"><b>I</b></td>
 * <td align="center"><b>O</b></td>
 * <td align="center"><b>I</b></td>
 * <td align="center"><b>O</b></td>
 * <td align="center"><b>I</b></td>
 * <td align="center"><b>O</b></td>
 * <td align="center"><b>I</b></td>
 * <td align="center"><b>O</b></td>
 * <td align="center"><b>I</b></td>
 * <td align="center"><b>O</b></td>
 * <td align="center"><b>I</b></td>
 * <td align="center"><b>O</b></td>
 * <td align="center"><b>I</b></td>
 * <td align="center"><b>O</b></td>
 * <td align="center"><b>I</b></td>
 * <td align="center"><b>O</b></td>
 * <td align="center"><b>I</b></td>
 * <td align="center"><b>O</b></td>
 * </tr>
 * <tr>
 * <td colspan="2">{@link CriteriaForSqlDto}</td>
 * <td align="center">-</td>
 * <td align="center">-</td>
 * <td align="center">-</td>
 * <td align="center">-</td>
 * <td align="center">○</td>
 * <td align="center">-</td>
 * <td align="center">○</td>
 * <td align="center">-</td>
 * <td align="center">○</td>
 * <td align="center">-</td>
 * <td align="center">-</td>
 * <td align="center">-</td>
 * <td align="center">-</td>
 * <td align="center">-</td>
 * <td align="center">-</td>
 * <td align="center">-</td>
 * <td align="center">-</td>
 * <td align="center">-</td>
 * <td align="center">○</td>
 * <td align="center">-</td>
 * <td align="center">-</td>
 * <td align="center">-</td>
 * <td align="center">-</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td colspan="2">{@link AllowanceDetailManagerDto}</td>
 * <td align="center">○</td>
 * <td align="center">○</td>
 * <td align="center">○</td>
 * <td align="center">○</td>
 * <td align="center">-</td>
 * <td align="center">○</td>
 * <td align="center">-</td>
 * <td align="center">○</td>
 * <td align="center">-</td>
 * <td align="center">○</td>
 * <td align="center">○</td>
 * <td align="center">-</td>
 * <td align="center">○</td>
 * <td align="center">-</td>
 * <td align="center">○</td>
 * <td align="center">-</td>
 * <td align="center">○</td>
 * <td align="center">-</td>
 * <td align="center">○</td>
 * <td align="center">-</td>
 * <td align="center">○</td>
 * <td align="center">-</td>
 * <td align="center">○</td>
 * <td align="center">-</td>
 * </tr>
 * </table>
 * <br>
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */

public class AllowanceDetailManagerImpl extends AbstractWfManager<AllowanceDetailManagerDto> implements
        AllowanceDetailManager {
    
    /** K30tAllowanceDetailService. */
    @Resource
    protected K30tAllowanceDetailService k30tAllowanceDetailService;
    
    /** Ka30tAllowanceDetailService. */
    @Resource
    protected Ka30tAllowanceDetailService ka30tAllowanceDetailService;
    
    /**
     * {@inheritDoc}
     */
    @Override
    public AllowanceDetailManagerDto selectByPk(AllowanceDetailManagerDto criteria) {
        return super.selectByPkIgnoreAuthority(k30tAllowanceDetailService, criteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public List<AllowanceDetailManagerDto> selectList(AllowanceDetailManagerDto criteria) {
        return super.selectPkUsedUserDataId(k30tAllowanceDetailService, criteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public List<AllowanceDetailManagerDto> selectView(CriteriaForSqlDto criteria) {
        List<OrderDto> order = new ArrayList<OrderDto>();
        order.add(new OrderDto(OrderType.ASC, ImwEntityCommonFieldNames.ROW_NUMBER));
        return super.selectBySqlForView(k30tAllowanceDetailService, SELECT_SQLFILE_NM, criteria, order);
    }
    
    /** {@inheritDoc} */
    @Override
    public List<AllowanceDetailManagerDto> selectViewForCopy(CriteriaForSqlDto criteria) {
        List<OrderDto> order = new ArrayList<OrderDto>();
        order.add(new OrderDto(OrderType.ASC, ImwEntityCommonFieldNames.ROW_NUMBER));
        return super.selectBySqlForViewForCopy(k30tAllowanceDetailService, SELECT_SQLFILE_NM_FOR_COPY, criteria, order);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public List<AllowanceDetailManagerDto> selectViewArchive(CriteriaForSqlDto criteria) {
        List<OrderDto> order = new ArrayList<OrderDto>();
        order.add(new OrderDto(OrderType.ASC, ImwEntityCommonFieldNames.ROW_NUMBER));
        return super.selectListForViewForArchive(ka30tAllowanceDetailService, criteria, order);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public List<BeanMap> selectForJournalSourceDtl(CriteriaForSqlDto criteria) {
        List<OrderDto> order = new ArrayList<OrderDto>();
        order.add(new OrderDto(OrderType.ASC, ImwEntityCommonFieldNames.ROW_NUMBER));
        
        return super.selectBySqlFileUsedBeanMap(SELECT_FOR_JOURNAL_SOURCE_DTL, criteria, order);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int entry(List<AllowanceDetailManagerDto> dataList) {
        return CollectionUtil.summaryInt(super.insertBatch(k30tAllowanceDetailService, dataList));
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int renew(List<AllowanceDetailManagerDto> dataList) {
        return CollectionUtil.summaryInt(super.renewBatch(k30tAllowanceDetailService, dataList));
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int remove(AllowanceDetailManagerDto data) {
        return super.deleteUsedUserDataId(k30tAllowanceDetailService, data);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int removeAll(AllowanceDetailManagerDto data) {
        return super.deleteNoUsedUserDataId(k30tAllowanceDetailService, data);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int matterArchiveRegister(CriteriaForSqlDto criteria, List<AllowanceDetailManagerDto> dataList) {
        return super.entryArchive(ka30tAllowanceDetailService, criteria, dataList);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int matterArchivePostDelete(CriteriaForSqlDto criteria) {
        return super.deleteNoUsedUserDataId(k30tAllowanceDetailService, criteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int removeAllArchive(CriteriaForSqlDto criteria) {
        return super.deleteNoUsedUserDataIdForArchive(ka30tAllowanceDetailService, criteria);
    }
}

5.1.8.2.9. ManagerDto

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/foundation/manager/allowancedetail/AllowanceDetailManagerDto.java
package jp.co.slcs.kaiden2.product_workflow.foundation.manager.allowancedetail;

import java.math.BigDecimal;
import java.sql.Timestamp;
import jp.co.slcs.kaiden2.base.foundation.model.dto.KaidenDto;

/**
 * 日当明細ガジェットマネージャDTO.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public class AllowanceDetailManagerDto extends KaidenDto {
    
    /** システム案件id. */
    public String systemMatterId;
    /** ユーザデータid. */
    public String userDataId;
    /** ガジェットクラス. */
    public String gadgetClass;
    /** ガジェットインスタンス. */
    public Long gadgetInstance;
    /** タプルid. */
    public Long tupleId;
    /** ガジェットid. */
    public String gadgetId;
    /** ガジェットバリエーション. */
    public String gadgetVariation;
    /** 行番号. */
    public Long rowNumber;
    /** 日当コード. */
    public String allowanceCd;
    /** 日数. */
    public BigDecimal quantity;
    /** 経費区分コード. */
    public String expTypeCd;
    /** 勘定科目コード. */
    public String accountCd;
    /** 税区分コード. */
    public String taxTypeCd;
    /** 税率. */
    public BigDecimal taxRate;
    /** 取引通貨コード. */
    public String transCurrencyCd;
    /** 取引通貨額. */
    public BigDecimal transAmount;
    /** 会社通貨コード. */
    public String companyCurrencyCd;
    /** 会社通貨換算レート. */
    public BigDecimal companyRate;
    /** 会社通貨額. */
    public BigDecimal companyAmount;
    /** 会社通貨税抜額. */
    public BigDecimal companyAmountExcTax;
    /** 会社通貨税額. */
    public BigDecimal companyAmountTax;
    /** 会社通貨額合計. */
    public BigDecimal companyAmountSum;
    /** 支払分類コード. */
    public String payTypeCd;
    /** 支払方法コード. */
    public String payMethodCd;
    /** 支払先コード. */
    public String payeeCd;
    /** 支払先名. */
    public String payeeName;
    /** 組織セットコード. */
    public String departmentSetCd;
    /** 組織コード. */
    public String departmentCd;
    /** プロジェクトコード. */
    public String projectCd;
    /** 予備項目a. */
    public String extensionA;
    /** 予備項目b. */
    public String extensionB;
    /** 予備項目c. */
    public String extensionC;
    /** 予備項目d. */
    public String extensionD;
    /** 予備項目e. */
    public String extensionE;
    /** 予備項目f. */
    public String extensionF;
    /** 予備項目g. */
    public String extensionG;
    /** 予備項目h. */
    public String extensionH;
    /** 予備項目i. */
    public String extensionI;
    /** 予備項目j. */
    public String extensionJ;
    /** 登録日時. */
    public Timestamp entryTs;
    /** 登録者コード. */
    public String entryUserCd;
    /** 更新カウンタ. */
    public Long renewCnt;
    /** 更新日時. */
    public Timestamp renewTs;
    /** 更新者コード. */
    public String renewUserCd;
    
    /** 取引通貨名称. */
    public String transCurrencyName;
    /** 会社通貨名称. */
    public String companyCurrencyName;
    /** 部門名称. */
    public String departmentName;
    /** プロジェクト名称. */
    public String projectName;
    /** 日当名称. */
    public String allowanceName;
    /** 経費区分名称. */
    public String expTypeName;
    /** 勘定科目名称. */
    public String accountName;
    /** 税区分名称. */
    public String taxTypeName;
}

5.1.8.3. Java(S2JDBC)

5.1.8.3.1. Entity

  • Path
    src/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/entity/K30tAllowanceDetail.java
package jp.co.slcs.kaiden2.product_workflow.foundation.model.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import javax.annotation.Generated;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import jp.co.slcs.kaiden2.base.foundation.model.entity.GenerateEntity;

/**
 * 日当明細テーブル.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
@Entity
@Table(name = "k30t_allowance_detail")
@Generated(value = {"S2JDBC-Gen 2.4.46", "org.seasar.extension.jdbc.gen.internal.model.EntityModelFactoryImpl" })
public final class K30tAllowanceDetail extends GenerateEntity implements Serializable {
    
    /** シリアルバージョンUID. */
    private static final long serialVersionUID = 1L;

    /** システム案件id. */
    @Id
    @Column(name = "system_matter_id", columnDefinition = "varchar2(20)", nullable = false, unique = false)
    public String systemMatterId;

    /** ユーザデータid. */
    @Id
    @Column(name = "user_data_id", columnDefinition = "varchar2(20)", nullable = false, unique = false)
    public String userDataId;

    /** ガジェットクラス. */
    @Id
    @Column(name = "gadget_class", columnDefinition = "varchar2(100)", nullable = false, unique = false)
    public String gadgetClass;

    /** ガジェットインスタンス. */
    @Id
    @Column(name = "gadget_instance", columnDefinition = "number(18,0)", nullable = false, unique = false)
    public Long gadgetInstance;

    /** タプルid. */
    @Id
    @Column(name = "tuple_id", columnDefinition = "number(18,0)", nullable = false, unique = false)
    public Long tupleId;

    /** ガジェットid. */
    @Column(name = "gadget_id", columnDefinition = "varchar2(220)", nullable = false, unique = false)
    public String gadgetId;

    /** ガジェットバリエーション. */
    @Column(name = "gadget_variation", columnDefinition = "varchar2(100)", nullable = false, unique = false)
    public String gadgetVariation;

    /** 行番号. */
    @Column(name = "row_number", columnDefinition = "number(18,0)", nullable = false, unique = false)
    public Long rowNumber;

    /** 日当コード. */
    @Column(name = "allowance_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String allowanceCd;

    /** 日数. */
    @Column(name = "quantity", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal quantity;

    /** 経費区分コード. */
    @Column(name = "exp_type_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String expTypeCd;

    /** 勘定科目コード. */
    @Column(name = "account_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String accountCd;

    /** 税区分コード. */
    @Column(name = "tax_type_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String taxTypeCd;

    /** 税率. */
    @Column(name = "tax_rate", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal taxRate;

    /** 取引通貨コード. */
    @Column(name = "trans_currency_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String transCurrencyCd;

    /** 取引通貨額. */
    @Column(name = "trans_amount", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal transAmount;

    /** 会社通貨コード. */
    @Column(name = "company_currency_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String companyCurrencyCd;

    /** 会社通貨換算レート. */
    @Column(name = "company_rate", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal companyRate;

    /** 会社通貨額. */
    @Column(name = "company_amount", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal companyAmount;

    /** 会社通貨税抜額. */
    @Column(name = "company_amount_exc_tax", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal companyAmountExcTax;

    /** 会社通貨税額. */
    @Column(name = "company_amount_tax", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal companyAmountTax;

    /** 会社通貨額合計. */
    @Column(name = "company_amount_sum", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal companyAmountSum;

    /** 支払分類コード. */
    @Column(name = "pay_type_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String payTypeCd;

    /** 支払方法コード. */
    @Column(name = "pay_method_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String payMethodCd;

    /** 支払先コード. */
    @Column(name = "payee_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String payeeCd;

    /** 支払先名. */
    @Column(name = "payee_name", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String payeeName;

    /** 組織セットコード. */
    @Column(name = "department_set_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String departmentSetCd;

    /** 組織コード. */
    @Column(name = "department_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String departmentCd;

    /** プロジェクトコード. */
    @Column(name = "project_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String projectCd;

    /** 予備項目a. */
    @Column(name = "extension_a", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionA;

    /** 予備項目b. */
    @Column(name = "extension_b", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionB;

    /** 予備項目c. */
    @Column(name = "extension_c", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionC;

    /** 予備項目d. */
    @Column(name = "extension_d", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionD;

    /** 予備項目e. */
    @Column(name = "extension_e", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionE;

    /** 予備項目f. */
    @Column(name = "extension_f", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionF;

    /** 予備項目g. */
    @Column(name = "extension_g", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionG;

    /** 予備項目h. */
    @Column(name = "extension_h", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionH;

    /** 予備項目i. */
    @Column(name = "extension_i", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionI;

    /** 予備項目j. */
    @Column(name = "extension_j", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionJ;
}
  • Path
    src/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/entity/Ka30tAllowanceDetail.java
package jp.co.slcs.kaiden2.product_workflow.foundation.model.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import javax.annotation.Generated;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import jp.co.slcs.kaiden2.base.foundation.model.entity.GenerateEntity;

/**
 * (過去案件)日当明細テーブル.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
@Entity
@Table(name = "ka30t_allowance_detail")
@Generated(value = {"S2JDBC-Gen 2.4.46", "org.seasar.extension.jdbc.gen.internal.model.EntityModelFactoryImpl" })
public final class Ka30tAllowanceDetail extends GenerateEntity implements Serializable {
    
    /** シリアルバージョンUID. */
    private static final long serialVersionUID = 1L;

    /** システム案件id. */
    @Id
    @Column(name = "system_matter_id", columnDefinition = "varchar2(20)", nullable = false, unique = false)
    public String systemMatterId;

    /** ユーザデータid. */
    @Id
    @Column(name = "user_data_id", columnDefinition = "varchar2(20)", nullable = false, unique = false)
    public String userDataId;

    /** ガジェットクラス. */
    @Id
    @Column(name = "gadget_class", columnDefinition = "varchar2(100)", nullable = false, unique = false)
    public String gadgetClass;

    /** ガジェットインスタンス. */
    @Id
    @Column(name = "gadget_instance", columnDefinition = "number(18,0)", nullable = false, unique = false)
    public Long gadgetInstance;

    /** タプルid. */
    @Id
    @Column(name = "tuple_id", columnDefinition = "number(18,0)", nullable = false, unique = false)
    public Long tupleId;

    /** ロケールid. */
    @Id
    @Column(name = "locale_id", columnDefinition = "varchar2(50)", nullable = false, unique = false)
    public String localeId;

    /** アーカイブ年月. */
    @Column(name = "archive_month", columnDefinition = "varchar2(6)", nullable = false, unique = false)
    public String archiveMonth;

    /** ガジェットid. */
    @Column(name = "gadget_id", columnDefinition = "varchar2(220)", nullable = false, unique = false)
    public String gadgetId;

    /** ガジェットバリエーション. */
    @Column(name = "gadget_variation", columnDefinition = "varchar2(100)", nullable = false, unique = false)
    public String gadgetVariation;

    /** 行番号. */
    @Column(name = "row_number", columnDefinition = "number(18,0)", nullable = false, unique = false)
    public Long rowNumber;

    /** 日当コード. */
    @Column(name = "allowance_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String allowanceCd;

    /** 日当名称. */
    @Column(name = "allowance_name", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String allowanceName;

    /** 日数. */
    @Column(name = "quantity", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal quantity;

    /** 経費区分コード. */
    @Column(name = "exp_type_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String expTypeCd;

    /** 勘定科目コード. */
    @Column(name = "account_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String accountCd;

    /** 税区分コード. */
    @Column(name = "tax_type_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String taxTypeCd;

    /** 税率. */
    @Column(name = "tax_rate", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal taxRate;

    /** 取引通貨コード. */
    @Column(name = "trans_currency_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String transCurrencyCd;

    /** 取引通貨額. */
    @Column(name = "trans_amount", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal transAmount;

    /** 会社通貨コード. */
    @Column(name = "company_currency_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String companyCurrencyCd;

    /** 会社通貨換算レート. */
    @Column(name = "company_rate", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal companyRate;

    /** 会社通貨額. */
    @Column(name = "company_amount", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal companyAmount;

    /** 会社通貨税抜額. */
    @Column(name = "company_amount_exc_tax", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal companyAmountExcTax;

    /** 会社通貨税額. */
    @Column(name = "company_amount_tax", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal companyAmountTax;

    /** 会社通貨額合計. */
    @Column(name = "company_amount_sum", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal companyAmountSum;

    /** 支払分類コード. */
    @Column(name = "pay_type_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String payTypeCd;

    /** 支払方法コード. */
    @Column(name = "pay_method_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String payMethodCd;

    /** 支払先コード. */
    @Column(name = "payee_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String payeeCd;

    /** 支払先名. */
    @Column(name = "payee_name", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String payeeName;

    /** 組織セットコード. */
    @Column(name = "department_set_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String departmentSetCd;

    /** 組織コード. */
    @Column(name = "department_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String departmentCd;

    /** プロジェクトコード. */
    @Column(name = "project_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false)
    public String projectCd;

    /** 経費区分名称. */
    @Column(name = "exp_type_name", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String expTypeName;

    /** 勘定科目名称. */
    @Column(name = "account_name", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String accountName;

    /** 税区分名. */
    @Column(name = "tax_type_name", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String taxTypeName;

    /** 取引通貨名. */
    @Column(name = "trans_currency_name", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String transCurrencyName;

    /** 会社通貨名. */
    @Column(name = "company_currency_name", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String companyCurrencyName;

    /** 支払分類名称. */
    @Column(name = "pay_type_name", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String payTypeName;

    /** 立替フラグ. */
    @Column(name = "payment_flag", columnDefinition = "varchar2(1)", nullable = true, unique = false)
    public String paymentFlag;

    /** 支払方法名称. */
    @Column(name = "pay_method_name", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String payMethodName;

    /** 組織名. */
    @Column(name = "department_name", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String departmentName;

    /** プロジェクト名. */
    @Column(name = "project_name", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String projectName;

    /** 予備項目a. */
    @Column(name = "extension_a", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionA;

    /** 予備項目b. */
    @Column(name = "extension_b", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionB;

    /** 予備項目c. */
    @Column(name = "extension_c", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionC;

    /** 予備項目d. */
    @Column(name = "extension_d", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionD;

    /** 予備項目e. */
    @Column(name = "extension_e", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionE;

    /** 予備項目f. */
    @Column(name = "extension_f", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionF;

    /** 予備項目g. */
    @Column(name = "extension_g", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionG;

    /** 予備項目h. */
    @Column(name = "extension_h", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionH;

    /** 予備項目i. */
    @Column(name = "extension_i", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionI;

    /** 予備項目j. */
    @Column(name = "extension_j", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionJ;
}

5.1.8.3.2. Names

  • Path
    src/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/entity/K30tAllowanceDetailNames.java
package jp.co.slcs.kaiden2.product_workflow.foundation.model.entity;

import java.math.BigDecimal;
import java.sql.Timestamp;
import javax.annotation.Generated;
import org.seasar.extension.jdbc.name.PropertyName;

/**
 * {@link K30tAllowanceDetail}の名称クラス.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
@Generated(value = {"S2JDBC-Gen 2.4.46", "org.seasar.extension.jdbc.gen.internal.model.NamesModelFactoryImpl" })
public final class K30tAllowanceDetailNames {
    
    /**
     * デフォルトコンストラクタ.
     */
     private K30tAllowanceDetailNames() {
         super();
     }
    
    /**
     * systemMatterIdのプロパティ名を返却.
     * 
     * @return systemMatterIdのプロパティ名
     */
    public static PropertyName<String> systemMatterId() {
        return new PropertyName<String>("systemMatterId");
    }
    
    /**
     * userDataIdのプロパティ名を返却.
     * 
     * @return userDataIdのプロパティ名
     */
    public static PropertyName<String> userDataId() {
        return new PropertyName<String>("userDataId");
    }
    
    /**
     * gadgetClassのプロパティ名を返却.
     * 
     * @return gadgetClassのプロパティ名
     */
    public static PropertyName<String> gadgetClass() {
        return new PropertyName<String>("gadgetClass");
    }
    
    /**
     * gadgetInstanceのプロパティ名を返却.
     * 
     * @return gadgetInstanceのプロパティ名
     */
    public static PropertyName<Long> gadgetInstance() {
        return new PropertyName<Long>("gadgetInstance");
    }
    
    /**
     * tupleIdのプロパティ名を返却.
     * 
     * @return tupleIdのプロパティ名
     */
    public static PropertyName<Long> tupleId() {
        return new PropertyName<Long>("tupleId");
    }
    
    /**
     * gadgetIdのプロパティ名を返却.
     * 
     * @return gadgetIdのプロパティ名
     */
    public static PropertyName<String> gadgetId() {
        return new PropertyName<String>("gadgetId");
    }
    
    /**
     * gadgetVariationのプロパティ名を返却.
     * 
     * @return gadgetVariationのプロパティ名
     */
    public static PropertyName<String> gadgetVariation() {
        return new PropertyName<String>("gadgetVariation");
    }
    
    /**
     * rowNumberのプロパティ名を返却.
     * 
     * @return rowNumberのプロパティ名
     */
    public static PropertyName<Long> rowNumber() {
        return new PropertyName<Long>("rowNumber");
    }
    
    /**
     * allowanceCdのプロパティ名を返却.
     * 
     * @return allowanceCdのプロパティ名
     */
    public static PropertyName<String> allowanceCd() {
        return new PropertyName<String>("allowanceCd");
    }
    
    /**
     * quantityのプロパティ名を返却.
     * 
     * @return quantityのプロパティ名
     */
    public static PropertyName<BigDecimal> quantity() {
        return new PropertyName<BigDecimal>("quantity");
    }
    
    /**
     * expTypeCdのプロパティ名を返却.
     * 
     * @return expTypeCdのプロパティ名
     */
    public static PropertyName<String> expTypeCd() {
        return new PropertyName<String>("expTypeCd");
    }
    
    /**
     * accountCdのプロパティ名を返却.
     * 
     * @return accountCdのプロパティ名
     */
    public static PropertyName<String> accountCd() {
        return new PropertyName<String>("accountCd");
    }
    
    /**
     * taxTypeCdのプロパティ名を返却.
     * 
     * @return taxTypeCdのプロパティ名
     */
    public static PropertyName<String> taxTypeCd() {
        return new PropertyName<String>("taxTypeCd");
    }
    
    /**
     * taxRateのプロパティ名を返却.
     * 
     * @return taxRateのプロパティ名
     */
    public static PropertyName<BigDecimal> taxRate() {
        return new PropertyName<BigDecimal>("taxRate");
    }
    
    /**
     * transCurrencyCdのプロパティ名を返却.
     * 
     * @return transCurrencyCdのプロパティ名
     */
    public static PropertyName<String> transCurrencyCd() {
        return new PropertyName<String>("transCurrencyCd");
    }
    
    /**
     * transAmountのプロパティ名を返却.
     * 
     * @return transAmountのプロパティ名
     */
    public static PropertyName<BigDecimal> transAmount() {
        return new PropertyName<BigDecimal>("transAmount");
    }
    
    /**
     * companyCurrencyCdのプロパティ名を返却.
     * 
     * @return companyCurrencyCdのプロパティ名
     */
    public static PropertyName<String> companyCurrencyCd() {
        return new PropertyName<String>("companyCurrencyCd");
    }
    
    /**
     * companyRateのプロパティ名を返却.
     * 
     * @return companyRateのプロパティ名
     */
    public static PropertyName<BigDecimal> companyRate() {
        return new PropertyName<BigDecimal>("companyRate");
    }
    
    /**
     * companyAmountのプロパティ名を返却.
     * 
     * @return companyAmountのプロパティ名
     */
    public static PropertyName<BigDecimal> companyAmount() {
        return new PropertyName<BigDecimal>("companyAmount");
    }
    
    /**
     * companyAmountExcTaxのプロパティ名を返却.
     * 
     * @return companyAmountExcTaxのプロパティ名
     */
    public static PropertyName<BigDecimal> companyAmountExcTax() {
        return new PropertyName<BigDecimal>("companyAmountExcTax");
    }
    
    /**
     * companyAmountTaxのプロパティ名を返却.
     * 
     * @return companyAmountTaxのプロパティ名
     */
    public static PropertyName<BigDecimal> companyAmountTax() {
        return new PropertyName<BigDecimal>("companyAmountTax");
    }
    
    /**
     * companyAmountSumのプロパティ名を返却.
     * 
     * @return companyAmountSumのプロパティ名
     */
    public static PropertyName<BigDecimal> companyAmountSum() {
        return new PropertyName<BigDecimal>("companyAmountSum");
    }
    
    /**
     * payTypeCdのプロパティ名を返却.
     * 
     * @return payTypeCdのプロパティ名
     */
    public static PropertyName<String> payTypeCd() {
        return new PropertyName<String>("payTypeCd");
    }
    
    /**
     * payMethodCdのプロパティ名を返却.
     * 
     * @return payMethodCdのプロパティ名
     */
    public static PropertyName<String> payMethodCd() {
        return new PropertyName<String>("payMethodCd");
    }
    
    /**
     * payeeCdのプロパティ名を返却.
     * 
     * @return payeeCdのプロパティ名
     */
    public static PropertyName<String> payeeCd() {
        return new PropertyName<String>("payeeCd");
    }
    
    /**
     * payeeNameのプロパティ名を返却.
     * 
     * @return payeeNameのプロパティ名
     */
    public static PropertyName<String> payeeName() {
        return new PropertyName<String>("payeeName");
    }
    
    /**
     * departmentSetCdのプロパティ名を返却.
     * 
     * @return departmentSetCdのプロパティ名
     */
    public static PropertyName<String> departmentSetCd() {
        return new PropertyName<String>("departmentSetCd");
    }
    
    /**
     * departmentCdのプロパティ名を返却.
     * 
     * @return departmentCdのプロパティ名
     */
    public static PropertyName<String> departmentCd() {
        return new PropertyName<String>("departmentCd");
    }
    
    /**
     * projectCdのプロパティ名を返却.
     * 
     * @return projectCdのプロパティ名
     */
    public static PropertyName<String> projectCd() {
        return new PropertyName<String>("projectCd");
    }
    
    /**
     * extensionAのプロパティ名を返却.
     * 
     * @return extensionAのプロパティ名
     */
    public static PropertyName<String> extensionA() {
        return new PropertyName<String>("extensionA");
    }
    
    /**
     * extensionBのプロパティ名を返却.
     * 
     * @return extensionBのプロパティ名
     */
    public static PropertyName<String> extensionB() {
        return new PropertyName<String>("extensionB");
    }
    
    /**
     * extensionCのプロパティ名を返却.
     * 
     * @return extensionCのプロパティ名
     */
    public static PropertyName<String> extensionC() {
        return new PropertyName<String>("extensionC");
    }
    
    /**
     * extensionDのプロパティ名を返却.
     * 
     * @return extensionDのプロパティ名
     */
    public static PropertyName<String> extensionD() {
        return new PropertyName<String>("extensionD");
    }
    
    /**
     * extensionEのプロパティ名を返却.
     * 
     * @return extensionEのプロパティ名
     */
    public static PropertyName<String> extensionE() {
        return new PropertyName<String>("extensionE");
    }
    
    /**
     * extensionFのプロパティ名を返却.
     * 
     * @return extensionFのプロパティ名
     */
    public static PropertyName<String> extensionF() {
        return new PropertyName<String>("extensionF");
    }
    
    /**
     * extensionGのプロパティ名を返却.
     * 
     * @return extensionGのプロパティ名
     */
    public static PropertyName<String> extensionG() {
        return new PropertyName<String>("extensionG");
    }
    
    /**
     * extensionHのプロパティ名を返却.
     * 
     * @return extensionHのプロパティ名
     */
    public static PropertyName<String> extensionH() {
        return new PropertyName<String>("extensionH");
    }
    
    /**
     * extensionIのプロパティ名を返却.
     * 
     * @return extensionIのプロパティ名
     */
    public static PropertyName<String> extensionI() {
        return new PropertyName<String>("extensionI");
    }
    
    /**
     * extensionJのプロパティ名を返却.
     * 
     * @return extensionJのプロパティ名
     */
    public static PropertyName<String> extensionJ() {
        return new PropertyName<String>("extensionJ");
    }
    
    /**
     * entryTsのプロパティ名を返却.
     * 
     * @return entryTsのプロパティ名
     */
    public static PropertyName<Timestamp> entryTs() {
        return new PropertyName<Timestamp>("entryTs");
    }
    
    /**
     * entryUserCdのプロパティ名を返却.
     * 
     * @return entryUserCdのプロパティ名
     */
    public static PropertyName<String> entryUserCd() {
        return new PropertyName<String>("entryUserCd");
    }
    
    /**
     * renewCntのプロパティ名を返却.
     * 
     * @return renewCntのプロパティ名
     */
    public static PropertyName<Long> renewCnt() {
        return new PropertyName<Long>("renewCnt");
    }
    
    /**
     * renewTsのプロパティ名を返却.
     * 
     * @return renewTsのプロパティ名
     */
    public static PropertyName<Timestamp> renewTs() {
        return new PropertyName<Timestamp>("renewTs");
    }
    
    /**
     * renewUserCdのプロパティ名を返却.
     * 
     * @return renewUserCdのプロパティ名
     */
    public static PropertyName<String> renewUserCd() {
        return new PropertyName<String>("renewUserCd");
    }
    
    /**
     * @author S2JDBC-Gen
     */
    public static class _K30tAllowanceDetailNames extends PropertyName<K30tAllowanceDetail> {
        
        /**
         * インスタンスを構築.
         */
        public _K30tAllowanceDetailNames() {
        }
        
        /**
         * インスタンスを構築.
         * 
         * @param name 名前
         */
        public _K30tAllowanceDetailNames(final String name) {
            super(name);
        }
        
        /**
         * インスタンスを構築.
         * 
         * @param parent 親
         * @param name 名前
         */
        public _K30tAllowanceDetailNames(final PropertyName<?> parent, final String name) {
            super(parent, name);
        }
        
        /**
         * systemMatterIdのプロパティ名を返却.
         *
         * @return systemMatterIdのプロパティ名
         */
        public PropertyName<String> systemMatterId() {
            return new PropertyName<String>(this, "systemMatterId");
        }
        
        /**
         * userDataIdのプロパティ名を返却.
         *
         * @return userDataIdのプロパティ名
         */
        public PropertyName<String> userDataId() {
            return new PropertyName<String>(this, "userDataId");
        }
        
        /**
         * gadgetClassのプロパティ名を返却.
         *
         * @return gadgetClassのプロパティ名
         */
        public PropertyName<String> gadgetClass() {
            return new PropertyName<String>(this, "gadgetClass");
        }
        
        /**
         * gadgetInstanceのプロパティ名を返却.
         *
         * @return gadgetInstanceのプロパティ名
         */
        public PropertyName<Long> gadgetInstance() {
            return new PropertyName<Long>(this, "gadgetInstance");
        }
        
        /**
         * tupleIdのプロパティ名を返却.
         *
         * @return tupleIdのプロパティ名
         */
        public PropertyName<Long> tupleId() {
            return new PropertyName<Long>(this, "tupleId");
        }
        
        /**
         * gadgetIdのプロパティ名を返却.
         *
         * @return gadgetIdのプロパティ名
         */
        public PropertyName<String> gadgetId() {
            return new PropertyName<String>(this, "gadgetId");
        }
        
        /**
         * gadgetVariationのプロパティ名を返却.
         *
         * @return gadgetVariationのプロパティ名
         */
        public PropertyName<String> gadgetVariation() {
            return new PropertyName<String>(this, "gadgetVariation");
        }
        
        /**
         * rowNumberのプロパティ名を返却.
         *
         * @return rowNumberのプロパティ名
         */
        public PropertyName<Long> rowNumber() {
            return new PropertyName<Long>(this, "rowNumber");
        }
        
        /**
         * allowanceCdのプロパティ名を返却.
         *
         * @return allowanceCdのプロパティ名
         */
        public PropertyName<String> allowanceCd() {
            return new PropertyName<String>(this, "allowanceCd");
        }
        
        /**
         * quantityのプロパティ名を返却.
         *
         * @return quantityのプロパティ名
         */
        public PropertyName<BigDecimal> quantity() {
            return new PropertyName<BigDecimal>(this, "quantity");
        }
        
        /**
         * expTypeCdのプロパティ名を返却.
         *
         * @return expTypeCdのプロパティ名
         */
        public PropertyName<String> expTypeCd() {
            return new PropertyName<String>(this, "expTypeCd");
        }
        
        /**
         * accountCdのプロパティ名を返却.
         *
         * @return accountCdのプロパティ名
         */
        public PropertyName<String> accountCd() {
            return new PropertyName<String>(this, "accountCd");
        }
        
        /**
         * taxTypeCdのプロパティ名を返却.
         *
         * @return taxTypeCdのプロパティ名
         */
        public PropertyName<String> taxTypeCd() {
            return new PropertyName<String>(this, "taxTypeCd");
        }
        
        /**
         * taxRateのプロパティ名を返却.
         *
         * @return taxRateのプロパティ名
         */
        public PropertyName<BigDecimal> taxRate() {
            return new PropertyName<BigDecimal>(this, "taxRate");
        }
        
        /**
         * transCurrencyCdのプロパティ名を返却.
         *
         * @return transCurrencyCdのプロパティ名
         */
        public PropertyName<String> transCurrencyCd() {
            return new PropertyName<String>(this, "transCurrencyCd");
        }
        
        /**
         * transAmountのプロパティ名を返却.
         *
         * @return transAmountのプロパティ名
         */
        public PropertyName<BigDecimal> transAmount() {
            return new PropertyName<BigDecimal>(this, "transAmount");
        }
        
        /**
         * companyCurrencyCdのプロパティ名を返却.
         *
         * @return companyCurrencyCdのプロパティ名
         */
        public PropertyName<String> companyCurrencyCd() {
            return new PropertyName<String>(this, "companyCurrencyCd");
        }
        
        /**
         * companyRateのプロパティ名を返却.
         *
         * @return companyRateのプロパティ名
         */
        public PropertyName<BigDecimal> companyRate() {
            return new PropertyName<BigDecimal>(this, "companyRate");
        }
        
        /**
         * companyAmountのプロパティ名を返却.
         *
         * @return companyAmountのプロパティ名
         */
        public PropertyName<BigDecimal> companyAmount() {
            return new PropertyName<BigDecimal>(this, "companyAmount");
        }
        
        /**
         * companyAmountExcTaxのプロパティ名を返却.
         *
         * @return companyAmountExcTaxのプロパティ名
         */
        public PropertyName<BigDecimal> companyAmountExcTax() {
            return new PropertyName<BigDecimal>(this, "companyAmountExcTax");
        }
        
        /**
         * companyAmountTaxのプロパティ名を返却.
         *
         * @return companyAmountTaxのプロパティ名
         */
        public PropertyName<BigDecimal> companyAmountTax() {
            return new PropertyName<BigDecimal>(this, "companyAmountTax");
        }
        
        /**
         * companyAmountSumのプロパティ名を返却.
         *
         * @return companyAmountSumのプロパティ名
         */
        public PropertyName<BigDecimal> companyAmountSum() {
            return new PropertyName<BigDecimal>(this, "companyAmountSum");
        }
        
        /**
         * payTypeCdのプロパティ名を返却.
         *
         * @return payTypeCdのプロパティ名
         */
        public PropertyName<String> payTypeCd() {
            return new PropertyName<String>(this, "payTypeCd");
        }
        
        /**
         * payMethodCdのプロパティ名を返却.
         *
         * @return payMethodCdのプロパティ名
         */
        public PropertyName<String> payMethodCd() {
            return new PropertyName<String>(this, "payMethodCd");
        }
        
        /**
         * payeeCdのプロパティ名を返却.
         *
         * @return payeeCdのプロパティ名
         */
        public PropertyName<String> payeeCd() {
            return new PropertyName<String>(this, "payeeCd");
        }
        
        /**
         * payeeNameのプロパティ名を返却.
         *
         * @return payeeNameのプロパティ名
         */
        public PropertyName<String> payeeName() {
            return new PropertyName<String>(this, "payeeName");
        }
        
        /**
         * departmentSetCdのプロパティ名を返却.
         *
         * @return departmentSetCdのプロパティ名
         */
        public PropertyName<String> departmentSetCd() {
            return new PropertyName<String>(this, "departmentSetCd");
        }
        
        /**
         * departmentCdのプロパティ名を返却.
         *
         * @return departmentCdのプロパティ名
         */
        public PropertyName<String> departmentCd() {
            return new PropertyName<String>(this, "departmentCd");
        }
        
        /**
         * projectCdのプロパティ名を返却.
         *
         * @return projectCdのプロパティ名
         */
        public PropertyName<String> projectCd() {
            return new PropertyName<String>(this, "projectCd");
        }
        
        /**
         * extensionAのプロパティ名を返却.
         *
         * @return extensionAのプロパティ名
         */
        public PropertyName<String> extensionA() {
            return new PropertyName<String>(this, "extensionA");
        }
        
        /**
         * extensionBのプロパティ名を返却.
         *
         * @return extensionBのプロパティ名
         */
        public PropertyName<String> extensionB() {
            return new PropertyName<String>(this, "extensionB");
        }
        
        /**
         * extensionCのプロパティ名を返却.
         *
         * @return extensionCのプロパティ名
         */
        public PropertyName<String> extensionC() {
            return new PropertyName<String>(this, "extensionC");
        }
        
        /**
         * extensionDのプロパティ名を返却.
         *
         * @return extensionDのプロパティ名
         */
        public PropertyName<String> extensionD() {
            return new PropertyName<String>(this, "extensionD");
        }
        
        /**
         * extensionEのプロパティ名を返却.
         *
         * @return extensionEのプロパティ名
         */
        public PropertyName<String> extensionE() {
            return new PropertyName<String>(this, "extensionE");
        }
        
        /**
         * extensionFのプロパティ名を返却.
         *
         * @return extensionFのプロパティ名
         */
        public PropertyName<String> extensionF() {
            return new PropertyName<String>(this, "extensionF");
        }
        
        /**
         * extensionGのプロパティ名を返却.
         *
         * @return extensionGのプロパティ名
         */
        public PropertyName<String> extensionG() {
            return new PropertyName<String>(this, "extensionG");
        }
        
        /**
         * extensionHのプロパティ名を返却.
         *
         * @return extensionHのプロパティ名
         */
        public PropertyName<String> extensionH() {
            return new PropertyName<String>(this, "extensionH");
        }
        
        /**
         * extensionIのプロパティ名を返却.
         *
         * @return extensionIのプロパティ名
         */
        public PropertyName<String> extensionI() {
            return new PropertyName<String>(this, "extensionI");
        }
        
        /**
         * extensionJのプロパティ名を返却.
         *
         * @return extensionJのプロパティ名
         */
        public PropertyName<String> extensionJ() {
            return new PropertyName<String>(this, "extensionJ");
        }
        
        /**
         * entryTsのプロパティ名を返却.
         *
         * @return entryTsのプロパティ名
         */
        public PropertyName<Timestamp> entryTs() {
            return new PropertyName<Timestamp>(this, "entryTs");
        }
        
        /**
         * entryUserCdのプロパティ名を返却.
         *
         * @return entryUserCdのプロパティ名
         */
        public PropertyName<String> entryUserCd() {
            return new PropertyName<String>(this, "entryUserCd");
        }
        
        /**
         * renewCntのプロパティ名を返却.
         *
         * @return renewCntのプロパティ名
         */
        public PropertyName<Long> renewCnt() {
            return new PropertyName<Long>(this, "renewCnt");
        }
        
        /**
         * renewTsのプロパティ名を返却.
         *
         * @return renewTsのプロパティ名
         */
        public PropertyName<Timestamp> renewTs() {
            return new PropertyName<Timestamp>(this, "renewTs");
        }
        
        /**
         * renewUserCdのプロパティ名を返却.
         *
         * @return renewUserCdのプロパティ名
         */
        public PropertyName<String> renewUserCd() {
            return new PropertyName<String>(this, "renewUserCd");
        }
    }
}
  • Path
    src/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/entity/Ka30tAllowanceDetailNames.java
package jp.co.slcs.kaiden2.product_workflow.foundation.model.entity;

import java.math.BigDecimal;
import java.sql.Timestamp;
import javax.annotation.Generated;
import org.seasar.extension.jdbc.name.PropertyName;

/**
 * {@link Ka30tAllowanceDetail}の名称クラス.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
@Generated(value = {"S2JDBC-Gen 2.4.46", "org.seasar.extension.jdbc.gen.internal.model.NamesModelFactoryImpl" })
public final class Ka30tAllowanceDetailNames {
    
    /**
     * デフォルトコンストラクタ.
     */
     private Ka30tAllowanceDetailNames() {
         super();
     }
    
    /**
     * systemMatterIdのプロパティ名を返却.
     * 
     * @return systemMatterIdのプロパティ名
     */
    public static PropertyName<String> systemMatterId() {
        return new PropertyName<String>("systemMatterId");
    }
    
    /**
     * userDataIdのプロパティ名を返却.
     * 
     * @return userDataIdのプロパティ名
     */
    public static PropertyName<String> userDataId() {
        return new PropertyName<String>("userDataId");
    }
    
    /**
     * gadgetClassのプロパティ名を返却.
     * 
     * @return gadgetClassのプロパティ名
     */
    public static PropertyName<String> gadgetClass() {
        return new PropertyName<String>("gadgetClass");
    }
    
    /**
     * gadgetInstanceのプロパティ名を返却.
     * 
     * @return gadgetInstanceのプロパティ名
     */
    public static PropertyName<Long> gadgetInstance() {
        return new PropertyName<Long>("gadgetInstance");
    }
    
    /**
     * tupleIdのプロパティ名を返却.
     * 
     * @return tupleIdのプロパティ名
     */
    public static PropertyName<Long> tupleId() {
        return new PropertyName<Long>("tupleId");
    }
    
    /**
     * localeIdのプロパティ名を返却.
     * 
     * @return localeIdのプロパティ名
     */
    public static PropertyName<String> localeId() {
        return new PropertyName<String>("localeId");
    }
    
    /**
     * archiveMonthのプロパティ名を返却.
     * 
     * @return archiveMonthのプロパティ名
     */
    public static PropertyName<String> archiveMonth() {
        return new PropertyName<String>("archiveMonth");
    }
    
    /**
     * gadgetIdのプロパティ名を返却.
     * 
     * @return gadgetIdのプロパティ名
     */
    public static PropertyName<String> gadgetId() {
        return new PropertyName<String>("gadgetId");
    }
    
    /**
     * gadgetVariationのプロパティ名を返却.
     * 
     * @return gadgetVariationのプロパティ名
     */
    public static PropertyName<String> gadgetVariation() {
        return new PropertyName<String>("gadgetVariation");
    }
    
    /**
     * rowNumberのプロパティ名を返却.
     * 
     * @return rowNumberのプロパティ名
     */
    public static PropertyName<Long> rowNumber() {
        return new PropertyName<Long>("rowNumber");
    }
    
    /**
     * allowanceCdのプロパティ名を返却.
     * 
     * @return allowanceCdのプロパティ名
     */
    public static PropertyName<String> allowanceCd() {
        return new PropertyName<String>("allowanceCd");
    }
    
    /**
     * allowanceNameのプロパティ名を返却.
     * 
     * @return allowanceNameのプロパティ名
     */
    public static PropertyName<String> allowanceName() {
        return new PropertyName<String>("allowanceName");
    }
    
    /**
     * quantityのプロパティ名を返却.
     * 
     * @return quantityのプロパティ名
     */
    public static PropertyName<BigDecimal> quantity() {
        return new PropertyName<BigDecimal>("quantity");
    }
    
    /**
     * expTypeCdのプロパティ名を返却.
     * 
     * @return expTypeCdのプロパティ名
     */
    public static PropertyName<String> expTypeCd() {
        return new PropertyName<String>("expTypeCd");
    }
    
    /**
     * accountCdのプロパティ名を返却.
     * 
     * @return accountCdのプロパティ名
     */
    public static PropertyName<String> accountCd() {
        return new PropertyName<String>("accountCd");
    }
    
    /**
     * taxTypeCdのプロパティ名を返却.
     * 
     * @return taxTypeCdのプロパティ名
     */
    public static PropertyName<String> taxTypeCd() {
        return new PropertyName<String>("taxTypeCd");
    }
    
    /**
     * taxRateのプロパティ名を返却.
     * 
     * @return taxRateのプロパティ名
     */
    public static PropertyName<BigDecimal> taxRate() {
        return new PropertyName<BigDecimal>("taxRate");
    }
    
    /**
     * transCurrencyCdのプロパティ名を返却.
     * 
     * @return transCurrencyCdのプロパティ名
     */
    public static PropertyName<String> transCurrencyCd() {
        return new PropertyName<String>("transCurrencyCd");
    }
    
    /**
     * transAmountのプロパティ名を返却.
     * 
     * @return transAmountのプロパティ名
     */
    public static PropertyName<BigDecimal> transAmount() {
        return new PropertyName<BigDecimal>("transAmount");
    }
    
    /**
     * companyCurrencyCdのプロパティ名を返却.
     * 
     * @return companyCurrencyCdのプロパティ名
     */
    public static PropertyName<String> companyCurrencyCd() {
        return new PropertyName<String>("companyCurrencyCd");
    }
    
    /**
     * companyRateのプロパティ名を返却.
     * 
     * @return companyRateのプロパティ名
     */
    public static PropertyName<BigDecimal> companyRate() {
        return new PropertyName<BigDecimal>("companyRate");
    }
    
    /**
     * companyAmountのプロパティ名を返却.
     * 
     * @return companyAmountのプロパティ名
     */
    public static PropertyName<BigDecimal> companyAmount() {
        return new PropertyName<BigDecimal>("companyAmount");
    }
    
    /**
     * companyAmountExcTaxのプロパティ名を返却.
     * 
     * @return companyAmountExcTaxのプロパティ名
     */
    public static PropertyName<BigDecimal> companyAmountExcTax() {
        return new PropertyName<BigDecimal>("companyAmountExcTax");
    }
    
    /**
     * companyAmountTaxのプロパティ名を返却.
     * 
     * @return companyAmountTaxのプロパティ名
     */
    public static PropertyName<BigDecimal> companyAmountTax() {
        return new PropertyName<BigDecimal>("companyAmountTax");
    }
    
    /**
     * companyAmountSumのプロパティ名を返却.
     * 
     * @return companyAmountSumのプロパティ名
     */
    public static PropertyName<BigDecimal> companyAmountSum() {
        return new PropertyName<BigDecimal>("companyAmountSum");
    }
    
    /**
     * payTypeCdのプロパティ名を返却.
     * 
     * @return payTypeCdのプロパティ名
     */
    public static PropertyName<String> payTypeCd() {
        return new PropertyName<String>("payTypeCd");
    }
    
    /**
     * payMethodCdのプロパティ名を返却.
     * 
     * @return payMethodCdのプロパティ名
     */
    public static PropertyName<String> payMethodCd() {
        return new PropertyName<String>("payMethodCd");
    }
    
    /**
     * payeeCdのプロパティ名を返却.
     * 
     * @return payeeCdのプロパティ名
     */
    public static PropertyName<String> payeeCd() {
        return new PropertyName<String>("payeeCd");
    }
    
    /**
     * payeeNameのプロパティ名を返却.
     * 
     * @return payeeNameのプロパティ名
     */
    public static PropertyName<String> payeeName() {
        return new PropertyName<String>("payeeName");
    }
    
    /**
     * departmentSetCdのプロパティ名を返却.
     * 
     * @return departmentSetCdのプロパティ名
     */
    public static PropertyName<String> departmentSetCd() {
        return new PropertyName<String>("departmentSetCd");
    }
    
    /**
     * departmentCdのプロパティ名を返却.
     * 
     * @return departmentCdのプロパティ名
     */
    public static PropertyName<String> departmentCd() {
        return new PropertyName<String>("departmentCd");
    }
    
    /**
     * projectCdのプロパティ名を返却.
     * 
     * @return projectCdのプロパティ名
     */
    public static PropertyName<String> projectCd() {
        return new PropertyName<String>("projectCd");
    }
    
    /**
     * expTypeNameのプロパティ名を返却.
     * 
     * @return expTypeNameのプロパティ名
     */
    public static PropertyName<String> expTypeName() {
        return new PropertyName<String>("expTypeName");
    }
    
    /**
     * accountNameのプロパティ名を返却.
     * 
     * @return accountNameのプロパティ名
     */
    public static PropertyName<String> accountName() {
        return new PropertyName<String>("accountName");
    }
    
    /**
     * taxTypeNameのプロパティ名を返却.
     * 
     * @return taxTypeNameのプロパティ名
     */
    public static PropertyName<String> taxTypeName() {
        return new PropertyName<String>("taxTypeName");
    }
    
    /**
     * transCurrencyNameのプロパティ名を返却.
     * 
     * @return transCurrencyNameのプロパティ名
     */
    public static PropertyName<String> transCurrencyName() {
        return new PropertyName<String>("transCurrencyName");
    }
    
    /**
     * companyCurrencyNameのプロパティ名を返却.
     * 
     * @return companyCurrencyNameのプロパティ名
     */
    public static PropertyName<String> companyCurrencyName() {
        return new PropertyName<String>("companyCurrencyName");
    }
    
    /**
     * payTypeNameのプロパティ名を返却.
     * 
     * @return payTypeNameのプロパティ名
     */
    public static PropertyName<String> payTypeName() {
        return new PropertyName<String>("payTypeName");
    }
    
    /**
     * paymentFlagのプロパティ名を返却.
     * 
     * @return paymentFlagのプロパティ名
     */
    public static PropertyName<String> paymentFlag() {
        return new PropertyName<String>("paymentFlag");
    }
    
    /**
     * payMethodNameのプロパティ名を返却.
     * 
     * @return payMethodNameのプロパティ名
     */
    public static PropertyName<String> payMethodName() {
        return new PropertyName<String>("payMethodName");
    }
    
    /**
     * departmentNameのプロパティ名を返却.
     * 
     * @return departmentNameのプロパティ名
     */
    public static PropertyName<String> departmentName() {
        return new PropertyName<String>("departmentName");
    }
    
    /**
     * projectNameのプロパティ名を返却.
     * 
     * @return projectNameのプロパティ名
     */
    public static PropertyName<String> projectName() {
        return new PropertyName<String>("projectName");
    }
    
    /**
     * extensionAのプロパティ名を返却.
     * 
     * @return extensionAのプロパティ名
     */
    public static PropertyName<String> extensionA() {
        return new PropertyName<String>("extensionA");
    }
    
    /**
     * extensionBのプロパティ名を返却.
     * 
     * @return extensionBのプロパティ名
     */
    public static PropertyName<String> extensionB() {
        return new PropertyName<String>("extensionB");
    }
    
    /**
     * extensionCのプロパティ名を返却.
     * 
     * @return extensionCのプロパティ名
     */
    public static PropertyName<String> extensionC() {
        return new PropertyName<String>("extensionC");
    }
    
    /**
     * extensionDのプロパティ名を返却.
     * 
     * @return extensionDのプロパティ名
     */
    public static PropertyName<String> extensionD() {
        return new PropertyName<String>("extensionD");
    }
    
    /**
     * extensionEのプロパティ名を返却.
     * 
     * @return extensionEのプロパティ名
     */
    public static PropertyName<String> extensionE() {
        return new PropertyName<String>("extensionE");
    }
    
    /**
     * extensionFのプロパティ名を返却.
     * 
     * @return extensionFのプロパティ名
     */
    public static PropertyName<String> extensionF() {
        return new PropertyName<String>("extensionF");
    }
    
    /**
     * extensionGのプロパティ名を返却.
     * 
     * @return extensionGのプロパティ名
     */
    public static PropertyName<String> extensionG() {
        return new PropertyName<String>("extensionG");
    }
    
    /**
     * extensionHのプロパティ名を返却.
     * 
     * @return extensionHのプロパティ名
     */
    public static PropertyName<String> extensionH() {
        return new PropertyName<String>("extensionH");
    }
    
    /**
     * extensionIのプロパティ名を返却.
     * 
     * @return extensionIのプロパティ名
     */
    public static PropertyName<String> extensionI() {
        return new PropertyName<String>("extensionI");
    }
    
    /**
     * extensionJのプロパティ名を返却.
     * 
     * @return extensionJのプロパティ名
     */
    public static PropertyName<String> extensionJ() {
        return new PropertyName<String>("extensionJ");
    }
    
    /**
     * entryTsのプロパティ名を返却.
     * 
     * @return entryTsのプロパティ名
     */
    public static PropertyName<Timestamp> entryTs() {
        return new PropertyName<Timestamp>("entryTs");
    }
    
    /**
     * entryUserCdのプロパティ名を返却.
     * 
     * @return entryUserCdのプロパティ名
     */
    public static PropertyName<String> entryUserCd() {
        return new PropertyName<String>("entryUserCd");
    }
    
    /**
     * renewCntのプロパティ名を返却.
     * 
     * @return renewCntのプロパティ名
     */
    public static PropertyName<Long> renewCnt() {
        return new PropertyName<Long>("renewCnt");
    }
    
    /**
     * renewTsのプロパティ名を返却.
     * 
     * @return renewTsのプロパティ名
     */
    public static PropertyName<Timestamp> renewTs() {
        return new PropertyName<Timestamp>("renewTs");
    }
    
    /**
     * renewUserCdのプロパティ名を返却.
     * 
     * @return renewUserCdのプロパティ名
     */
    public static PropertyName<String> renewUserCd() {
        return new PropertyName<String>("renewUserCd");
    }
    
    /**
     * @author S2JDBC-Gen
     */
    public static class _Ka30tAllowanceDetailNames extends PropertyName<Ka30tAllowanceDetail> {
        
        /**
         * インスタンスを構築.
         */
        public _Ka30tAllowanceDetailNames() {
        }
        
        /**
         * インスタンスを構築.
         * 
         * @param name 名前
         */
        public _Ka30tAllowanceDetailNames(final String name) {
            super(name);
        }
        
        /**
         * インスタンスを構築.
         * 
         * @param parent 親
         * @param name 名前
         */
        public _Ka30tAllowanceDetailNames(final PropertyName<?> parent, final String name) {
            super(parent, name);
        }
        
        /**
         * systemMatterIdのプロパティ名を返却.
         *
         * @return systemMatterIdのプロパティ名
         */
        public PropertyName<String> systemMatterId() {
            return new PropertyName<String>(this, "systemMatterId");
        }
        
        /**
         * userDataIdのプロパティ名を返却.
         *
         * @return userDataIdのプロパティ名
         */
        public PropertyName<String> userDataId() {
            return new PropertyName<String>(this, "userDataId");
        }
        
        /**
         * gadgetClassのプロパティ名を返却.
         *
         * @return gadgetClassのプロパティ名
         */
        public PropertyName<String> gadgetClass() {
            return new PropertyName<String>(this, "gadgetClass");
        }
        
        /**
         * gadgetInstanceのプロパティ名を返却.
         *
         * @return gadgetInstanceのプロパティ名
         */
        public PropertyName<Long> gadgetInstance() {
            return new PropertyName<Long>(this, "gadgetInstance");
        }
        
        /**
         * tupleIdのプロパティ名を返却.
         *
         * @return tupleIdのプロパティ名
         */
        public PropertyName<Long> tupleId() {
            return new PropertyName<Long>(this, "tupleId");
        }
        
        /**
         * localeIdのプロパティ名を返却.
         *
         * @return localeIdのプロパティ名
         */
        public PropertyName<String> localeId() {
            return new PropertyName<String>(this, "localeId");
        }
        
        /**
         * archiveMonthのプロパティ名を返却.
         *
         * @return archiveMonthのプロパティ名
         */
        public PropertyName<String> archiveMonth() {
            return new PropertyName<String>(this, "archiveMonth");
        }
        
        /**
         * gadgetIdのプロパティ名を返却.
         *
         * @return gadgetIdのプロパティ名
         */
        public PropertyName<String> gadgetId() {
            return new PropertyName<String>(this, "gadgetId");
        }
        
        /**
         * gadgetVariationのプロパティ名を返却.
         *
         * @return gadgetVariationのプロパティ名
         */
        public PropertyName<String> gadgetVariation() {
            return new PropertyName<String>(this, "gadgetVariation");
        }
        
        /**
         * rowNumberのプロパティ名を返却.
         *
         * @return rowNumberのプロパティ名
         */
        public PropertyName<Long> rowNumber() {
            return new PropertyName<Long>(this, "rowNumber");
        }
        
        /**
         * allowanceCdのプロパティ名を返却.
         *
         * @return allowanceCdのプロパティ名
         */
        public PropertyName<String> allowanceCd() {
            return new PropertyName<String>(this, "allowanceCd");
        }
        
        /**
         * allowanceNameのプロパティ名を返却.
         *
         * @return allowanceNameのプロパティ名
         */
        public PropertyName<String> allowanceName() {
            return new PropertyName<String>(this, "allowanceName");
        }
        
        /**
         * quantityのプロパティ名を返却.
         *
         * @return quantityのプロパティ名
         */
        public PropertyName<BigDecimal> quantity() {
            return new PropertyName<BigDecimal>(this, "quantity");
        }
        
        /**
         * expTypeCdのプロパティ名を返却.
         *
         * @return expTypeCdのプロパティ名
         */
        public PropertyName<String> expTypeCd() {
            return new PropertyName<String>(this, "expTypeCd");
        }
        
        /**
         * accountCdのプロパティ名を返却.
         *
         * @return accountCdのプロパティ名
         */
        public PropertyName<String> accountCd() {
            return new PropertyName<String>(this, "accountCd");
        }
        
        /**
         * taxTypeCdのプロパティ名を返却.
         *
         * @return taxTypeCdのプロパティ名
         */
        public PropertyName<String> taxTypeCd() {
            return new PropertyName<String>(this, "taxTypeCd");
        }
        
        /**
         * taxRateのプロパティ名を返却.
         *
         * @return taxRateのプロパティ名
         */
        public PropertyName<BigDecimal> taxRate() {
            return new PropertyName<BigDecimal>(this, "taxRate");
        }
        
        /**
         * transCurrencyCdのプロパティ名を返却.
         *
         * @return transCurrencyCdのプロパティ名
         */
        public PropertyName<String> transCurrencyCd() {
            return new PropertyName<String>(this, "transCurrencyCd");
        }
        
        /**
         * transAmountのプロパティ名を返却.
         *
         * @return transAmountのプロパティ名
         */
        public PropertyName<BigDecimal> transAmount() {
            return new PropertyName<BigDecimal>(this, "transAmount");
        }
        
        /**
         * companyCurrencyCdのプロパティ名を返却.
         *
         * @return companyCurrencyCdのプロパティ名
         */
        public PropertyName<String> companyCurrencyCd() {
            return new PropertyName<String>(this, "companyCurrencyCd");
        }
        
        /**
         * companyRateのプロパティ名を返却.
         *
         * @return companyRateのプロパティ名
         */
        public PropertyName<BigDecimal> companyRate() {
            return new PropertyName<BigDecimal>(this, "companyRate");
        }
        
        /**
         * companyAmountのプロパティ名を返却.
         *
         * @return companyAmountのプロパティ名
         */
        public PropertyName<BigDecimal> companyAmount() {
            return new PropertyName<BigDecimal>(this, "companyAmount");
        }
        
        /**
         * companyAmountExcTaxのプロパティ名を返却.
         *
         * @return companyAmountExcTaxのプロパティ名
         */
        public PropertyName<BigDecimal> companyAmountExcTax() {
            return new PropertyName<BigDecimal>(this, "companyAmountExcTax");
        }
        
        /**
         * companyAmountTaxのプロパティ名を返却.
         *
         * @return companyAmountTaxのプロパティ名
         */
        public PropertyName<BigDecimal> companyAmountTax() {
            return new PropertyName<BigDecimal>(this, "companyAmountTax");
        }
        
        /**
         * companyAmountSumのプロパティ名を返却.
         *
         * @return companyAmountSumのプロパティ名
         */
        public PropertyName<BigDecimal> companyAmountSum() {
            return new PropertyName<BigDecimal>(this, "companyAmountSum");
        }
        
        /**
         * payTypeCdのプロパティ名を返却.
         *
         * @return payTypeCdのプロパティ名
         */
        public PropertyName<String> payTypeCd() {
            return new PropertyName<String>(this, "payTypeCd");
        }
        
        /**
         * payMethodCdのプロパティ名を返却.
         *
         * @return payMethodCdのプロパティ名
         */
        public PropertyName<String> payMethodCd() {
            return new PropertyName<String>(this, "payMethodCd");
        }
        
        /**
         * payeeCdのプロパティ名を返却.
         *
         * @return payeeCdのプロパティ名
         */
        public PropertyName<String> payeeCd() {
            return new PropertyName<String>(this, "payeeCd");
        }
        
        /**
         * payeeNameのプロパティ名を返却.
         *
         * @return payeeNameのプロパティ名
         */
        public PropertyName<String> payeeName() {
            return new PropertyName<String>(this, "payeeName");
        }
        
        /**
         * departmentSetCdのプロパティ名を返却.
         *
         * @return departmentSetCdのプロパティ名
         */
        public PropertyName<String> departmentSetCd() {
            return new PropertyName<String>(this, "departmentSetCd");
        }
        
        /**
         * departmentCdのプロパティ名を返却.
         *
         * @return departmentCdのプロパティ名
         */
        public PropertyName<String> departmentCd() {
            return new PropertyName<String>(this, "departmentCd");
        }
        
        /**
         * projectCdのプロパティ名を返却.
         *
         * @return projectCdのプロパティ名
         */
        public PropertyName<String> projectCd() {
            return new PropertyName<String>(this, "projectCd");
        }
        
        /**
         * expTypeNameのプロパティ名を返却.
         *
         * @return expTypeNameのプロパティ名
         */
        public PropertyName<String> expTypeName() {
            return new PropertyName<String>(this, "expTypeName");
        }
        
        /**
         * accountNameのプロパティ名を返却.
         *
         * @return accountNameのプロパティ名
         */
        public PropertyName<String> accountName() {
            return new PropertyName<String>(this, "accountName");
        }
        
        /**
         * taxTypeNameのプロパティ名を返却.
         *
         * @return taxTypeNameのプロパティ名
         */
        public PropertyName<String> taxTypeName() {
            return new PropertyName<String>(this, "taxTypeName");
        }
        
        /**
         * transCurrencyNameのプロパティ名を返却.
         *
         * @return transCurrencyNameのプロパティ名
         */
        public PropertyName<String> transCurrencyName() {
            return new PropertyName<String>(this, "transCurrencyName");
        }
        
        /**
         * companyCurrencyNameのプロパティ名を返却.
         *
         * @return companyCurrencyNameのプロパティ名
         */
        public PropertyName<String> companyCurrencyName() {
            return new PropertyName<String>(this, "companyCurrencyName");
        }
        
        /**
         * payTypeNameのプロパティ名を返却.
         *
         * @return payTypeNameのプロパティ名
         */
        public PropertyName<String> payTypeName() {
            return new PropertyName<String>(this, "payTypeName");
        }
        
        /**
         * paymentFlagのプロパティ名を返却.
         *
         * @return paymentFlagのプロパティ名
         */
        public PropertyName<String> paymentFlag() {
            return new PropertyName<String>(this, "paymentFlag");
        }
        
        /**
         * payMethodNameのプロパティ名を返却.
         *
         * @return payMethodNameのプロパティ名
         */
        public PropertyName<String> payMethodName() {
            return new PropertyName<String>(this, "payMethodName");
        }
        
        /**
         * departmentNameのプロパティ名を返却.
         *
         * @return departmentNameのプロパティ名
         */
        public PropertyName<String> departmentName() {
            return new PropertyName<String>(this, "departmentName");
        }
        
        /**
         * projectNameのプロパティ名を返却.
         *
         * @return projectNameのプロパティ名
         */
        public PropertyName<String> projectName() {
            return new PropertyName<String>(this, "projectName");
        }
        
        /**
         * extensionAのプロパティ名を返却.
         *
         * @return extensionAのプロパティ名
         */
        public PropertyName<String> extensionA() {
            return new PropertyName<String>(this, "extensionA");
        }
        
        /**
         * extensionBのプロパティ名を返却.
         *
         * @return extensionBのプロパティ名
         */
        public PropertyName<String> extensionB() {
            return new PropertyName<String>(this, "extensionB");
        }
        
        /**
         * extensionCのプロパティ名を返却.
         *
         * @return extensionCのプロパティ名
         */
        public PropertyName<String> extensionC() {
            return new PropertyName<String>(this, "extensionC");
        }
        
        /**
         * extensionDのプロパティ名を返却.
         *
         * @return extensionDのプロパティ名
         */
        public PropertyName<String> extensionD() {
            return new PropertyName<String>(this, "extensionD");
        }
        
        /**
         * extensionEのプロパティ名を返却.
         *
         * @return extensionEのプロパティ名
         */
        public PropertyName<String> extensionE() {
            return new PropertyName<String>(this, "extensionE");
        }
        
        /**
         * extensionFのプロパティ名を返却.
         *
         * @return extensionFのプロパティ名
         */
        public PropertyName<String> extensionF() {
            return new PropertyName<String>(this, "extensionF");
        }
        
        /**
         * extensionGのプロパティ名を返却.
         *
         * @return extensionGのプロパティ名
         */
        public PropertyName<String> extensionG() {
            return new PropertyName<String>(this, "extensionG");
        }
        
        /**
         * extensionHのプロパティ名を返却.
         *
         * @return extensionHのプロパティ名
         */
        public PropertyName<String> extensionH() {
            return new PropertyName<String>(this, "extensionH");
        }
        
        /**
         * extensionIのプロパティ名を返却.
         *
         * @return extensionIのプロパティ名
         */
        public PropertyName<String> extensionI() {
            return new PropertyName<String>(this, "extensionI");
        }
        
        /**
         * extensionJのプロパティ名を返却.
         *
         * @return extensionJのプロパティ名
         */
        public PropertyName<String> extensionJ() {
            return new PropertyName<String>(this, "extensionJ");
        }
        
        /**
         * entryTsのプロパティ名を返却.
         *
         * @return entryTsのプロパティ名
         */
        public PropertyName<Timestamp> entryTs() {
            return new PropertyName<Timestamp>(this, "entryTs");
        }
        
        /**
         * entryUserCdのプロパティ名を返却.
         *
         * @return entryUserCdのプロパティ名
         */
        public PropertyName<String> entryUserCd() {
            return new PropertyName<String>(this, "entryUserCd");
        }
        
        /**
         * renewCntのプロパティ名を返却.
         *
         * @return renewCntのプロパティ名
         */
        public PropertyName<Long> renewCnt() {
            return new PropertyName<Long>(this, "renewCnt");
        }
        
        /**
         * renewTsのプロパティ名を返却.
         *
         * @return renewTsのプロパティ名
         */
        public PropertyName<Timestamp> renewTs() {
            return new PropertyName<Timestamp>(this, "renewTs");
        }
        
        /**
         * renewUserCdのプロパティ名を返却.
         *
         * @return renewUserCdのプロパティ名
         */
        public PropertyName<String> renewUserCd() {
            return new PropertyName<String>(this, "renewUserCd");
        }
    }
}

5.1.8.3.3. Service

  • Path
    src/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/K30tAllowanceDetailService.java
package jp.co.slcs.kaiden2.product_workflow.foundation.model.service;

import javax.annotation.Generated;
import jp.co.slcs.kaiden2.base.foundation.model.service.GenerateService;
import jp.co.slcs.kaiden2.product_workflow.foundation.model.entity.K30tAllowanceDetail;

/**
 * {@link K30tAllowanceDetail}のサービスクラス.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
@Generated(value = {"S2JDBC-Gen 2.4.46", "org.seasar.extension.jdbc.gen.internal.model.ServiceModelFactoryImpl" })
public final class K30tAllowanceDetailService extends GenerateService<K30tAllowanceDetail> {
    //
}
  • Path
    src/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/Ka30tAllowanceDetailService.java
package jp.co.slcs.kaiden2.product_workflow.foundation.model.service;

import javax.annotation.Generated;
import jp.co.slcs.kaiden2.base.foundation.model.service.GenerateService;
import jp.co.slcs.kaiden2.product_workflow.foundation.model.entity.Ka30tAllowanceDetail;

/**
 * {@link Ka30tAllowanceDetail}のサービスクラス.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
@Generated(value = {"S2JDBC-Gen 2.4.46", "org.seasar.extension.jdbc.gen.internal.model.ServiceModelFactoryImpl" })
public final class Ka30tAllowanceDetailService extends GenerateService<Ka30tAllowanceDetail> {
    //
}

5.1.8.3.4. Condition

  • Path
    src/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/K30tAllowanceDetailCondition.java
package jp.co.slcs.kaiden2.product_workflow.foundation.model.service;

import java.math.BigDecimal;
import java.sql.Timestamp;
import javax.annotation.Generated;
import org.seasar.extension.jdbc.where.ComplexWhere;
import org.seasar.extension.jdbc.where.condition.AbstractEntityCondition;
import org.seasar.extension.jdbc.where.condition.NotNullableCondition;
import org.seasar.extension.jdbc.where.condition.NotNullableStringCondition;
import org.seasar.extension.jdbc.where.condition.NullableCondition;
import org.seasar.extension.jdbc.where.condition.NullableStringCondition;

/**
 * {@link K30tAllowanceDetail}の条件クラス.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
@Generated(value = {"S2JDBC-Gen 2.4.46", "org.seasar.extension.jdbc.gen.internal.model.ConditionModelFactoryImpl" })
public final class K30tAllowanceDetailCondition extends
        AbstractEntityCondition<K30tAllowanceDetailCondition> {
    
    /**
     * インスタンスを構築.
     */
    public K30tAllowanceDetailCondition() {
    }
    
    /**
     * インスタンスを構築.
     * 
     * @param prefix プレフィックス
     * @param where 検索条件
     */
    public K30tAllowanceDetailCondition(String prefix, ComplexWhere where) {
        super(prefix, where);
    }
    
    /** systemMatterIdの条件. */
    public NotNullableStringCondition<K30tAllowanceDetailCondition> systemMatterId =
        new NotNullableStringCondition<K30tAllowanceDetailCondition>("systemMatterId", this);
    
    /** userDataIdの条件. */
    public NotNullableStringCondition<K30tAllowanceDetailCondition> userDataId =
        new NotNullableStringCondition<K30tAllowanceDetailCondition>("userDataId", this);
    
    /** gadgetClassの条件. */
    public NotNullableStringCondition<K30tAllowanceDetailCondition> gadgetClass =
        new NotNullableStringCondition<K30tAllowanceDetailCondition>("gadgetClass", this);
    
    /** gadgetInstanceの条件. */
    public NotNullableCondition<K30tAllowanceDetailCondition, Long> gadgetInstance =
        new NotNullableCondition<K30tAllowanceDetailCondition, Long>("gadgetInstance", this);
    
    /** tupleIdの条件. */
    public NotNullableCondition<K30tAllowanceDetailCondition, Long> tupleId =
        new NotNullableCondition<K30tAllowanceDetailCondition, Long>("tupleId", this);
    
    /** gadgetIdの条件. */
    public NotNullableStringCondition<K30tAllowanceDetailCondition> gadgetId =
        new NotNullableStringCondition<K30tAllowanceDetailCondition>("gadgetId", this);
    
    /** gadgetVariationの条件. */
    public NotNullableStringCondition<K30tAllowanceDetailCondition> gadgetVariation =
        new NotNullableStringCondition<K30tAllowanceDetailCondition>("gadgetVariation", this);
    
    /** rowNumberの条件. */
    public NotNullableCondition<K30tAllowanceDetailCondition, Long> rowNumber =
        new NotNullableCondition<K30tAllowanceDetailCondition, Long>("rowNumber", this);
    
    /** allowanceCdの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> allowanceCd =
        new NullableStringCondition<K30tAllowanceDetailCondition>("allowanceCd", this);
    
    /** quantityの条件. */
    public NullableCondition<K30tAllowanceDetailCondition, BigDecimal> quantity =
        new NullableCondition<K30tAllowanceDetailCondition, BigDecimal>("quantity", this);
    
    /** expTypeCdの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> expTypeCd =
        new NullableStringCondition<K30tAllowanceDetailCondition>("expTypeCd", this);
    
    /** accountCdの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> accountCd =
        new NullableStringCondition<K30tAllowanceDetailCondition>("accountCd", this);
    
    /** taxTypeCdの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> taxTypeCd =
        new NullableStringCondition<K30tAllowanceDetailCondition>("taxTypeCd", this);
    
    /** taxRateの条件. */
    public NullableCondition<K30tAllowanceDetailCondition, BigDecimal> taxRate =
        new NullableCondition<K30tAllowanceDetailCondition, BigDecimal>("taxRate", this);
    
    /** transCurrencyCdの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> transCurrencyCd =
        new NullableStringCondition<K30tAllowanceDetailCondition>("transCurrencyCd", this);
    
    /** transAmountの条件. */
    public NullableCondition<K30tAllowanceDetailCondition, BigDecimal> transAmount =
        new NullableCondition<K30tAllowanceDetailCondition, BigDecimal>("transAmount", this);
    
    /** companyCurrencyCdの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> companyCurrencyCd =
        new NullableStringCondition<K30tAllowanceDetailCondition>("companyCurrencyCd", this);
    
    /** companyRateの条件. */
    public NullableCondition<K30tAllowanceDetailCondition, BigDecimal> companyRate =
        new NullableCondition<K30tAllowanceDetailCondition, BigDecimal>("companyRate", this);
    
    /** companyAmountの条件. */
    public NullableCondition<K30tAllowanceDetailCondition, BigDecimal> companyAmount =
        new NullableCondition<K30tAllowanceDetailCondition, BigDecimal>("companyAmount", this);
    
    /** companyAmountExcTaxの条件. */
    public NullableCondition<K30tAllowanceDetailCondition, BigDecimal> companyAmountExcTax =
        new NullableCondition<K30tAllowanceDetailCondition, BigDecimal>("companyAmountExcTax", this);
    
    /** companyAmountTaxの条件. */
    public NullableCondition<K30tAllowanceDetailCondition, BigDecimal> companyAmountTax =
        new NullableCondition<K30tAllowanceDetailCondition, BigDecimal>("companyAmountTax", this);
    
    /** companyAmountSumの条件. */
    public NullableCondition<K30tAllowanceDetailCondition, BigDecimal> companyAmountSum =
        new NullableCondition<K30tAllowanceDetailCondition, BigDecimal>("companyAmountSum", this);
    
    /** payTypeCdの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> payTypeCd =
        new NullableStringCondition<K30tAllowanceDetailCondition>("payTypeCd", this);
    
    /** payMethodCdの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> payMethodCd =
        new NullableStringCondition<K30tAllowanceDetailCondition>("payMethodCd", this);
    
    /** payeeCdの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> payeeCd =
        new NullableStringCondition<K30tAllowanceDetailCondition>("payeeCd", this);
    
    /** payeeNameの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> payeeName =
        new NullableStringCondition<K30tAllowanceDetailCondition>("payeeName", this);
    
    /** departmentSetCdの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> departmentSetCd =
        new NullableStringCondition<K30tAllowanceDetailCondition>("departmentSetCd", this);
    
    /** departmentCdの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> departmentCd =
        new NullableStringCondition<K30tAllowanceDetailCondition>("departmentCd", this);
    
    /** projectCdの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> projectCd =
        new NullableStringCondition<K30tAllowanceDetailCondition>("projectCd", this);
    
    /** extensionAの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> extensionA =
        new NullableStringCondition<K30tAllowanceDetailCondition>("extensionA", this);
    
    /** extensionBの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> extensionB =
        new NullableStringCondition<K30tAllowanceDetailCondition>("extensionB", this);
    
    /** extensionCの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> extensionC =
        new NullableStringCondition<K30tAllowanceDetailCondition>("extensionC", this);
    
    /** extensionDの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> extensionD =
        new NullableStringCondition<K30tAllowanceDetailCondition>("extensionD", this);
    
    /** extensionEの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> extensionE =
        new NullableStringCondition<K30tAllowanceDetailCondition>("extensionE", this);
    
    /** extensionFの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> extensionF =
        new NullableStringCondition<K30tAllowanceDetailCondition>("extensionF", this);
    
    /** extensionGの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> extensionG =
        new NullableStringCondition<K30tAllowanceDetailCondition>("extensionG", this);
    
    /** extensionHの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> extensionH =
        new NullableStringCondition<K30tAllowanceDetailCondition>("extensionH", this);
    
    /** extensionIの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> extensionI =
        new NullableStringCondition<K30tAllowanceDetailCondition>("extensionI", this);
    
    /** extensionJの条件. */
    public NullableStringCondition<K30tAllowanceDetailCondition> extensionJ =
        new NullableStringCondition<K30tAllowanceDetailCondition>("extensionJ", this);
    
    /** entryTsの条件. */
    public NotNullableCondition<K30tAllowanceDetailCondition, Timestamp> entryTs =
        new NotNullableCondition<K30tAllowanceDetailCondition, Timestamp>("entryTs", this);
    
    /** entryUserCdの条件. */
    public NotNullableStringCondition<K30tAllowanceDetailCondition> entryUserCd =
        new NotNullableStringCondition<K30tAllowanceDetailCondition>("entryUserCd", this);
    
    /** renewCntの条件. */
    public NotNullableCondition<K30tAllowanceDetailCondition, Long> renewCnt =
        new NotNullableCondition<K30tAllowanceDetailCondition, Long>("renewCnt", this);
    
    /** renewTsの条件. */
    public NotNullableCondition<K30tAllowanceDetailCondition, Timestamp> renewTs =
        new NotNullableCondition<K30tAllowanceDetailCondition, Timestamp>("renewTs", this);
    
    /** renewUserCdの条件. */
    public NotNullableStringCondition<K30tAllowanceDetailCondition> renewUserCd =
        new NotNullableStringCondition<K30tAllowanceDetailCondition>("renewUserCd", this);
}
  • Path
    src/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/Ka30tAllowanceDetailCondition.java
package jp.co.slcs.kaiden2.product_workflow.foundation.model.service;

import java.math.BigDecimal;
import java.sql.Timestamp;
import javax.annotation.Generated;
import org.seasar.extension.jdbc.where.ComplexWhere;
import org.seasar.extension.jdbc.where.condition.AbstractEntityCondition;
import org.seasar.extension.jdbc.where.condition.NotNullableCondition;
import org.seasar.extension.jdbc.where.condition.NotNullableStringCondition;
import org.seasar.extension.jdbc.where.condition.NullableCondition;
import org.seasar.extension.jdbc.where.condition.NullableStringCondition;

/**
 * {@link Ka30tAllowanceDetail}の条件クラス.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
@Generated(value = {"S2JDBC-Gen 2.4.46", "org.seasar.extension.jdbc.gen.internal.model.ConditionModelFactoryImpl" })
public final class Ka30tAllowanceDetailCondition extends
        AbstractEntityCondition<Ka30tAllowanceDetailCondition> {
    
    /**
     * インスタンスを構築.
     */
    public Ka30tAllowanceDetailCondition() {
    }
    
    /**
     * インスタンスを構築.
     * 
     * @param prefix プレフィックス
     * @param where 検索条件
     */
    public Ka30tAllowanceDetailCondition(String prefix, ComplexWhere where) {
        super(prefix, where);
    }
    
    /** systemMatterIdの条件. */
    public NotNullableStringCondition<Ka30tAllowanceDetailCondition> systemMatterId =
        new NotNullableStringCondition<Ka30tAllowanceDetailCondition>("systemMatterId", this);
    
    /** userDataIdの条件. */
    public NotNullableStringCondition<Ka30tAllowanceDetailCondition> userDataId =
        new NotNullableStringCondition<Ka30tAllowanceDetailCondition>("userDataId", this);
    
    /** gadgetClassの条件. */
    public NotNullableStringCondition<Ka30tAllowanceDetailCondition> gadgetClass =
        new NotNullableStringCondition<Ka30tAllowanceDetailCondition>("gadgetClass", this);
    
    /** gadgetInstanceの条件. */
    public NotNullableCondition<Ka30tAllowanceDetailCondition, Long> gadgetInstance =
        new NotNullableCondition<Ka30tAllowanceDetailCondition, Long>("gadgetInstance", this);
    
    /** tupleIdの条件. */
    public NotNullableCondition<Ka30tAllowanceDetailCondition, Long> tupleId =
        new NotNullableCondition<Ka30tAllowanceDetailCondition, Long>("tupleId", this);
    
    /** localeIdの条件. */
    public NotNullableStringCondition<Ka30tAllowanceDetailCondition> localeId =
        new NotNullableStringCondition<Ka30tAllowanceDetailCondition>("localeId", this);
    
    /** archiveMonthの条件. */
    public NotNullableStringCondition<Ka30tAllowanceDetailCondition> archiveMonth =
        new NotNullableStringCondition<Ka30tAllowanceDetailCondition>("archiveMonth", this);
    
    /** gadgetIdの条件. */
    public NotNullableStringCondition<Ka30tAllowanceDetailCondition> gadgetId =
        new NotNullableStringCondition<Ka30tAllowanceDetailCondition>("gadgetId", this);
    
    /** gadgetVariationの条件. */
    public NotNullableStringCondition<Ka30tAllowanceDetailCondition> gadgetVariation =
        new NotNullableStringCondition<Ka30tAllowanceDetailCondition>("gadgetVariation", this);
    
    /** rowNumberの条件. */
    public NotNullableCondition<Ka30tAllowanceDetailCondition, Long> rowNumber =
        new NotNullableCondition<Ka30tAllowanceDetailCondition, Long>("rowNumber", this);
    
    /** allowanceCdの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> allowanceCd =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("allowanceCd", this);
    
    /** allowanceNameの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> allowanceName =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("allowanceName", this);
    
    /** quantityの条件. */
    public NullableCondition<Ka30tAllowanceDetailCondition, BigDecimal> quantity =
        new NullableCondition<Ka30tAllowanceDetailCondition, BigDecimal>("quantity", this);
    
    /** expTypeCdの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> expTypeCd =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("expTypeCd", this);
    
    /** accountCdの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> accountCd =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("accountCd", this);
    
    /** taxTypeCdの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> taxTypeCd =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("taxTypeCd", this);
    
    /** taxRateの条件. */
    public NullableCondition<Ka30tAllowanceDetailCondition, BigDecimal> taxRate =
        new NullableCondition<Ka30tAllowanceDetailCondition, BigDecimal>("taxRate", this);
    
    /** transCurrencyCdの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> transCurrencyCd =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("transCurrencyCd", this);
    
    /** transAmountの条件. */
    public NullableCondition<Ka30tAllowanceDetailCondition, BigDecimal> transAmount =
        new NullableCondition<Ka30tAllowanceDetailCondition, BigDecimal>("transAmount", this);
    
    /** companyCurrencyCdの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> companyCurrencyCd =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("companyCurrencyCd", this);
    
    /** companyRateの条件. */
    public NullableCondition<Ka30tAllowanceDetailCondition, BigDecimal> companyRate =
        new NullableCondition<Ka30tAllowanceDetailCondition, BigDecimal>("companyRate", this);
    
    /** companyAmountの条件. */
    public NullableCondition<Ka30tAllowanceDetailCondition, BigDecimal> companyAmount =
        new NullableCondition<Ka30tAllowanceDetailCondition, BigDecimal>("companyAmount", this);
    
    /** companyAmountExcTaxの条件. */
    public NullableCondition<Ka30tAllowanceDetailCondition, BigDecimal> companyAmountExcTax =
        new NullableCondition<Ka30tAllowanceDetailCondition, BigDecimal>("companyAmountExcTax", this);
    
    /** companyAmountTaxの条件. */
    public NullableCondition<Ka30tAllowanceDetailCondition, BigDecimal> companyAmountTax =
        new NullableCondition<Ka30tAllowanceDetailCondition, BigDecimal>("companyAmountTax", this);
    
    /** companyAmountSumの条件. */
    public NullableCondition<Ka30tAllowanceDetailCondition, BigDecimal> companyAmountSum =
        new NullableCondition<Ka30tAllowanceDetailCondition, BigDecimal>("companyAmountSum", this);
    
    /** payTypeCdの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> payTypeCd =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("payTypeCd", this);
    
    /** payMethodCdの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> payMethodCd =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("payMethodCd", this);
    
    /** payeeCdの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> payeeCd =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("payeeCd", this);
    
    /** payeeNameの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> payeeName =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("payeeName", this);
    
    /** departmentSetCdの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> departmentSetCd =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("departmentSetCd", this);
    
    /** departmentCdの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> departmentCd =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("departmentCd", this);
    
    /** projectCdの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> projectCd =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("projectCd", this);
    
    /** expTypeNameの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> expTypeName =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("expTypeName", this);
    
    /** accountNameの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> accountName =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("accountName", this);
    
    /** taxTypeNameの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> taxTypeName =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("taxTypeName", this);
    
    /** transCurrencyNameの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> transCurrencyName =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("transCurrencyName", this);
    
    /** companyCurrencyNameの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> companyCurrencyName =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("companyCurrencyName", this);
    
    /** payTypeNameの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> payTypeName =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("payTypeName", this);
    
    /** paymentFlagの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> paymentFlag =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("paymentFlag", this);
    
    /** payMethodNameの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> payMethodName =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("payMethodName", this);
    
    /** departmentNameの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> departmentName =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("departmentName", this);
    
    /** projectNameの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> projectName =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("projectName", this);
    
    /** extensionAの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> extensionA =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("extensionA", this);
    
    /** extensionBの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> extensionB =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("extensionB", this);
    
    /** extensionCの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> extensionC =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("extensionC", this);
    
    /** extensionDの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> extensionD =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("extensionD", this);
    
    /** extensionEの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> extensionE =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("extensionE", this);
    
    /** extensionFの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> extensionF =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("extensionF", this);
    
    /** extensionGの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> extensionG =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("extensionG", this);
    
    /** extensionHの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> extensionH =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("extensionH", this);
    
    /** extensionIの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> extensionI =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("extensionI", this);
    
    /** extensionJの条件. */
    public NullableStringCondition<Ka30tAllowanceDetailCondition> extensionJ =
        new NullableStringCondition<Ka30tAllowanceDetailCondition>("extensionJ", this);
    
    /** entryTsの条件. */
    public NotNullableCondition<Ka30tAllowanceDetailCondition, Timestamp> entryTs =
        new NotNullableCondition<Ka30tAllowanceDetailCondition, Timestamp>("entryTs", this);
    
    /** entryUserCdの条件. */
    public NotNullableStringCondition<Ka30tAllowanceDetailCondition> entryUserCd =
        new NotNullableStringCondition<Ka30tAllowanceDetailCondition>("entryUserCd", this);
    
    /** renewCntの条件. */
    public NotNullableCondition<Ka30tAllowanceDetailCondition, Long> renewCnt =
        new NotNullableCondition<Ka30tAllowanceDetailCondition, Long>("renewCnt", this);
    
    /** renewTsの条件. */
    public NotNullableCondition<Ka30tAllowanceDetailCondition, Timestamp> renewTs =
        new NotNullableCondition<Ka30tAllowanceDetailCondition, Timestamp>("renewTs", this);
    
    /** renewUserCdの条件. */
    public NotNullableStringCondition<Ka30tAllowanceDetailCondition> renewUserCd =
        new NotNullableStringCondition<Ka30tAllowanceDetailCondition>("renewUserCd", this);
}

5.1.8.4. SQL

5.1.8.4.1. 検索

  • Path
    src/main/resources/META-INF/sql/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/K30tAllowanceDetailService/selectView.sql
select
    allowance_t.system_matter_id,
    allowance_t.user_data_id,
    allowance_t.gadget_class,
    allowance_t.gadget_instance,
    allowance_t.tuple_id,
    allowance_t.gadget_id,
    allowance_t.gadget_variation,
    allowance_t.row_number,
    allowance_t.allowance_cd,
    allowance_t.quantity,
    allowance_t.exp_type_cd,
    allowance_t.account_cd,
    allowance_t.tax_type_cd,
    allowance_t.tax_rate,
    allowance_t.trans_currency_cd,
    allowance_t.trans_amount,
    allowance_t.company_currency_cd,
    allowance_t.company_rate,
    allowance_t.company_amount,
    allowance_t.company_amount_exc_tax,
    allowance_t.company_amount_tax,
    allowance_t.company_amount_sum,
    allowance_t.pay_type_cd,
    allowance_t.pay_method_cd,
    allowance_t.payee_cd,
    allowance_t.payee_name,
    allowance_t.department_set_cd,
    allowance_t.department_cd,
    allowance_t.project_cd,
    allowance_t.extension_a,
    allowance_t.extension_b,
    allowance_t.extension_c,
    allowance_t.extension_d,
    allowance_t.extension_e,
    allowance_t.extension_f,
    allowance_t.extension_g,
    allowance_t.extension_h,
    allowance_t.extension_i,
    allowance_t.extension_j,
    allowance_t.entry_ts,
    allowance_t.entry_user_cd,
    allowance_t.renew_cnt,
    allowance_t.renew_ts,
    allowance_t.renew_user_cd,
    c1.search_criteria_company,
    cu1.currency_name as trans_currency_name,
    cu2.currency_name as company_currency_name,
    dept1.department_name,
    pro1.project_name,
    allowance_m.allowance_name,
    exp.exp_type_name,
    account.account_name,
    tax.tax_type_name
from
    k30t_allowance_detail allowance_t
    inner join
        k20c_matter_control c1
    on
        allowance_t.system_matter_id = c1.system_matter_id
    and
        allowance_t.user_data_id = c1.user_data_id
    left outer join imm_currency cu1
    on
        c1.search_criteria_company = cu1.company_cd
    and
        allowance_t.trans_currency_cd = cu1.currency_cd
    and
        /*localeId*/'ja' = cu1.locale_id
    and
        cu1.delete_flag = '0'
    left outer join imm_currency cu2
    on
        c1.search_criteria_company = cu2.company_cd
    and
        allowance_t.company_currency_cd = cu2.currency_cd
    and
        /*localeId*/'ja' = cu2.locale_id
    and
        cu2.delete_flag = '0'
    left outer join
        imm_department dept1
    on
        c1.search_criteria_company = dept1.company_cd
    and
        allowance_t.department_set_cd = dept1.department_set_cd
    and
        allowance_t.department_cd = dept1.department_cd
    and
        /*localeId*/'ja' = dept1.locale_id
    and
        c1.search_criteria_date >= dept1.start_date
    and
        c1.search_criteria_date < dept1.end_date
    and
        dept1.delete_flag = '0'
    left outer join
        k30m_project pro1
    on
        c1.search_criteria_company = pro1.company_cd
    and
        allowance_t.project_cd = pro1.project_cd
    and
        c1.search_criteria_date >= pro1.start_date
    and
        c1.search_criteria_date < pro1.end_date
    and
        /*localeId*/'ja' = pro1.locale_id
    and
        pro1.delete_flag = '0'
    left outer join
        k30m_allowance allowance_m
    on
        c1.search_criteria_company = allowance_m.company_cd
    and
        allowance_t.allowance_cd = allowance_m.allowance_cd
    and
        /*localeId*/'ja' = allowance_m.locale_id
    and
        c1.search_criteria_date >= allowance_m.start_date
    and
        c1.search_criteria_date < allowance_m.end_date
    and
        allowance_m.delete_flag = '0'
    left outer join
        k30m_exp_type exp
    on
        c1.search_criteria_company = exp.company_cd
    and
        allowance_t.exp_type_cd = exp.exp_type_cd
    and
        /*localeId*/'ja' = exp.locale_id
    and
        c1.search_criteria_date >= exp.start_date
    and
        c1.search_criteria_date < exp.end_date
    and
        exp.delete_flag = '0'
    left outer join
        k30m_account account
    on
        c1.search_criteria_company = account.company_cd
    and
        allowance_t.account_cd = account.account_cd
    and
        /*localeId*/'ja' = account.locale_id
    and
        c1.search_criteria_date >= account.start_date
    and
        c1.search_criteria_date < account.end_date
    and
        account.delete_flag = '0'
    left outer join
        k30m_tax_type tax
    on
        c1.search_criteria_company = tax.company_cd
    and
        allowance_t.tax_type_cd = tax.tax_type_cd
    and
        /*localeId*/'ja' = tax.locale_id
    and
        c1.search_criteria_date >= tax.start_date
    and
        c1.search_criteria_date < tax.end_date
    and
        tax.delete_flag = '0'
where
    allowance_t.system_matter_id =/*systemMatterId*/''
/*IF userDataId != null*/
and
    allowance_t.user_data_id = /*userDataId*/''
/*END*/
/*IF gadgetClass != null*/
and
    allowance_t.gadget_class = /*gadgetClass*/''
/*END*/
/*IF gadgetInstance != null*/
and
    allowance_t.gadget_instance = /*gadgetInstance*/0
/*END*/
/*IF gadgetId != null*/
and
    allowance_t.gadget_id = /*gadgetId*/''
/*END*/
/*IF searchCriteriaCompany != null*/
and
    c1.search_criteria_company = /*searchCriteriaCompany*/''
/*END*/
/*IF orderBy != null*/
order by /*$orderBy*/system_matter_id
/*END*/

5.1.8.4.2. コピー

  • Path
    src/main/resources/META-INF/sql/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/K30tAllowanceDetailService/selectViewForCopy.sql
select
    allowance_t.system_matter_id,
    allowance_t.user_data_id,
    allowance_t.gadget_class,
    allowance_t.gadget_instance,
    allowance_t.tuple_id,
    allowance_t.gadget_id,
    allowance_t.gadget_variation,
    allowance_t.row_number,
    allowance_t.allowance_cd,
    allowance_t.quantity,
    allowance_t.exp_type_cd,
    allowance_t.account_cd,
    allowance_t.tax_type_cd,
    allowance_t.tax_rate,
    allowance_t.trans_currency_cd,
    allowance_t.trans_amount,
    allowance_t.company_currency_cd,
    allowance_t.company_rate,
    allowance_t.company_amount,
    allowance_t.company_amount_exc_tax,
    allowance_t.company_amount_tax,
    allowance_t.company_amount_sum,
    allowance_t.pay_type_cd,
    allowance_t.pay_method_cd,
    allowance_t.payee_cd,
    allowance_t.payee_name,
    allowance_t.department_set_cd,
    allowance_t.department_cd,
    allowance_t.project_cd,
    allowance_t.extension_a,
    allowance_t.extension_b,
    allowance_t.extension_c,
    allowance_t.extension_d,
    allowance_t.extension_e,
    allowance_t.extension_f,
    allowance_t.extension_g,
    allowance_t.extension_h,
    allowance_t.extension_i,
    allowance_t.extension_j,
    allowance_t.entry_ts,
    allowance_t.entry_user_cd,
    allowance_t.renew_cnt,
    allowance_t.renew_ts,
    allowance_t.renew_user_cd,
    c1.search_criteria_company,
    cu1.currency_name as trans_currency_name,
    cu2.currency_name as company_currency_name,
    dept1.department_name,
    pro1.project_name,
    allowance_m.allowance_name,
    exp.exp_type_name,
    account.account_name,
    tax.tax_type_name
from
    k30t_allowance_detail allowance_t
    inner join
        k20c_matter_control c1
    on
        allowance_t.system_matter_id = c1.system_matter_id
    and
        allowance_t.user_data_id = c1.user_data_id
    left outer join imm_currency cu1
    on
        c1.search_criteria_company = cu1.company_cd
    and
        allowance_t.trans_currency_cd = cu1.currency_cd
    and
        /*localeId*/'ja' = cu1.locale_id
    and
        cu1.delete_flag = '0'
    left outer join imm_currency cu2
    on
        c1.search_criteria_company = cu2.company_cd
    and
        allowance_t.company_currency_cd = cu2.currency_cd
    and
        /*localeId*/'ja' = cu2.locale_id
    and
        cu2.delete_flag = '0'
    left outer join
        imm_department dept1
    on
        c1.search_criteria_company = dept1.company_cd
    and
        allowance_t.department_set_cd = dept1.department_set_cd
    and
        allowance_t.department_cd = dept1.department_cd
    and
        /*localeId*/'ja' = dept1.locale_id
    and
        /*searchCriteriaDate*/'' >= dept1.start_date
    and
        /*searchCriteriaDate*/'' < dept1.end_date
    and
        dept1.delete_flag = '0'
    left outer join
        k30m_project pro1
    on
        c1.search_criteria_company = pro1.company_cd
    and
        allowance_t.project_cd = pro1.project_cd
    and
        /*searchCriteriaDate*/'' >= pro1.start_date
    and
        /*searchCriteriaDate*/'' < pro1.end_date
    and
        /*localeId*/'ja' = pro1.locale_id
    and
        pro1.delete_flag = '0'
    left outer join
        k30m_allowance allowance_m
    on
        c1.search_criteria_company = allowance_m.company_cd
    and
        allowance_t.allowance_cd = allowance_m.allowance_cd
    and
        /*localeId*/'ja' = allowance_m.locale_id
    and
        /*searchCriteriaDate*/'' >= allowance_m.start_date
    and
        /*searchCriteriaDate*/'' < allowance_m.end_date
    and
        allowance_m.delete_flag = '0'
    left outer join
        k30m_exp_type exp
    on
        c1.search_criteria_company = exp.company_cd
    and
        allowance_t.exp_type_cd = exp.exp_type_cd
    and
        /*localeId*/'ja' = exp.locale_id
    and
        /*searchCriteriaDate*/'' >= exp.start_date
    and
        /*searchCriteriaDate*/'' < exp.end_date
    and
        exp.delete_flag = '0'
    left outer join
        k30m_account account
    on
        c1.search_criteria_company = account.company_cd
    and
        allowance_t.account_cd = account.account_cd
    and
        /*localeId*/'ja' = account.locale_id
    and
        /*searchCriteriaDate*/'' >= account.start_date
    and
        /*searchCriteriaDate*/'' < account.end_date
    and
        account.delete_flag = '0'
    left outer join
        k30m_tax_type tax
    on
        c1.search_criteria_company = tax.company_cd
    and
        allowance_t.tax_type_cd = tax.tax_type_cd
    and
        /*localeId*/'ja' = tax.locale_id
    and
        /*searchCriteriaDate*/'' >= tax.start_date
    and
        /*searchCriteriaDate*/'' < tax.end_date
    and
        tax.delete_flag = '0'
where
    allowance_t.system_matter_id =/*systemMatterId*/''
/*IF userDataId != null*/
and
    allowance_t.user_data_id = /*userDataId*/''
/*END*/
/*IF gadgetId != null*/
and
    allowance_t.gadget_id = /*gadgetId*/''
/*END*/
/*IF gadgetClass != null*/
and
    allowance_t.gadget_class = /*gadgetClass*/''
/*END*/
/*IF gadgetInstance != null*/
and
    allowance_t.gadget_instance = /*gadgetInstance*/''
/*END*/
/*IF searchCriteriaCompany != null*/
and
    c1.search_criteria_company = /*searchCriteriaCompany*/''
/*END*/
/*IF orderBy != null*/
order by /*$orderBy*/system_matter_id
/*END*/

5.1.8.4.3. 仕訳連携

  • Path
    src/main/resources/META-INF/sql/jp/co/slcs/kaiden2/product_workflow/foundation/manager/allowancedetail/impl/AllowanceDetailManagerImpl/selectForJournalSourceDtl.sql
select
    ad.system_matter_id       as system_matter_id,
    ad.user_data_id           as user_data_id,
    ad.gadget_class           as gadget_class,
    ad.gadget_instance        as gadget_instance,
    ad.gadget_id              as gadget_id,
    ad.tuple_id               as tuple_id,
    ad.gadget_variation       as gadget_variation,
    i1.contents_id            as contents_id,
    i1.contents_version_id    as contents_version_id,
    '30'                      as journal_data_type_cd,
    ad.row_number             as row_number,
    ad.exp_type_cd            as exp_type_cd,
    ad.account_cd             as account_cd,
    ad.tax_type_cd            as tax_type_cd,
    tax.tax_rate              as tax_rate,
    ad.quantity               as quantity,
    ad.trans_currency_cd      as trans_currency_cd,
    ad.trans_amount           as trans_amount,
    ad.company_currency_cd    as company_currency_cd,
    ad.company_rate           as company_rate,
    ad.company_amount         as company_amount,
    ad.company_amount_exc_tax as company_amount_exc_tax,
    ad.company_amount_tax     as company_amount_tax,
    ad.company_amount_sum     as company_amount_sum,
    ad.payee_cd               as customer_cd,
    ad.payee_name             as customer_name,
    ad.department_set_cd      as department_set_cd,
    ad.department_cd          as department_cd,
    ad.project_cd             as project_cd,
    ad.pay_method_cd          as pay_method_cd,
    at.allowance_name         as detail_summary1,
    ad.extension_a            as detail_extension_a,
    ad.extension_b            as detail_extension_b,
    ad.extension_c            as detail_extension_c,
    ad.extension_d            as detail_extension_d,
    ad.extension_e            as detail_extension_e,
    ad.extension_f            as detail_extension_f,
    ad.extension_g            as detail_extension_g,
    ad.extension_h            as detail_extension_h,
    ad.extension_i            as detail_extension_i,
    ad.extension_j            as detail_extension_j,
    '0'                       as journal_status
from
    k30t_allowance_detail ad
    inner join
        k20c_matter_info i1
    on
        ad.system_matter_id = i1.system_matter_id
    inner join
        k20c_matter_control c1
    on
        ad.system_matter_id = c1.system_matter_id
    and
        ad.user_data_id = c1.user_data_id
    left outer join
        k30m_tax_type tax
    on
        c1.search_criteria_company = tax.company_cd
    and
        ad.tax_type_cd = tax.tax_type_cd
    and
        i1.locale_id_apply = tax.locale_id
    and
        c1.search_criteria_date >= tax.start_date
    and
        c1.search_criteria_date < tax.end_date
    and
        tax.delete_flag = '0'
    left outer join
        k30m_allowance at
    on
        c1.search_criteria_company = at.company_cd
    and
        ad.allowance_cd = at.allowance_cd
    and
        i1.locale_id_apply = at.locale_id
    and
        c1.search_criteria_date >= at.start_date
    and
        c1.search_criteria_date < at.end_date
    and
        at.delete_flag = '0'
where
    ad.system_matter_id =/*systemMatterId*/''
/*IF userDataId != null*/
and
    ad.user_data_id = /*userDataId*/''
/*END*/
/*IF gadgetClass != null*/
and
    ad.gadget_class = /*gadgetClass*/''
/*END*/
/*IF gadgetInstance != null*/
and
    ad.gadget_instance = /*gadgetInstance*/''
/*END*/
/*IF gadgetId != null*/
and
    ad.gadget_id = /*gadgetId*/''
/*END*/
/*IF searchCriteriaCompany != null*/
and
    c1.search_criteria_company = /*searchCriteriaCompany*/''
/*END*/
/*IF orderBy != null*/
order by /*$orderBy*/ad.row_number
/*END*/

5.1.8.5. JSP

5.1.8.5.1. PC

  • Path
    src/main/webapp/WEB-INF/view/kaiden2/product_workflow/gadget/allowanceDetail/allowanceDetailV02.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/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="jp.co.slcs.kaiden2.base.foundation.util.PropertyJspUtil" %>
<%@ page import="jp.co.slcs.kaiden2.base.foundation.conf.BaseProp" %>
<%@ page import="jp.co.slcs.kaiden2.product_workflow.foundation.conf.ProductWorkflowProp" %>

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

<%-- allowanceDetail v02 --%>
<c:set var="gadgetClass">allowanceDetail</c:set> 
<c:set var="gadgetVariation">v02</c:set>
<c:set var="gadgetInstance">${param.gadget_instance}</c:set>
<c:set var="gadgetId">${gadgetClass}_${gadgetVariation}_${gadgetInstance}</c:set>
<c:set var="accessUrl">kaiden/gadget/allowanceDetailV02</c:set>
<c:set var="gadgetBlockId">allowanceDetailTable</c:set>
<c:set var="gadgetBlockHeaderId">allowanceDetailHeader</c:set>
<c:set var="tmtableId">allowanceDetailTable</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 var="applyAuthUserCode">${param.applyAuthUserCode}</c:set>

<c:set var="gadget" value="${appDto.gadgets[gadgetId]}" />
<c:set var="detail" value="${gadget.blocks['allowanceDetailTable']}" />

<%-- tmtable --%>
<c:set var="allowAddDetail" value="${'1' == detail.allowAddFlag}" />
<c:set var="allowDelDetail" value="${'1' == detail.allowDelFlag}" />

<%-- Message --%>
<c:set var="msgRateReget"><%=PropertyJspUtil.getMessage(ProductWorkflowProp.M.W0008) %></c:set>
<c:set var="msgAllowanceReget"><%=PropertyJspUtil.getMessage(ProductWorkflowProp.M.W0009) %></c:set>
<c:set var="messageSearchWarning"><%=PropertyJspUtil.getMessage(ProductWorkflowProp.M.W0010)%></c:set>
<c:set var="messageSearchWarningSub"><%=PropertyJspUtil.getMessage(ProductWorkflowProp.M.W0011)%></c:set>

<%-- Surface --%>
<c:set var="surfaceChapterTitle">${gadget.surfaces["chapterTitle"]}</c:set>
<c:set var="surfaceAllowanceAmountReget">${gadget.surfaces["allowanceAmountReget"]}</c:set>
<c:set var="surfaceRateReget">${gadget.surfaces["rateReget"]}</c:set>
<c:set var="surfaceAllowance">${gadget.surfaces["allowance"]}</c:set>
<c:set var="surfaceTransAmount">${gadget.surfaces["amount"]}</c:set>
<c:set var="surfaceTransCurrency">${gadget.surfaces["amount_transCurrency"]}</c:set>
<c:set var="surfaceCompanyRate">${gadget.surfaces["amount_transRate"]}</c:set>
<c:set var="surfaceCompanyAmount">${gadget.surfaces["amount_companyAmount"]}</c:set>
<c:set var="surfaceQuantity">${gadget.surfaces["quantity"]}</c:set>
<c:set var="surfaceCompanyAmouontSum">${gadget.surfaces["companyAmountSum"]}</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="surfaceDepartment">${gadget.surfaces["department"]}</c:set>
<c:set var="surfaceProject">${gadget.surfaces["project"]}</c:set>

<%-- Mode --%>
<c:set var="modeAllowanceAmountReget">${detail.fields["allowanceCd"].inputType}</c:set>
<c:set var="modeRateReget">${detail.fields["allowanceCd"].inputType}</c:set>
<c:set var="modeAllowance">${detail.fields["allowanceCd"].inputType}</c:set>
<%-- <c:set var="modeTransAmount">${detail.fields["transAmount"].inputType}</c:set> --%>
<%-- <c:set var="modeTransCurrency">${detail.fields["transCurrencyCd"].inputType}</c:set> --%>
<%-- <c:set var="modeCompanyRate">${detail.fields["companyRate"].inputType}</c:set> --%>
<%-- <c:set var="modeCompanyAmount">${detail.fields["companyAmount"].inputType}</c:set> --%>
<c:set var="modeTransAmount">${detail.fields["allowanceCd"].inputType}</c:set>
<c:set var="modeTransCurrency">${detail.fields["allowanceCd"].inputType}</c:set>
<c:set var="modeCompanyRate">${detail.fields["allowanceCd"].inputType}</c:set>
<c:set var="modeCompanyAmount">${detail.fields["allowanceCd"].inputType}</c:set>
<c:set var="modeQuantity">${detail.fields["quantity"].inputType}</c:set>
<%-- <c:set var="modeCompanyAmountSum">${detail.fields["companyAmountSum"].inputType}</c:set> --%>
<c:set var="modeCompanyAmountSum">${modeTransAmount == modeQuantity ? modeTransAmount : "0"}</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="modeDepartmentCd">${detail.fields["departmentCd"].inputType}</c:set>
<c:set var="modeProjectCd">${detail.fields["projectCd"].inputType}</c:set>

<%-- RequiredMark --%>
<c:set var="reqAllowance" >${detail.fields["allowanceCd"].requiredFlag}</c:set>
<c:set var="reqTransAmount" >${detail.fields["transAmount"].requiredFlag}</c:set>
<c:set var="reqTransCurrency" >${detail.fields["transCurrencyCd"].requiredFlag}</c:set>
<c:set var="reqCompanyRate" >${detail.fields["companyRate"].requiredFlag}</c:set>
<c:set var="reqCompanyAmount" >${detail.fields["companyAmount"].requiredFlag}</c:set>
<c:set var="reqQuantity" >${detail.fields["quantity"].requiredFlag}</c:set>
<c:set var="reqCompanyAmountSum" >${detail.fields["companyAmountSum"].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="reqDepartmentCd" >${detail.fields["departmentCd"].requiredFlag}</c:set>
<c:set var="reqProjectCd" >${detail.fields["projectCd"].requiredFlag}</c:set>

<%-- Validator --%>
<c:set var="validAllowanceCd_def">{k_allowanceExists:['allowanceCd', 'searchCriteriaCompany', 'searchCriteriaDate', 'false'], k_allowanceAmount:['allowanceCd', 'searchCriteriaCompany', '${param.applyAuthUserCode}', 'transCurrencyCd', 'transAmount', 'searchCriteriaDate']}</c:set>
<c:set var="validAllowanceCd_apply">{${"true" == reqAllowance ? "k_required:['']" : ""}}</c:set>
<c:set var="validAllowanceCd_tempsave"></c:set>
<c:set var="validAllowanceCd_reapply">{${"true" == reqAllowance ? "k_required:['']" : ""}}</c:set>
<c:set var="validAllowanceCd_process">{${"true" == reqAllowance ? "k_required:['']" : ""}}</c:set>

<c:set var="validQuantity_def">{k_numeric:[''], k_numericRange:['1','999']}</c:set>
<c:set var="validQuantity_apply">{${"true" == reqQuantity ? "k_required:['']" : ""}}</c:set>
<c:set var="validQuantity_tempsave"></c:set>
<c:set var="validQuantity_reapply">{${"true" == reqQuantity ? "k_required:['']" : ""}}</c:set>
<c:set var="validQuantity_process">{${"true" == reqQuantity ? "k_required:['']" : ""}}</c:set>

<c:set var="validCompanyAmountSum_def">{k_currencyAmnt:['', 'searchCriteriaCompany'], k_numericMin:['0']}</c:set>
<c:set var="validCompanyAmountSum_apply">{${"true" == reqCompanyAmountSum ? "k_required:['']" : ""}}</c:set>
<c:set var="validCompanyAmountSum_tempsave"></c:set>
<c:set var="validCompanyAmountSum_reapply">{${"true" == reqCompanyAmountSum ? "k_required:['']" : ""}}</c:set>
<c:set var="validCompanyAmountSum_process">{${"true" == reqCompanyAmountSum ? "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="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>

<k:gadgetContainer gadgetClass="${gadgetClass}"
                   gadgetVariation="${gadgetVariation}"
                   gadgetInstance="${gadgetInstance}"
                   gadgetTitle="${surfaceChapterTitle}"
                   gadgetId="${gadgetId}"
                   hideGadgetTitle="true"
                   style="width:850px;overflow:hidden;">
  <k:blockContainer id="${gadgetBlockHeaderId}">
    <div class="imui-chapter-title">
      <h2 style="display:inline-block;width:50%">
        <k:surface
          name="chapterTitle"
          surfaceKey="${surfaceChapterTitle}"
        />
      </h2>
      <k:a 
        class="kaiden-ui-icon-refresh-gray16_nosize"
        name="allowanceAmountReget"
        mode="${modeTransAmount}"
        text="${surfaceAllowanceAmountReget}"
        style="vertical-align:middle;float:right;padding-left:20px;font-size:1.2rem;margin-left:1em;"
      />
      <k:a 
        class="kaiden-ui-icon-refresh-gray16_nosize"
        name="rateReget"
        mode="${modeRateReget}"
        text="${surfaceRateReget}"
        style="vertical-align:middle;float:right;padding-left:20px;font-size:1.2rem"
      />
    </div>
  </k:blockContainer>
  <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:40px;overflow:hidden">
         <col style="width:235px;overflow:hidden">
         <col style="width:185px;overflow:hidden">
         <col style="width:185px;overflow:hidden">
         <col style="width:60px;overflow:hidden">
         <col style="width:125px;overflow:hidden">
      </colgroup>
      <thead>
        <tr>
          <td rowspan="2" style="vertical-align:middle;">
            <k:tmtableOperationPanel position="header"
              allowAdd="${allowAddDetail}"
              allowDel="${allowDelDetail}"
              />
          </td>
          <th>
            <k:surface
              name="allowanceSurface"
              surfaceKey="${surfaceAllowance}"
              requiredMark="${reqAllowance}"
            />
          </th>
          <th colspan="2">
            <k:surface
              name="transAmountSurface"
              surfaceKey="${surfaceTransAmount}"
              requiredMark="${reqTransAmount}"
              /></th>
          <th>
            <k:surface
              name="quantitySurface"
              surfaceKey="${surfaceQuantity}"
              requiredMark="${reqQuantity}"
            />
          </th>
          <th>
            <k:surface
              name="companyAmountSumSurface"
              surfaceKey="${surfaceCompanyAmouontSum}"
              requiredMark="${reqCompanyAmountSum}"
            />
          </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}"
              requiredMark="${reqDepartmentCd}"
            />
          </th>
          <th colspan="2">
            <k:surface
              name="projectSurface"
              surfaceKey="${surfaceProject}"
              requiredMark="${reqProjectCd}"
            />
          </th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td rowspan="2">
            <k:tmtableOperationPanel position="detail"
              allowAdd="${allowAddDetail}"
              allowDel="${allowDelDetail}"
              name="rowNumber"
            />
          </td>
          <td>
            <k:hidden
              name="allowanceCd"
              mode="0"
            />
            <kmsw:allowance
              name="allowanceName"
              mode="${modeAllowance}"
              imeMode="on"
              surfaceKey="${surfaceAllowance}"
              resultValue="allowanceName"
              resultChain="{'transAmount':'amount','allowanceCd':'allowanceCd','transCurrencyCd':'currencyCd'}"
              primaryTarget="allowanceCd"
              style="width:150px;"
              allowanceCriteriaUserCd="${param.applyAuthUserCode}"
              searchCriteriaCompany="searchCriteriaCompany"
              searchCriteriaDate="searchCriteriaDate"
              searchCriteriaAllowanceCd="allowanceCd"
              validationDefault="${validAllowanceCd_def}"
              validationApply="${validAllowanceCd_apply}"
              validationTempsave="${validAllowanceCd_tempsave}"
              validationReapply="${validAllowanceCd_reapply}"
              validationProcess="${validAllowanceCd_process}"
            />
          </td>
          <td colspan="2">
            <jsp:include page="/WEB-INF/view/kaiden2/product_workflow/foundation/genericCurrencyInputParts.jsp">
              <jsp:param name="gadgetId" value="${gadgetId}" />
              <jsp:param name="tmtableId" value="${tmtableId}" />
              <jsp:param name="searchCriteriaCompany" value="${searchCriteriaCompany}" />
              <jsp:param name="companyCurrencyCd" value="${companyCurrencyCd}" />
              <%-- 金額 --%>
              <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:param name="readonlyTransAmount" value="true" />
              <%-- 通貨 --%>
              <jsp:param name="modeTransCryCd" value="${modeTransCurrency}" />
              <jsp:param name="surfaceTransCryCd" value="${surfaceTransCurrency}" />
              <jsp:param name="requiredTransCryCdApply" value="${reqTransCurrency}" />
              <jsp:param name="requiredTransCryCdReapply" value="${reqTransCurrency}" />
              <jsp:param name="requiredTransCryCdProcess" value="${reqTransCurrency}" />
              <jsp:param name="readonlyTransCryCd" value="true" />
              <%-- レート --%>
              <jsp:param name="modeCmpRate" value="${modeCompanyRate}" />
              <jsp:param name="surfaceCmpRate" value="${surfaceCompanyRate}" />
              <jsp:param name="requiredCmpRateApply" value="${reqTransCurrency}" />
              <jsp:param name="requiredCmpRateReapply" value="${reqTransCurrency}" />
              <jsp:param name="requiredCmpRateProcess" value="${reqTransCurrency}" />
              <%-- 換算額 --%>
              <jsp:param name="modeCmpAmnt" value="${modeCompanyAmount}" />
              <jsp:param name="surfaceCmpAmnt" value="${surfaceCompanyAmount}" />
              <jsp:param name="requiredCmpAmntApply" value="${reqCompanyAmount}" />
              <jsp:param name="requiredCmpAmntReapply" value="${reqCompanyAmount}" />
              <jsp:param name="requiredCmpAmntProcess" value="${reqCompanyAmount}" />
            </jsp:include>
          </td>
          <td>
            <k:numericText
              name="quantity"
              mode="${modeQuantity}"
              surfaceKey="${surfaceQuantity}"
              style="width:40px;"
              maxlength="3"
              validationDefault="${validQuantity_def}"
              validationApply="${validQuantity_apply}"
              validationTempsave="${validQuantity_tempsave}"
              validationReapply="${validQuantity_reapply}"
              validationProcess="${validQuantity_process}"
            />
          </td>
          <td style="text-align:right">
            <k:numericText
              name="companyAmountSum"
              mode="${modeCompanyAmountSum}"
              formated="view"
              surfaceKey="${surfaceCompanyAmouontSum}"
              class="kaiden-ui-cmpAmnt"
              style="width:100px;"
              tabindex="-1"
              readonly="readonly"
              validationDefault="${validCompanyAmountSum_def}"
              validationApply="${validCompanyAmountSum_apply}"
              validationTempsave="${validCompanyAmountSum_tempsave}"
              validationReapply="${validCompanyAmountSum_reapply}"
              validationProcess="${validCompanyAmountSum_process}"
            />
          </td>
        </tr>
        <tr>
          <td colspan="2">
            <k:hidden
              name="expTypeCd"
              mode="0"
            />
            <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 colspan="2">
            <k:hidden
              name="projectCd"
              mode="0"
              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>
      </tbody>
    </k:tmtable>
  </form>
</k:gadgetContainer>
<script type="text/javascript">
jQuery(function($){
  var eventMan = KAIDEN.getGadget("${gadgetId}").eventManager
  , blockAccessor = KAIDEN.getGadget("${gadgetId}").blockAccessors["${gadgetBlockHeaderId}"]
  , tmt = KAIDEN.getGadget("${gadgetId}").tmtables["${tmtableId}"]
  , 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);
    
    //取引通貨額、通貨を編集不可
    tma("transAmount", tupleId).readonly().elem().attr("tabindex", "-1");
    if (tma("transCurrencyCd", tupleId).elem(true).length > 0) {
      tma("transCurrencyCd", tupleId).disabled();
    }
    
  });
  
  //明細行:行挿入(データ設定後)
  tmt.addEventPostNewRow(function(tupleId, tma, data) {
    //マスタ検索部品の整合性確認.
    KAIDEN.MasterSearch.refresh(tma("allowanceName", tupleId).elem().get(0));
    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));
    
    //レートボックスのreadonly化
    if (tma("transCurrencyCd", tupleId).elem(true).length > 0) {
      var currencyCd = tma("transCurrencyCd", tupleId).getValue();
      if (currencyCd == "${companyCurrencyCd}") {
        tma("companyRate", tupleId).readonly();
      } else {
        tma("companyRate", tupleId).removeReadonly();
      }
    }
    
    //初期表示に先頭行を選択しているため、立替フラグ(hidden)の更新を実施 ※入力モードの場合のみ
    if (tma("payTypeCd", tupleId).elem(true).length > 0) { 
      KAIDEN.base.foundation.SelectListData.setChainValue(tma("payTypeCd", tupleId).elem(true).get(0));
    }
    
  });
  //レート再取得ロジック
  KAIDEN.getGadget("${gadgetId}").variable.reloadRateAll = function() {
    tma("transCurrencyCd").elem(true).each(function() {
      tmt.variable.loadRate(this);
      tmt.variable.multiplyDays(this);
    });
  }

  //レート再取得:ボタン押下
  blockAccessor("rateReget").elem(true).on("click", function(e){
    imuiConfirm("${msgRateReget}", "", function() {
      KAIDEN.getGadget("${gadgetId}").variable.reloadRateAll();
    }, undefined, false);
  });
  
  //日当金額再取得:ボタン押下
  blockAccessor("allowanceAmountReget").elem(true).on("click", function(e){
    imuiConfirm("${msgAllowanceReget}", "", function() {
      
      var ajax = KAIDEN.Ajax()
        , criteria = {}
        , Accessor = KAIDEN.base.foundation.Accessor
        , ret;
      
      // 検索基準会社
      ret = KAIDEN.gadgetMan.execPull("claimSearchCriteriaCompany");
      criteria.searchCriteriaCompany = ret[0].result;
      // 検索基準日
      ret = KAIDEN.gadgetMan.execPull("claimSearchCriteriaDate");
      criteria.searchCriteriaDate = ret[0].result;
      // 申請権限者
      ret = KAIDEN.gadgetMan.execPull("claimApplyAuthUserCode");
      criteria.userCd = ret[0].result;
      
      tma("allowanceCd").elem(true).each(function() {
        var allowance = "";
        criteria.allowanceCd = ""
        criteria.allowanceCd = Accessor($(this)).getValue();
        
        if (criteria.allowanceCd) {
          allowance = ajax.postSync("kaiden/master/allowanceAmount", criteria);
        } else {
          return;
        }
        
        var cur = KAIDEN.gadgetMan.getNeighboringAccessor(this, "transCurrencyCd")
        cur.setValue(allowance.currencyCd);
        tmt.variable.loadRate(cur.elem().get(0)); //レート取得
        
        KAIDEN.gadgetMan.getNeighboringAccessor(this, "transAmount").setValue(allowance.amount).elem().trigger("change");
        
      });
    }, undefined, false);
  });
  
  //日数*金額
  tmt.variable.multiplyDays = function(target) {
    var companyAmount = KAIDEN.gadgetMan.getNeighboringAccessor(target, "companyAmount").getValue();
    var quantity = KAIDEN.gadgetMan.getNeighboringAccessor(target, "quantity").getValue();
    
    if(($.isNumeric(companyAmount) && $.isNumeric(quantity))) {
      //金額項目に日数 * 換算額を設定する
      var total = new BigDecimal(companyAmount).multiply(new BigDecimal(quantity));
      KAIDEN.gadgetMan.getNeighboringAccessor(target, "companyAmountSum").setValue(total.toString());
    } else {
      KAIDEN.gadgetMan.getNeighboringAccessor(target, "companyAmountSum").setValue("");
    }
  };
  
  //日数入力後処理
  tma("quantity").elem(true).live("change", function(e) {
    tmt.variable.multiplyDays(this);
  });
  //取引通貨額入力後処理(readonlyだがtrigger時にも利用できるよう付与)
  tma("transAmount").elem(true).live("change", function(e) {
    tmt.variable.multiplyDays(this);
  });
  //レート入力後処理
  tma("companyRate").elem(true).live("change", function(e) {
    tmt.variable.multiplyDays(this);
  });
  
  //マスタ検索確定時処理
  tma("allowanceName").elem(true).live("choice", function(e, data) {
     //レートを再取得する
     var cur = KAIDEN.gadgetMan.getNeighboringAccessor(this, "transCurrencyCd")
    tmt.variable.loadRate(cur.elem().get(0));
    tmt.variable.multiplyDays(this);
  });
  //マスタ検索クリア時処理
  tma("allowanceName").elem(true).live("clear", function(e) {
     //レート・換算額・金額(換算額*日数)をクリアする
    KAIDEN.gadgetMan.getNeighboringAccessor(this, "companyRate").setValue("");
    KAIDEN.gadgetMan.getNeighboringAccessor(this, "companyAmount").setValue("");
    KAIDEN.gadgetMan.getNeighboringAccessor(this, "companyAmountSum").setValue("");
  });

  /***********************************
   * 受信イベント(push) 
   ***********************************/
   
  //loadData データ読み込み イベントリスナの登録
  eventMan.registPushListener("loadData", function(/**Object*/arg) {
    //明細行のクリア
    tmt.deleteAll();
    return KAIDEN.ImwModerator.genericLoadDataEvent("${gadgetId}", "${accessUrl}", arg);
  });
  //postLoadData データ読み込み後処理 イベントリスナの登録
  eventMan.registPushListener("postLoadData", function(/**Object*/arg) {
    //金額項目すべてに「マスタチェック:日当金額」を実行する
    var rv = true;
    tma("transAmount").elem(true).each(function() {
      KAIDEN.getGadget("${gadgetId}").variable.validateTransAmount(this);
    });
  });
  
  //loadData4Copy 申請書コピー  イベントリスナの登録
  eventMan.registPushListener("loadData4Copy", function(/**Object*/arg) {
    return KAIDEN.ImwModerator.genericLoadData4CopyEvent("${gadgetId}", "${accessUrl}", arg);
  });
   
  //postLoadData4Copy 申請書コピー後処理  イベントリスナの登録
  eventMan.registPushListener("postLoadData4Copy", function(/**Object*/arg) {
    var rv = true;
    tma("transAmount").elem(true).each(function() {
      KAIDEN.getGadget("${gadgetId}").variable.validateTransAmount(this);
    });
  });
   
  //loadData4Settle 事前申請書取り込み  イベントリスナの登録
  eventMan.registPushListener("loadData4Settle", function(/**Object*/arg) {
    return KAIDEN.ImwModerator.genericLoadData4SettleEvent("${gadgetId}", "${accessUrl}", arg);
  });
   
  //postLoadData4Settle 事前申請書取り込み後処理  イベントリスナの登録
  eventMan.registPushListener("postLoadData4Settle", function(/**Object*/arg) {
    var rv = true;
    tma("transAmount").elem(true).each(function() {
      KAIDEN.getGadget("${gadgetId}").variable.validateTransAmount(this);
    });
  });
  KAIDEN.getGadget("${gadgetId}").variable.validateTransAmount = function (/**HtmlElement*/target) {
    var rv = true;
    var val = KAIDEN.base.foundation.Accessor($(target)).getValue();
    var param = [ 'allowanceCd', 'searchCriteriaCompany', '${applyAuthUserCode}', 'transCurrencyCd', 'transAmount', 'searchCriteriaDate' ];
    rv = KAIDEN.validator.validateFunction("k_allowanceAmount")(val, target, param);
    if (!rv) {
      imuiShowWarningMessage("${messageSearchWarning}", "${messageSearchWarningSub}");
    }
  };
  
  //reloadAllCurrencyRate レート再取得 イベントリスナの登録
  eventMan.registPushListener("reloadAllCurrencyRate", function(/**Object*/arg) {
    KAIDEN.getGadget("${gadgetId}").variable.reloadRateAll();
  });
  
  /***********************************
   * 受信イベント(pull) 
   ***********************************/
   
  //claimExpenseAmount 費用合計を要求  イベントリスナの登録
  eventMan.registPullListener("claimExpenseAmount", function(/**Object*/arg) {
    var amounts = tmt.getColumnValues("companyAmountSum");
    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("companyAmountSum");
        var result = new BigDecimal().ZERO;
        $.each(amounts, function(index, value) {
          if ($.isNumeric(value)) {
            result = result.add(new BigDecimal(value));
          }
        });
        return result.toString();
  });
  
  //claimCompanyPayAmount 会社支払額を要求  イベントリスナの登録
  eventMan.registPullListener("claimCompanyPayAmount", function(/**Object*/arg) {
        var result = new BigDecimal().ZERO;
        return result.toString();
  });
  
  //claimExpenseDetail 費用明細を要求  イベントリスナの登録
  eventMan.registPullListener("claimExpenseDetail", function(/**Object*/arg) {
    return tmt.getColumnValues("companyAmountSum");
  });
  
  //claimExpenceCount 費用明細行数を要求  イベントリスナの登録
  eventMan.registPullListener("claimExpenceCount", function(/**Object*/arg) {
    return tmt.getCount();
  });
  
});
</script>

5.1.8.5.2. SP

  • Path
    src/main/webapp/WEB-INF/view/kaiden2/product_workflow/gadget/allowanceDetail/allowanceDetailV02_sp.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="imsp" uri="http://www.intra-mart.co.jp/taglib/imsp" %>
<%@ taglib prefix="k" uri="http://kaiden.slcs.co.jp/taglib/ui" %>
<%@ taglib prefix="kimw" uri="http://kaiden.slcs.co.jp/taglib/imw" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ page import="jp.co.slcs.kaiden2.base.foundation.conf.BaseProp" %>
<%@ page import="jp.co.slcs.kaiden2.base.foundation.util.PropertyJspUtil" %>

<c:if test="${empty pwkfCommonIncluded}" scope="request">
  <jsp:include page="/WEB-INF/view/kaiden2/product_workflow/foundation/commonInclude_sp.jsp"></jsp:include>
  <c:set var="pwkfCommonIncluded"  scope="request">true</c:set>
</c:if>

<%-- allowanceDetail v02 --%>
<c:set var="gadgetClass">allowanceDetail</c:set> 
<c:set var="gadgetVariation">v02</c:set>
<c:set var="gadgetInstance">${param.gadget_instance}</c:set>
<c:set var="gadgetId">${gadgetClass}_${gadgetVariation}_${gadgetInstance}</c:set>
<c:set var="componentName">allowanceDetailV02Action</c:set>
<c:set var="imwSystemMatterId">${param.imwSystemMatterId}</c:set>
<c:set var="imwUserDataId">${param.userDataId}</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 var="tmtableId">allowanceDetailTable</c:set>

<c:set var="gadgetResponse" value="${kimw:load4View(componentName, imwSystemMatterId, imwUserDataId, gadgetId, searchCriteriaCompany)}"></c:set>
<c:set var="gadget" value="${appDto.gadgets[gadgetId]}" />

<%-- Surface --%>
<c:set var="surfaceChapterTitle">${gadget.surfaces["chapterTitle"]}</c:set>
<c:set var="surfaceAllowance">${gadget.surfaces["allowance"]}</c:set>
<c:set var="surfaceTransAmount">${gadget.surfaces["amount"]}</c:set>
<c:set var="surfaceTransCurrency">${gadget.surfaces["transCurrencyCd"]}</c:set>
<c:set var="surfaceCompanyRate">${gadget.surfaces["companyRate"]}</c:set>
<c:set var="surfaceCompanyAmount">${gadget.surfaces["companyAmount"]}</c:set>
<c:set var="surfaceQuantity">${gadget.surfaces["quantity"]}</c:set>
<c:set var="surfaceCompanyAmouontSum">${gadget.surfaces["companyAmountSum"]}</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="surfaceDepartment">${gadget.surfaces["department"]}</c:set>
<c:set var="surfaceProject">${gadget.surfaces["project"]}</c:set>
<c:set var="surfaceBack"><%= PropertyJspUtil.getSurface(BaseProp.S.BACK) %></c:set>

<div data-role="collapsible" data-collapsed="false" data-theme="b" data-content-theme="d" data-inset="false" data-collapsed-icon="arrow-d" data-expanded-icon="arrow-u" data-iconpos="right">
  <h3>
      <span>${surfaceChapterTitle}</span>
      <span class="ui-btn-up-c ui-btn-corner-all" style="font-size:0.8em;padding:2px 5.5px"><c:out value="${fn:length(gadgetResponse.data[tmtableId])}"></c:out></span>
  </h3>
  
  <ul data-role="listview" data-divider-theme="b">
    <c:forEach items="${gadgetResponse.data[tmtableId]}" var="detailData">
    <li>
      <span class="ui-li-heading"><c:out value="${detailData.allowanceName}"></c:out></span>
      <span class="ui-li-aside"><c:out value="${detailData.companyAmountSum[1]}"></c:out></span>
      <div class="indent">
        <p class="kaiden-ui-overview-contents">
          <c:out value="${surfaceTransAmount}:"></c:out>
          <c:out value="${detailData.companyAmount[1]}"></c:out>
        </p>
        <p class="kaiden-ui-overview-contents">
          <c:out value="${surfaceQuantity}:"></c:out>
          <c:out value="${detailData.quantity[1]}"></c:out>
        </p>
      </div>
      <ul>
        <li data-icon="back" data-mini="true" data-theme="a"><a data-rel="back"><c:out value="${surfaceBack}"></c:out></a></li>
        <li>
          <p class="kaiden-ui-detail-item-title"><c:out value="${surfaceAllowance}"></c:out></p>
          <div class="indent">
            <label class="kaiden-ui-detail-item-contents"><c:out value="${detailData.allowanceName}"></c:out></label>
          </div>
          <p class="kaiden-ui-detail-item-title"><c:out value="${surfaceTransAmount}"></c:out></p>
          <div class="indent">
            <label class="kaiden-ui-detail-item-contents-sub"><c:out value="${detailData.transAmount[1]}"></c:out></label>
            <label class="kaiden-ui-detail-item-contents-sub" style="margin-left:1em"><c:out value="${detailData.transCurrencyName}"></c:out></label>
          </div>
          <div class="indent">
            <label class="kaiden-ui-detail-item-contents-sub kaiden-ui-cmpRate"><c:out value="${detailData.companyRate[1]}"></c:out></label>
          </div>
          <div class="indent">
            <label class="kaiden-ui-detail-item-contents"><c:out value="${detailData.companyAmount[1]}"></c:out></label>
          </div>
          <p class="kaiden-ui-detail-item-title"><c:out value="${surfaceQuantity}"></c:out></p>
          <div class="indent">
            <label class="kaiden-ui-detail-item-contents"><c:out value="${detailData.quantity[1]}"></c:out></label>
          </div>
          <p class="kaiden-ui-detail-item-title"><c:out value="${surfaceCompanyAmouontSum}"></c:out></p>
          <div class="indent">
            <label class="kaiden-ui-detail-item-contents"><strong><c:out value="${detailData.companyAmountSum[1]}"></c:out></strong></label>
          </div>
          <p class="kaiden-ui-detail-item-title"><c:out value="${surfaceExpType}"></c:out></p>
          <div class="indent">
            <label class="kaiden-ui-detail-item-contents"><c:out value="${detailData.expTypeName}"></c:out></label>
          </div>
          <p class="kaiden-ui-detail-item-title"><c:out value="${surfaceAccount}"></c:out></p>
          <div class="indent">
            <label class="kaiden-ui-detail-item-contents"><c:out value="${detailData.accountName}"></c:out></label>
          </div>
          <p class="kaiden-ui-detail-item-title"><c:out value="${surfaceTaxType}"></c:out></p>
          <div class="indent">
            <label class="kaiden-ui-detail-item-contents"><c:out value="${detailData.taxTypeName}"></c:out></label>
          </div>
          <p class="kaiden-ui-detail-item-title"><c:out value="${surfaceDepartment}"></c:out></p>
          <div class="indent">
            <label class="kaiden-ui-detail-item-contents"><c:out value="${detailData.departmentName}"></c:out></label>
          </div>
          <p class="kaiden-ui-detail-item-title"><c:out value="${surfaceProject}"></c:out></p>
          <div class="indent">
            <label class="kaiden-ui-detail-item-contents"><c:out value="${detailData.projectName}"></c:out></label>
          </div>
        </li>
      </ul>
    </li>
    </c:forEach>
  </ul>
</div>