package com.engine.salary.entity.taxdeclaration.dto;

import com.engine.salary.annotation.TableTitle;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @description: 个税申报表详情列表
 * @author: xiajun
 * @modified By: xiajun
 * @date: Created in 12/15/21 10:31 AM
 * @version:v1.0
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TaxDeclarationDetailListDTO {

    /**
     * 主键id
     */
    private Long id;

    /**
     * 个税申报记录id
     */
    private Long taxDeclarationId;

    /**
     * 序号
     */
    private Integer seq;

    /**
     * 人员id
     */
    private Long employeeId;

    /**
     * 姓名
     */
    @TableTitle(title = "姓名", dataIndex = "employeeName", key = "employeeName")
    private String employeeName;

    /**
     * 身份证件类型
     */
    @TableTitle(title = "身份证件类型", dataIndex = "idCardType", key = "idCardType")
    private String idCardType;

    /**
     * 身份证件号码
     */
    @TableTitle(title = "身份证件号码", dataIndex = "idCardNo", key = "idCardNo")
    private String idCardNo;

    /**
     * 纳税人识别号
     */
    @TableTitle(title = "纳税人识别号", dataIndex = "taxpayerIdNo", key = "taxpayerIdNo")
    private String taxpayerIdNo;

    /**
     * 是居民还是非居民
     */
    @TableTitle(title = "是居民还是非居民", dataIndex = "residentType", key = "residentType")
    private String residentType;

    /**
     * 所得项目
     */
    @TableTitle(title = "所得项目", dataIndex = "incomeType", key = "incomeType")
    private String incomeType;

    /**
     * 收入
     */
    @TableTitle(title = "收入", dataIndex = "income", key = "income")
    private String income;

    /**
     * 费用
     */
    @TableTitle(title = "费用", dataIndex = "fee", key = "fee")
    private String fee;

    /**
     * 免税收入
     */
    @TableTitle(title = "免税收入", dataIndex = "taxFreeIncome", key = "taxFreeIncome")
    private String taxFreeIncome;

    /**
     * 减除费用
     */
    @TableTitle(title = "减除费用", dataIndex = "subtraction", key = "subtraction")
    private String subtraction;

    /**
     * 养老保险
     */
    @TableTitle(title = "养老保险", dataIndex = "endowmentInsurance", key = "endowmentInsurance")
    private String endowmentInsurance;

    /**
     * 医疗保险
     */
    @TableTitle(title = "医疗保险", dataIndex = "medicalInsurance", key = "medicalInsurance")
    private String medicalInsurance;

    /**
     * 失业保险
     */
    @TableTitle(title = "失业保险", dataIndex = "unemploymentInsurance", key = "unemploymentInsurance")
    private String unemploymentInsurance;

    /**
     * 住房公积金
     */
    @TableTitle(title = "住房公积金", dataIndex = "housingProvidentFund", key = "housingProvidentFund")
    private String housingProvidentFund;

    /**
     * 年金
     */
    @TableTitle(title = "年金", dataIndex = "annuity", key = "annuity")
    private String annuity;

    /**
     * 商业健康保险
     */
    @TableTitle(title = "商业健康保险", dataIndex = "commercialHealthInsurance", key = "commercialHealthInsurance")
    private String commercialHealthInsurance;

    /**
     * 税延养老保险
     */
    @TableTitle(title = "税延养老保险", dataIndex = "taxDeferredEndowmentInsurance", key = "taxDeferredEndowmentInsurance")
    private String taxDeferredEndowmentInsurance;

    /**
     * 财产原值
     */
    @TableTitle(title = "财产原值", dataIndex = "originalValueOfProperty", key = "originalValueOfProperty")
    private String originalValueOfProperty;

    /**
     * 允许扣除的税费
     */
    @TableTitle(title = "允许扣除的税费", dataIndex = "deductedTax", key = "deductedTax")
    private String deductedTax;

    /**
     * 其他
     */
    @TableTitle(title = "其他", dataIndex = "other", key = "other")
    private String other;

    /**
     * 累计收入额
     */
    @TableTitle(title = "累计收入额", dataIndex = "addUpIncome", key = "addUpIncome")
    private String addUpIncome;

    /**
     * 累计减除费用
     */
    @TableTitle(title = "累计减除费用", dataIndex = "addUpSubtraction", key = "addUpSubtraction")
    private String addUpSubtraction;

    /**
     * 累计专项扣除
     */
    @TableTitle(title = "累计专项扣除", dataIndex = "addUpSpecialDeduction", key = "addUpSpecialDeduction")
    private String addUpSpecialDeduction;

    /**
     * 累计子女教育
     */
    @TableTitle(title = "累计子女教育", dataIndex = "addUpChildEducation", key = "addUpChildEducation")
    private String addUpChildEducation;

    /**
     * 累计继续教育
     */
    @TableTitle(title = "累计继续教育", dataIndex = "addUpContinuingEducation", key = "addUpContinuingEducation")
    private String addUpContinuingEducation;

    /**
     * 累计住房贷款利息
     */
    @TableTitle(title = "累计住房贷款利息", dataIndex = "addUpHousingLoanInterest", key = "addUpHousingLoanInterest")
    private String addUpHousingLoanInterest;

    /**
     * 累计住房租金
     */
    @TableTitle(title = "累计住房租金", dataIndex = "addUpHousingRent", key = "addUpHousingRent")
    private String addUpHousingRent;

    /**
     * 累计赡养老人
     */
    @TableTitle(title = "累计赡养老人", dataIndex = "addUpSupportElderly", key = "addUpSupportElderly")
    private String addUpSupportElderly;

    /**
     * 累计其他扣除
     */
    @TableTitle(title = "累计其他扣除", dataIndex = "addUpOther", key = "addUpOther")
    private String addUpOther;

    /**
     * 减按计税比例
     */
    @TableTitle(title = "减按计税比例", dataIndex = "lessTaxProportion", key = "lessTaxProportion")
    private String lessTaxProportion;

    /**
     * 准允扣除的捐赠额
     */
    @TableTitle(title = "准允扣除的捐赠额", dataIndex = "allowedDonation", key = "allowedDonation")
    private String allowedDonation;

    /**
     * 应纳税所得额
     */
    @TableTitle(title = "应纳税所得额", dataIndex = "taxableIncome", key = "taxableIncome")
    private String taxableIncome;

    /**
     * 税率
     */
    @TableTitle(title = "税率", dataIndex = "taxRate", key = "taxRate")
    private String taxRate;

    /**
     * 速算扣除数
     */
    @TableTitle(title = "速算扣除数", dataIndex = "quickDeductionFactor", key = "quickDeductionFactor")
    private String quickDeductionFactor;

    /**
     * 应纳税款
     */
    @TableTitle(title = "应纳税款", dataIndex = "taxPayable", key = "taxPayable")
    private String taxPayable;

    /**
     * 减免税额
     */
    @TableTitle(title = "减免税额", dataIndex = "taxSavings", key = "taxSavings")
    private String taxSavings;

    /**
     * 已扣缴税额
     */
    @TableTitle(title = "已扣缴税额", dataIndex = "taxWithheld", key = "taxWithheld")
    private String taxWithheld;

    /**
     * 应补（退）税额
     */
    @TableTitle(title = "应补（退）税额", dataIndex = "refundedOrSupplementedTax", key = "refundedOrSupplementedTax")
    private String refundedOrSupplementedTax;

    /**
     * 备注
     */
    @TableTitle(title = "备注", dataIndex = "description", key = "description")
    private String description;
}
