package cn.superdesk.uniorder.dto.vo.invoice.customer;

import cn.superdesk.uniorder.dto.param.organisation.SysEnterpriseExtInvoiceParam;
import cn.superdesk.uniorder.dto.vo.invoice.common.InvoiceBankInfoVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * @Description: 发票申请管理(积分结算)(流水维度)-查看详情
 * @Author: linjinyu
 * @CreateDate: 7/28/20 4:59 PM
 * @UpdateUser: linjinyu
 * @UpdateDate: 7/28/20 4:59 PM
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@Data
public class InvoiceApplyCustomerDetailDimCreditVo implements Serializable {

	private static final long serialVersionUID = 1L;

	@ApiModelProperty("")
	private Long id;

	@ApiModelProperty("accounting_order_type 对账单类型 1-一般;2-积分;")
	private Integer accountingOrderType = 2;
	@ApiModelProperty("dim_create_by 对账单 创建维度:0-订单;1-商品;2-流水;")
	private Integer dimCreateBy         = 2;

	@ApiModelProperty("开票申请编号 // 修改标记 20211201")
	private String invoiceApplySn;
	@ApiModelProperty("发票号")
	private String invoiceNumber;

	/****************************************** 发票申请部分 start ******************************************/

	@ApiModelProperty("发票申请部分(超级前台(适用)|侨城汇(适用))-发票申请人Id-后台帐号")
	private Long   applyUserId;
	@ApiModelProperty("发票申请部分(超级前台(适用)|侨城汇(适用))-发票申请人名称-后台帐号")
	private String applyUserName;
	@ApiModelProperty("发票申请部分(超级前台(适用)|侨城汇(适用))-发票申请时间")
	private Date   applyTime;

	/****************************************** 发票申请审核部分 start ******************************************/

	@ApiModelProperty("发票申请审核部分(超级前台(适用)|侨城汇(弃用))-审核人Id-后台帐号")
	private Long    auditUserId;
	@ApiModelProperty("发票申请审核部分(超级前台(适用)|侨城汇(弃用))-审核人名称-后台帐号")
	private String  auditUserName;
	@ApiModelProperty("发票申请审核部分(超级前台(适用)|侨城汇(弃用))-审核时间")
	private Date    auditTime;
	@ApiModelProperty("发票申请审核部分(超级前台(适用)|侨城汇(弃用))-审核状态 1-未审核;2-已同意;3-已拒绝;")
	private Integer auditStatus;
	@ApiModelProperty("发票申请审核部分(超级前台(适用)|侨城汇(弃用))-审核状态 1-未审核;2-已同意;3-已拒绝;数据库没记录,通过程序定义的附加产生")
	private String  auditStatusName;

	/****************************************** 开票进展部分 start ******************************************/

	@ApiModelProperty("开票进展部分(超级前台(适用)|侨城汇(适用))-开票进展状态:0-待开票(原:未邮寄);1-已邮寄(弃用);2-已作废;10-开票中;11-已开票;原来的定义:发票状态 0未邮寄 1已邮寄 2已作废")
	private Integer invoiceStatus;
	@ApiModelProperty("开票进展部分(超级前台(适用)|侨城汇(适用))-开票进展状态:0-待开票(原:未邮寄);1-已邮寄(弃用);2-已作废;10-开票中;11-已开票;原来的定义:发票状态 0未邮寄 1已邮寄 2已作废")
	private String  invoiceProgressingStatusName;
	@ApiModelProperty("开票进展部分(超级前台(适用)|侨城汇(适用))-最后更新人-sysUserId")
	private Long    invoiceProgressingUserId;
	@ApiModelProperty("开票进展部分(超级前台(适用)|侨城汇(适用))-最后更新人-sysUserId")
	private String  invoiceProgressingUserName;
	@ApiModelProperty("开票进展部分(超级前台(适用)|侨城汇(适用))-最后更新时间")
	private Date    invoiceProgressingTime;

	/****************************************** 开票登记部分 start ******************************************/

	@ApiModelProperty("发票登记部分(超级前台(适用)|侨城汇(不适用))-开票登记人Id-后台帐号")
	private Long    makeInvoiceUserId;
	@ApiModelProperty("发票登记部分(超级前台(适用)|侨城汇(不适用))-开票登记人名称-后台帐号")
	private String  makeInvoiceUserName;
	@ApiModelProperty("发票登记部分(超级前台(适用)|侨城汇(不适用))-开票时间")
	private Date    makeInvoiceTime;
	@ApiModelProperty("发票登记部分(超级前台(适用)|侨城汇(不适用))-开票状态 0-未开票;1-已开票;2-重新开票;")
	private Integer makeInvoiceStatus;
	@ApiModelProperty("发票登记部分(超级前台(适用)|侨城汇(不适用))-开票状态 0-未开票;1-已开票;2-重新开票;数据库没记录,通过程序定义的附加产生")
	private String  makeInvoiceStatusName;

	/****************************************** 运营领票部分 start ******************************************/

	@ApiModelProperty("运营领票部分(超级前台(不适用)|侨城汇(专用))-领票状态:0-未领票;1-已领票;")
	private Integer receiveInvoiceStatus;
	@ApiModelProperty("运营领票部分(超级前台(不适用)|侨城汇(专用))-领票状态:0-未领票;1-已领票;")
	private String  receiveInvoiceStatusName;
	@ApiModelProperty("运营领票部分(超级前台(不适用)|侨城汇(专用))-最后更新人-sysUserId")
	private Long    receiveInvoiceUserId;
	@ApiModelProperty("运营领票部分(超级前台(不适用)|侨城汇(专用))-最后更新人-sysUserId")
	private String  receiveInvoiceUserName;
	@ApiModelProperty("运营领票部分(超级前台(不适用)|侨城汇(专用))-最后更新时间")
	private Date    receiveInvoiceTime;

	/****************************************** 寄票登记部分 start ******************************************/

	@ApiModelProperty("寄票登记部分(超级前台(适用)|侨城汇(适用))-寄票登记人Id-后台帐号")
	private Long    mailTickUserId;
	@ApiModelProperty("寄票登记部分(超级前台(适用)|侨城汇(适用))-寄票登记人名称-后台帐号")
	private String  mailTickUserName;
	@ApiModelProperty("寄票登记部分(超级前台(适用)|侨城汇(适用))-寄票时间")
	private Date    mailTickTime;
	@ApiModelProperty("寄票登记部分(超级前台(适用)|侨城汇(适用))-寄票状态:0-未寄票;1-已寄票;")
	private Integer mailTickStatus;
	@ApiModelProperty("寄票登记部分(超级前台(适用)|侨城汇(适用))-寄票状态:0-未寄票;1-已寄票;数据库没记录,通过程序定义的附加产生")
	private String  mailTickStatusName;

	@ApiModelProperty("寄票登记部分(超级前台(适用)|侨城汇(适用))-快递公司Id")
	private Long   expressCompanyId;
	@ApiModelProperty("寄票登记部分(超级前台(适用)|侨城汇(适用))-快递公司名称")
	private String expressCompanyName;
	@ApiModelProperty("寄票登记部分(超级前台(适用)|侨城汇(适用))-快递单号")
	private String expressNo;

	/****************************************** 回款登记部分 start ******************************************/

	@ApiModelProperty("回款登记部分(超级前台(适用)|侨城汇(适用))-回款状态:0-未回款;1-部分回款;2全部回款;")
	private Integer backAccountStatus;
	@ApiModelProperty("回款登记部分(超级前台(适用)|侨城汇(适用))-回款状态:0-未回款;1-部分回款;2全部回款;数据库没记录,通过程序定义的附加产生")
	private String  backAccountStatusName;
	@ApiModelProperty("回款登记部分(超级前台(适用)|侨城汇(适用))-回款登记方式记录:0-初始;10-手动;11-流水;")
	private Integer backAccountModeRecord;
	@ApiModelProperty("回款登记部分(超级前台(适用)|侨城汇(适用))-最后更新人-sysUserId")
	private Long    backAccountUserId;
	@ApiModelProperty("回款登记部分(超级前台(适用)|侨城汇(适用))-最后更新人-sysUserId")
	private String  backAccountUserName;
	@ApiModelProperty("回款登记部分(超级前台(适用)|侨城汇(适用))-最后更新时间")
	private Date    backAccountTime;

	@ApiModelProperty("")
	private BigDecimal backMoney;
	@ApiModelProperty("")
	private BigDecimal noBackMoney;
	@ApiModelProperty("")
	private Date       maxBackTime;

	@Deprecated
	@ApiModelProperty("发票抬头 之前名称 invoiceCompanyName - 老方式 - 新方式为 sysEnterpriseExtInvoiceId sys_enterprise_ext_invoice.id")
	private String                       invoiceTitle;
	@ApiModelProperty("企业信息扩展发票信息.id sysEnterpriseExtInvoiceId 如果等于0 老方式 显示 invoiceTitle 如果大于0 显示 sysEnterpriseExtInvoiceSnapshotEntity")
	private Long                         sysEnterpriseExtInvoiceId;
	@ApiModelProperty("企业信息扩展发票信息快照 JSON 字符串")
	private String                       sysEnterpriseExtInvoiceSnapshot;
	@ApiModelProperty("企业信息扩展发票信息快照 对象")
	private SysEnterpriseExtInvoiceParam sysEnterpriseExtInvoiceSnapshotEntity;

	@ApiModelProperty("销方信息")
	private InvoiceBankInfoVo bankInfo;

	@ApiModelProperty("备注")
	private String remark;

	@ApiModelProperty(value = "绑定附件 upload_files.uid")
	private String attachmentUploadFilesUids;


	@ApiModelProperty("流水")
	private List<InvoiceApplyDetailDimCreditItemVo> dzOrders;

}
