package com.jeeplus.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.core.service.dto.BaseDTO;
import com.jeeplus.sys.service.dto.UserDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * 财务管理-发票
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class CwFinanceInvoiceList {

    public static final String BIZ_CODE = "4";

    private UserDTO createBy;
    private String id;
    /**
     * 发票申请编号
     */
    private String no;

    /**
     * 项目名称
     */
    private String programName;

    private String reportNos;

    /**
     * 实际开票单位
     */
    private String billingWorkplaceReal;

    /**
     * 经办人
     */
    private String operator;

    /**
     * 经办人部门
     */
    private String operatorOffice;

    /**
     * 发票号
     */
    private String number;

    /**
     * 开票金额(元)
     */
    private String account;

    private String baseAccount;

    /**
     * 发票金额(元)
     */
    private String accountDetail;

    private String reportType;

    private String projectClassification;

    /**
     * 开票内容
     */
    private String billingContent;

    /**
     * 发票类型
     */
    private String type;

    /**
     * 开票时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date billingDate;

    /**
     * 状态
     */
    private String status;

    /**
     * 收款日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date receivablesDate;

    /**
     * 是否确认收款
     */
    private String receivablesStatus;

    /**
     * 备注信息
     */
    private String remarks;

    /**
     * 开票类型
     */
    private String billingType;


    /**
     * 纳税人识别号
     */
    private String taxpayerIdentificationNo;

    /**
     * 地址
     */
    private String address;

    /**
     * 电话
     */
    private String telPhone;

    /**
     * 开户银行
     */
    private String openBank;

    /**
     * 银行账号
     */
    private String bankAccount;

    /**
     * 姓名
     */
    private String name;

    /**
     * 收款类型
     */
    private String receivablesType;

    /**
     * 开票内容要求
     */
    private String billingContentTerms;

    /**
     * 开票人
     */
    private String billingPeople;


    /**
     * 领票时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date collectDate;

    /**
     * 实际开票人
     */
    private String billingPeopleReal;
    /**
     * 实际开票人姓名
     */
    private String billingPeopleRealName;

    /**
     * 对账人id
     */
    private String reconciliationPeople;

    /**
     * 对账人姓名
     */
    private String reconciliationPeopleName;

    /**
     * 对账地区
     */
    private String reconciliationArea;

    /**
     * 实际开票单位id
     */
    private String billingWorkplaceRealId;

    /**
     * 开票人id
     */
    private String billingPeopleId;

    /**
     * 流程id
     */
    private String procInsId;

    /**
     * 流程信息
     */
    private String processDefinitionId;

    /**
     * 是否作废
     */
    private String invalidStatus;

    /**
     * 开票总金额 Begin
     */
    private String accountBegin;

    /**
     * 开票总金额 End
     */
    private String accountEnd;

    /**
     * 开票日期 Begin
     */
    private String billingDateBegin;

    /**
     * 开票日期 End
     */
    private String billingDateEnd;

    /**
     * 收款日期Begin
     */
    private String remittanceDateBegin;

    /**
     * 收款日期End
     */
    private String remittanceDateEnd;

    /**
     * 项目id
     */
    private String programId;

    /**
     * 数据审核人  发票申请
     */
    private List<String> auditUserIds;

    /**
     * 发票作废  taskId
     */
    private String invalidTaskId;

    private String taskId;

    /**
     * 数据审核人  发票作废
     */
    private List<String> auditUserIdsInvalid;

    /**
     * 是否为收款页面   0否  1是
     */
    private String isReceivables;

    /**
     * 是否多张开票  1是  0否
     */
    private String isMultiple;

    /**
     * 实际开票单位的开票信息id
     */
    private String billingId;


    /**
     * 基本信息表id
     */
    private String baseId;

    /**
     * 基本信息中的类型(项目:1;报告:2;其他:0)
     */
    private String recordType;

    /**
     * 报告文号
     */
    private String reportNo;

    /**
     * 邮箱账号
     */
    private String actualDrawerEmailAddress;

    /**
     * 单选类型确认
     */
    private String checkType;
    /**
     * 是否预开票
     */
    private String isPreInvoice;

    private String createName;

    /*8
    预开票已关联
     */
    private String isCompleteInvoice;



    private static final long serialVersionUID = 1L;
}
