/*
 * 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 java.util.Date;

import jp.mosp.common.common.BaseDto;

public class AdjustmentDto extends BaseDto {
	
	private static final long	serialVersionUID	= -4544512011191536993L;
	
	// フィールド
	private String				kCode;											// 社員コード
	private String				kName;											// 社員氏名
	private String				kKana;											// 社員ﾌﾘｶﾞﾅ
	private String				stationCode;									// 所属コード
	private String				positionCode;									// 職位コード
	private String				employmentType;								// 雇用区分
//	private Date   entranceDate  ;	// 入社日
//	private Date   retirementDate;	// 退社日
	private int					entranceDate;									// 入社日
	private int					retirementDate;								// 退社日
																				
	private Date				incExpectedDate;								// 所得税適用年
	private String				incomeTaxType;									// 課税区分
	private String				adjustmentType;								// 年末調整区分
	private String				selfWidowType;									// 本人寡婦区分
	private String				selfHandicapType;								// 本人障害区分
	private String				selfStudentType;								// 本人学生区分
	private String				spouseIntendType;								// 配偶者区分
	private int					generalDependent;								// 一般扶養親族
	private int					specificDependent;								// 特定扶養親族
	private int					elderlyDependent;								// 老人扶養親族
	private int					liveWithEldRel;								// 同居老親等
	private int					liveWithHandiGe;								// 同居特障一般
	private int					liveWithHandiSp;								// 同居特障特定
	private int					liveWithHandiEl;								// 同居特障老人
	private int					liveWithHandiEr;								// 同居特障老親
	private int					generalHandicap;								// 一般障害者
	private int					specificHandicap;								// 特別障害者
	private int					dependentCount;								// 扶養等の数
																				
	private String				midwayType;									// 中途入社区分
	private int					formerIncome;									// 前勤務先収入金額
	private int					formerInsurance;								// 前勤務先社会保険額
	private int					formerTax;										// 前勤務先所得税額
																				
	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;								// 年税額
																				
	
	/**
	 * コンストラクタ
	 */
	public AdjustmentDto() {
		super();
	}
	
	// アクセサメソッド
	public String getKCode() {
		return kCode;
	} // 社員コード
	
	public String getKName() {
		return kName;
	} // 社員氏名
	
	public String getKKana() {
		return kKana;
	} // 社員ﾌﾘｶﾞﾅ
	
	public String getStationCode() {
		return stationCode;
	} // 所属コード
	
	public String getPositionCode() {
		return positionCode;
	} // 職位コード
	
	public String getEmploymentType() {
		return employmentType;
	} // 雇用区分
	
	public int getEntranceDate() {
		return entranceDate;
	} // 入社日
	
	public int getRetirementDate() {
		return retirementDate;
	} // 退社日
	
	public void setKCode(String kCode) {
		this.kCode = kCode;
	} // 社員コード
	
	public void setKName(String kName) {
		this.kName = kName;
	} // 社員氏名
	
	public void setKKana(String kKana) {
		this.kKana = kKana;
	} // 社員ﾌﾘｶﾞﾅ
	
	public void setStationCode(String stationCode) {
		this.stationCode = stationCode;
	} // 所属コード
	
	public void setPositionCode(String positionCode) {
		this.positionCode = positionCode;
	} // 職位コード
	
	public void setEmploymentType(String employmentType) {
		this.employmentType = employmentType;
	} // 雇用形態
	
	public void setEntranceDate(int entranceDate) {
		this.entranceDate = entranceDate;
	} // 入社日
	
	public void setRetirementDate(int retirementDate) {
		this.retirementDate = retirementDate;
	} // 退社日
	
	public Date getIncExpectedDate() {
		return getDateField(incExpectedDate);
	} // 所得税適用年
	
	public String getIncomeTaxType() {
		return incomeTaxType;
	} // 課税区分
	
	public String getAdjustmentType() {
		return adjustmentType;
	} // 年末調整区分
	
	public String getSelfWidowType() {
		return selfWidowType;
	} // 本人寡婦区分
	
	public String getSelfHandicapType() {
		return selfHandicapType;
	} // 本人障害区分
	
	public String getSelfStudentType() {
		return selfStudentType;
	} // 本人学生区分
	
	public String getSpouseIntendType() {
		return spouseIntendType;
	} // 配偶者区分
	
	public int getGeneralDependent() {
		return generalDependent;
	} // 一般扶養親族
	
	public int getSpecificDependent() {
		return specificDependent;
	} // 特定扶養親族
	
	public int getElderlyDependent() {
		return elderlyDependent;
	} // 老人扶養親族
	
	public int getLiveWithEldRel() {
		return liveWithEldRel;
	} // 同居老親等
	
	public int getLiveWithHandiGe() {
		return liveWithHandiGe;
	} // 同居特障一般
	
	public int getLiveWithHandiSp() {
		return liveWithHandiSp;
	} // 同居特障特定
	
	public int getLiveWithHandiEl() {
		return liveWithHandiEl;
	} // 同居特障老人
	
	public int getLiveWithHandiEr() {
		return liveWithHandiEr;
	} // 同居特障老親
	
	public int getGeneralHandicap() {
		return generalHandicap;
	} // 一般障害者
	
	public int getSpecificHandicap() {
		return specificHandicap;
	} // 特別障害者
	
	public int getDependentCount() {
		return dependentCount;
	} // 扶養等の数
	
	public void setIncExpectedDate(Date incExpectedDate) {
		this.incExpectedDate = getDateField(incExpectedDate);
	} // 所得税適用年
	
	public void setIncomeTaxType(String incomeTaxType) {
		this.incomeTaxType = incomeTaxType;
	} // 課税区分
	
	public void setAdjustmentType(String adjustmentType) {
		this.adjustmentType = adjustmentType;
	} // 年末調整区分
	
	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;
	} // 配偶者区分
	
	public void setGeneralDependent(int generalDependent) {
		this.generalDependent = generalDependent;
	} // 一般扶養親族
	
	public void setSpecificDependent(int specificDependent) {
		this.specificDependent = specificDependent;
	} // 特定扶養親族
	
	public void setElderlyDependent(int elderlyDependent) {
		this.elderlyDependent = elderlyDependent;
	} // 老人扶養親族
	
	public void setLiveWithEldRel(int liveWithEldRel) {
		this.liveWithEldRel = liveWithEldRel;
	} // 同居老親等
	
	public void setLiveWithHandiGe(int liveWithHandiGe) {
		this.liveWithHandiGe = liveWithHandiGe;
	} // 同居特障一般
	
	public void setLiveWithHandiSp(int liveWithHandiSp) {
		this.liveWithHandiSp = liveWithHandiSp;
	} // 同居特障特定
	
	public void setLiveWithHandiEl(int liveWithHandiEl) {
		this.liveWithHandiEl = liveWithHandiEl;
	} // 同居特障老人
	
	public void setLiveWithHandiEr(int liveWithHandiEr) {
		this.liveWithHandiEr = liveWithHandiEr;
	} // 同居特障老親
	
	public void setGeneralHandicap(int generalHandicap) {
		this.generalHandicap = generalHandicap;
	} // 一般障害者
	
	public void setSpecificHandicap(int specificHandicap) {
		this.specificHandicap = specificHandicap;
	} // 特別障害者
	
	public void setDependentCount(int dependentCount) {
		this.dependentCount = dependentCount;
	} // 扶養等の数
	
	public String getMidwayType() {
		return midwayType;
	} // 計算単価区分
	
	public int getFormerIncome() {
		return formerIncome;
	} // 計算単価区分
	
	public int getFormerInsurance() {
		return formerInsurance;
	} // 計算単価区分
	
	public int getFormerTax() {
		return formerTax;
	} // 計算単価区分
	
	public void setMidwayType(String midwayType) {
		this.midwayType = midwayType;
	} // 計算単価区分
	
	public void setFormerIncome(int formerIncome) {
		this.formerIncome = formerIncome;
	} // 計算単価区分
	
	public void setFormerInsurance(int formerInsurance) {
		this.formerInsurance = formerInsurance;
	} // 計算単価区分
	
	public void setFormerTax(int formerTax) {
		this.formerTax = formerTax;
	} // 計算単価区分
	
	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 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 int getTaxGap() {
		return finalIncomeTax - paymentIncomeTax - bonusIncomeTax - midwayAdjustTax;
	}
	
}
