/*
 * MosP - Mind Open Source Project    http://www.mosp.jp/
 * Copyright (C) MIND Co., Ltd.       http://www.e-mind.co.jp/
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */
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;
	}
	
}
