package jp.mosp.payroll.dto;

import jp.mosp.common.common.BaseDto;

public class CdAdjustmentDto extends BaseDto {

	private static final long serialVersionUID = -7044767143429998535L;
	
	// フィールド
	private String kCode              ;	// 社員コード
	private int    adjustYear         ;	// 調整年
	private String adjustStatus       ;	// 年末調整計算状態
	private int    generalLifeIns     ;	// 一般の生命保険料
	private int    privatePension     ;	// 個人年金保険料
	private int    lifeInsDeduction   ;	// 生命保険料控除額
	private int    earthquakeIns      ;	// 地震保険料
	private int    longTermDamageIns  ;	// 旧長期損害保険料
	private int    damageInsDeduction ;	// 損害保険料控除額
	private int    socialInsDeduction ;	// 社会保険料控除額
	private int    mutualAidDeduction ;	// 小規模企業共済等掛金控除額
	private int    spouseSumIncome    ;	// 配偶者の本年中の合計所得金額の見積額
	private int    spouseSpDeduction  ;	// 配偶者特別控除額
	private int    houseLoanDeduction ;	// 住宅借入金等特別控除額
	private int    allowanceAdjustment;	// 支給調整額
	private int    taxFreeAdjustment  ;	// 非課税調整額
	private int    socInsAdjustment   ;	// 社会保険調整額
	private int    taxIncAdjustment   ;	// 所得税調整額
	private String withholdSlipNotes  ;	// 源泉徴収票摘要欄
	private int    paymentAllowance   ;	// 給与、手当等金額
	private int    paymentIncomeTax   ;	// 給与、手当等税額
	private int    bonusAllowance     ;	// 賞与等金額
	private int    bonusIncomeTax     ;	// 賞与等税額
	private int    midwayAdjustIncome ;	// 中途、調整収入金額
	private int    midwayAdjustTax    ;	// 中途、調整収入税額
	private int    afterDeductIncome  ;	// 給与所得控除後の給与等の金額
	private int    payInsDeduction    ;	// 社会保険料等給与等からの控除分
	private int    dependentsDeduction;	// 配偶者控除額、扶養控除額、基礎控除額及び障害者等の控除額の合計額
	private int    calcTaxedIncome    ;	// 差引課税給与所得金額
	private int    calcIncomeTax      ;	// 算出年税額
	private int    adjustedIncomeTax  ;	// 年調年税額
	private int    deductedIncomeTax  ;	// 年調定率控除額税額
	private int    finalIncomeTax     ;	// 年税額
	private String deadRetirement;	// 死亡退職
	private String selfDisaster  ;	// 災害者
	private String foreigner     ;	// 外国人
	
	/**
	 * コンストラクタ
	 */
	public CdAdjustmentDto(){
		super();
	}
	
	// アクセサメソッド
	public String getKCode              () { return kCode              ; }	// 社員コード
	public int    getAdjustYear         () { return adjustYear         ; }	// 調整年
	public String getAdjustStatus       () { return adjustStatus       ; }	// 年末調整計算状態
	public int    getGeneralLifeIns     () { return generalLifeIns     ; }	// 一般の生命保険料
	public int    getPrivatePension     () { return privatePension     ; }	// 個人年金保険料
	public int    getLifeInsDeduction   () { return lifeInsDeduction   ; }	// 生命保険料控除額
	public int    getEarthquakeIns      () { return earthquakeIns      ; }	// 地震保険料
	public int    getLongTermDamageIns  () { return longTermDamageIns  ; }	// 旧長期損害保険料
	public int    getDamageInsDeduction () { return damageInsDeduction ; }	// 損害保険料控除額
	public int    getSocialInsDeduction () { return socialInsDeduction ; }	// 社会保険料控除額
	public int    getMutualAidDeduction () { return mutualAidDeduction ; }	// 小規模企業共済等掛金控除額
	public int    getSpouseSumIncome    () { return spouseSumIncome    ; }	// 配偶者の本年中の合計所得金額の見積額
	public int    getSpouseSpDeduction  () { return spouseSpDeduction  ; }	// 配偶者特別控除額
	public int    getHouseLoanDeduction () { return houseLoanDeduction ; }	// 住宅借入金等特別控除額
	public int    getAllowanceAdjustment() { return allowanceAdjustment; }	// 支給調整額
	public int    getTaxFreeAdjustment  () { return taxFreeAdjustment  ; }	// 非課税調整額
	public int    getSocInsAdjustment   () { return socInsAdjustment   ; }	// 社会保険調整額
	public int    getTaxIncAdjustment   () { return taxIncAdjustment   ; }	// 所得税調整額
	public String getWithholdSlipNotes  () { return withholdSlipNotes  ; }	// 源泉徴収票摘要欄
	public int    getPaymentAllowance   () { return paymentAllowance   ; }	// 給与、手当等金額
	public int    getPaymentIncomeTax   () { return paymentIncomeTax   ; }	// 給与、手当等税額
	public int    getBonusAllowance     () { return bonusAllowance     ; }	// 賞与等金額
	public int    getBonusIncomeTax     () { return bonusIncomeTax     ; }	// 賞与等税額
	public int    getMidwayAdjustIncome () { return midwayAdjustIncome ; }	// 中途、調整収入金額
	public int    getMidwayAdjustTax    () { return midwayAdjustTax    ; }	// 中途、調整収入税額
	public int    getAfterDeductIncome  () { return afterDeductIncome  ; }	// 給与所得控除後の給与等の金額
	public int    getPayInsDeduction    () { return payInsDeduction    ; }	// 社会保険料等給与等からの控除分
	public int    getDependentsDeduction() { return dependentsDeduction; }	// 配偶者控除額、扶養控除額、基礎控除額及び障害者等の控除額の合計額
	public int    getCalcTaxedIncome    () { return calcTaxedIncome    ; }	// 差引課税給与所得金額
	public int    getCalcIncomeTax      () { return calcIncomeTax      ; }	// 算出年税額
	public int    getAdjustedIncomeTax  () { return adjustedIncomeTax  ; }	// 年調年税額
	public int    getDeductedIncomeTax  () { return deductedIncomeTax  ; }	// 年調定率控除額税額
	public int    getFinalIncomeTax     () { return finalIncomeTax     ; }	// 年税額
	public String getDeadRetirement     () { return deadRetirement     ; }		// 死亡退職
	public String getSelfDisaster       () { return selfDisaster       ; }		// 災害者
	public String getForeigner          () { return foreigner          ; }		// 外国人
	

	public void setKCode              (String kCode              ) { this.kCode               = kCode              ; }	// 社員コード
	public void setAdjustYear         (int    adjustYear         ) { this.adjustYear          = adjustYear         ; }	// 調整年
	public void setAdjustStatus       (String adjustStatus       ) { this.adjustStatus        = adjustStatus       ; }	// 年末調整計算状態
	public void setGeneralLifeIns     (int    generalLifeIns     ) { this.generalLifeIns      = generalLifeIns     ; }	// 一般の生命保険料
	public void setPrivatePension     (int    privatePension     ) { this.privatePension      = privatePension     ; }	// 個人年金保険料
	public void setLifeInsDeduction   (int    lifeInsDeduction   ) { this.lifeInsDeduction    = lifeInsDeduction   ; }	// 生命保険料控除額
	public void setEarthquakeIns      (int    earthquakeIns      ) { this.earthquakeIns       = earthquakeIns      ; }	// 地震保険料
	public void setLongTermDamageIns  (int    longTermDamageIns  ) { this.longTermDamageIns   = longTermDamageIns  ; }	// 旧長期損害保険料
	public void setDamageInsDeduction (int    damageInsDeduction ) { this.damageInsDeduction  = damageInsDeduction ; }	// 損害保険料控除額
	public void setSocialInsDeduction (int    socialInsDeduction ) { this.socialInsDeduction  = socialInsDeduction ; }	// 社会保険料控除額
	public void setMutualAidDeduction (int    mutualAidDeduction ) { this.mutualAidDeduction  = mutualAidDeduction ; }	// 小規模企業共済等掛金控除額
	public void setSpouseSumIncome    (int    spouseSumIncome    ) { this.spouseSumIncome     = spouseSumIncome    ; }	// 配偶者の本年中の合計所得金額の見積額
	public void setSpouseSpDeduction  (int    spouseSpDeduction  ) { this.spouseSpDeduction   = spouseSpDeduction  ; }	// 配偶者特別控除額
	public void setHouseLoanDeduction (int    houseLoanDeduction ) { this.houseLoanDeduction  = houseLoanDeduction ; }	// 住宅借入金等特別控除額
	public void setAllowanceAdjustment(int    allowanceAdjustment) { this.allowanceAdjustment = allowanceAdjustment; }	// 支給調整額
	public void setTaxFreeAdjustment  (int    taxFreeAdjustment  ) { this.taxFreeAdjustment   = taxFreeAdjustment  ; }	// 非課税調整額
	public void setSocInsAdjustment   (int    socInsAdjustment   ) { this.socInsAdjustment    = socInsAdjustment   ; }	// 社会保険調整額
	public void setTaxIncAdjustment   (int    taxIncAdjustment   ) { this.taxIncAdjustment    = taxIncAdjustment   ; }	// 所得税調整額
	public void setWithholdSlipNotes  (String withholdSlipNotes  ) { this.withholdSlipNotes   = withholdSlipNotes  ; }	// 源泉徴収票摘要欄
	public void setPaymentAllowance   (int    paymentAllowance   ) { this.paymentAllowance    = paymentAllowance   ; }	// 給与、手当等金額
	public void setPaymentIncomeTax   (int    paymentIncomeTax   ) { this.paymentIncomeTax    = paymentIncomeTax   ; }	// 給与、手当等税額
	public void setBonusAllowance     (int    bonusAllowance     ) { this.bonusAllowance      = bonusAllowance     ; }	// 賞与等金額
	public void setBonusIncomeTax     (int    bonusIncomeTax     ) { this.bonusIncomeTax      = bonusIncomeTax     ; }	// 賞与等税額
	public void setMidwayAdjustIncome (int    midwayAdjustIncome ) { this.midwayAdjustIncome  = midwayAdjustIncome ; }	// 中途、調整収入金額
	public void setMidwayAdjustTax    (int    midwayAdjustTax    ) { this.midwayAdjustTax     = midwayAdjustTax    ; }	// 中途、調整収入税額
	public void setAfterDeductIncome  (int    afterDeductIncome  ) { this.afterDeductIncome   = afterDeductIncome  ; }	// 給与所得控除後の給与等の金額
	public void setPayInsDeduction    (int    payInsDeduction    ) { this.payInsDeduction     = payInsDeduction    ; }	// 社会保険料等給与等からの控除分
	public void setDependentsDeduction(int    dependentsDeduction) { this.dependentsDeduction = dependentsDeduction; }	// 配偶者控除額、扶養控除額、基礎控除額及び障害者等の控除額の合計額
	public void setCalcTaxedIncome    (int    calcTaxedIncome    ) { this.calcTaxedIncome     = calcTaxedIncome    ; }	// 差引課税給与所得金額
	public void setCalcIncomeTax      (int    calcIncomeTax      ) { this.calcIncomeTax       = calcIncomeTax      ; }	// 算出年税額
	public void setAdjustedIncomeTax  (int    adjustedIncomeTax  ) { this.adjustedIncomeTax   = adjustedIncomeTax  ; }	// 年調年税額
	public void setDeductedIncomeTax  (int    deductedIncomeTax  ) { this.deductedIncomeTax   = deductedIncomeTax  ; }	// 年調定率控除額税額
	public void setFinalIncomeTax     (int    finalIncomeTax     ) { this.finalIncomeTax      = finalIncomeTax     ; }	// 年税額
	
	public void setDeadRetirement    (String  deadRetirement     ) { this.deadRetirement      = deadRetirement     ; }	// 死亡退職
	public void setSelfDisaster      (String  selfDisaster       ) { this.selfDisaster        = selfDisaster       ; }	// 災害者
	public void setForeigner         (String  foreigner          ) { this.foreigner           = foreigner          ; }	// 外国人
	
	
	/**
	 * 差引税額取得
	 * @return 差引税額
	 */
	public int getTaxGap() {
		return finalIncomeTax - paymentIncomeTax - bonusIncomeTax - midwayAdjustTax;
	}

	/**
	 * 所得控除合計額取得
	 * @return 所得控除合計額
	 */
	public int getIncomeDeductSum() {
		return lifeInsDeduction + damageInsDeduction + socialInsDeduction +
				mutualAidDeduction + spouseSpDeduction + payInsDeduction +
				dependentsDeduction;
	}
	
	/**
	 * 所得税合計額取得
	 * @return 所得税合計額
	 */
	public int getIncomeTaxSum() {
		return paymentIncomeTax + bonusIncomeTax + midwayAdjustTax;
	}
	
	/**
	 * 課税所得合計額取得
	 * @return 課税所得合計額
	 */
	public int getTaxedPaymentSum() {
		return paymentAllowance + bonusAllowance + midwayAdjustIncome;
	}
	
}
