package cn.superdesk.uniorder.dao.entity.invoice.customer.invoiced;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
import lombok.ToString;

@Data
@ToString
public class InvoiceInvoiced implements Serializable {
    private Long id;

    /**
     * 发票编号
     */
    private String invoiceSequenceNumber;

    /**
     * ERP单据编号
     */
    private String erpDocumentNumber;

    /**
     * 表(invoice_type.id)
     */
    private Long invoiceTypeId;

    /**
     * 发票种类
     */
    private String invoiceType;

    /**
     * 发票类别代码
     */
    private String categoryCode;

    /**
     * 发票号码
     */
    private String invoiceNumber;

    /**
     * 导入时记录 导入来源:100-excel;110-;120-;130-;
     */
    private Integer sourceFromExcelType;

    /**
     * 开票机号
     */
    private String billingMachineNumber;

    /**
     * 购方主体Id 表(sys_enterprise_ext_invoice.id)
     */
    private Long purchaserMainId;

    /**
     * 购方名称
     */
    private String purchaserCompanyName;

    /**
     * 购方税号
     */
    private String purchaserTaxpayersIDCode;

    /**
     * 购方地址电话
     */
    private String purchaserAddressPhone;

    /**
     * 购方电话----add
     */
    private String purchaserPhone;

    /**
     * 购方地址----add
     */
    private String purchaserAddress;

    /**
     * 购方银行名称与帐号
     */
    private String purchaserBankAccountNumber;

    /**
     * 购方银行帐号
     */
    private String purchaserBankAccount;

    /**
     * 购方银行名称
     */
    private String purchaserBankName;

    /**
     * 销方主体Id 表(invoice_bank_info.id)
     */
    private Long sellerMainId;

    /**
     * 销方名称
     */
    private String sellerCompanyName;

    /**
     * 销方税号
     */
    private String sellerTaxpayersIDCode;

    /**
     * 销方地址电话
     */
    private String sellerAddressPhone;

    /**
     * 销方地址----add
     */
    private String sellerAddress;

    /**
     * 销方电话----add
     */
    private String sellerPhone;

    /**
     * 销方银行名称与帐号
     */
    private String sellerBankAccountNumber;

    /**
     * 销方银行帐号
     */
    private String sellerBankAccount;

    /**
     * 销方银行名称
     */
    private String sellerBankName;

    /**
     * 加密版本号
     */
    private String encryptedVersionNumber;

    /**
     * 开票日期 eg 2021-03-03 10:02:34
     */
    private Date invoicedDate;

    /**
     * 所属月份 eg 3
     */
    private Integer reportingPeriod;

    /**
     * 合计金额 eg ￥3,126.11
     */
    private BigDecimal totalAmount;

    /**
     * 税率 eg 0.13
     */
    private BigDecimal taxRate;

    /**
     * 合计税额 eg ￥406.39
     */
    private BigDecimal totalTax;

    /**
     * 含税总金额 eg ￥3,532.50
     */
    private BigDecimal totalAmountIncludingTax;

    /**
     * 实际应收金额 如果没有红冲 此值等于发票金额 含税金额(total_amount_including_tax)
     */
    private BigDecimal receivableAmount;

    /**
     * 是否红冲:0-否;1-是;
     */
    private Integer isRedWriteOff;

    /**
     * 红冲金额 红冲后要修正 实际应收金额(receivable_amount)
     */
    private BigDecimal redWriteOffAmount;

    /**
     * 红冲发票号
     */
    private String redWriteOffInvoiceSequenceNumber;

    /**
     * 是否蓝冲:0-否;1-是;
     */
    private Integer isBlueWriteOff;

    /**
     * 蓝冲金额
     */
    private BigDecimal blueWriteOffAmount;

    /**
     * 是否回款_回款状态:0-未回款;1-部分回款;2-全部回款;69-红冲发票;
     */
    private Integer isBackCollection;

    /**
     * 回款时间 eg 2021-03-03 10:02:34
     */
    private Date backCollectionTime;

    /**
     * 已回款金额
     */
    private BigDecimal backCollectionAmountAlready;

    /**
     * 待回款金额
     */
    private BigDecimal backCollectionAmountWaitFor;

    /**
     * 回款次数
     */
    private Integer backCollectionFrequency;

    /**
     * 主要商品名称
     */
    private String mainGoodsName;

    /**
     * 商品税目
     */
    private String goodsTaxItem;

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

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

    /**
     * 复核人
     */
    private String personNameReview;

    /**
     * 收款人
     */
    private String personNameCashier;

    /**
     * 开票人-统一订单 sys_user_id ---- add
     */
    private Long sysUserIdInvoice;

    /**
     * 复核人-统一订单 sys_user_id ---- add
     */
    private Long sysUserIdReview;

    /**
     * 收款人-统一订单 sys_user_id ---- add
     */
    private Long sysUserIdCashier;

    /**
     * 清单标志 eg True TRUE False FALSE
     */
    private String flagList;

    /**
     * 作废标志 eg True TRUE False FALSE
     */
    private String flagVoidSign;

    /**
     * 是否作废:0-正常;1-作废
     */
    private Integer isInvalid;

    /**
     * 软删除:0-未删除;1-已删除
     */
    private Integer deleted;

    /**
     * 修复标志 eg True TRUE False FALSE
     */
    private String flagRepair;

    /**
     * 申请人 eg 空串
     */
    private String personNameApplicant;

    /**
     * 申请人-统一订单 sys_user_id ---- add
     */
    private Long sysUserIdApplicant;

    /**
     * 自定义项 eg 空串
     */
    private String customItem;

    /**
     * 单据编号 eg 2021030301 与 ERP单据编号 是同一个东西吗？
     */
    private String documentNumber;

    /**
     * 自定义项2 eg 空串
     */
    private String customItem2;

    /**
     * 开票方式 eg 空串
     */
    private String invoicedMethod;

    /**
     * 硬件销售额 eg 0
     */
    private String hardwareSalesVolume;

    /**
     * 软件销售额 eg 0
     */
    private String softwareSalesVolume;

    /**
     * 经营类目代码
     */
    private String businessCategoryCode;

    /**
     * 经营类目名称
     */
    private String businessCategoryName;

    /**
     * 逾期天数 当前日期-开票日期-30
     */
    private Integer overdueDays;

    /**
     * 是否逾期 0<=逾期天数 =IF(0<=B917,已逾期,未逾期):0-未逾期;1-已逾期;
     */
    private Integer isOverdue;

    /**
     * 物业公司-Id-统一订单 sys_user_id ---- add
     */
    private Long propertyCompanyId;

    /**
     * 物业公司-名称
     */
    private String propertyCompanyName;

    /**
     * 客户经理-Id-统一订单 sys_user_id ---- add
     */
    private Long customerManagerId;

    /**
     * 客户经理-名称
     */
    private String customerManagerName;

    /**
     * 流程单号+进度
     */
    private String processNumberAndRateOfProgress;

    /**
     * 进度更新位置(格式:时间+进度)
     */
    private String rateOfProgressUpdate;

    /**
     * 是否重点推进:0-否;1-是;
     */
    private Integer isPushHardly;

    /**
     * 项目(财务口)
     */
    private String customerProjectName;

    /**
     * 备注1
     */
    private String memo1;

    /**
     * 备注2
     */
    private String memo2;

    /**
     * 备注3
     */
    private String memo3;

    /**
     * 备注4
     */
    private String memo4;

    /**
     * 备注5
     */
    private String memo5;

    /**
     * 备注6
     */
    private String memo6;

    /**
     * 备注7
     */
    private String memo7;

    /**
     * 备注8
     */
    private String memo8;

    /**
     * 备注9
     */
    private String memo9;

    /**
     * 备注10
     */
    private String memo10;

    /**
     * 外部系统 集团Id 一般是指 服务之窗 或 福利商城
     */
    private Long outCliqueLeave0Id;

    /**
     * 外部系统 集团名称 一般是指 服务之窗 或 福利商城
     */
    private String outCliqueLeave0Name;

    /**
     * 外部系统 区域分公司Id eg: 1/2/3/4 一般是指 服务之窗 或 福利商城
     */
    private String outCliqueLeave14Id;

    /**
     * 外部系统 区域分公司名称 eg: 区域/分公司/ 一般是指 服务之窗 或 福利商城
     */
    private String outCliqueLeave14Name;

    /**
     * 外部系统 项目Id 一般是指 服务之窗 或 福利商城
     */
    private Long outOrgId;

    /**
     * 外部系统 项目名称 一般是指 服务之窗 或 福利商城
     */
    private String outOrgName;

    /**
     * 外部系统 企业Id 一般是指 服务之窗 或 福利商城
     */
    private Long outVirtId;

    /**
     * 外部系统 企业名称 一般是指 服务之窗 或 福利商城
     */
    private String outVirtName;

    /**
     * 路径eg 0/1/1/1 中间数值均为服务之窗的数据
     */
    private String outPath;

    /**
     * 路径eg 集团/分公司/项目/企业 中间数值均为服务之窗的数据
     */
    private String outEffect;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 操作人 sysUserId
     */
    private Long createUserId;

    /**
     * 操作人 sysUserName
     */
    private String createUserName;

    /**
     * 最近更新时间
     */
    private Date updateTime;

    /**
     * 操作人 sysUserId
     */
    private Long updateUserId;

    /**
     * 操作人 sysUserName
     */
    private String updateUserName;

    private static final long serialVersionUID = 1L;
}
