intra-mart Accel Kaiden! プログラミングガイド 第12版 2020-04-01

5.1.1. 経費明細

経費明細のサンプルソースです。
本サンプルソースは「intra-mart Accel Kaiden! ワークフローモジュール 2.0.2」から抜粋したソースです。

5.1.1.1. 一覧

src
└─main
    ├─generated
    │  └─jp
    │      └─co
    │          └─slcs
    │              └─kaiden2
    │                  └─product_workflow
    │                      └─foundation
    │                          └─model
    │                              ├─entity
    │                              │      K30tExpenseDetail.java
    │                              │      K30tExpenseDetailNames.java
    │                              │      Ka30tExpenseDetail.java
    │                              │      Ka30tExpenseDetailNames.java
    │                              └─service
    │                                      K30tExpenseDetailCondition.java
    │                                      K30tExpenseDetailService.java
    │                                      Ka30tExpenseDetailCondition.java
    │                                      Ka30tExpenseDetailService.java
    ├─java
    │  └─jp
    │      └─co
    │          └─slcs
    │              └─kaiden2
    │                  └─product_workflow
    │                      ├─feature
    │                      │  ├─action
    │                      │  │  └─kaiden
    │                      │  │      └─gadget
    │                      │  │              AbstractExpenseDetailActionBase.java
    │                      │  │              ExpenseDetailV01Action.java
    │                      │  ├─conf
    │                      │  │  └─kaiden
    │                      │  │      └─gadget
    │                      │  │          └─expensedetail
    │                      │  │                  ExpenseDetailFieldName.java
    │                      │  ├─form
    │                      │  │  └─kaiden
    │                      │  │      └─gadget
    │                      │  │              ExpenseDetailV01Form.java
    │                      │  └─logic
    │                      │      └─kaiden
    │                      │          └─gadget
    │                      │              └─expensedetail
    │                      │                      AbstractExpenseDetailLogicBase.java
    │                      │                      ExpenseDetailV01Logic.java
    │                      └─foundation
    │                          └─manager
    │                              └─expensedetail
    │                                  │  ExpenseDetailManager.java
    │                                  │  ExpenseDetailManagerDto.java
    │                                  └─impl
    │                                          ExpenseDetailManagerImpl.java
    ├─resources
    │  └─META-INF
    │      └─sql
    │          └─jp
    │              └─co
    │                  └─slcs
    │                      └─kaiden2
    │                          └─product_workflow
    │                              └─foundation
    │                                  ├─manager
    │                                  │  └─expensedetail
    │                                  │      └─impl
    │                                  │          └─ExpenseDetailManagerImpl
    │                                  │                  selectForJournalSourceDtl.sql
    │                                  └─model
    │                                      └─service
    │                                          └─K30tExpenseDetailService
    │                                                  selectView.sql
    │                                                  selectViewForCopy.sql
    └─webapp
        └─WEB-INF
            └─view
                └─kaiden2
                    └─product_workflow
                        └─gadget
                            └─expenseDetail
                                    expenseDetailV01.jsp
                                    expenseDetailV01_sp.jsp

5.1.1.2. Java

5.1.1.2.1. Action(基底)

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

import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_COMPANY_AMOUNT;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_COMPANY_CURRENCY_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_COMPANY_RATE;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_TRANS_AMOUNT;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_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.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 AbstractExpenseDetailActionBase 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 #ExpenseDetailConvertor 経費明細(標準)ガジェットの書式変換}を返却します。<br>
     * 書式を変更する場合は、サブクラスでオーバーライドしてください
     * </p>
     * 
     * @return 書式変換後データ
     */
    protected ConvertForJsonSource getConvertor() {
        return new ExpenseDetailConvertor(getForm());
    }
    
    /**
     * 経費明細ガジェットの書式変換.
     * 
     * @author Sumitomo Life Information Systems Co.,Ltd.
     */
    private static class ExpenseDetailConvertor extends ConvertForJsonSource {
        
        /** リクエストパラメータ. */
        private AbstractImwPageForm frm;
        /**
         * NumberHelper.
         */
        private NumberHelper numberHelper;
        
        /**
         * コンストラクタ.
         * 
         * @param frm リクエストパラメータ
         */
        public ExpenseDetailConvertor(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>
         * </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(EXPENSE_DETAIL_TRANS_AMOUNT)) {
                BigDecimal amount = (BigDecimal) result.get(EXPENSE_DETAIL_TRANS_AMOUNT);
                Object currencyCd = result.get(EXPENSE_DETAIL_TRANS_CURRENCY_CD);
                result.put(EXPENSE_DETAIL_TRANS_AMOUNT,
                        numberHelper.formatCurrencyAmount4Input(amount, frm.searchCriteriaCompany, (String) currencyCd));
            }
            // レートの書式変換
            if (result.containsKey(EXPENSE_DETAIL_COMPANY_RATE)) {
                BigDecimal rate = (BigDecimal) result.get(EXPENSE_DETAIL_COMPANY_RATE);
                result.put(EXPENSE_DETAIL_COMPANY_RATE, numberHelper.formatRate4Input(rate));
            }
            // 換算額の書式変換
            if (result.containsKey(EXPENSE_DETAIL_COMPANY_AMOUNT)) {
                BigDecimal companyAmount = (BigDecimal) result.get(EXPENSE_DETAIL_COMPANY_AMOUNT);
                Object companyCurrencyCd = result.get(EXPENSE_DETAIL_COMPANY_CURRENCY_CD);
                result.put(EXPENSE_DETAIL_COMPANY_AMOUNT, numberHelper.formatCurrencyAmount4Input(companyAmount,
                        frm.searchCriteriaCompany, (String) 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>
         * </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(EXPENSE_DETAIL_TRANS_AMOUNT)) {
                BigDecimal amount = (BigDecimal) map.get(EXPENSE_DETAIL_TRANS_AMOUNT);
                Object currencyCd = map.get(EXPENSE_DETAIL_TRANS_CURRENCY_CD);
                result.put(EXPENSE_DETAIL_TRANS_AMOUNT,
                        numberHelper.formatCurrencyAmount4View(amount, frm.searchCriteriaCompany, (String) currencyCd));
            }
            // レートの書式変換
            if (map.containsKey(EXPENSE_DETAIL_COMPANY_RATE)) {
                BigDecimal rate = (BigDecimal) map.get(EXPENSE_DETAIL_COMPANY_RATE);
                result.put(EXPENSE_DETAIL_COMPANY_RATE, numberHelper.formatRate4View(rate));
            }
            // 換算額の書式変換
            if (map.containsKey(EXPENSE_DETAIL_COMPANY_AMOUNT)) {
                BigDecimal companyAmount = (BigDecimal) map.get(EXPENSE_DETAIL_COMPANY_AMOUNT);
                Object companyCurrencyCd = map.get(EXPENSE_DETAIL_COMPANY_CURRENCY_CD);
                result.put(EXPENSE_DETAIL_COMPANY_AMOUNT, numberHelper.formatCurrencyAmount4View(companyAmount,
                        frm.searchCriteriaCompany, (String) companyCurrencyCd));
            }
            return result;
        }
    }
}

5.1.1.2.2. Action

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/feature/action/kaiden/gadget/ExpenseDetailV01Action.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.ExpenseDetailV01Form;
import jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.gadget.expensedetail.ExpenseDetailV01Logic;
import org.seasar.struts.annotation.ActionForm;

/**
 * 経費明細(標準)ガジェット(Action).
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public class ExpenseDetailV01Action extends AbstractExpenseDetailActionBase {
    
    /**
     * ExpenseDetailV01Logic.
     */
    @Resource
    public ExpenseDetailV01Logic expenseDetailV01Logic;
    /**
     * ExpenseDetailV01Form.
     */
    @ActionForm
    @Resource
    public ExpenseDetailV01Form expenseDetailV01Form;
    
    /**
     * {@inheritDoc}
     */
    @Override
    public PluginLogicIF getLogic() {
        return expenseDetailV01Logic;
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public AbstractImwPageForm getForm() {
        return expenseDetailV01Form;
    }
    
}

5.1.1.2.3. Form

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/feature/form/kaiden/gadget/ExpenseDetailV01Form.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 ExpenseDetailV01Form extends AbstractImwPageForm {
    
}

5.1.1.2.4. Logic(基底)

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

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_DATE;
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_MAX_LENGTH;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_NUMERIC_MIN;
import static jp.co.slcs.kaiden2.extension_imw.foundation.conf.ImwEntityCommonFieldNames.GADGET_CLASS;
import static jp.co.slcs.kaiden2.extension_imw.foundation.conf.ImwEntityCommonFieldNames.GADGET_INSTANCE;
import static jp.co.slcs.kaiden2.extension_imw.foundation.conf.ImwEntityCommonFieldNames.SEARCH_CRITERIA_COMPANY;
import static jp.co.slcs.kaiden2.extension_imw.foundation.conf.ImwEntityCommonFieldNames.SYSTEM_MATTER_ID;
import static jp.co.slcs.kaiden2.extension_imw.foundation.conf.ImwEntityCommonFieldNames.USER_DATA_ID;
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.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_ACCOUNT_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_ACCOUNT_NAME;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_COMPANY_AMOUNT;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_COMPANY_AMOUNT_SUM;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_COMPANY_CURRENCY_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_COMPANY_CURRENCY_NAME;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_COMPANY_RATE;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_DEPARTMENT_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_DEPARTMENT_NAME;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_DEPARTMENT_SET_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_EXP_TYPE_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_EXP_TYPE_NAME;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_OCCUR_DATE;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_PAYEE_NAME;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_PAYMENT_FLAG;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_PAY_METHOD_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_PAY_METHOD_NAME;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_PAY_TYPE_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_PAY_TYPE_NAME;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_PROJECT_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_PROJECT_NAME;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_QUANTITY;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_SUMMARY;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_TAX_TYPE_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_TAX_TYPE_NAME;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_TRANS_AMOUNT;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_TRANS_CURRENCY_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_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_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_PAY_TYPE_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.conf.GenericFlag;
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.helper.CompanySettingsHelper;
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.DateValidator;
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.MaxLengthValidator;
import jp.co.slcs.kaiden2.base.foundation.util.validate.NumericMinValidator;
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.feature.logic.kaiden.gadget.common.ClaimTemporaryPayAmountIF;
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.expensedetail.ExpenseDetailManager;
import jp.co.slcs.kaiden2.product_workflow.foundation.manager.expensedetail.ExpenseDetailManagerDto;
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.ExpTypeExistsValidator;
import jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.PayMethodExistsValidator;
import jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.PayTypeExistsValidator;
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 AbstractExpenseDetailLogicBase extends AbstractExpensePluginGadgetLogic {
    
    /** ガジェットブロックキー: 経費明細ガジェット. */
    protected static final String BLOCK_KEY_EXPENSE_DETAIL_TABLE = "expenseDetailTable";
    
    /** 経費内容. */
    public static final int SUMMARY_LEN = 250;
    /** 税率(整数部). */
    public static final int TAX_RATE_INT_LEN = 18;
    /** 税率(小数部). */
    public static final int TAX_RATE_DEC_LEN = 10;
    /** 会社通貨換算レート(整数部). */
    public static final int COMPANY_RATE_INT_LEN = 18;
    /** 会社通貨換算レート(小数部). */
    public static final int COMPANY_RATE_DEC_LEN = 10;
    /** 支払先. */
    public static final int PAYEE_NAME_LEN = 250;
    /** 数量(整数部). */
    public static final int QUANTITY_INT_LEN = 18;
    /** 数量(小数部). */
    public static final int QUANTITY_DEC_LEN = 10;
    
    /** ExpenseDetailManager. */
    @Resource
    protected ExpenseDetailManager expenseDetailManager;
    
    /** JournalSourceDtlManager. */
    @Resource
    protected JournalSourceDtlManager journalSourceDtlManager;
    
    /** CompanySettingsHelper. */
    @Resource
    protected CompanySettingsHelper companySettingsHelper;
    
    /** コンストラクタ. */
    public AbstractExpenseDetailLogicBase() {
        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>
     * 本機能では何も処理を行わず、常に0を返却します。
     * </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>
     * 直前のユーザデータIDが設定されている場合に、経費明細テーブルを登録します。
     * </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_MATTERCOMPLETE.equals(status) || LAST_RESULT_STATUS_APPROVEEND.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 = expenseDetailManager.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 = expenseDetailManager
                .removeAllArchive(super.convCriteriaForSqlDtoForArchive(super.getGadgetDto().imwPluginParameterDto));
        return rv;
        
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 対象となる経費明細の履歴を含めた全てのデータを削除します。
     * </p>
     */
    @Override
    public int cplMatterDelete(KaidenDto dto) throws KaidenSystemException, KaidenApplicationException {
        return deleteTableIncludeBackground();
    }
    
    /**
     * {@inheritDoc}
     * 
     * @see #viewMapFormated
     */
    @Override
    protected Map<String, Object> viewMap(PluginGadgetDTO conditionDto) throws KaidenSystemException {
        return viewMapFormated(conditionDto, null);
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * データの取得は、{@link ExpenseDetailManager#selectList(ExpenseDetailManagerDto)}を利用します。
     * </p>
     */
    @Override
    protected Map<String, Object> viewMapFormated(PluginGadgetDTO conditionDto, ConvertForJsonSource converter)
            throws KaidenSystemException {
        ExpenseDetailManagerDto dto = Beans.createAndCopy(ExpenseDetailManagerDto.class, conditionDto).execute();
        List<ExpenseDetailManagerDto> listSelect = expenseDetailManager.selectList(dto);
        
        LinkedHashMap<String, Object> rv = new LinkedHashMap<String, Object>();
        List<Map<String, Object>> lstDtoMap = new ArrayList<Map<String, Object>>();
        for (ExpenseDetailManagerDto src : listSelect) {
            if (converter == null) {
                lstDtoMap.add(BeanUtil.toMap(src, true));
            } else {
                lstDtoMap.add(converter.mapConvert(BeanUtil.toMap(src, true)));
            }
            
        }
        rv.put(BLOCK_KEY_EXPENSE_DETAIL_TABLE, lstDtoMap);
        return rv;
        
    }
    
    /**
     * 経費明細テーブルデータ登録処理.
     * 
     * @return 更新カウント
     * @throws KaidenSystemException システムエラー
     */
    protected int insertTable() throws KaidenSystemException {
        // 経費明細ガジェットデータをMap形式で取得
        List<ExpenseDetailManagerDto> dtos = JsonUtil.getDtoList(ExpenseDetailManagerDto.class,
                getJsonDataDetailBlock(BLOCK_KEY_EXPENSE_DETAIL_TABLE));
        
        // 経費明細テーブル登録
        return expenseDetailManager.entry(dtos);
    }
    
    /**
     * 仕訳連携用明細テーブルデータ登録処理.
     * 
     * @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 {
        ExpenseDetailManagerDto mngDto = new ExpenseDetailManagerDto();
        mngDto.systemMatterId = super.getGadgetDto().systemMatterId;
        mngDto.userDataId = super.getGadgetDto().userDataId;
        mngDto.gadgetClass = super.getGadgetDto().gadgetClass;
        mngDto.gadgetInstance = super.getGadgetDto().gadgetInstance;
        if (tempFlg) {
            mngDto.systemMatterId = WorkflowConstants.SYSTEM_MATTER_ID_TEMPORARY;
        }
        return expenseDetailManager.remove(mngDto);
    }
    
    /**
     * 経費明細テーブルデータ削除処理(履歴を含む).
     * 
     * @return 更新カウント
     * @throws KaidenSystemException システムエラー
     */
    protected int deleteTableIncludeBackground() throws KaidenSystemException {
        ExpenseDetailManagerDto mngDto = new ExpenseDetailManagerDto();
        mngDto.systemMatterId = super.getGadgetDto().systemMatterId;
        mngDto.userDataId = null;
        mngDto.gadgetClass = super.getGadgetDto().gadgetClass;
        mngDto.gadgetInstance = super.getGadgetDto().gadgetInstance;
        return expenseDetailManager.removeAll(mngDto);
    }
    
    /**
     * {@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 DateValidator 日付型チェック}</td>
     * <td align="center">入力</td>
     * </tr>
     * <tr>
     * <td>摘要</td>
     * <td>{@link MaxLengthValidator 最大文字数チェック}</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 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>支払分類コード</td>
     * <td>{@link PayTypeExistsValidator 支払分類マスタ存在チェック}</td>
     * <td align="center">入力/表示</td>
     * </tr>
     * <tr>
     * <td>支払方法コード</td>
     * <td>{@link PayMethodExistsValidator 支払方法マスタ存在チェック}</td>
     * <td align="center">入力/表示</td>
     * </tr>
     * <tr>
     * <td>支払先名</td>
     * <td>{@link MaxLengthValidator 最大文字数チェック}</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 DigitsValidator 小数型チェック}</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_EXPENSE_DETAIL_TABLE)) {
            addValidateDefsRequired(BLOCK_KEY_EXPENSE_DETAIL_TABLE, tmpFlg);
            // 発生日
            addValidateOnlyInput(EXPENSE_DETAIL_OCCUR_DATE, VALID_DATE);
            // 摘要
            addValidateOnlyInput(EXPENSE_DETAIL_SUMMARY, VALID_MAX_LENGTH, getArgs(SUMMARY_LEN));
            // 経費区分コード
            addValidate(EXPENSE_DETAIL_EXP_TYPE_CD, VALID_EXP_TYPE_EXISTS, EXPENSE_DETAIL_EXP_TYPE_CD,
                    getGadgetDto().searchCriteriaCampany, dateHelper.toYYYYMMDD(getGadgetDto().searchCriteriaDate));
            // 勘定科目コード
            addValidate(EXPENSE_DETAIL_ACCOUNT_CD, VALID_ACCOUNT_EXISTS, EXPENSE_DETAIL_ACCOUNT_CD,
                    getGadgetDto().searchCriteriaCampany, dateHelper.toYYYYMMDD(getGadgetDto().searchCriteriaDate));
            // 税区分コード
            addValidate(EXPENSE_DETAIL_TAX_TYPE_CD, VALID_TAX_TYPE_EXISTS, EXPENSE_DETAIL_TAX_TYPE_CD,
                    getGadgetDto().searchCriteriaCampany, dateHelper.toYYYYMMDD(getGadgetDto().searchCriteriaDate));
            // 取引通貨額
            addValidateOnlyInput(EXPENSE_DETAIL_TRANS_AMOUNT, VALID_CURRENCY_AMNT,
                    getArgs(EXPENSE_DETAIL_TRANS_CURRENCY_CD, SEARCH_CRITERIA_COMPANY));
            // 取引通貨コード
            addValidate(EXPENSE_DETAIL_TRANS_CURRENCY_CD, VALID_IMM_CURRENCY_EXISTS, EXPENSE_DETAIL_TRANS_CURRENCY_CD,
                    getGadgetDto().searchCriteriaCampany);
            // 会社通貨換算レート
            addValidateOnlyInput(EXPENSE_DETAIL_COMPANY_RATE, VALID_DIGITS,
                    getArgs(COMPANY_RATE_INT_LEN, COMPANY_RATE_DEC_LEN));
            addValidateOnlyInput(EXPENSE_DETAIL_COMPANY_RATE, VALID_NUMERIC_MIN, getArgs(0));
            // 会社通貨コード
            addValidate(EXPENSE_DETAIL_COMPANY_CURRENCY_CD, VALID_IMM_CURRENCY_EXISTS,
                    EXPENSE_DETAIL_COMPANY_CURRENCY_CD, getGadgetDto().searchCriteriaCampany);
            // 会社通貨額
            addValidateOnlyInput(EXPENSE_DETAIL_COMPANY_AMOUNT, VALID_CURRENCY_AMNT,
                    getArgs(EXPENSE_DETAIL_COMPANY_CURRENCY_CD, SEARCH_CRITERIA_COMPANY));
            // 支払分類コード
            addValidate(EXPENSE_DETAIL_PAY_TYPE_CD, VALID_PAY_TYPE_EXISTS, EXPENSE_DETAIL_PAY_TYPE_CD,
                    getGadgetDto().searchCriteriaCampany, dateHelper.toYYYYMMDD(getGadgetDto().searchCriteriaDate));
            // 支払方法コード
            addValidate(EXPENSE_DETAIL_PAY_METHOD_CD, VALID_PAY_METHOD_EXISTS, EXPENSE_DETAIL_PAY_METHOD_CD,
                    getGadgetDto().searchCriteriaCampany, dateHelper.toYYYYMMDD(getGadgetDto().searchCriteriaDate));
            // 支払先名
            addValidateOnlyInput(EXPENSE_DETAIL_PAYEE_NAME, VALID_MAX_LENGTH, getArgs(PAYEE_NAME_LEN));
            // 組織コード
            addValidate(EXPENSE_DETAIL_DEPARTMENT_CD, VALID_DEPARTMENT_EXISTS, getGadgetDto().searchCriteriaCampany,
                    EXPENSE_DETAIL_DEPARTMENT_SET_CD, EXPENSE_DETAIL_DEPARTMENT_CD,
                    dateHelper.toYYYYMMDD(getGadgetDto().searchCriteriaDate));
            // プロジェクトコード
            addValidate(EXPENSE_DETAIL_PROJECT_CD, VALID_PROJECT_EXISTS, EXPENSE_DETAIL_PROJECT_CD,
                    getGadgetDto().searchCriteriaCampany, dateHelper.toYYYYMMDD(getGadgetDto().searchCriteriaDate));
            // 数量
            addValidateOnlyInput(EXPENSE_DETAIL_QUANTITY, VALID_DIGITS, getArgs(QUANTITY_INT_LEN, QUANTITY_DEC_LEN));
            // 会社通貨額合計
            addValidateOnlyInput(EXPENSE_DETAIL_COMPANY_AMOUNT_SUM, VALID_CURRENCY_AMNT,
                    getArgs(EXPENSE_DETAIL_COMPANY_CURRENCY_CD, SEARCH_CRITERIA_COMPANY));
        }
    }
    
    /**
     * ブロックの共通シングルバリデート定義MAPにエントリを追加.
     * 
     * @param fieldKey フィールドキー
     * @param validationId バリデートキー
     * @param args バリデート実行時アーギュメント
     */
    protected void addValidate(String fieldKey, String validationId, String... args) {
        super.addValidateDefsMap(BLOCK_KEY_EXPENSE_DETAIL_TABLE, fieldKey, validationId, args);
    }
    
    /**
     * ブロックの共通シングルバリデート定義MAPにエントリを追加.
     * <p>
     * 当該フィールドが入力モードの時のみ、指定されたバリデート定義を追加します。
     * </p>
     * 
     * @param fieldKey フィールドキー
     * @param validationId バリデートキー
     * @param args バリデート実行時アーギュメント
     */
    protected void addValidateOnlyInput(String fieldKey, String validationId, String... args) {
        super.addValidateDefsMapOnlyInput(BLOCK_KEY_EXPENSE_DETAIL_TABLE, fieldKey, validationId, args);
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * システム案件idが未設定の場合(初回表示時など)は、空のリストを返却します。<br>
     * 設定されている場合は、{@link ExpenseDetailManager#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_EXPENSE_DETAIL_TABLE, new ArrayList<ExpenseDetailManagerDto>());
        } else {
            result.put(BLOCK_KEY_EXPENSE_DETAIL_TABLE, expenseDetailManager.selectView(criteria));
        }
        return result;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * {@link ExpenseDetailManager#selectViewForCopy(CriteriaForSqlDto)}の取得結果を返却します。
     * </p>
     */
    @Override
    protected Map<String, Object> selectBlockDatasForCopy(CriteriaForSqlDto criteria) {
        Map<String, Object> result = new HashMap<String, Object>();
        result.put(BLOCK_KEY_EXPENSE_DETAIL_TABLE, expenseDetailManager.selectViewForCopy(criteria));
        return result;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * {@link ExpenseDetailManager#selectViewArchive(CriteriaForSqlDto)}の取得結果を返却します。
     * </p>
     */
    @Override
    protected Map<String, Object> selectBlockDatasForArchive(CriteriaForSqlDto criteria) {
        Map<String, Object> result = new HashMap<String, Object>();
        result.put(BLOCK_KEY_EXPENSE_DETAIL_TABLE, expenseDetailManager.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>
     * <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_EXPENSE_DETAIL_TABLE.equals(dataEs.getKey())) {
                @SuppressWarnings("unchecked")
                List<ExpenseDetailManagerDto> sqlResultList = CollectionUtil.castListContent(
                        (List<? extends KaidenDto>) dataEs.getValue(), ExpenseDetailManagerDto.class);
                
                for (ExpenseDetailManagerDto j : sqlResultList) {
                    // 取引通貨チェック
                    if (isNotEmpty(j.transCurrencyCd) && isEmpty(j.transCurrencyName)) {
                        String[] fieldId = getArgs(EXPENSE_DETAIL_TRANS_CURRENCY_CD, EXPENSE_DETAIL_TRANS_CURRENCY_NAME);
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                BaseProp.S.CURRENCY);
                        String[] values = getArgs(j.transCurrencyCd, j.transCurrencyName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        
                        result.add(new ErrorDetailDto(BLOCK_KEY_EXPENSE_DETAIL_TABLE, fieldId, j.tupleId.toString(),
                                masterName, values, message));
                    }
                    
                    // 会社通貨チェック
                    if (isNotEmpty(j.companyCurrencyCd) && isEmpty(j.companyCurrencyName)) {
                        String[] fieldId = getArgs(EXPENSE_DETAIL_COMPANY_CURRENCY_CD,
                                EXPENSE_DETAIL_COMPANY_CURRENCY_NAME);
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                BaseProp.S.CURRENCY);
                        String[] values = getArgs(j.companyCurrencyCd, j.companyCurrencyName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        result.add(new ErrorDetailDto(BLOCK_KEY_EXPENSE_DETAIL_TABLE, fieldId, j.tupleId.toString(),
                                masterName, values, message));
                    }
                    
                    // 組織チェック
                    if (isNotEmpty(j.departmentSetCd) && isNotEmpty(j.departmentCd) && isEmpty(j.departmentName)) {
                        String[] fieldId = getArgs(EXPENSE_DETAIL_DEPARTMENT_SET_CD, EXPENSE_DETAIL_DEPARTMENT_CD,
                                EXPENSE_DETAIL_DEPARTMENT_NAME);
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                BaseProp.S.DEPARTMENT);
                        String[] values = getArgs(j.departmentSetCd, j.departmentCd, j.departmentName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        result.add(new ErrorDetailDto(BLOCK_KEY_EXPENSE_DETAIL_TABLE, fieldId, j.tupleId.toString(),
                                masterName, values, message));
                    }
                    
                    // プロジェクトチェック
                    if (isNotEmpty(j.projectCd) && isEmpty(j.projectName)) {
                        String[] fieldId = getArgs(EXPENSE_DETAIL_PROJECT_CD, EXPENSE_DETAIL_PROJECT_NAME);
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                ProductWorkflowProp.S.PROJECT);
                        String[] values = getArgs(j.projectCd, j.projectName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        result.add(new ErrorDetailDto(BLOCK_KEY_EXPENSE_DETAIL_TABLE, fieldId, j.tupleId.toString(),
                                masterName, values, message));
                    }
                    
                    // 支払分類マスタチェック
                    if (isNotEmpty(j.payTypeCd) && isEmpty(j.payTypeName)) {
                        String[] fieldId = getArgs(EXPENSE_DETAIL_PAY_TYPE_CD, EXPENSE_DETAIL_PAY_TYPE_NAME);
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                ProductWorkflowProp.S.PAY_TYPE);
                        String[] values = getArgs(j.payTypeCd, j.payTypeName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        result.add(new ErrorDetailDto(BLOCK_KEY_EXPENSE_DETAIL_TABLE, fieldId, j.tupleId.toString(),
                                masterName, values, message));
                    }
                    
                    // 支払方法マスタチェック
                    if (isNotEmpty(j.payMethodCd) && isEmpty(j.payMethodName)) {
                        String[] fieldId = getArgs(EXPENSE_DETAIL_PAY_METHOD_CD, EXPENSE_DETAIL_PAY_METHOD_NAME);
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                ProductWorkflowProp.S.PAY_METHOD);
                        String[] values = getArgs(j.payMethodCd, j.payMethodName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        result.add(new ErrorDetailDto(BLOCK_KEY_EXPENSE_DETAIL_TABLE, fieldId, j.tupleId.toString(),
                                masterName, values, message));
                    }
                    
                    // 経費区分マスタチェック
                    if (isNotEmpty(j.expTypeCd) && isEmpty(j.expTypeName)) {
                        String[] fieldId = getArgs(EXPENSE_DETAIL_EXP_TYPE_CD, EXPENSE_DETAIL_EXP_TYPE_NAME);
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                ProductWorkflowProp.S.EXP_TYPE);
                        String[] values = getArgs(j.expTypeCd, j.expTypeName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        
                        if (!ProcessType.VIEW_FOR_MATTER_ARCHIVE.equals(processType)) {
                            // 勘定科目、税区分をクリア
                            j.accountCd = null;
                            j.accountName = null;
                            j.taxTypeCd = null;
                            j.taxTypeName = null;
                            // 税率、税抜金額、税額をクリア
                            j.taxRate = null;
                            j.companyAmountExcTax = null;
                            j.companyAmountTax = null;
                        }
                        result.add(new ErrorDetailDto(BLOCK_KEY_EXPENSE_DETAIL_TABLE, fieldId, j.tupleId.toString(),
                                masterName, values, message));
                    }
                    
                    // 勘定科目マスタチェック
                    if (isNotEmpty(j.accountCd) && isEmpty(j.accountName)) {
                        String[] fieldId = getArgs(EXPENSE_DETAIL_ACCOUNT_CD, EXPENSE_DETAIL_ACCOUNT_NAME);
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                ProductWorkflowProp.S.ACCOUNT);
                        String[] values = getArgs(j.accountCd, j.accountName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        result.add(new ErrorDetailDto(BLOCK_KEY_EXPENSE_DETAIL_TABLE, fieldId, j.tupleId.toString(),
                                masterName, values, message));
                    }
                    
                    // 税区分マスタチェック
                    if (isNotEmpty(j.taxTypeCd) && isEmpty(j.taxTypeName)) {
                        String[] fieldId = getArgs(EXPENSE_DETAIL_TAX_TYPE_CD, EXPENSE_DETAIL_TAX_TYPE_NAME);
                        String masterName = propertyHelper.getSurface(contextHelper.getLoginUserLocale(),
                                ProductWorkflowProp.S.TAX_TYPE);
                        String[] values = getArgs(j.taxTypeCd, j.taxTypeName);
                        String message = propertyHelper.getMessage(ProductWorkflowProp.M.W0005, masterName);
                        
                        if (!ProcessType.VIEW_FOR_MATTER_ARCHIVE.equals(processType)) {
                            // 税率、税抜金額、税額をクリア
                            j.taxRate = null;
                            j.companyAmountExcTax = null;
                            j.companyAmountTax = null;
                        }
                        
                        result.add(new ErrorDetailDto(BLOCK_KEY_EXPENSE_DETAIL_TABLE, fieldId, j.tupleId.toString(),
                                masterName, values, message));
                    }
                }
            }
        }
        return result;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 使用していません
     * </p>
     * 
     * @deprecated
     */
    @Deprecated
    @Override
    protected List<String> getDtoPkDefList(String key) {
        List<String> list = new ArrayList<String>();
        list.add(SYSTEM_MATTER_ID);
        list.add(USER_DATA_ID);
        list.add(GADGET_CLASS);
        list.add(GADGET_INSTANCE);
        return list;
    }
    
    /**
     * 支払方法をガジェット間通信で取得.
     * 
     * @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_EXPENSE_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) {
        List<Map<String, Object>> blocjData = getJsonDataDetailBlock(BLOCK_KEY_EXPENSE_DETAIL_TABLE);
        Map<String, Object> retMap = new HashMap<String, Object>();
        BigDecimal sum = BigDecimal.ZERO;
        
        for (Map<String, Object> j : blocjData) {
            String strPaymentFlag = (String) j.get(EXPENSE_DETAIL_PAYMENT_FLAG);
            String strAmnt = StringUtil.toString(j.get(EXPENSE_DETAIL_COMPANY_AMOUNT_SUM));
            if (GenericFlag.isOff(strPaymentFlag)) {
                if (StringUtil.isNotEmpty(strAmnt)) {
                    sum = sum.add(new BigDecimal(strAmnt));
                }
            }
        }
        
        retMap.put(ClaimCompanyPayAmountIF.RTN_KEY_CLAIM_COMPANY_PAY_AMOUNT, sum);
        
        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_EXPENSE_DETAIL_TABLE);
        Map<String, Object> retMap = new HashMap<String, Object>();
        BigDecimal sum = BigDecimal.ZERO;
        
        for (Map<String, Object> j : blocjData) {
            String strPaymentFlag = (String) j.get(EXPENSE_DETAIL_PAYMENT_FLAG);
            String strAmnt = StringUtil.toString(j.get(EXPENSE_DETAIL_COMPANY_AMOUNT_SUM));
            if (GenericFlag.isOn(strPaymentFlag)) {
                if (StringUtil.isNotEmpty(strAmnt)) {
                    sum = sum.add(new BigDecimal(strAmnt));
                }
            }
        }
        
        retMap.put(ClaimTemporaryPayAmountIF.RTN_KEY_CLAIM_TEMPORARY_PAY_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_EXPENSE_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(EXPENSE_DETAIL_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_EXPENSE_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(EXPENSE_DETAIL_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<ExpenseDetailManagerDto> list = (List<ExpenseDetailManagerDto>) dataMap
                .get(BLOCK_KEY_EXPENSE_DETAIL_TABLE);
        int rv = expenseDetailManager.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(expenseDetailManager);
        return list;
    }
}

5.1.1.2.5. Logic

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

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.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_COMPANY_AMOUNT;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_COMPANY_AMOUNT_SUM;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_COMPANY_CURRENCY_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_COMPANY_RATE;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_DEPARTMENT_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_PAYMENT_FLAG;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_PAY_METHOD_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_PAY_TYPE_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_PROJECT_CD;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_QUANTITY;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_TRANS_AMOUNT;
import static jp.co.slcs.kaiden2.product_workflow.feature.conf.kaiden.gadget.expensedetail.ExpenseDetailFieldName.EXPENSE_DETAIL_TRANS_CURRENCY_CD;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
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.model.dto.OrderDto;
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.conf.ImwEntityCommonFieldNames;
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.manager.pay_type.PayTypeManager;
import jp.co.slcs.kaiden2.product_workflow.foundation.manager.pay_type.PayTypeManagerDto;

/**
 * 経費明細(標準)ガジェット(Logic).
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public class ExpenseDetailV01Logic extends AbstractExpenseDetailLogicBase implements ClaimExpenseAmountIF,
        ClaimExpenseDetailIF, ClaimTemporaryPayAmountIF, ClaimCompanyPayAmountIF, ClaimExpenceCountIF {
    
    /** コンストラクタ. */
    public ExpenseDetailV01Logic() {
        super();
    }
    
    /** PayTypeManager. */
    @Resource
    protected PayTypeManager payTypeManager;
    
    /**
     * {@inheritDoc}
     * <p>
     * サブクラスで追加定義します。<br>
     * <br>
     * <p>
     * <table border="1">
     * <tr>
     * <td align="center">対象フィールド名</td>
     * <td align="center">検証内容</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>
     * <tr>
     * <td>組織コード/プロジェクトコード</td>
     * <td>{@link RequiredAnyValidator 必須チェック(複数項目用)}</td>
     * <td align="center">入力/表示</td>
     * </tr>
     * </table>
     * </p>
     */
    @Override
    protected void defineValidateForNormal(GadgetMediatorParams params, boolean tmpFlg) throws KaidenSystemException,
            KaidenApplicationException {
        
        super.defineValidateForNormal(params, tmpFlg);
        
        // 取引通貨額
        addValidateOnlyInput(EXPENSE_DETAIL_TRANS_AMOUNT, VALID_NUMERIC_MIN, getArgs(0));
        // 会社通貨額
        addValidateOnlyInput(EXPENSE_DETAIL_COMPANY_AMOUNT, VALID_NUMERIC_MIN, getArgs(0));
        
        if (!tmpFlg) {
            // 組織コード
            addValidateOnlyInput(EXPENSE_DETAIL_DEPARTMENT_CD, VALID_REQUIRED_ANY, EXPENSE_DETAIL_DEPARTMENT_CD,
                    EXPENSE_DETAIL_PROJECT_CD);
            // プロジェクトコード
            addValidateOnlyInput(EXPENSE_DETAIL_PROJECT_CD, VALID_REQUIRED_ANY, EXPENSE_DETAIL_DEPARTMENT_CD,
                    EXPENSE_DETAIL_PROJECT_CD);
        }
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 下記補完を行います。
     * </p>
     * <ul>
     * <li>会社通貨コード:{@link CurrencyHelper#getCompanyCurrencyCd(String)}を設定</li>
     * <li>取引通貨コード:{@link CurrencyHelper#getCompanyCurrencyCd(String)}を設定</li>
     * <li>会社通貨額:取引通貨額の値をコピー</li>
     * <li>会社通貨換算レート:固定値:1を設定</li>
     * <li>支払方法:ガジェット間連携項目.支払方法コードを設定</li>
     * <li>数量:固定値:1を設定</li>
     * <li>立替フラグ:支払分類コードに紐づく立替フラグを支払分類マスタから取得して設定</li>
     * <li>会社通貨額:取引通貨額 * 通貨レートの計算結果</li>
     * <li>会社通貨額合計:会社通貨額 * 数量の計算結果</li>
     * </ul>
     */
    @Override
    protected void complementJsonData(GadgetMediatorParams params) {
        List<Map<String, Object>> blockDat = getJsonDataDetailBlock(BLOCK_KEY_EXPENSE_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(EXPENSE_DETAIL_COMPANY_CURRENCY_CD, companyCurrencyCd);
                
                // 取引通貨コード
                if (companyCurrencyCd == null) {
                    companyCurrencyCd = currencyHelper.getCompanyCurrencyCd((String) j.get(SEARCH_CRITERIA_COMPANY));
                }
                j.put(EXPENSE_DETAIL_TRANS_CURRENCY_CD, companyCurrencyCd);
                
                // 会社通貨換算レート
                j.put(EXPENSE_DETAIL_COMPANY_RATE, "1");
                
                // 数量
                j.put(EXPENSE_DETAIL_QUANTITY, "1");
                
                // 立替フラグ
                if (StringUtil.isNotEmpty((String) j.get(EXPENSE_DETAIL_PAY_TYPE_CD))) {
                    PayTypeManagerDto criteria = new PayTypeManagerDto();
                    criteria.companyCd = (String) j.get(SEARCH_CRITERIA_COMPANY);
                    criteria.payTypeCd = (String) j.get(EXPENSE_DETAIL_PAY_TYPE_CD);
                    criteria.searchCriteriaDate = dateHelper.toTimestamp((String) j
                            .get(ImwEntityCommonFieldNames.SEARCH_CRITERIA_DATE));
                    List<PayTypeManagerDto> retList = payTypeManager.selectListIncluedsSearchDateIgnoreAuthCompany(
                            criteria, new ArrayList<OrderDto>());
                    if (CollectionUtil.isNotEmpty(retList)) {
                        j.put(EXPENSE_DETAIL_PAYMENT_FLAG, retList.get(0).paymentFlag);
                    }
                }
            }
        }
    }
    
    /**
     * グローバルデータ補完処理をセット(ガジェット間通信を行うもの).
     * <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_EXPENSE_DETAIL_TABLE);
        
        if (CollectionUtil.isNotEmpty(blockDat)) {
            for (Map<String, Object> j : blockDat) {
                // 会社通貨額
                String companyAmount = StringUtil.toString(calcCompanyAmount((String) j.get(SEARCH_CRITERIA_COMPANY),
                        (String) j.get(EXPENSE_DETAIL_TRANS_CURRENCY_CD), (String) j.get(EXPENSE_DETAIL_TRANS_AMOUNT),
                        (String) j.get(EXPENSE_DETAIL_COMPANY_RATE)));
                j.put(EXPENSE_DETAIL_COMPANY_AMOUNT, companyAmount);
                
                // 会社通貨額合計
                j.put(EXPENSE_DETAIL_COMPANY_AMOUNT_SUM,
                        calcCompanyAmountSum((String) j.get(SEARCH_CRITERIA_COMPANY), companyAmount,
                                (String) j.get(EXPENSE_DETAIL_QUANTITY)));
            }
        }
    }
    
    /**
     * グローバルデータ補完処理.
     * <p>
     * 下記補完を行います。
     * </p>
     * <ul>
     * <li>支払方法コード:ガジェット間連携項目.支払方法コードを設定</li>
     * </ul>
     * 
     * @param params ガジェットメディエータ処理情報
     */
    public void globalComplementJsonData(GadgetMediatorParams params) {
        List<Map<String, Object>> blockDat = getJsonDataDetailBlock(BLOCK_KEY_EXPENSE_DETAIL_TABLE);
        
        String gcPayMethodCd = null;
        
        if (CollectionUtil.isNotEmpty(blockDat)) {
            for (Map<String, Object> j : blockDat) {
                // 支払方法コード
                if (gcPayMethodCd == null) {
                    gcPayMethodCd = getGadgetCouplingPayMethod();
                }
                j.put(EXPENSE_DETAIL_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.1.2.6. FieldName

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

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

/**
 * 経費明細ガジェット用 フィールド名定義クラス.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public final class ExpenseDetailFieldName extends ImwEntityCommonFieldNames {
    
    /**
     * コンストラクタ.
     */
    protected ExpenseDetailFieldName() {
    }
    
    /** 発生日. */
    public static final String EXPENSE_DETAIL_OCCUR_DATE = "occurDate";
    /** 摘要. */
    public static final String EXPENSE_DETAIL_SUMMARY = "summary";
    /** 経費区分コード. */
    public static final String EXPENSE_DETAIL_EXP_TYPE_CD = "expTypeCd";
    /** 勘定科目コード. */
    public static final String EXPENSE_DETAIL_ACCOUNT_CD = "accountCd";
    /** 税区分コード. */
    public static final String EXPENSE_DETAIL_TAX_TYPE_CD = "taxTypeCd";
    /** 税率. */
    public static final String EXPENSE_DETAIL_TAX_RATE = "taxRate";
    /** 数量. */
    public static final String EXPENSE_DETAIL_QUANTITY = "quantity";
    /** 取引通貨コード. */
    public static final String EXPENSE_DETAIL_TRANS_CURRENCY_CD = "transCurrencyCd";
    /** 取引通貨額. */
    public static final String EXPENSE_DETAIL_TRANS_AMOUNT = "transAmount";
    /** 会社通貨コード. */
    public static final String EXPENSE_DETAIL_COMPANY_CURRENCY_CD = "companyCurrencyCd";
    /** 会社通貨換算レート. */
    public static final String EXPENSE_DETAIL_COMPANY_RATE = "companyRate";
    /** 会社通貨額. */
    public static final String EXPENSE_DETAIL_COMPANY_AMOUNT = "companyAmount";
    /** 会社通貨税抜額. */
    public static final String EXPENSE_DETAIL_COMPANY_AMOUNT_EXC_TAX = "companyAmountExcTax";
    /** 会社通貨税額. */
    public static final String EXPENSE_DETAIL_COMPANY_AMOUNT_TAX = "companyAmountTax";
    /** 会社通貨額合計. */
    public static final String EXPENSE_DETAIL_COMPANY_AMOUNT_SUM = "companyAmountSum";
    /** 支払分類コード. */
    public static final String EXPENSE_DETAIL_PAY_TYPE_CD = "payTypeCd";
    /** 支払方法コード. */
    public static final String EXPENSE_DETAIL_PAY_METHOD_CD = "payMethodCd";
    /** 支払先コード. */
    public static final String EXPENSE_DETAIL_PAYEE_CD = "payeeCd";
    /** 支払先名. */
    public static final String EXPENSE_DETAIL_PAYEE_NAME = "payeeName";
    /** 組織セットコード. */
    public static final String EXPENSE_DETAIL_DEPARTMENT_SET_CD = "departmentSetCd";
    /** 組織コード. */
    public static final String EXPENSE_DETAIL_DEPARTMENT_CD = "departmentCd";
    /** プロジェクトコード. */
    public static final String EXPENSE_DETAIL_PROJECT_CD = "projectCd";
    
    /** 会社名. */
    public static final String EXPENSE_DETAIL_COMPANY_NAME = "companyName";
    /** 経費区分名称. */
    public static final String EXPENSE_DETAIL_EXP_TYPE_NAME = "expTypeName";
    /** 勘定科目名称. */
    public static final String EXPENSE_DETAIL_ACCOUNT_NAME = "accountName";
    /** 税区分名称. */
    public static final String EXPENSE_DETAIL_TAX_TYPE_NAME = "taxTypeName";
    /** 取引通貨名称. */
    public static final String EXPENSE_DETAIL_TRANS_CURRENCY_NAME = "transCurrencyName";
    /** 会社通貨名称. */
    public static final String EXPENSE_DETAIL_COMPANY_CURRENCY_NAME = "companyCurrencyName";
    /** 支払分類名称. */
    public static final String EXPENSE_DETAIL_PAY_TYPE_NAME = "payTypeName";
    /** 支払方法名称. */
    public static final String EXPENSE_DETAIL_PAY_METHOD_NAME = "payMethodName";
    /** 組織セット名称. */
    public static final String EXPENSE_DETAIL_DEPARTMENT_SET_NAME = "departmentSetName";
    /** 組織名称. */
    public static final String EXPENSE_DETAIL_DEPARTMENT_NAME = "departmentName";
    /** プロジェクト名称. */
    public static final String EXPENSE_DETAIL_PROJECT_NAME = "projectName";
    /** 立替フラグ. */
    public static final String EXPENSE_DETAIL_PAYMENT_FLAG = "paymentFlag";
    
}

5.1.1.2.7. Manager

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

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 ExpenseDetailManager extends PluginGadgetManager<ExpenseDetailManagerDto> {
    
    /** {@link ExpenseDetailManager#selectView(CriteriaForSqlDto) リスト検索(マスタ情報付与)}用SQLファイル名. */
    static final String SELECT_SQLFILE_NM = "selectView.sql";
    
    /** {@link ExpenseDetailManager#selectViewForCopy(CriteriaForSqlDto) 申請書コピー用検索}用SQLファイル名. */
    static final String SELECT_SQLFILE_NM_FOR_COPY = "selectViewForCopy.sql";
    
    /** {@link ExpenseDetailManager#selectForJournalSourceDtl(CriteriaForSqlDto) 仕訳連携用明細検索}用SQLファイル名. */
    static final String SELECT_FOR_JOURNAL_SOURCE_DTL = "selectForJournalSourceDtl.sql";
    
    /**
     * 仕訳連携用明細テーブル登録用データ取得.
     * 
     * @param criteria 検索条件
     * @return 検索結果
     */
    public List<BeanMap> selectForJournalSourceDtl(CriteriaForSqlDto criteria);
    
}

5.1.1.2.8. Manager(実装)

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/foundation/manager/expensedetail/impl/ExpenseDetailManagerImpl.java
package jp.co.slcs.kaiden2.product_workflow.foundation.manager.expensedetail.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.expensedetail.ExpenseDetailManager;
import jp.co.slcs.kaiden2.product_workflow.foundation.manager.expensedetail.ExpenseDetailManagerDto;
import jp.co.slcs.kaiden2.product_workflow.foundation.model.service.K30tExpenseDetailService;
import jp.co.slcs.kaiden2.product_workflow.foundation.model.service.Ka30tExpenseDetailService;
import org.seasar.util.beans.util.BeanMap;

/**
 * 経費明細テーブルへの各種操作を提供するAPI.
 * 本APIは、主にデータベース操作を行いますが、より業務的な機能を付加した操作を提供します。<br>
 * 検索系機能を使用する際には、{@link CriteriaForSqlDto}クラスをパラメータとして渡し、<br>
 * {@link ExpenseDetailManagerDto}リストが戻り値として返却されます。<br>
 * <br>
 * 更新系機能を使用する際には、{@link ExpenseDetailManagerDto}クラスまたはそのリストをパラメータとして渡し、<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 ExpenseDetailManagerDto}</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 ExpenseDetailManagerImpl extends AbstractWfManager<ExpenseDetailManagerDto> implements
        ExpenseDetailManager {
    
    /** K30tExpenseDetailService. */
    @Resource
    protected K30tExpenseDetailService k30tExpenseDetailService;
    
    /** Ka30tExpenseDetailService. */
    @Resource
    protected Ka30tExpenseDetailService ka30tExpenseDetailService;
    
    /**
     * {@inheritDoc}
     */
    @Override
    public ExpenseDetailManagerDto selectByPk(ExpenseDetailManagerDto criteria) {
        return super.selectByPkIgnoreAuthority(k30tExpenseDetailService, criteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public List<ExpenseDetailManagerDto> selectList(ExpenseDetailManagerDto criteria) {
        return super.selectPkUsedUserDataId(k30tExpenseDetailService, criteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public List<ExpenseDetailManagerDto> selectView(CriteriaForSqlDto criteria) {
        List<OrderDto> order = new ArrayList<OrderDto>();
        order.add(new OrderDto(OrderType.ASC, ImwEntityCommonFieldNames.ROW_NUMBER));
        return super.selectBySqlForView(k30tExpenseDetailService, SELECT_SQLFILE_NM, criteria, order);
    }
    
    /** {@inheritDoc} */
    @Override
    public List<ExpenseDetailManagerDto> selectViewForCopy(CriteriaForSqlDto criteria) {
        List<OrderDto> order = new ArrayList<OrderDto>();
        order.add(new OrderDto(OrderType.ASC, ImwEntityCommonFieldNames.ROW_NUMBER));
        return super.selectBySqlForViewForCopy(k30tExpenseDetailService, SELECT_SQLFILE_NM_FOR_COPY, criteria, order);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public List<ExpenseDetailManagerDto> selectViewArchive(CriteriaForSqlDto criteria) {
        List<OrderDto> order = new ArrayList<OrderDto>();
        order.add(new OrderDto(OrderType.ASC, ImwEntityCommonFieldNames.ROW_NUMBER));
        return super.selectListForViewForArchive(ka30tExpenseDetailService, criteria, order);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int entry(List<ExpenseDetailManagerDto> dataList) {
        return CollectionUtil.summaryInt(super.insertBatch(k30tExpenseDetailService, dataList));
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int renew(List<ExpenseDetailManagerDto> dataList) {
        return CollectionUtil.summaryInt(super.renewBatch(k30tExpenseDetailService, dataList));
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int remove(ExpenseDetailManagerDto data) {
        return super.deleteUsedUserDataId(k30tExpenseDetailService, data);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int removeAll(ExpenseDetailManagerDto data) {
        return super.deleteNoUsedUserDataId(k30tExpenseDetailService, data);
    }
    
    /**
     * {@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 matterArchiveRegister(CriteriaForSqlDto criteria, List<ExpenseDetailManagerDto> dataList) {
        return super.entryArchive(ka30tExpenseDetailService, criteria, dataList);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int matterArchivePostDelete(CriteriaForSqlDto criteria) {
        return super.deleteNoUsedUserDataId(k30tExpenseDetailService, criteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int removeAllArchive(CriteriaForSqlDto criteria) {
        return super.deleteNoUsedUserDataIdForArchive(ka30tExpenseDetailService, criteria);
    }
    
}

5.1.1.2.9. ManagerDto

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

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 ExpenseDetailManagerDto 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 Timestamp occurDate;
    /** 摘要. */
    public String summary;
    /** 経費区分コード. */
    public String expTypeCd;
    /** 勘定科目コード. */
    public String accountCd;
    /** 税区分コード. */
    public String taxTypeCd;
    /** 税率. */
    public BigDecimal taxRate;
    /** 数量. */
    public BigDecimal quantity;
    /** 取引通貨コード. */
    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 searchCriteriaCompany;
    /** 取引通貨名称. */
    public String transCurrencyName;
    /** 会社通貨名称. */
    public String companyCurrencyName;
    /** 組織名称. */
    public String departmentName;
    /** プロジェクト名称. */
    public String projectName;
    /** 経費区分名称. */
    public String expTypeName;
    /** 勘定科目名称. */
    public String accountName;
    /** 税区分名称. */
    public String taxTypeName;
    /** 支払分類名称. */
    public String payTypeName;
    /** 支払方法名称. */
    public String payMethodName;
    /** 立替フラグ. */
    public String paymentFlag;
    
}

5.1.1.3. Java(S2JDBC)

5.1.1.3.1. Entity

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

import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;
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_expense_detail")
@Generated(value = {"S2JDBC-Gen 2.4.46", "org.seasar.extension.jdbc.gen.internal.model.EntityModelFactoryImpl" })
public final class K30tExpenseDetail 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 = "occur_date", columnDefinition = "timestamp(6)", nullable = true, unique = false)
    public Timestamp occurDate;

    /** 摘要. */
    @Column(name = "summary", columnDefinition = "varchar2(4000)", nullable = true, unique = false)
    public String summary;

    /** 経費区分コード. */
    @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 = "quantity", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal quantity;

    /** 取引通貨コード. */
    @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/Ka30tExpenseDetail.java
package jp.co.slcs.kaiden2.product_workflow.foundation.model.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;
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_expense_detail")
@Generated(value = {"S2JDBC-Gen 2.4.46", "org.seasar.extension.jdbc.gen.internal.model.EntityModelFactoryImpl" })
public final class Ka30tExpenseDetail 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 = "occur_date", columnDefinition = "timestamp(6)", nullable = true, unique = false)
    public Timestamp occurDate;

    /** 摘要. */
    @Column(name = "summary", columnDefinition = "varchar2(4000)", nullable = true, unique = false)
    public String summary;

    /** 経費区分コード. */
    @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 = "quantity", columnDefinition = "number(28,10)", nullable = true, unique = false)
    public BigDecimal quantity;

    /** 取引通貨コード. */
    @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.1.3.2. Names

  • Path
    src/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/entity/K30tExpenseDetailNames.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 K30tExpenseDetail}の名称クラス.
 * 
 * @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 K30tExpenseDetailNames {
    
    /**
     * デフォルトコンストラクタ.
     */
     private K30tExpenseDetailNames() {
         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");
    }
    
    /**
     * occurDateのプロパティ名を返却.
     * 
     * @return occurDateのプロパティ名
     */
    public static PropertyName<Timestamp> occurDate() {
        return new PropertyName<Timestamp>("occurDate");
    }
    
    /**
     * summaryのプロパティ名を返却.
     * 
     * @return summaryのプロパティ名
     */
    public static PropertyName<String> summary() {
        return new PropertyName<String>("summary");
    }
    
    /**
     * 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");
    }
    
    /**
     * quantityのプロパティ名を返却.
     * 
     * @return quantityのプロパティ名
     */
    public static PropertyName<BigDecimal> quantity() {
        return new PropertyName<BigDecimal>("quantity");
    }
    
    /**
     * 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 _K30tExpenseDetailNames extends PropertyName<K30tExpenseDetail> {
        
        /**
         * インスタンスを構築.
         */
        public _K30tExpenseDetailNames() {
        }
        
        /**
         * インスタンスを構築.
         * 
         * @param name 名前
         */
        public _K30tExpenseDetailNames(final String name) {
            super(name);
        }
        
        /**
         * インスタンスを構築.
         * 
         * @param parent 親
         * @param name 名前
         */
        public _K30tExpenseDetailNames(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");
        }
        
        /**
         * occurDateのプロパティ名を返却.
         *
         * @return occurDateのプロパティ名
         */
        public PropertyName<Timestamp> occurDate() {
            return new PropertyName<Timestamp>(this, "occurDate");
        }
        
        /**
         * summaryのプロパティ名を返却.
         *
         * @return summaryのプロパティ名
         */
        public PropertyName<String> summary() {
            return new PropertyName<String>(this, "summary");
        }
        
        /**
         * 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");
        }
        
        /**
         * quantityのプロパティ名を返却.
         *
         * @return quantityのプロパティ名
         */
        public PropertyName<BigDecimal> quantity() {
            return new PropertyName<BigDecimal>(this, "quantity");
        }
        
        /**
         * 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/Ka30tExpenseDetailNames.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 Ka30tExpenseDetail}の名称クラス.
 * 
 * @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 Ka30tExpenseDetailNames {
    
    /**
     * デフォルトコンストラクタ.
     */
     private Ka30tExpenseDetailNames() {
         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");
    }
    
    /**
     * occurDateのプロパティ名を返却.
     * 
     * @return occurDateのプロパティ名
     */
    public static PropertyName<Timestamp> occurDate() {
        return new PropertyName<Timestamp>("occurDate");
    }
    
    /**
     * summaryのプロパティ名を返却.
     * 
     * @return summaryのプロパティ名
     */
    public static PropertyName<String> summary() {
        return new PropertyName<String>("summary");
    }
    
    /**
     * 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");
    }
    
    /**
     * quantityのプロパティ名を返却.
     * 
     * @return quantityのプロパティ名
     */
    public static PropertyName<BigDecimal> quantity() {
        return new PropertyName<BigDecimal>("quantity");
    }
    
    /**
     * 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 _Ka30tExpenseDetailNames extends PropertyName<Ka30tExpenseDetail> {
        
        /**
         * インスタンスを構築.
         */
        public _Ka30tExpenseDetailNames() {
        }
        
        /**
         * インスタンスを構築.
         * 
         * @param name 名前
         */
        public _Ka30tExpenseDetailNames(final String name) {
            super(name);
        }
        
        /**
         * インスタンスを構築.
         * 
         * @param parent 親
         * @param name 名前
         */
        public _Ka30tExpenseDetailNames(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");
        }
        
        /**
         * occurDateのプロパティ名を返却.
         *
         * @return occurDateのプロパティ名
         */
        public PropertyName<Timestamp> occurDate() {
            return new PropertyName<Timestamp>(this, "occurDate");
        }
        
        /**
         * summaryのプロパティ名を返却.
         *
         * @return summaryのプロパティ名
         */
        public PropertyName<String> summary() {
            return new PropertyName<String>(this, "summary");
        }
        
        /**
         * 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");
        }
        
        /**
         * quantityのプロパティ名を返却.
         *
         * @return quantityのプロパティ名
         */
        public PropertyName<BigDecimal> quantity() {
            return new PropertyName<BigDecimal>(this, "quantity");
        }
        
        /**
         * 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.1.3.3. Service

  • Path
    src/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/K30tExpenseDetailService.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.K30tExpenseDetail;

/**
 * {@link K30tExpenseDetail}のサービスクラス.
 * 
 * @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 K30tExpenseDetailService extends GenerateService<K30tExpenseDetail> {
    //
}
  • Path
    src/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/Ka30tExpenseDetailService.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.Ka30tExpenseDetail;

/**
 * {@link Ka30tExpenseDetail}のサービスクラス.
 * 
 * @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 Ka30tExpenseDetailService extends GenerateService<Ka30tExpenseDetail> {
    //
}

5.1.1.3.4. Condition

  • Path
    src/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/K30tExpenseDetailCondition.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 K30tExpenseDetail}の条件クラス.
 * 
 * @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 K30tExpenseDetailCondition extends
        AbstractEntityCondition<K30tExpenseDetailCondition> {
    
    /**
     * インスタンスを構築.
     */
    public K30tExpenseDetailCondition() {
    }
    
    /**
     * インスタンスを構築.
     * 
     * @param prefix プレフィックス
     * @param where 検索条件
     */
    public K30tExpenseDetailCondition(String prefix, ComplexWhere where) {
        super(prefix, where);
    }
    
    /** systemMatterIdの条件. */
    public NotNullableStringCondition<K30tExpenseDetailCondition> systemMatterId =
        new NotNullableStringCondition<K30tExpenseDetailCondition>("systemMatterId", this);
    
    /** userDataIdの条件. */
    public NotNullableStringCondition<K30tExpenseDetailCondition> userDataId =
        new NotNullableStringCondition<K30tExpenseDetailCondition>("userDataId", this);
    
    /** gadgetClassの条件. */
    public NotNullableStringCondition<K30tExpenseDetailCondition> gadgetClass =
        new NotNullableStringCondition<K30tExpenseDetailCondition>("gadgetClass", this);
    
    /** gadgetInstanceの条件. */
    public NotNullableCondition<K30tExpenseDetailCondition, Long> gadgetInstance =
        new NotNullableCondition<K30tExpenseDetailCondition, Long>("gadgetInstance", this);
    
    /** tupleIdの条件. */
    public NotNullableCondition<K30tExpenseDetailCondition, Long> tupleId =
        new NotNullableCondition<K30tExpenseDetailCondition, Long>("tupleId", this);
    
    /** gadgetIdの条件. */
    public NotNullableStringCondition<K30tExpenseDetailCondition> gadgetId =
        new NotNullableStringCondition<K30tExpenseDetailCondition>("gadgetId", this);
    
    /** gadgetVariationの条件. */
    public NotNullableStringCondition<K30tExpenseDetailCondition> gadgetVariation =
        new NotNullableStringCondition<K30tExpenseDetailCondition>("gadgetVariation", this);
    
    /** rowNumberの条件. */
    public NotNullableCondition<K30tExpenseDetailCondition, Long> rowNumber =
        new NotNullableCondition<K30tExpenseDetailCondition, Long>("rowNumber", this);
    
    /** occurDateの条件. */
    public NullableCondition<K30tExpenseDetailCondition, Timestamp> occurDate =
        new NullableCondition<K30tExpenseDetailCondition, Timestamp>("occurDate", this);
    
    /** summaryの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> summary =
        new NullableStringCondition<K30tExpenseDetailCondition>("summary", this);
    
    /** expTypeCdの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> expTypeCd =
        new NullableStringCondition<K30tExpenseDetailCondition>("expTypeCd", this);
    
    /** accountCdの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> accountCd =
        new NullableStringCondition<K30tExpenseDetailCondition>("accountCd", this);
    
    /** taxTypeCdの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> taxTypeCd =
        new NullableStringCondition<K30tExpenseDetailCondition>("taxTypeCd", this);
    
    /** taxRateの条件. */
    public NullableCondition<K30tExpenseDetailCondition, BigDecimal> taxRate =
        new NullableCondition<K30tExpenseDetailCondition, BigDecimal>("taxRate", this);
    
    /** quantityの条件. */
    public NullableCondition<K30tExpenseDetailCondition, BigDecimal> quantity =
        new NullableCondition<K30tExpenseDetailCondition, BigDecimal>("quantity", this);
    
    /** transCurrencyCdの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> transCurrencyCd =
        new NullableStringCondition<K30tExpenseDetailCondition>("transCurrencyCd", this);
    
    /** transAmountの条件. */
    public NullableCondition<K30tExpenseDetailCondition, BigDecimal> transAmount =
        new NullableCondition<K30tExpenseDetailCondition, BigDecimal>("transAmount", this);
    
    /** companyCurrencyCdの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> companyCurrencyCd =
        new NullableStringCondition<K30tExpenseDetailCondition>("companyCurrencyCd", this);
    
    /** companyRateの条件. */
    public NullableCondition<K30tExpenseDetailCondition, BigDecimal> companyRate =
        new NullableCondition<K30tExpenseDetailCondition, BigDecimal>("companyRate", this);
    
    /** companyAmountの条件. */
    public NullableCondition<K30tExpenseDetailCondition, BigDecimal> companyAmount =
        new NullableCondition<K30tExpenseDetailCondition, BigDecimal>("companyAmount", this);
    
    /** companyAmountExcTaxの条件. */
    public NullableCondition<K30tExpenseDetailCondition, BigDecimal> companyAmountExcTax =
        new NullableCondition<K30tExpenseDetailCondition, BigDecimal>("companyAmountExcTax", this);
    
    /** companyAmountTaxの条件. */
    public NullableCondition<K30tExpenseDetailCondition, BigDecimal> companyAmountTax =
        new NullableCondition<K30tExpenseDetailCondition, BigDecimal>("companyAmountTax", this);
    
    /** companyAmountSumの条件. */
    public NullableCondition<K30tExpenseDetailCondition, BigDecimal> companyAmountSum =
        new NullableCondition<K30tExpenseDetailCondition, BigDecimal>("companyAmountSum", this);
    
    /** payTypeCdの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> payTypeCd =
        new NullableStringCondition<K30tExpenseDetailCondition>("payTypeCd", this);
    
    /** payMethodCdの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> payMethodCd =
        new NullableStringCondition<K30tExpenseDetailCondition>("payMethodCd", this);
    
    /** payeeCdの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> payeeCd =
        new NullableStringCondition<K30tExpenseDetailCondition>("payeeCd", this);
    
    /** payeeNameの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> payeeName =
        new NullableStringCondition<K30tExpenseDetailCondition>("payeeName", this);
    
    /** departmentSetCdの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> departmentSetCd =
        new NullableStringCondition<K30tExpenseDetailCondition>("departmentSetCd", this);
    
    /** departmentCdの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> departmentCd =
        new NullableStringCondition<K30tExpenseDetailCondition>("departmentCd", this);
    
    /** projectCdの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> projectCd =
        new NullableStringCondition<K30tExpenseDetailCondition>("projectCd", this);
    
    /** extensionAの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> extensionA =
        new NullableStringCondition<K30tExpenseDetailCondition>("extensionA", this);
    
    /** extensionBの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> extensionB =
        new NullableStringCondition<K30tExpenseDetailCondition>("extensionB", this);
    
    /** extensionCの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> extensionC =
        new NullableStringCondition<K30tExpenseDetailCondition>("extensionC", this);
    
    /** extensionDの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> extensionD =
        new NullableStringCondition<K30tExpenseDetailCondition>("extensionD", this);
    
    /** extensionEの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> extensionE =
        new NullableStringCondition<K30tExpenseDetailCondition>("extensionE", this);
    
    /** extensionFの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> extensionF =
        new NullableStringCondition<K30tExpenseDetailCondition>("extensionF", this);
    
    /** extensionGの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> extensionG =
        new NullableStringCondition<K30tExpenseDetailCondition>("extensionG", this);
    
    /** extensionHの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> extensionH =
        new NullableStringCondition<K30tExpenseDetailCondition>("extensionH", this);
    
    /** extensionIの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> extensionI =
        new NullableStringCondition<K30tExpenseDetailCondition>("extensionI", this);
    
    /** extensionJの条件. */
    public NullableStringCondition<K30tExpenseDetailCondition> extensionJ =
        new NullableStringCondition<K30tExpenseDetailCondition>("extensionJ", this);
    
    /** entryTsの条件. */
    public NotNullableCondition<K30tExpenseDetailCondition, Timestamp> entryTs =
        new NotNullableCondition<K30tExpenseDetailCondition, Timestamp>("entryTs", this);
    
    /** entryUserCdの条件. */
    public NotNullableStringCondition<K30tExpenseDetailCondition> entryUserCd =
        new NotNullableStringCondition<K30tExpenseDetailCondition>("entryUserCd", this);
    
    /** renewCntの条件. */
    public NotNullableCondition<K30tExpenseDetailCondition, Long> renewCnt =
        new NotNullableCondition<K30tExpenseDetailCondition, Long>("renewCnt", this);
    
    /** renewTsの条件. */
    public NotNullableCondition<K30tExpenseDetailCondition, Timestamp> renewTs =
        new NotNullableCondition<K30tExpenseDetailCondition, Timestamp>("renewTs", this);
    
    /** renewUserCdの条件. */
    public NotNullableStringCondition<K30tExpenseDetailCondition> renewUserCd =
        new NotNullableStringCondition<K30tExpenseDetailCondition>("renewUserCd", this);
}
  • Path
    src/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/Ka30tExpenseDetailCondition.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 Ka30tExpenseDetail}の条件クラス.
 * 
 * @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 Ka30tExpenseDetailCondition extends
        AbstractEntityCondition<Ka30tExpenseDetailCondition> {
    
    /**
     * インスタンスを構築.
     */
    public Ka30tExpenseDetailCondition() {
    }
    
    /**
     * インスタンスを構築.
     * 
     * @param prefix プレフィックス
     * @param where 検索条件
     */
    public Ka30tExpenseDetailCondition(String prefix, ComplexWhere where) {
        super(prefix, where);
    }
    
    /** systemMatterIdの条件. */
    public NotNullableStringCondition<Ka30tExpenseDetailCondition> systemMatterId =
        new NotNullableStringCondition<Ka30tExpenseDetailCondition>("systemMatterId", this);
    
    /** userDataIdの条件. */
    public NotNullableStringCondition<Ka30tExpenseDetailCondition> userDataId =
        new NotNullableStringCondition<Ka30tExpenseDetailCondition>("userDataId", this);
    
    /** gadgetClassの条件. */
    public NotNullableStringCondition<Ka30tExpenseDetailCondition> gadgetClass =
        new NotNullableStringCondition<Ka30tExpenseDetailCondition>("gadgetClass", this);
    
    /** gadgetInstanceの条件. */
    public NotNullableCondition<Ka30tExpenseDetailCondition, Long> gadgetInstance =
        new NotNullableCondition<Ka30tExpenseDetailCondition, Long>("gadgetInstance", this);
    
    /** tupleIdの条件. */
    public NotNullableCondition<Ka30tExpenseDetailCondition, Long> tupleId =
        new NotNullableCondition<Ka30tExpenseDetailCondition, Long>("tupleId", this);
    
    /** localeIdの条件. */
    public NotNullableStringCondition<Ka30tExpenseDetailCondition> localeId =
        new NotNullableStringCondition<Ka30tExpenseDetailCondition>("localeId", this);
    
    /** archiveMonthの条件. */
    public NotNullableStringCondition<Ka30tExpenseDetailCondition> archiveMonth =
        new NotNullableStringCondition<Ka30tExpenseDetailCondition>("archiveMonth", this);
    
    /** gadgetIdの条件. */
    public NotNullableStringCondition<Ka30tExpenseDetailCondition> gadgetId =
        new NotNullableStringCondition<Ka30tExpenseDetailCondition>("gadgetId", this);
    
    /** gadgetVariationの条件. */
    public NotNullableStringCondition<Ka30tExpenseDetailCondition> gadgetVariation =
        new NotNullableStringCondition<Ka30tExpenseDetailCondition>("gadgetVariation", this);
    
    /** rowNumberの条件. */
    public NotNullableCondition<Ka30tExpenseDetailCondition, Long> rowNumber =
        new NotNullableCondition<Ka30tExpenseDetailCondition, Long>("rowNumber", this);
    
    /** occurDateの条件. */
    public NullableCondition<Ka30tExpenseDetailCondition, Timestamp> occurDate =
        new NullableCondition<Ka30tExpenseDetailCondition, Timestamp>("occurDate", this);
    
    /** summaryの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> summary =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("summary", this);
    
    /** expTypeCdの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> expTypeCd =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("expTypeCd", this);
    
    /** accountCdの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> accountCd =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("accountCd", this);
    
    /** taxTypeCdの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> taxTypeCd =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("taxTypeCd", this);
    
    /** taxRateの条件. */
    public NullableCondition<Ka30tExpenseDetailCondition, BigDecimal> taxRate =
        new NullableCondition<Ka30tExpenseDetailCondition, BigDecimal>("taxRate", this);
    
    /** quantityの条件. */
    public NullableCondition<Ka30tExpenseDetailCondition, BigDecimal> quantity =
        new NullableCondition<Ka30tExpenseDetailCondition, BigDecimal>("quantity", this);
    
    /** transCurrencyCdの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> transCurrencyCd =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("transCurrencyCd", this);
    
    /** transAmountの条件. */
    public NullableCondition<Ka30tExpenseDetailCondition, BigDecimal> transAmount =
        new NullableCondition<Ka30tExpenseDetailCondition, BigDecimal>("transAmount", this);
    
    /** companyCurrencyCdの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> companyCurrencyCd =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("companyCurrencyCd", this);
    
    /** companyRateの条件. */
    public NullableCondition<Ka30tExpenseDetailCondition, BigDecimal> companyRate =
        new NullableCondition<Ka30tExpenseDetailCondition, BigDecimal>("companyRate", this);
    
    /** companyAmountの条件. */
    public NullableCondition<Ka30tExpenseDetailCondition, BigDecimal> companyAmount =
        new NullableCondition<Ka30tExpenseDetailCondition, BigDecimal>("companyAmount", this);
    
    /** companyAmountExcTaxの条件. */
    public NullableCondition<Ka30tExpenseDetailCondition, BigDecimal> companyAmountExcTax =
        new NullableCondition<Ka30tExpenseDetailCondition, BigDecimal>("companyAmountExcTax", this);
    
    /** companyAmountTaxの条件. */
    public NullableCondition<Ka30tExpenseDetailCondition, BigDecimal> companyAmountTax =
        new NullableCondition<Ka30tExpenseDetailCondition, BigDecimal>("companyAmountTax", this);
    
    /** companyAmountSumの条件. */
    public NullableCondition<Ka30tExpenseDetailCondition, BigDecimal> companyAmountSum =
        new NullableCondition<Ka30tExpenseDetailCondition, BigDecimal>("companyAmountSum", this);
    
    /** payTypeCdの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> payTypeCd =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("payTypeCd", this);
    
    /** payMethodCdの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> payMethodCd =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("payMethodCd", this);
    
    /** payeeCdの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> payeeCd =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("payeeCd", this);
    
    /** payeeNameの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> payeeName =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("payeeName", this);
    
    /** departmentSetCdの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> departmentSetCd =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("departmentSetCd", this);
    
    /** departmentCdの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> departmentCd =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("departmentCd", this);
    
    /** projectCdの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> projectCd =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("projectCd", this);
    
    /** expTypeNameの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> expTypeName =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("expTypeName", this);
    
    /** accountNameの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> accountName =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("accountName", this);
    
    /** taxTypeNameの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> taxTypeName =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("taxTypeName", this);
    
    /** transCurrencyNameの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> transCurrencyName =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("transCurrencyName", this);
    
    /** companyCurrencyNameの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> companyCurrencyName =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("companyCurrencyName", this);
    
    /** payTypeNameの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> payTypeName =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("payTypeName", this);
    
    /** paymentFlagの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> paymentFlag =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("paymentFlag", this);
    
    /** payMethodNameの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> payMethodName =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("payMethodName", this);
    
    /** departmentNameの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> departmentName =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("departmentName", this);
    
    /** projectNameの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> projectName =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("projectName", this);
    
    /** extensionAの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> extensionA =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("extensionA", this);
    
    /** extensionBの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> extensionB =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("extensionB", this);
    
    /** extensionCの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> extensionC =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("extensionC", this);
    
    /** extensionDの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> extensionD =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("extensionD", this);
    
    /** extensionEの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> extensionE =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("extensionE", this);
    
    /** extensionFの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> extensionF =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("extensionF", this);
    
    /** extensionGの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> extensionG =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("extensionG", this);
    
    /** extensionHの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> extensionH =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("extensionH", this);
    
    /** extensionIの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> extensionI =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("extensionI", this);
    
    /** extensionJの条件. */
    public NullableStringCondition<Ka30tExpenseDetailCondition> extensionJ =
        new NullableStringCondition<Ka30tExpenseDetailCondition>("extensionJ", this);
    
    /** entryTsの条件. */
    public NotNullableCondition<Ka30tExpenseDetailCondition, Timestamp> entryTs =
        new NotNullableCondition<Ka30tExpenseDetailCondition, Timestamp>("entryTs", this);
    
    /** entryUserCdの条件. */
    public NotNullableStringCondition<Ka30tExpenseDetailCondition> entryUserCd =
        new NotNullableStringCondition<Ka30tExpenseDetailCondition>("entryUserCd", this);
    
    /** renewCntの条件. */
    public NotNullableCondition<Ka30tExpenseDetailCondition, Long> renewCnt =
        new NotNullableCondition<Ka30tExpenseDetailCondition, Long>("renewCnt", this);
    
    /** renewTsの条件. */
    public NotNullableCondition<Ka30tExpenseDetailCondition, Timestamp> renewTs =
        new NotNullableCondition<Ka30tExpenseDetailCondition, Timestamp>("renewTs", this);
    
    /** renewUserCdの条件. */
    public NotNullableStringCondition<Ka30tExpenseDetailCondition> renewUserCd =
        new NotNullableStringCondition<Ka30tExpenseDetailCondition>("renewUserCd", this);
}

5.1.1.4. SQL

5.1.1.4.1. 検索

  • Path
    src/main/resources/META-INF/sql/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/K30tExpenseDetailService/selectView.sql
select
    t.system_matter_id,
    t.user_data_id,
    t.gadget_class,
    t.gadget_instance,
    t.tuple_id,
    t.gadget_id,
    t.gadget_variation,
    t.row_number,
    t.occur_date,
    t.summary,
    t.exp_type_cd,
    t.account_cd,
    t.tax_type_cd,
    t.tax_rate,
    t.quantity,
    t.trans_currency_cd,
    t.trans_amount,
    t.company_currency_cd,
    t.company_rate,
    t.company_amount,
    t.company_amount_exc_tax,
    t.company_amount_tax,
    t.company_amount_sum,
    t.pay_type_cd,
    t.pay_method_cd,
    t.payee_cd,
    t.payee_name,
    t.department_set_cd,
    t.department_cd,
    t.project_cd,
    t.extension_a,
    t.extension_b,
    t.extension_c,
    t.extension_d,
    t.extension_e,
    t.extension_f,
    t.extension_g,
    t.extension_h,
    t.extension_i,
    t.extension_j,
    t.entry_ts,
    t.entry_user_cd,
    t.renew_cnt,
    t.renew_ts,
    t.renew_user_cd,
    c1.search_criteria_company,
    m1.currency_name as trans_currency_name,
    m2.department_name,
    m3.project_name,
    m4.pay_type_name,
    m5.pay_method_name,
    m6.currency_name as company_currency_name,
    m7.exp_type_name,
    m8.account_name,
    m9.tax_type_name,
    m4.payment_flag
from
    k30t_expense_detail t
    inner join
        k20c_matter_control c1
    on
        t.system_matter_id = c1.system_matter_id
    and
        t.user_data_id = c1.user_data_id
    left outer join imm_currency m1
    on
        c1.search_criteria_company = m1.company_cd
    and
        t.trans_currency_cd = m1.currency_cd
    and
        /*localeId*/'ja' = m1.locale_id
    and
        m1.delete_flag = '0'
    left outer join
        imm_department m2
    on
        c1.search_criteria_company = m2.company_cd
    and
        t.department_set_cd = m2.department_set_cd
    and
        t.department_cd = m2.department_cd
    and
        /*localeId*/'ja' = m2.locale_id
    and
        c1.search_criteria_date >= m2.start_date
    and
        c1.search_criteria_date < m2.end_date
    and
        m2.delete_flag = '0'
    left outer join
        k30m_project m3
    on
        c1.search_criteria_company = m3.company_cd
    and
        t.project_cd = m3.project_cd
    and
        c1.search_criteria_date >= m3.start_date
    and
        c1.search_criteria_date < m3.end_date
    and
        /*localeId*/'ja' = m3.locale_id
    and
        m3.delete_flag = '0'
    left outer join
        k30m_pay_type m4
    on
        c1.search_criteria_company = m4.company_cd
    and
        t.pay_type_cd = m4.pay_type_cd
    and
        /*localeId*/'ja' = m4.locale_id
    and
        c1.search_criteria_date >= m4.start_date
    and
        c1.search_criteria_date < m4.end_date
    and
        m4.delete_flag = '0'
    left outer join
        k30m_pay_method m5
    on
        c1.search_criteria_company = m5.company_cd
    and
        t.pay_method_cd = m5.pay_method_cd
    and
        /*localeId*/'ja' = m5.locale_id
    and
        c1.search_criteria_date >= m5.start_date
    and
        c1.search_criteria_date < m5.end_date
    and
        m5.delete_flag = '0'
    left outer join imm_currency m6
    on
        c1.search_criteria_company = m6.company_cd
    and
        t.company_currency_cd = m6.currency_cd
    and
        /*localeId*/'ja' = m6.locale_id
    and
        m6.delete_flag = '0'
    left outer join
        k30m_exp_type m7
    on
        c1.search_criteria_company = m7.company_cd
    and
        t.exp_type_cd = m7.exp_type_cd
    and
        /*localeId*/'ja' = m7.locale_id
    and
        c1.search_criteria_date >= m7.start_date
    and
        c1.search_criteria_date < m7.end_date
    and
        m7.delete_flag = '0'

    left outer join
        k30m_account m8
    on
        c1.search_criteria_company = m8.company_cd
    and
        t.account_cd = m8.account_cd
    and
        /*localeId*/'ja' = m8.locale_id
    and
        c1.search_criteria_date >= m8.start_date
    and
        c1.search_criteria_date < m8.end_date
    and
        m8.delete_flag = '0'

    left outer join
        k30m_tax_type m9
    on
        c1.search_criteria_company = m9.company_cd
    and
        t.tax_type_cd = m9.tax_type_cd
    and
        /*localeId*/'ja' = m9.locale_id
    and
        c1.search_criteria_date >= m9.start_date
    and
        c1.search_criteria_date < m9.end_date
    and
        m9.delete_flag = '0'
where
    t.system_matter_id =/*systemMatterId*/''
/*IF userDataId != null*/
and
    t.user_data_id = /*userDataId*/''
/*END*/
/*IF gadgetClass != null*/
and
    t.gadget_class = /*gadgetClass*/''
/*END*/
/*IF gadgetInstance != null*/
and
    t.gadget_instance = /*gadgetInstance*/''
/*END*/
/*IF gadgetId != null*/
and
    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.1.4.2. コピー

  • Path
    src/main/resources/META-INF/sql/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/K30tExpenseDetailService/selectViewForCopy.sql
select
    t.system_matter_id,
    t.user_data_id,
    t.gadget_class,
    t.gadget_instance,
    t.tuple_id,
    t.gadget_id,
    t.gadget_variation,
    t.row_number,
    t.occur_date,
    t.summary,
    t.exp_type_cd,
    t.account_cd,
    t.tax_type_cd,
    t.tax_rate,
    t.quantity,
    t.trans_currency_cd,
    t.trans_amount,
    t.company_currency_cd,
    t.company_rate,
    t.company_amount,
    t.company_amount_exc_tax,
    t.company_amount_tax,
    t.company_amount_sum,
    t.pay_type_cd,
    t.pay_method_cd,
    t.payee_cd,
    t.payee_name,
    t.department_set_cd,
    t.department_cd,
    t.project_cd,
    t.extension_a,
    t.extension_b,
    t.extension_c,
    t.extension_d,
    t.extension_e,
    t.extension_f,
    t.extension_g,
    t.extension_h,
    t.extension_i,
    t.extension_j,
    t.entry_ts,
    t.entry_user_cd,
    t.renew_cnt,
    t.renew_ts,
    t.renew_user_cd,
    c1.search_criteria_company,
    m1.currency_name as trans_currency_name,
    m2.department_name,
    m3.project_name,
    m4.pay_type_name,
    m5.pay_method_name,
    m6.currency_name as company_currency_name,
    ma.exp_type_name,
    case when t.exp_type_cd is not null and t.exp_type_cd <>'' then m8.account_name else mb.account_name end as account_name,
    case when t.exp_type_cd is not null and t.exp_type_cd <>'' then m9.tax_type_name else mc.tax_type_name end as tax_type_name,
    m4.payment_flag
from
    k30t_expense_detail t
    inner join
        k20c_matter_control c1
    on
        t.system_matter_id = c1.system_matter_id
    and
        t.user_data_id = c1.user_data_id
    left outer join imm_currency m1
    on
        c1.search_criteria_company = m1.company_cd
    and
        t.trans_currency_cd = m1.currency_cd
    and
        /*localeId*/'ja' = m1.locale_id
    and
        m1.delete_flag = '0'
    left outer join
        imm_department m2
    on
        c1.search_criteria_company = m2.company_cd
    and
        t.department_set_cd = m2.department_set_cd
    and
        t.department_cd = m2.department_cd
    and
        /*localeId*/'ja' = m2.locale_id
    and
        /*searchCriteriaDate*/'' >= m2.start_date
    and
        /*searchCriteriaDate*/'' < m2.end_date
    and
        m2.delete_flag = '0'
    left outer join
        k30m_project m3
    on
        c1.search_criteria_company = m3.company_cd
    and
        t.project_cd = m3.project_cd
    and
        /*searchCriteriaDate*/'' >= m3.start_date
    and
        /*searchCriteriaDate*/'' < m3.end_date
    and
        /*localeId*/'ja' = m3.locale_id
    and
        m3.delete_flag = '0'
    left outer join
        k30m_pay_type m4
    on
        c1.search_criteria_company = m4.company_cd
    and
        t.pay_type_cd = m4.pay_type_cd
    and
        /*localeId*/'ja' = m4.locale_id
    and
        /*searchCriteriaDate*/'' >= m4.start_date
    and
        /*searchCriteriaDate*/'' < m4.end_date
    and
        m4.delete_flag = '0'
    left outer join
        k30m_pay_method m5
    on
        c1.search_criteria_company = m5.company_cd
    and
        t.pay_method_cd = m5.pay_method_cd
    and
        /*localeId*/'ja' = m5.locale_id
    and
        /*searchCriteriaDate*/'' >= m5.start_date
    and
        /*searchCriteriaDate*/'' < m5.end_date
    and
        m5.delete_flag = '0'
    left outer join imm_currency m6
    on
        c1.search_criteria_company = m6.company_cd
    and
        t.company_currency_cd = m6.currency_cd
    and
        /*localeId*/'ja' = m6.locale_id
    and
        m6.delete_flag = '0'
    left outer join
        k30m_account m8
    on
        c1.search_criteria_company = m8.company_cd
    and
        t.account_cd = m8.account_cd
    and
        /*localeId*/'ja' = m8.locale_id
    and
        /*searchCriteriaDate*/'' >= m8.start_date
    and
        /*searchCriteriaDate*/'' < m8.end_date
    and
        m8.delete_flag = '0'
    left outer join
        k30m_tax_type m9
    on
        c1.search_criteria_company = m9.company_cd
    and
        t.tax_type_cd = m9.tax_type_cd
    and
        /*localeId*/'ja' = m9.locale_id
    and
        /*searchCriteriaDate*/'' >= m9.start_date
    and
        /*searchCriteriaDate*/'' < m9.end_date
    and
        m9.delete_flag = '0'

    left outer join
        k30m_exp_type ma
    on
        c1.search_criteria_company = ma.company_cd
    and
        t.exp_type_cd = ma.exp_type_cd
    and
        /*localeId*/'ja' = ma.locale_id
    and
        /*searchCriteriaDate*/'' >= ma.start_date
    and
        /*searchCriteriaDate*/'' < ma.end_date
    and
        ma.delete_flag = '0'
    left outer join
        k30m_account mb
    on
        ma.company_cd = mb.company_cd
    and
        ma.account_cd = mb.account_cd
    and
        /*localeId*/'ja' = mb.locale_id
    and
        /*searchCriteriaDate*/'' >= mb.start_date
    and
        /*searchCriteriaDate*/'' < mb.end_date
    and
        m8.delete_flag = '0'
    left outer join
        k30m_tax_type mc
    on
        ma.company_cd = mc.company_cd
    and
        ma.tax_type_cd = mc.tax_type_cd
    and
        /*localeId*/'ja' = mc.locale_id
    and
        /*searchCriteriaDate*/'' >= mc.start_date
    and
        /*searchCriteriaDate*/'' < mc.end_date
    and
        mc.delete_flag = '0'
where
    t.system_matter_id =/*systemMatterId*/''
/*IF userDataId != null*/
and
    t.user_data_id = /*userDataId*/''
/*END*/
/*IF gadgetId != null*/
and
    t.gadget_id = /*gadgetId*/''
/*END*/
/*IF gadgetClass != null*/
and
    t.gadget_class = /*gadgetClass*/''
/*END*/
/*IF gadgetInstance != null*/
and
    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.1.4.3. 仕訳連携

  • Path
    src/main/resources/META-INF/sql/jp/co/slcs/kaiden2/product_workflow/foundation/manager/expensedetail/impl/ExpenseDetailManagerImpl/selectForJournalSourceDtl.sql
select
    t.system_matter_id as system_matter_id,
    t.user_data_id as user_data_id,
    t.gadget_class as gadget_class,
    t.gadget_instance as gadget_instance,
    t.tuple_id as tuple_id,
    t.gadget_id as gadget_id,
    t.gadget_variation as gadget_variation,
    i1.contents_id as contents_id,
    i1.contents_version_id as contents_version_id,
    null as journal_data_type_cd,
    t.row_number as row_number,
    t.exp_type_cd as exp_type_cd,
    t.account_cd as account_cd,
    t.tax_type_cd as tax_type_cd,
    mt.tax_rate as tax_rate,
    t.quantity as quantity,
    t.trans_currency_cd as trans_currency_cd,
    t.trans_amount as trans_amount,
    t.company_currency_cd as company_currency_cd,
    t.company_rate as company_rate,
    t.company_amount as company_amount,
    t.company_amount_exc_tax as company_amount_exc_tax,
    t.company_amount_tax as company_amount_tax,
    t.company_amount_sum as company_amount_sum,
    t.payee_cd as customer_cd,
    t.payee_name as customer_name,
    t.department_set_cd as department_set_cd,
    t.department_cd as department_cd,
    t.project_cd as project_cd,
    t.pay_method_cd as pay_method_cd,
    t.pay_type_cd as pay_type_cd,
    null as adv_matter_number,
    null as adv_matter_name,
    t.occur_date as detail_date1,
    null as detail_date2,
    t.summary as detail_summary1,
    null as detail_summary2,
    null as detail_summary3,
    null as detail_summary4,
    null as detail_summary5,
    null as detail_note,
    t.extension_a as detail_extension_a,
    t.extension_b as detail_extension_b,
    t.extension_c as detail_extension_c,
    t.extension_d as detail_extension_d,
    t.extension_e as detail_extension_e,
    t.extension_f as detail_extension_f,
    t.extension_g as detail_extension_g,
    t.extension_h as detail_extension_h,
    t.extension_i as detail_extension_i,
    t.extension_j as detail_extension_j,
    '0' as journal_status,
    null as wish_date,
    c1.search_criteria_company,
    c1.search_criteria_date
from
    k30t_expense_detail t
    inner join
        k20c_matter_info i1
    on
        t.system_matter_id = i1.system_matter_id
    inner join
        k20c_matter_control c1
    on
        t.system_matter_id = c1.system_matter_id
    and
        t.user_data_id = c1.user_data_id
    left outer join
        k30m_tax_type mt
    on
        c1.search_criteria_company = mt.company_cd
    and
        t.tax_type_cd = mt.tax_type_cd
    and
        c1.search_criteria_date >= mt.start_date
    and
        c1.search_criteria_date < mt.end_date
    and
        i1.locale_id_apply = mt.locale_id
    and
        mt.delete_flag = '0'

where
    t.system_matter_id =/*systemMatterId*/''
/*IF userDataId != null*/
and
    t.user_data_id = /*userDataId*/''
/*END*/
/*IF gadgetClass != null*/
and
    t.gadget_class = /*gadgetClass*/''
/*END*/
/*IF gadgetInstance != null*/
and
    t.gadget_instance = /*gadgetInstance*/''
/*END*/
/*IF gadgetId != null*/
and
    t.gadget_id = /*gadgetId*/''
/*END*/
/*IF searchCriteriaCompany != null*/
and
    c1.search_criteria_company = /*searchCriteriaCompany*/''
/*END*/
/*IF orderBy != null*/
order by /*$orderBy*/t.row_number
/*END*/

5.1.1.5. JSP

5.1.1.5.1. PC

  • Path
    src/main/webapp/WEB-INF/view/kaiden2/product_workflow/gadget/expenseDetail/expenseDetailV01.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" %>

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

<%-- expenseDetail v01 --%>
<c:set var="gadgetClass">expenseDetail</c:set> 
<c:set var="gadgetVariation">v01</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/expenseDetailV01</c:set>
<c:set var="tmtableId">expenseDetailTable</c:set>
<c:set var="tmtableControllerBlockId">tmtableController</c:set>
<c:set var="searchCriteriaCompany">${param.searchCriteriaCompany}</c:set>
<c:set var="searchCriteriaDate">${param.searchCriteriaDate}</c:set>
<c:set var="companyCurrencyCd">${param.companyCurrencyCd}</c:set>

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

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

<%-- Surface --%>
<c:set var="surfaceChapterTitle">${gadget.surfaces["chapterTitle"]}</c:set>
<c:set var="surfaceOccurDate">${gadget.surfaces["occurDate"]}</c:set>
<c:set var="surfaceSummary">${gadget.surfaces["summary"]}</c:set>
<c:set var="surfaceExpType">${gadget.surfaces["expType"]}</c:set>
<c:set var="surfaceAccount">${gadget.surfaces["account"]}</c:set>
<c:set var="surfaceTaxType">${gadget.surfaces["taxType"]}</c:set>
<c:set var="surfaceTransAmount">${gadget.surfaces["amount"]}</c:set>
<c:set var="surfacePayType">${gadget.surfaces["payType"]}</c:set>
<c:set var="surfacePayee">${gadget.surfaces["payee"]}</c:set>
<c:set var="surfaceDepartment">${gadget.surfaces["department"]}</c:set>
<c:set var="surfaceProject">${gadget.surfaces["project"]}</c:set>

<%-- Mode --%>
<c:set var="modeOccurDate">${detail.fields["occurDate"].inputType}</c:set>
<c:set var="modeSummary">${detail.fields["summary"].inputType}</c:set>
<c:set var="modeExpTypeCd">${detail.fields["expTypeCd"].inputType}</c:set>
<c:set var="modeAccountCd">${detail.fields["accountCd"].inputType}</c:set>
<c:set var="modeTaxTypeCd">${detail.fields["taxTypeCd"].inputType}</c:set>
<c:set var="modeTransAmount">${detail.fields["transAmount"].inputType}</c:set>
<c:set var="modePayTypeCd">${detail.fields["payTypeCd"].inputType}</c:set>
<c:set var="modePayeeName">${detail.fields["payeeName"].inputType}</c:set>
<c:set var="modeDepartmentCd">${detail.fields["departmentCd"].inputType}</c:set>
<c:set var="modeProjectCd">${detail.fields["projectCd"].inputType}</c:set>

<%-- RequiredMark --%>
<c:set var="reqOccurDate" >${detail.fields["occurDate"].requiredFlag}</c:set>
<c:set var="reqSummary" >${detail.fields["summary"].requiredFlag}</c:set>
<c:set var="reqExpTypeCd" >${detail.fields["expTypeCd"].requiredFlag}</c:set>
<c:set var="reqAccountCd" >${detail.fields["accountCd"].requiredFlag}</c:set>
<c:set var="reqTaxTypeCd" >${detail.fields["taxTypeCd"].requiredFlag}</c:set>
<c:set var="reqTransAmount" >${detail.fields["transAmount"].requiredFlag}</c:set>
<c:set var="reqPayTypeCd" >${detail.fields["payTypeCd"].requiredFlag}</c:set>
<c:set var="reqPayeeName" >${detail.fields["payeeName"].requiredFlag}</c:set>
<c:set var="reqDepartmentCd" >${detail.fields["departmentCd"].requiredFlag}</c:set>
<c:set var="reqProjectCd" >${detail.fields["projectCd"].requiredFlag}</c:set>

<%-- Validator --%>
<c:set var="validOccurDate_def">{k_date:['']}</c:set>
<c:set var="validOccurDate_apply">{${"true" == reqOccurDate ? "k_required:['']" : ""}}</c:set>
<c:set var="validOccurDate_tempsave"></c:set>
<c:set var="validOccurDate_reapply">{${"true" == reqOccurDate ? "k_required:['']" : ""}}</c:set>
<c:set var="validOccurDate_process">{${"true" == reqOccurDate ? "k_required:['']" : ""}}</c:set>

<c:set var="validSummary_def">{k_maxLength:['250']}</c:set>
<c:set var="validSummary_apply">{${"true" == reqSummary ? "k_required:['']" : ""}}</c:set>
<c:set var="validSummary_tempsave"></c:set>
<c:set var="validSummary_reapply">{${"true" == reqSummary ? "k_required:['']" : ""}}</c:set>
<c:set var="validSummary_process">{${"true" == reqSummary ? "k_required:['']" : ""}}</c:set>

<c:set var="validExpTypeCd_def">{k_expTypeExists:['expTypeCd', 'searchCriteriaCompany', 'searchCriteriaDate']}</c:set>
<c:set var="validExpTypeCd_apply">{${"true" == reqExpTypeCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validExpTypeCd_tempsave"></c:set>
<c:set var="validExpTypeCd_reapply">{${"true" == reqExpTypeCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validExpTypeCd_process">{${"true" == reqExpTypeCd ? "k_required:['']" : ""}}</c:set>

<c:set var="validAccountCd_def">{k_accountExists:['accountCd', 'searchCriteriaCompany', 'searchCriteriaDate']}</c:set>
<c:set var="validAccountCd_apply">{${"true" == reqAccountCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validAccountCd_tempsave"></c:set>
<c:set var="validAccountCd_reapply">{${"true" == reqAccountCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validAccountCd_process">{${"true" == reqAccountCd ? "k_required:['']" : ""}}</c:set>

<c:set var="validTaxType_def">{k_taxTypeExists:['taxTypeCd', 'searchCriteriaCompany', 'searchCriteriaDate']}</c:set>
<c:set var="validTaxType_apply">{${"true" == reqTaxTypeCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validTaxType_tempsave"></c:set>
<c:set var="validTaxType_reapply">{${"true" == reqTaxTypeCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validTaxType_process">{${"true" == reqTaxTypeCd ? "k_required:['']" : ""}}</c:set>

<c:set var="validPayTypeCd_def">{k_payTypeExists:['payTypeCd', 'searchCriteriaCompany', 'searchCriteriaDate']}</c:set>
<c:set var="validPayTypeCd_apply">{${"true" == reqPayTypeCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validPayTypeCd_tempsave"></c:set>
<c:set var="validPayTypeCd_reapply">{${"true" == reqPayTypeCd ? "k_required:['']" : ""}}</c:set>
<c:set var="validPayTypeCd_process">{${"true" == reqPayTypeCd ? "k_required:['']" : ""}}</c:set>

<c:set var="validPayeeName_def">{k_maxLength:['250']}</c:set>
<c:set var="validPayeeName_apply">{${"true" == reqPayeeName ? "k_required:['']" : ""}}</c:set>
<c:set var="validPayeeName_tempsave"></c:set>
<c:set var="validPayeeName_reapply">{${"true" == reqPayeeName ? "k_required:['']" : ""}}</c:set>
<c:set var="validPayeeName_process">{${"true" == reqPayeeName ? "k_required:['']" : ""}}</c:set>

<c:set var="validDepartmentCd_def">{k_departmentExists:['searchCriteriaCompany', 'departmentSetCd', 'departmentCd', 'searchCriteriaDate']}</c:set>
<c:set var="validDepartmentCd_apply">{k_requiredAny:['departmentCd', 'projectCd']}</c:set>
<c:set var="validDepartmentCd_tempsave"></c:set>
<c:set var="validDepartmentCd_reapply">{k_requiredAny:['departmentCd', 'projectCd']}</c:set>
<c:set var="validDepartmentCd_process">{k_requiredAny:['departmentCd', 'projectCd']}</c:set>

<c:set var="validProjectCd_def">{k_projectExists:['projectCd', 'searchCriteriaCompany', 'searchCriteriaDate']}</c:set>
<c:set var="validProjectCd_apply">{k_requiredAny:['departmentCd', 'projectCd']}</c:set>
<c:set var="validProjectCd_tempsave"></c:set>
<c:set var="validProjectCd_reapply">{k_requiredAny:['departmentCd', 'projectCd']}</c:set>
<c:set var="validProjectCd_process">{k_requiredAny:['departmentCd', 'projectCd']}</c:set>

<k:gadgetContainer gadgetClass="${gadgetClass}"
                   gadgetVariation="${gadgetVariation}"
                   gadgetInstance="${gadgetInstance}"
                   gadgetTitle="${surfaceChapterTitle}"
                   gadgetId="${gadgetId}"
                   style="width:850px;overflow:hidden;">
  <k:blockContainer id="caution" style="display:block;"></k:blockContainer> 
  <form id="gadget_form" onsubmit="return false;">
    <k:tmtable id="${tmtableId}" class="imui-form kaiden-ui-tmt-form" style="table-layout:fixed" rowNumberTarget="rowNumber">
      <colgroup>
         <col style="width:42px;overflow:hidden">
         <col style="width:230px;overflow:hidden">
         <col style="width:185px;overflow:hidden">
         <col style="width:185px;overflow:hidden">
         <col style="width:185px;overflow:hidden">
      </colgroup>
      <thead>
        <tr>
          <td rowspan="3" style="vertical-align:middle;">
            <k:tmtableOperationPanel
              position="header"
              allowAdd="${allowAddDetail}"
              allowDel="${allowDelDetail}"
            />
          </td>
          <th>
            <k:surface
              name="occurDateSurface"
              surfaceKey="${surfaceOccurDate}"
              requiredMark="${reqOccurDate}"
            />
          </th>
          <th colspan="3">
            <k:surface
              name="summarySurface"
              surfaceKey="${surfaceSummary}"
              requiredMark="${reqSummary}"
            />
          </th>
        </tr>
        <tr>
          <th colspan="2">
            <k:surface
              name="expTypeSurface"
              surfaceKey="${surfaceExpType}"
              requiredMark="${reqExpTypeCd}"
              style="display:inline;"
            />
            <k:surface
              name="accountSurface"
              surfaceKey="${surfaceAccount}"
              style="display:inline;"
            />
            <k:surface
              name="taxTypeSurface"
              surfaceKey="${surfaceTaxType}"
              style="display:inline;"
            />
          </th>
          <th>
            <k:surface
              name="departmentSurface"
              surfaceKey="${surfaceDepartment}"
              style="display:inline;"
            />
          </th>
          <th>
            <k:surface
              name="projectSurface"
              surfaceKey="${surfaceProject}"
            />
          </th>
        </tr>
        <tr>
          <th>
            <k:surface
              name="payTypeSurface"
              surfaceKey="${surfacePayType}"
              requiredMark="${reqPayTypeCd}"
              style="display:inline;"
            />
          </th>
          <th>
            <k:surface
              name="payeeSurface"
              surfaceKey="${surfacePayee}"
              requiredMark="${reqPayeeName}"
              style="display:inline;"
            />
          </th>
          <th colspan="2">
            <k:surface
              name="transAmountSurface"
              surfaceKey="${surfaceTransAmount}"
              requiredMark="${reqTransAmount}"
            />
          </th>
        </tr>
     </thead>
     <tbody>
        <tr>
          <td rowspan="3">
            <k:tmtableOperationPanel
              position="detail"
              allowAdd="${allowAddDetail}"
              allowDel="${allowDelDetail}"
              name="rowNumber"
            />
          </td>
          <td>
            <k:date
              name="occurDate"
              mode="${modeOccurDate}"
              surfaceKey="${surfaceOccurDate}"
              validationDefault="${validOccurDate_def}"
              validationApply="${validOccurDate_apply}"
              validationTempsave="${validOccurDate_tempsave}"
              validationReapply="${validOccurDate_reapply}"
              validationProcess="${validOccurDate_process}"
            />
          </td>
          <td  colspan="3">
            <k:text
              name="summary"
              mode="${modeSummary}"
              imeMode="on"
              surfaceKey="${surfaceSummary}"
              style="width:545px;"
              maxlength="250"
              validationDefault="${validSummary_def}"
              validationApply="${validSummary_apply}"
              validationTempsave="${validSummary_tempsave}"
              validationReapply="${validSummary_reapply}"
              validationProcess="${validSummary_process}"
            />
          </td>
        <tr>
          <td colspan="2">
            <k:hidden
              name="expTypeCd"
              mode="${modeExpTypeCd}"
            />
            <kmsw:expType
              name="expTypeName"
              mode="${modeExpTypeCd}"
              imeMode="on"
              surfaceKey="${surfaceExpType}"
              resultValue="expTypeName"
              resultChain="{expTypeCd:'expTypeCd', accountCd:'accountCd', accountName:'accountName', taxTypeCd:'taxTypeCd', taxTypeName:'taxTypeName'}"
              primaryTarget="expTypeCd"
              searchCriteriaDate="searchCriteriaDate"
              searchCriteriaCompany="searchCriteriaCompany"
              searchCriteriaExpTypeCd="expTypeCd"
              style="width:150px;"
              validationDefault="${validExpTypeCd_def}"
              validationApply="${validExpTypeCd_apply}"
              validationTempsave="${validExpTypeCd_tempsave}"
              validationReapply="${validExpTypeCd_reapply}"
              validationProcess="${validExpTypeCd_process}"
            />
            <k:hidden
              name="accountCd"
              mode="${modeAccountCd}"
              surfaceKey="${surfaceAccount}"
              validationDefault="${validAccountCd_def}"
              validationApply="${validAccountCd_apply}"
              validationTempsave="${validAccountCd_tempsave}"
              validationReapply="${validAccountCd_reapply}"
              validationProcess="${validAccountCd_process}"
            />
            <k:text
              name="accountName"
              mode="1"
              class="kaiden-ui-mst-search-chain-item"
              style="width:115px;"
            />
            <k:hidden
              name="taxTypeCd"
              mode="${modeTaxTypeCd}"
              surfaceKey="${surfaceTaxType}"
              validationDefault="${validTaxType_def}"
              validationApply="${validTaxType_apply}"
              validationTempsave="${validTaxType_tempsave}"
              validationReapply="${validTaxType_reapply}"
              validationProcess="${validTaxType_process}"
            />
            <k:text
              name="taxTypeName"
              mode="1"
              class="kaiden-ui-mst-search-chain-item"
              style="width:115px;"
            />
          </td>
          <td>
            <k:hidden
              name="departmentSetCd"
              mode="${modeDepartmentCd}"
            />
            <k:hidden
              name="departmentCd"
              mode="${modeDepartmentCd}"
              surfaceKey="${surfaceDepartment}"
            />
            <kmsb:department
              name="departmentName"
              mode="${modeDepartmentCd}"
              imeMode="on"
              surfaceKey="${surfaceDepartment}"
              resultValue="departmentName"
              resultChain="{departmentSetCd:'departmentSetCd', departmentCd:'departmentCd'}"
              primaryTarget="departmentCd,departmentSetCd"
              searchCriteriaDate="searchCriteriaDate"
              searchCriteriaCompany="searchCriteriaCompany"
              searchCriteriaDepartmentCd="departmentCd"
              searchCriteriaDepartmentSetCd="departmentSetCd"
              style="width:150px;"
              validationDefault="${validDepartmentCd_def}"
              validationApply="${validDepartmentCd_apply}"
              validationTempsave="${validDepartmentCd_tempsave}"
              validationReapply="${validDepartmentCd_reapply}"
              validationProcess="${validDepartmentCd_process}"
            />
          </td>
          <td>
            <k:hidden
              name="projectCd"
              mode="${modeProjectCd}"
              surfaceKey="${surfaceProject}"
            />
            <kmsw:project
              name="projectName"
              mode="${modeProjectCd}"
              imeMode="on"
              surfaceKey="${surfaceProject}"
              resultValue="projectName"
              resultChain="{projectCd:'projectCd'}"
              primaryTarget="projectCd"
              searchCriteriaDate="searchCriteriaDate"
              searchCriteriaCompany="searchCriteriaCompany"
              searchCriteriaProjectCd="projectCd"
              style="width:150px;"
              validationDefault="${validProjectCd_def}"
              validationApply="${validProjectCd_apply}"
              validationTempsave="${validProjectCd_tempsave}"
              validationReapply="${validProjectCd_reapply}"
              validationProcess="${validProjectCd_process}"
            />
          </td>
        </tr>
        <tr>
          <td>
            <klist_wkf:listDataPayType
              blank="false"
              name="payType"
              companyCd="${param.searchCriteriaCompany}"
              searchCriteriaDate="${param.searchCriteriaDate}"
            />
            <k:select
              name="payTypeCd"
              mode="${modePayTypeCd}"
              surfaceKey="${surfacePayType}"
              viewModeName="payTypeName"
              dataName="payType"
              selectChain="{paymentFlag:'paymentFlag'}"
              style="width:230px;"
              validationDefault="${validPayTypeCd_def}"
              validationApply="${validPayTypeCd_apply}"
              validationTempsave="${validPayTypeCd_tempsave}"
              validationReapply="${validPayTypeCd_reapply}"
              validationProcess="${validPayTypeCd_process}"
            />
            <k:hidden
              name="paymentFlag"
              mode="${modePayTypeCd}"
            />
          </td>
          <td>
            <k:text
              name="payeeName"
              mode="${modePayeeName}"
              imeMode="on"
              surfaceKey="${surfacePayee}"
              style="width:160px;"
              maxlength="250"
              validationDefault="${validPayeeName_def}"
              validationApply="${validPayeeName_apply}"
              validationTempsave="${validPayeeName_tempsave}"
              validationReapply="${validPayeeName_reapply}"
              validationProcess="${validPayeeName_process}"
            />
          </td>
          <td colspan="2">
            <jsp:include page="/WEB-INF/view/kaiden2/product_workflow/foundation/genericAmountInputParts.jsp">
              <jsp:param name="gadgetId" value="${gadgetId}" />
              <jsp:param name="tmtableId" value="${tmtableId}" />
              <jsp:param name="searchCriteriaCompany" value="${searchCriteriaCompany}" />
              <%-- 金額 --%>
              <jsp:param name="modeTransAmnt" value="${modeTransAmount}" />
              <jsp:param name="surfaceTransAmnt" value="${surfaceTransAmount}" />
              <jsp:param name="requiredTransAmntApply" value="${reqTransAmount}" />
              <jsp:param name="requiredTransAmntReapply" value="${reqTransAmount}" />
              <jsp:param name="requiredTransAmntProcess" value="${reqTransAmount}" />
            </jsp:include>
          </td>
        </tr>
      </tbody>
    </k:tmtable>
  </form>
</k:gadgetContainer>
<script type="text/javascript">
  jQuery(function($){
    
    
    var eventMan = KAIDEN.getGadget("${gadgetId}").eventManager
     ,  tmt = KAIDEN.getGadget("${gadgetId}").tmtables["expenseDetailTable"]
     ,  tma = tmt.tmtableAccessor;
    
    /***********************************
     * 内部イベント 
     ***********************************/
     
     //明細行:行挿入(データ設定前)
     tmt.addEventPostNewRowBeforeSetData(function(tupleId, tma, data) {
       
       //デフォルト部門を要求
       var defaultDept = KAIDEN.gadgetMan.execPull("claimDefaultDepartment", undefined, "${gadgetId}");
       defaultDept = defaultDept[0].result; //先頭行のみ利用
       tma("departmentSetCd", tupleId).setValue(defaultDept.departmentSetCd);
       tma("departmentCd", tupleId).setValue(defaultDept.departmentCd);
       tma("departmentName", tupleId).setValue(defaultDept.departmentName);
       
       //デフォルトプロジェクトを要求
       var defaultPrj = KAIDEN.gadgetMan.execPull("claimDefaultProject", undefined, "${gadgetId}");
       defaultPrj = defaultPrj[0].result; //先頭行のみ利用
       tma("projectCd", tupleId).setValue(defaultPrj.projectCd);
       tma("projectName", tupleId).setValue(defaultPrj.projectName);
       
     });
    
     //明細行:行挿入(データ設定後)
     tmt.addEventPostNewRow(function(tupleId, tma, data) {
       //マスタ検索部品の整合性確認.
       KAIDEN.MasterSearch.refresh(tma("expTypeName", tupleId).elem().get(0));
       KAIDEN.MasterSearch.refresh(tma("departmentName", tupleId).elem().get(0));
       KAIDEN.MasterSearch.refresh(tma("projectName", tupleId).elem().get(0));
       
       //初期表示に先頭行を選択しているため、立替フラグ(hidden)の更新を実施 ※入力モードの場合のみ
       if (tma("payTypeCd", tupleId).elem(true).length > 0) { 
         KAIDEN.base.foundation.SelectListData.setChainValue(tma("payTypeCd", tupleId).elem(true).get(0));
       }
       
       //事前申請書取込では、会社通貨額が設定されているため、取引通貨額に会社通貨額を設定する
       //※外貨版から標準版にコピーする際、会社通貨額(レート換算後)の金額を設定する
       var compAmnt = tma("companyAmount", tupleId).getValue();
       if (compAmnt) {
         tma("transAmount", tupleId).setValue(compAmnt);
         tma("companyAmount", tupleId).getValue("");
       }
     });
    
    
    /***********************************
     * 受信イベント(push) 
     ***********************************/
     
    //loadData データ読み込み  イベントリスナの登録
    eventMan.registPushListener("loadData", function(/**Object*/arg) {
      tmt.deleteAll();
      return KAIDEN.ImwModerator.genericLoadDataEvent("${gadgetId}", "${accessUrl}", arg);
    });
    
    
    //loadData4Copy 申請書コピー  イベントリスナの登録
    eventMan.registPushListener("loadData4Copy", function(/**Object*/arg) {
      return KAIDEN.ImwModerator.genericLoadData4CopyEvent("${gadgetId}", "${accessUrl}", arg);
    });
    
    //loadData4Settle 事前申請書取り込み  イベントリスナの登録
    eventMan.registPushListener("loadData4Settle", function(/**Object*/arg) {
      return KAIDEN.ImwModerator.genericLoadData4SettleEvent("${gadgetId}", "${accessUrl}", arg);
      
    });
    
    
    /***********************************
     * 受信イベント(pull) 
     ***********************************/
     
    //claimDateDetail 明細日付を要求  イベントリスナの登録
    eventMan.registPullListener("claimDateDetail", function(/**Object*/arg) { 
      return tmt.getColumnValues(["occurDate", "occurDate"]); 
    });
    
    //claimExpenseAmount 費用合計を要求  イベントリスナの登録
    eventMan.registPullListener("claimExpenseAmount", function(/**Object*/arg) {
      var amounts = tmt.getColumnValues("transAmount");
      var result = new BigDecimal().ZERO;
      $.each(amounts, function(index, value) {
        if ($.isNumeric(value)) {
          result = result.add(new BigDecimal(value));
        }
      });
      return result.toString();
    });
    
    //claimTemporaryPayAmount 従業員立替金額を要求  イベントリスナの登録
    eventMan.registPullListener("claimTemporaryPayAmount", function(/**Object*/arg) {
      var amounts = tmt.getColumnValues(["transAmount", "paymentFlag"]);
      var result = new BigDecimal().ZERO;
      $.each(amounts, function(index, value) {
        if ($.isNumeric(value[0]) && value[1] == "1") {
          result = result.add(new BigDecimal(value[0]));
        }
      });
      return result.toString();
    });
    
    //claimCompanyPayAmount 会社支払額を要求  イベントリスナの登録
    eventMan.registPullListener("claimCompanyPayAmount", function(/**Object*/arg) {
      var amounts = tmt.getColumnValues(["transAmount", "paymentFlag"]);
      var result = new BigDecimal().ZERO;
      $.each(amounts, function(index, value) {
        if ($.isNumeric(value[0]) && value[1] != "1") {
          result = result.add(new BigDecimal(value[0]));
        }
      });
      return result.toString();
    });
    
    //claimExpenseDetail 費用明細を要求  イベントリスナの登録
    eventMan.registPullListener("claimExpenseDetail", function(/**Object*/arg) {
      return tmt.getColumnValues("transAmount");
    });
    
    //claimExpenceCount 費用明細行数を要求  イベントリスナの登録
    eventMan.registPullListener("claimExpenceCount", function(/**Object*/arg) {
      return tmt.getCount();
    });
  });
</script>

5.1.1.5.2. SP

  • Path
    src/main/webapp/WEB-INF/view/kaiden2/product_workflow/gadget/expenseDetail/expenseDetailV01_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>

<%-- expenseDetail v01 --%>
<c:set var="gadgetClass">expenseDetail</c:set> 
<c:set var="gadgetVariation">v01</c:set>
<c:set var="gadgetInstance">${param.gadget_instance}</c:set>
<c:set var="gadgetId">${gadgetClass}_${gadgetVariation}_${gadgetInstance}</c:set>
<c:set var="componentName">expenseDetailV01Action</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">expenseDetailTable</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="surfaceOccurDate">${gadget.surfaces["occurDate"]}</c:set>
<c:set var="surfaceSummary">${gadget.surfaces["summary"]}</c:set>
<c:set var="surfaceExpType">${gadget.surfaces["expType"]}</c:set>
<c:set var="surfaceAccount">${gadget.surfaces["account"]}</c:set>
<c:set var="surfaceTaxType">${gadget.surfaces["taxType"]}</c:set>
<c:set var="surfaceTransAmount">${gadget.surfaces["amount"]}</c:set>
<c:set var="surfacePayType">${gadget.surfaces["payType"]}</c:set>
<c:set var="surfacePayee">${gadget.surfaces["payee"]}</c:set>
<c:set var="surfaceDepartment">${gadget.surfaces["department"]}</c:set>
<c:set var="surfaceProject">${gadget.surfaces["project"]}</c:set>
<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.occurDate}"></c:out></span>
      <span class="ui-li-aside"><c:out value="${detailData.companyAmount[1]}"></c:out></span>
      <div class="indent">
        <p class="kaiden-ui-overview-contents"><c:out value="${detailData.summary}"></c:out></p>
        <p class="kaiden-ui-overview-contents-sub"><c:out value="${detailData.payTypeName}"></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="${surfaceOccurDate}"></c:out></p>
          <div class="indent">
            <label class="kaiden-ui-detail-item-contents"><c:out value="${detailData.occurDate}"></c:out></label>
          </div>
          <p class="kaiden-ui-detail-item-title"><c:out value="${surfaceSummary}"></c:out></p>
          <div class="indent">
            <label class="kaiden-ui-detail-item-contents"><c:out value="${detailData.summary}"></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"><strong><c:out value="${detailData.transAmount[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="${surfacePayType}"></c:out></p>
          <div class="indent">
            <label class="kaiden-ui-detail-item-contents"><c:out value="${detailData.payTypeName}"></c:out></label>
          </div>
          <p class="kaiden-ui-detail-item-title"><c:out value="${surfacePayee}"></c:out></p>
          <div class="indent">
            <label class="kaiden-ui-detail-item-contents" style="word-wrap: break-word;"><c:out value="${detailData.payeeName}"></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>