package cn.superdesk.uniorder.dao.entity.accounting.unified.supplier;

import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description:
 * @Author: linjinyu
 * @CreateDate: 2022-05-13 14:03:15
 * @UpdateUser: linjinyu
 * @UpdateDate: 2022-05-13 14:03:15
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@NoArgsConstructor
@AllArgsConstructor
@Builder(toBuilder = true)
@Data
@ToString
public class AccountingUnifiedSupplier implements Serializable {
    /**
     * 系统信息-自增Id
     */
    @ApiModelProperty(value = "系统信息-自增Id")
    private Long id;

    /**
     * 供应商 对账单 创建维度:0-订单;1-商品;
     */
    @ApiModelProperty(value = "供应商 对账单 创建维度:0-订单;1-商品;")
    private Integer dimCreateBy;

    /**
     * 对账(结算)单-编号
     */
    @ApiModelProperty(value = "对账(结算)单-编号")
    private String accountingOrderSn;

    /**
     * 对账(结算)单 状态:3-待提交;0-未确认;1-已确认;2-已拒绝;-1-已取消;
     */
    @ApiModelProperty(value = "对账(结算)单 状态:3-待提交;0-未确认;1-已确认;2-已拒绝;-1-已取消;")
    private Integer accountingStatus;

    /**
     * 发票申请-发票信息-开票状态:0-未申请;1-待开票;2-已作废;20-待寄票;30-待收票;40-待付款;99-已完成;
     */
    @ApiModelProperty(value = "发票申请-发票信息-开票状态:0-未申请;1-待开票;2-已作废;20-待寄票;30-待收票;40-待付款;99-已完成;")
    private Integer invoiceStatus;

    /**
     * 发票申请-发票信息-开票抬头
     */
    @ApiModelProperty(value = "发票申请-发票信息-开票抬头")
    private String invoiceTitle;

    /**
     * 发票申请-发票信息-发票类型(关联表:unified_inv_type):1-增值税普票;2-增值税专票;
     */
    @ApiModelProperty(value = "发票申请-发票信息-发票类型(关联表:unified_inv_type):1-增值税普票;2-增值税专票;")
    private Integer invoiceType;

    /**
     * 税率
     */
    @ApiModelProperty(value = "税率")
    private String taxCode;

    @ApiModelProperty(value = "")
    private String address;

    /**
     * 供应商部分-供应商Id(外部)
     */
    @ApiModelProperty(value = "供应商部分-供应商Id(外部)")
    private Long saleId;

    /**
     * 供应商部分-供应商名称
     */
    @ApiModelProperty(value = "供应商部分-供应商名称")
    private String saleName;

    /**
     * 对账(结算)单-是否发邮件:0-不发;1-发;
     */
    @ApiModelProperty(value = "对账(结算)单-是否发邮件:0-不发;1-发;")
    private Integer isSendEmail;

    /**
     * 对账(结算)单-发邮件时间
     */
    @ApiModelProperty(value = "对账(结算)单-发邮件时间")
    private Date sendEmailTime;

    /**
     * 账单周期-开始时间
     */
    @ApiModelProperty(value = "账单周期-开始时间")
    private Date startTime;

    /**
     * 账单周期-结束时间
     */
    @ApiModelProperty(value = "账单周期-结束时间")
    private Date endTime;

    /**
     * 对账(结算)单-回款标记:0-未回款;1-部分回款;2-全部回款;
     */
    @ApiModelProperty(value = "对账(结算)单-回款标记:0-未回款;1-部分回款;2-全部回款;")
    private Integer backAccountStatus;

    /**
     * 系统信息-创建时间
     */
    @ApiModelProperty(value = "系统信息-创建时间")
    private Date createTime;

    /**
     * 系统信息-创建人Id
     */
    @ApiModelProperty(value = "系统信息-创建人Id")
    private Long createUserId;

    /**
     * 系统信息-更新时间
     */
    @ApiModelProperty(value = "系统信息-更新时间")
    private Date updateTime;

    /**
     * 系统信息-更新人Id
     */
    @ApiModelProperty(value = "系统信息-更新人Id")
    private Long updateUserId;

    /**
     * 后台操作人员备注
     */
    @ApiModelProperty(value = "后台操作人员备注")
    private String remark;

    /**
     * 开票申请部分 - 对账单 开票申请状态 0-未申请;1-全部申请;2-部分申请;
     */
    @ApiModelProperty(value = "开票申请部分 - 对账单 开票申请状态 0-未申请;1-全部申请;2-部分申请;")
    private Integer invoiceApplyStatus;

    /**
     * 开票申请部分 - 最后更新人 - sysUserId
     */
    @ApiModelProperty(value = "开票申请部分 - 最后更新人 - sysUserId")
    private Long invoiceApplyUserId;

    /**
     * 开票申请部分 - 最后更新时间
     */
    @ApiModelProperty(value = "开票申请部分 - 最后更新时间")
    private Date invoiceApplyTime;

    /**
     * 开票申请部分 - 开票申请方式记录:0-初始;
     */
    @ApiModelProperty(value = "开票申请部分 - 开票申请方式记录:0-初始;")
    private Integer invoiceApplyModeRecord;

    /**
     * 创建开票申请时产生-统计类-
     */
    @ApiModelProperty(value = "创建开票申请时产生-统计类-")
    private Integer orderQuantity;

    /**
     * 创建开票申请时产生-统计类-订单商品item数量累加
     */
    @ApiModelProperty(value = "创建开票申请时产生-统计类-订单商品item数量累加")
    private Integer goodsQuantity;

    /**
     * 创建开票申请时产生-统计类-订单商品item的数量累加
     */
    @ApiModelProperty(value = "创建开票申请时产生-统计类-订单商品item的数量累加")
    private Integer goodsItemQuantity;

    /**
     * 创建开票申请时产生-统计类-
     */
    @ApiModelProperty(value = "创建开票申请时产生-统计类-")
    private BigDecimal orderAmount;

    /**
     * 创建开票申请时产生-统计类-
     */
    @ApiModelProperty(value = "创建开票申请时产生-统计类-")
    private BigDecimal refundOrderAmount;

    /**
     * 创建开票申请时产生-统计类-商品销售金额(统一订单)
     */
    @ApiModelProperty(value = "创建开票申请时产生-统计类-商品销售金额(统一订单)")
    private BigDecimal goodsAmount;

    /**
     * 创建开票申请时产生-统计类-商品销售金额(统一订单)
     */
    @ApiModelProperty(value = "创建开票申请时产生-统计类-商品销售金额(统一订单)")
    private BigDecimal refundGoodsAmount;

    /**
     * 创建开票申请时产生-统计类-
     */
    @ApiModelProperty(value = "创建开票申请时产生-统计类-")
    private BigDecimal orderCostAmount;

    /**
     * 创建开票申请时产生-统计类-
     */
    @ApiModelProperty(value = "创建开票申请时产生-统计类-")
    private BigDecimal refundOrderCostAmount;

    /**
     * 创建开票申请时产生-统计类-对账单结算金额
     */
    @ApiModelProperty(value = "创建开票申请时产生-统计类-对账单结算金额")
    private BigDecimal accountingOrderAmount;

    /**
     * 创建开票申请时产生-统计类-对账单结算金额(包含运费)
     */
    @ApiModelProperty(value = "创建开票申请时产生-统计类-对账单结算金额(包含运费)")
    private BigDecimal accountingOrderAmountWithFreight;

    /**
     * 需修正标记:0-正常;1-修正;
     */
    @ApiModelProperty(value = "需修正标记:0-正常;1-修正;")
    private Integer needReviseMark;

    /**
     * 创建开票申请时产生-统计类-商品成本金额(统一订单)
     */
    @ApiModelProperty(value = "创建开票申请时产生-统计类-商品成本金额(统一订单)")
    private BigDecimal goodsCostAmount;

    /**
     * 创建开票申请时产生-统计类-商品成本金额(统一订单)
     */
    @ApiModelProperty(value = "创建开票申请时产生-统计类-商品成本金额(统一订单)")
    private BigDecimal refundGoodsCostAmount;

    /**
     * 创建开票申请时产生-统计类-
     */
    @ApiModelProperty(value = "创建开票申请时产生-统计类-")
    private BigDecimal goodsTransportAmount;

    /**
     * 创建开票申请时产生-统计类-
     */
    @ApiModelProperty(value = "创建开票申请时产生-统计类-")
    private BigDecimal refundGoodsTransportAmount;

    /**
     * 创建开票申请时产生-统计类-对账单销售金额
     */
    @ApiModelProperty(value = "创建开票申请时产生-统计类-对账单销售金额")
    private BigDecimal accountingOrderCostAmount;

    /**
     * 创建开票申请时产生-统计类-对账单销售金额(包含运费)
     */
    @ApiModelProperty(value = "创建开票申请时产生-统计类-对账单销售金额(包含运费)")
    private BigDecimal accountingOrderCostAmountWithFreight;

    /**
     * 服务编码-定义:始于订单流上标志的服务编码及从订单流衍生出来的及相关数据的来源标识-引用enum CommonServiceEnum
     */
    @ApiModelProperty(value = "服务编码-定义:始于订单流上标志的服务编码及从订单流衍生出来的及相关数据的来源标识-引用enum CommonServiceEnum")
    private String serviceNo;

    /**
     * 来源-定义:始于操作(不限于界面 内部接口 第三方接口等等);1-superdesk-uniorder;2-superdesk-app;3-superdesk-mall;4-qchqyscjc-mall;
     */
    @ApiModelProperty(value = "来源-定义:始于操作(不限于界面 内部接口 第三方接口等等);1-superdesk-uniorder;2-superdesk-app;3-superdesk-mall;4-qchqyscjc-mall;")
    private String sourceFrom;

    private static final long serialVersionUID = 1L;
}