package com.jeeplus.centerservice.dto;

import com.google.common.collect.Lists;
import com.jeeplus.core.domain.BaseEntity;
import lombok.Data;

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

@Data
public class InvoiceDto extends BaseEntity {
    private String number;		// 发票申请编号
    private String processInstanceId; // 流程实例编号

    private String projectName;		// 项目名称
    private String reportNumber;		// 报告号
    private Double money;		// 价税合计
    private String moneyStr;		// 价税合计(String)
    private String invoiceType;		// 发票类型
    private String invoiceTypeStr;		// 发票类型Str
    private String chargeType;		// 收款类型
    private String billingContent;		// 开票内容
    private String content;		// 开票内容要求
    private Integer invoiceNumber;		// 发票编号（暂时弃用）
    private Date invoiceDate;		// 开票日期
    private Date takeDate;          //领票日期
    private String drawerName;      //开票人（发票管理员名称）
    private String invoiceRemarks;		// 开票备注
    private String isInvoice;		// 是否开票
    private String isCharge;		// 是否收款
    private String isInvalid;		// 是否作废
    private String invoiceState;    //发票状态
    private String orUnicode;       //纳税人识别号
    private String address;         //地址
    private String telephone;        //电话
    private String bank;              //开户银行
    private String bankNumber;        //银行账号
    private String cancleReason; //作废原因
    private String companyId; //提交人的公司编号
    private String officeId;
    private String officeName;
    private String submitterId;		// 发票登记人id
    private String submitterName;		// 发票登记人名称
    private String ext;//1总公司-上级公司0分公司-本公司
    private String contractDate;
    private String province; //省份
    private String home;
    private Date beginContractDate;		// 开始
    private Date endContractDate;		// 结束
    private Date receiptMoneyDate;		// 收款日期
    private String receiptMoney;		// 是否收款
    private String cancellation;		// 作废判断
    private String adminFlag;		// 管理员判断
    private String cancellationRemark;		// 作废原因
    private List<WorkInvoiceDetail> workAccountList = Lists.newArrayList();//发票明细
    private Integer notifyFlag; //代办判定条件
    private String notifyId; //代办判定条件
    private String widNumber; //发票号
    private String widTotalMoney; //发票金额
    private Double widTotalMoneyD; //发票金额


    private String accountCheckingUserId; //对账人id
    private String accountCheckingUserName; //对账人名称
    private String accountCheckingArea; //对账地区
    private List<WorkAttachmentDto> workAttachments;//附件

    private Integer projectFlag ;	//1：项目，0：非项目
    private Date receiptBeginDate ;	//收款开始时间
    private Date receiptEndDate ;	//收款结束时间

    private String newDrawer;    		//开票人状态
    private String newDrawerId;    		//开票人id
    private String newDrawerName;    	//开票人名称
    private String actualDrawerId;    		//实际开票人id
    private String actualDrawerEmailAddress;    		//实际开票人邮箱
    private String actualDrawerName;    	//实际开票人名称
    private String proceedsMoney;    	//收款总收入
    private String noProceedsMoney;    	//剩余应收款费用
    private Integer workReceiptCount;    	//收款数据量
    private Double receiptMoneyD; //已收款金额
    private Double notReceiptMoneyD; //未收款金额

    private Integer electronicInvoiceFlag ;	//是否已经上传电子发票信息（0：未上传；1：已上传）
}
