package jp.mosp.payroll.report.dto;

import java.sql.SQLException;
import java.util.List;

import jp.mosp.common.common.MospException;
import jp.mosp.human.dto.MKihonDto;
import jp.mosp.human.dto.MKojinDto;
import jp.mosp.payroll.bonus.dto.PhBounsDto;
import jp.mosp.payroll.dao.PdPayDeductionDao;
import jp.mosp.payroll.dto.CdAdjustmentDto;
import jp.mosp.payroll.dto.CmCompanyDto;
import jp.mosp.payroll.dto.CmIncomeTaxDto;
import jp.mosp.payroll.dto.CmMidwayEnterDto;
import jp.mosp.payroll.dto.PhPaymentDto;

public class AdjustDataDto extends WithholdingListDto {
	
	private static final long serialVersionUID = 7720406971353362435L;
	
	// フィールド
	private String selfWidowType    ;	// 本人寡婦区分
	private String selfHandicapType ;	// 本人障害区分
	private String selfStudentType  ;	// 本人学生区分
	private String spouseIntendType ;	// 配偶者区分
	
	/**
	 * コンストラクタ
	 * @throws IllegalAccessException 
	 * @throws NoSuchFieldException 
	 * @throws SQLException 
	 * @throws MospException 
	 */
	public AdjustDataDto(
			int targetAdjustYear,
			CdAdjustmentDto cdAdjustmentDto,
			MKihonDto mKihonDto,
			MKojinDto mKojinDto,
			CmIncomeTaxDto cmIncomeTaxDto,
			CmMidwayEnterDto cmMidwayEnterDto,
			List<PhPaymentDto> listPaymentData,
			List<PhBounsDto> listBonusData,
			PdPayDeductionDao pdPayDeductionDao,
			CmCompanyDto cmCompanyDto
	) throws SQLException, NoSuchFieldException, IllegalAccessException {
		super(
				targetAdjustYear ,
				cdAdjustmentDto  ,
				mKihonDto       ,
				mKojinDto       ,
				cmIncomeTaxDto   ,
				cmMidwayEnterDto ,
				listPaymentData  ,
				listBonusData    ,
				pdPayDeductionDao,
				cmCompanyDto
		);
		if (cmIncomeTaxDto != null) {
			selfWidowType    = cmIncomeTaxDto.getSelfWidowType   ();	// 本人寡婦区分
			selfHandicapType = cmIncomeTaxDto.getSelfHandicapType();	// 本人障害区分
			selfStudentType  = cmIncomeTaxDto.getSelfStudentType ();	// 本人学生区分
			spouseIntendType = cmIncomeTaxDto.getSpouseIntendType();	// 配偶者区分
		} else {
			selfWidowType    = "";	// 本人寡婦区分
			selfHandicapType = "";	// 本人障害区分
			selfStudentType  = "";	// 本人学生区分
			spouseIntendType = "";	// 配偶者区分
		}
	}
	
	// アクセサメソッド
	public String getSelfWidowType   () { return selfWidowType   ; }	// 本人寡婦区分
	public String getSelfHandicapType() { return selfHandicapType; }	// 本人障害区分
	public String getSelfStudentType () { return selfStudentType ; }	// 本人学生区分
	public String getSpouseIntendType() { return spouseIntendType; }	// 配偶者区分
	
	public void setSelfWidowType   (String selfWidowType   ) { this.selfWidowType    = selfWidowType   ; }	// 本人寡婦区分
	public void setSelfHandicapType(String selfHandicapType) { this.selfHandicapType = selfHandicapType; }	// 本人障害区分
	public void setSelfStudentType (String selfStudentType ) { this.selfStudentType  = selfStudentType ; }	// 本人学生区分
	public void setSpouseIntendType(String spouseIntendType) { this.spouseIntendType = spouseIntendType; }	// 配偶者区分
	
}
