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

import com.engine.salary.annotation.SalaryTableColumn;
import com.engine.salary.annotation.TableTitle;
import com.engine.salary.util.excel.ExcelHead;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 个税申报表详情列表（劳务报酬所得）
 * <p>Copyright: Copyright (c) 2022</p>
 * <p>Company: 泛微软件</p>
 *
 * @author qiantao
 * @version 1.0
 **/
@Data
@Accessors(chain = true)
public class TaxDeclarationLaborListDTO {

    //主键id
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    //人员id
    @JsonSerialize(using = ToStringSerializer.class)
    private Long employeeId;

    @SalaryTableColumn(
            text = "工号", width = "10%", column = "jobNum"
    )
    @TableTitle(title = "工号", dataIndex = "jobNum", key = "jobNum")
    @ExcelHead(title = "工号", dataIndex = "jobNum")
    private String jobNum;

    @SalaryTableColumn(
            text = "姓名", width = "10%", column = "username"
    )
    @TableTitle(title = "姓名", dataIndex = "username", key = "username")
    @ExcelHead(title = "姓名", dataIndex = "username")
    private String username;

    @SalaryTableColumn(
            text = "证件类型", width = "10%", column = "cardType"
    )
    @TableTitle(title = "证件类型", dataIndex = "cardType", key = "cardType")
    @ExcelHead(title = "证件类型", dataIndex = "cardType")
    private String cardType;

    @SalaryTableColumn(
            text = "证件号码", width = "10%", column = "cardNum"
    )
    @TableTitle(title = "证件号码", dataIndex = "cardNum", key = "cardNum")
    @ExcelHead(title = "证件号码", dataIndex = "cardNum")
    private String cardNum;

    @SalaryTableColumn(
            text = "所得项目", width = "10%", column = "incomeItems"
    )
    @TableTitle(title = "所得项目", dataIndex = "incomeItems", key = "incomeItems")
    @ExcelHead(title = "所得项目", dataIndex = "incomeItems")
    private String incomeItems;

    @SalaryTableColumn(
            text = "劳务收入", width = "10%", column = "laborIncome"
    )
    @TableTitle(title = "劳务收入", dataIndex = "laborIncome", key = "laborIncome")
    @ExcelHead(title = "劳务收入", dataIndex = "laborIncome")
    private String laborIncome;

    @SalaryTableColumn(
            text = "劳务免税收入", width = "10%", column = "laborTaxFreeIncome"
    )
    @TableTitle(title = "劳务免税收入", dataIndex = "laborTaxFreeIncome", key = "laborTaxFreeIncome")
    @ExcelHead(title = "劳务免税收入", dataIndex = "laborTaxFreeIncome")
    private String laborTaxFreeIncome;

    @SalaryTableColumn(
            text = "商业健康保险", width = "10%", column = "commercialHealthInsurance"
    )
    @TableTitle(title = "商业健康保险", dataIndex = "commercialHealthInsurance", key = "commercialHealthInsurance")
    @ExcelHead(title = "商业健康保险", dataIndex = "commercialHealthInsurance")
    private String commercialHealthInsurance;

    @SalaryTableColumn(
            text = "税延养老保险", width = "10%", column = "taxDeferredEndowmentInsurance"
    )
    @TableTitle(title = "税延养老保险", dataIndex = "taxDeferredEndowmentInsurance", key = "taxDeferredEndowmentInsurance")
    @ExcelHead(title = "税延养老保险", dataIndex = "taxDeferredEndowmentInsurance")
    private String taxDeferredEndowmentInsurance;

    @SalaryTableColumn(
            text = "其他", width = "10%", column = "other"
    )
    @TableTitle(title = "其他", dataIndex = "other", key = "other")
    @ExcelHead(title = "其他", dataIndex = "other")
    private String other;

    @SalaryTableColumn(
            text = "准予扣除的捐赠额", width = "10%", column = "allowedDonation"
    )
    @TableTitle(title = "准予扣除的捐赠额", dataIndex = "allowedDonation", key = "allowedDonation")
    @ExcelHead(title = "准予扣除的捐赠额", dataIndex = "allowedDonation")
    private String allowedDonation;

    @SalaryTableColumn(
            text = "减免税额", width = "10%", column = "taxDeduction"
    )
    @TableTitle(title = "减免税额", dataIndex = "taxDeduction", key = "taxDeduction")
    @ExcelHead(title = "减免税额", dataIndex = "taxDeduction")
    private String taxDeduction;

    @SalaryTableColumn(
            text = "备注", width = "10%", column = "description"
    )
    @TableTitle(title = "备注", dataIndex = "description", key = "description")
    @ExcelHead(title = "备注", dataIndex = "description")
    private String description;
}
