package com.jwipc.finance.dto;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author Al
 * @create 2024-02-23 12:29
 */
@Data
public class DeductionExportDTO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 扣款编号(取t_sequence表中的cut_payment_code)
     */
    @ExcelProperty("扣款编号")
    private String deductionNo;

    /**
     * 供应商编码
     */
    @ExcelProperty("供应商编码")
    private String supplierCode;

    /**
     * 供应商名称
     */
    @ExcelProperty("供应商名称")
    private String supplierName;

    /**
     * 公司编码
     */
    @ExcelProperty("公司编码")
    private String companyCode;

    /**
     * 公司名称
     */
    @ExcelProperty("公司名称")
    private String companyName;

    /**
     * 扣款类型 在字典中获取(字典值back_type)
     */
    @ExcelIgnore
    private Integer deductionType;
    @ExcelProperty("扣款类型")
    private String deductionTypeName;

    /**
     * 预计扣款金额
     */
    @ExcelProperty("预计扣款金额（小写）")
    private BigDecimal deductionAmount;

    /**
     * 未税扣款金额
     */
    @ExcelProperty("实际扣款金额（小写）")
    private BigDecimal dntAmount;

    /**
     * 税率编码
     */
    @ExcelProperty("税率编码")
    private String taxCode;

    /**
     * 扣款税率值(%)
     */
    @ExcelProperty("扣款税率值")
    private Integer taxValue;

    /**
     * 扣款时间
     */
//    @ExcelProperty("扣款时间")
//    @DateTimeFormat(value="yyyy-MM-dd")
//    private LocalDateTime deductionTime;


    /**
     * 扣款原因
     */
    @ExcelProperty("扣款原因")
    private String deductionReason;

    /**
     * 关联单据号(比如:质量通知单,采购订单号,索赔单号)
     */
    @ExcelProperty("订单号")
    private String associatedNo;

    /**
     * 关联单据行号(比如：采购订单行号)
     */
    @ExcelProperty("对账单号")
    private String associatedRowNo;

//    /**
//     * 状态
//     */
//    @ExcelProperty("状态")
//    private String status;

    /**
     * 状态 0:新建 1:OA审批中 2:OA审批拒绝 3:完成 4:待采购确认 5:驳回 6:待供方确认
     */
    @ExcelIgnore
    private Integer status;
    @ExcelProperty("状态")
    private String statusName;



    /**
     * 创建时间
     */
    @DateTimeFormat(value="yyyy-MM-dd")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;


    /**
     * 扣款人
     */
    @ExcelProperty("扣款人")
    private String createUserName;

    /**
     * 更新时间
     */
    @DateTimeFormat(value="yyyy-MM-dd")
    @ExcelProperty("更新时间")
    private LocalDateTime updateTime;





}
