package cn.superdesk.uniorder.dto.vo.accounting.unified.customer.statement;

import cn.superdesk.uniorder.dto.vo.accounting.unified.customer.ViewDzMainBankInfo;
import lombok.Data;

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

/**
 * @Description: 前端:客户结算>对账单 table list
 * @Author: linjinyu
 * @CreateDate: 5/21/20 5:27 PM
 * @UpdateUser: linjinyu
 * @UpdateDate: 5/21/20 5:27 PM
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@Data
public class CustomerStatementOfAccountDetailVo implements Serializable {

	private static final long serialVersionUID = 1L;

	private Long id;

//	<result column="dim_create_by" jdbcType="TINYINT" property="dimCreateBy" />
//    <result column="logic_mode" jdbcType="TINYINT" property="logicMode" />

	private Integer dimCreateBy;
	private Integer logicMode;

	private String accountingOrderSn;
	private String serviceNo;
	/**
	 * 非数据库,要加工
	 */
	private String serviceName;

	/**
	 * 前端col名称:订单数量
	 */
	private Integer    quantityOrder;
	/**
	 * 前端:客户结算>对账单
	 * 前端col名称:对账单金额
	 */
	private BigDecimal accountingAmount;
	private String     accountingAmountStr;
	/**
	 * 对账单 状态 0-未确认;1-已确认;-1已取消;
	 */
	private Integer    accountingStatus;
	/**
	 * 程序处理
	 */
	private String     accountingStatusName;


	private Integer invoiceType;
	/**
	 * 对账单 开票状态 0-未开票;1-已开票;2-部分开票;
	 */
	private Integer invoiceStatus;
	/**
	 * 程序处理
	 */
	private String  invoiceStatusName;

	private String invoiceCompanyName;
	private String invoiceTaxpayersIDCode;

	private Long   projectId;
	private String projectName;

	private Long   enterpriseId;
	/**
	 * 程序处理
	 */
	private String enterpriseName;
	/**
	 * 程序处理
	 */
	private String enterpriseNo;

	private Long   purchaseUserId;
	private String purchaseUserName;
	private String purchasePhone;
	private String purchaseAddress;

	private Integer isSendEmail;
	private Date    sendEmailTime;

	private Integer dateType;
	private Date    startTime;
	private Date    endTime;
	private String  startTimeStr;
	private String  endTimeStr;


	/**
	 * 回款情况 0-未回款;1-部分回款;2-全部回款;
	 */
	private Integer backAccountStatus;
	/**
	 * 程序处理
	 */
	private String  backAccountStatusName;

	private Long bankInfoId;

	private ViewDzMainBankInfo bankInfo;

	/****************************************** bankInfo start ******************************************/

	/**
	 * 收 款 方(单位)
	 */
	private String bankInfoCompanyName;
	/**
	 * 银行账号(公账)
	 */
	private String bankInfoBankAccount;
	private String bankInfoBankName;
	/**
	 * 供货单位
	 */
	private String bankInfoSupplyName;
	/**
	 * 联系电话
	 */
	private String bankInfoTel;
	/**
	 * 地址
	 */
	private String bankInfoAddress;
	/****************************************** bankInfo start ******************************************/


	private Date   createTime;
	private String createTimeStr;
	private Long   createUserId;
	private String createUserName;
	private Date   updateTime;
	private Long   updateUserId;
	private String updateUserName;


	/**
	 * TODO 支付方式
	 * 未支付  0
	 * 余额支付  1
	 * 后台付款 11
	 * 在线支付 2
	 * 微信支付 21
	 * 组合支付  24
	 * <p>
	 * 企业月结 3
	 */
	private Integer payType;
	/**
	 * 程序处理
	 */
	private String  payTypeName;
	/**
	 * 微信支付-状态 TODO 要变更成 支付状态 添加一个 支付方式
	 * 1-已支付
	 * 2-未支付
	 */
	private Integer payStatus;
	/**
	 * 程序处理
	 */
	private String  payStatusName;


	private String wxQrcodeImgurl;


	private String billEmail;

	private List<CustomerStatementOfAccountDetailItemVo> orders;


}