package cn.superdesk.uniorder.dto.vo.accounting.score.customer;

import cn.superdesk.uniorder.dto.vo.order.CreditTypeItemVo;
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: 侨城汇 积分结算 对账单 列表 Vo
 * AccountingScoreCustomerCreateParam
 * @Author: linjinyu
 * @CreateDate: 6/28/20 10:33 AM
 * @UpdateUser: linjinyu
 * @UpdateDate: 6/28/20 10:33 AM
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@Data
public class AccountingOrderScoreCustomerListItemVo implements Serializable {

	private Long id;

	@ApiModelProperty("积分批次")
	private String batchs;


	//	积分类型
	@ApiModelProperty("积分类型id(如果是微信支付,显示0)")
	private String                 creditType;
	@ApiModelProperty("积分类型")
	private String                 creditName;
	//	<result column="credit_type_struct" jdbcType="LONGVARCHAR" property="creditTypeStruct" />
	private String                 creditTypeStruct;
	private List<CreditTypeItemVo> creditTypeList;

	@ApiModelProperty("对账单编号")
	private String accountingOrderSn;


	@ApiModelProperty("企业Id outVirtId")
	private Long   enterpriseId;
	@ApiModelProperty("企业名称 outVirtName")
	private String enterpriseName;


	//	账单联系人
	@ApiModelProperty("下单人Id")
	private Long   purchaseUserId;
	@ApiModelProperty("下单人姓名")
	private String purchaseUserName;
	@ApiModelProperty("下单人联系电话")
	private String purchasePhone;

	private String purchaseAddress;


	@ApiModelProperty("统计-对账单-订单数量")
	private Integer quantityOrder;
	@ApiModelProperty("统计-对账单-订单商品数")
	private Integer quantityOrderGoods;
	@ApiModelProperty("前端显示-产品向说明:订单数-取对账单明细所有流水的总条数 实际为 统计对账单-积分流水数|")
	private Integer quantityOrderCredit;

	@ApiModelProperty("对账单-订单金额 - 积分结算2.1 新加 取该对账单中所有流水的结算金额总和 等于 结算金额+微信金额 也称之为统计金额 ")
	private BigDecimal statisticsTotalAmount;
	//	【后端部分处理-20220217-对映文档-2.积分结算-2.3未对账流水-已整理-20220217】https://www.tapd.cn/33003868/prong/stories/view/1133003868001003945
	@ApiModelProperty("对账单-结算金额 - 之前的 - 取该对账单中所有积分类型为非`微信支付`的结算金额总和,目前创建对账单成功时服务端默认`微信支付`流水不参与结算,其他积分类型的流水参与结算,未来由业务操作人员选择结算积分类型来计算")
	private BigDecimal accountingAmount;
	@ApiModelProperty("对账单-微信金额 - 积分结算2.1 新加 取该对账单中所有积分类型为`微信支付`的结算金额总和 也称之为不对账金额 不结算金额")
	private BigDecimal unAccountingAmount;

	@ApiModelProperty("订单金额-格式化:#.##")
	private String statisticsTotalAmountFormat;
	@ApiModelProperty("结算金额-格式化:#.##")
	private String accountingAmountFormat;
	@ApiModelProperty("微信金额-格式化:#.##")
	private String unAccountingAmountFormat;

	@ApiModelProperty("对账单状态:0-未确认;1-已确认;-1-已取消;")
	private Integer accountingStatus;
	@ApiModelProperty("程序处理")
	private String  accountingStatusName;

	@ApiModelProperty("邮件状态:是否发邮件:0-不发;1-发;")
	private Integer isSendEmail;
	@ApiModelProperty("程序处理")
	private String  isSendEmailName;
	private Date    sendEmailTime;
	/**
	 * 程序处理
	 */
	private String  sendEmailStatusName;


	@ApiModelProperty("开票状态:0-未开票;1-已开票;2-部分开票;")
	private Integer invoiceStatus;
	@ApiModelProperty("开票状态名称-程序处理")
	private String  invoiceStatusName;
	@ApiModelProperty("发票种类(关联表:表.invoice_type):1-增值税普票;2-增值税专票;")
	private Integer invoiceType;
	@ApiModelProperty("开票抬头")
	private String  invoiceCompanyName;
	@ApiModelProperty("纳税人代码")
	private String  invoiceTaxpayersIDCode;

	@ApiModelProperty("对账时间")
	private Date   createTime;
	@ApiModelProperty("对账时间 格式化:yyyy年MM月dd日 HH:mm:ss")
	private String createTimeStr;
	private Long   createUserId;
	private String createUserName;

	private Date   updateTime;
	private Long   updateUserId;
	private String updateUserName;



	/**************************************** mark by linjinyu at 20220516 v2.3 start ****************************************/

	@ApiModelProperty("订单类型-订单来源-引用enum CommonServiceNoEnum")
	private String  serviceNo;
	@ApiModelProperty("订单类型-订单来源-引用enum CommonServiceNoEnum")
	private String  serviceNoName;

	@ApiModelProperty("操作来源-引用enum CommonSourceFromEnum")
	private String  sourceFrom;
	@ApiModelProperty("操作来源-引用enum CommonSourceFromEnum")
	private String  sourceFromName;

	/**************************************** mark by linjinyu at 20220516 v2.3   end ****************************************/


	@Deprecated
	@ApiModelProperty(value = "账单周期-时间类型")
	private Integer dateType;

	@ApiModelProperty(value = "账单周期-开始时间")
	private Date   startTime;
	@ApiModelProperty(value = "账单周期-开始时间 格式化:yyyy年MM月dd日")
	private String startTimeStr;
	@ApiModelProperty(value = "账单周期-结束时间")
	private Date   endTime;
	@ApiModelProperty(value = "账单周期-结束时间 格式化:yyyy年MM月dd日")
	private String endTimeStr;

	@ApiModelProperty("账单周期(开始时间-结束时间) 格式化:yyyy年MM月dd日-yyyy年MM月dd日")
	private String cycleTimeStr;



	@ApiModelProperty(value = "对账单-供方信息-银行信息Id(关联表)-收款主体")
	private Long   bankInfoId;
	@ApiModelProperty(value = "企业信息扩展发票信息快照 积分结算2.1 后才有的 判定是否为空 为空:用bankInfoId找,不为空:反序列化")
	private String invoiceBankInfoSnapshot;


	@ApiModelProperty("")
	private Integer backAccountStatus;

	@ApiModelProperty("")
	private String remark;

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




	@ApiModelProperty(value = "寄票登记部分 - 快递公司ID")
	private Long expressCompanyId;
	@ApiModelProperty(value = "寄票登记部分 - 快递单号")
	private String expressNo;
	@ApiModelProperty(value = "绑定附件(发票文件) upload_files.uid")
	private String attachmentUploadFilesUids;

}
