package cn.superdesk.uniorder.dto.param.invoice.customer.invoiced;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

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

/**
 * @author linjinyu
 * @email linjinyu@avic-s.com
 * @date 2021-07-26 11:24:21
 */
@Data
@ToString
public class InvoiceInvoicedParam implements Serializable {

	@ApiModelProperty("")
	private Long    id;
	@ApiModelProperty("发票编号")
	private String  invoiceSequenceNumber;
	@ApiModelProperty("ERP单据编号")
	private String  erpDocumentNumber;
	@ApiModelProperty("表(invoice_type.id)")
	private Long    invoiceTypeId;
	@ApiModelProperty("发票种类")
	private String  invoiceType;
	@ApiModelProperty("发票类别代码")
	private String  categoryCode;
	@ApiModelProperty("发票号码")
	private String  invoiceNumber;
	@ApiModelProperty("导入时记录 导入来源:100-;110-;120-;130-;")
	private Integer sourceFromExcelType;
	@ApiModelProperty("开票机号")
	private String  billingMachineNumber;

	@ApiModelProperty("购方主体Id 表(sys_enterprise_ext_invoice.id)")
	private Long    purchaserMainId;
	@ApiModelProperty("购方名称")
	private String  purchaserCompanyName;
	@ApiModelProperty("购方税号")
	private String  purchaserTaxpayersIDCode;
	@ApiModelProperty("购方地址电话")
	private String  purchaserAddressPhone;
	@ApiModelProperty("购方电话----add")
	private String  purchaserPhone;
	@ApiModelProperty("购方地址----add")
	private String  purchaserAddress;
	@ApiModelProperty("购方银行名称与帐号")
	private String  purchaserBankAccountNumber;
	@ApiModelProperty("购方银行帐号")
	private String  purchaserBankAccount;
	@ApiModelProperty("购方银行名称")
	private String  purchaserBankName;

	@ApiModelProperty("销方主体Id 表(invoice_bank_info.id)")
	private Long   sellerMainId;
	@ApiModelProperty("销方名称")
	private String sellerCompanyName;
	@ApiModelProperty("销方税号")
	private String sellerTaxpayersIDCode;
	@ApiModelProperty("销方地址电话")
	private String sellerAddressPhone;
	@ApiModelProperty("销方地址----add")
	private String sellerAddress;
	@ApiModelProperty("销方电话----add")
	private String sellerPhone;
	@ApiModelProperty("销方银行名称与帐号")
	private String sellerBankAccountNumber;
	@ApiModelProperty("销方银行帐号")
	private String sellerBankAccount;
	@ApiModelProperty("销方银行名称")
	private String sellerBankName;

	@ApiModelProperty("加密版本号")
	private String     encryptedVersionNumber;
	@ApiModelProperty("开票日期 eg 2021-03-03 10:02:34")
	private Date       invoicedDate;
	@ApiModelProperty("所属月份 eg 3")
	private Integer    reportingPeriod;
	@ApiModelProperty("合计金额 eg ￥3,126.11")
	private BigDecimal totalAmount;
	@ApiModelProperty("税率 eg 0.13")
	private BigDecimal taxRate;
	@ApiModelProperty("合计税额 eg ￥406.39")
	private BigDecimal totalTax;
	@ApiModelProperty("含税总金额 eg ￥3,532.50")
	private BigDecimal totalAmountIncludingTax;
	@ApiModelProperty("实际应收金额 如果没有红冲 此值等于发票金额 含税金额(total_amount_including_tax)")
	private BigDecimal receivableAmount;
	@ApiModelProperty("是否红冲:0-否;1-是;")
	private Integer    isRedWriteOff;
	@ApiModelProperty("红冲金额 红冲后要修正 实际应收金额(receivable_amount)")
	private BigDecimal redWriteOffAmount;
	@ApiModelProperty("红冲发票号")
	private String     redWriteOffInvoiceSequenceNumber;
	@ApiModelProperty("是否蓝冲:0-否;1-是;")
	private Integer    isBlueWriteOff;
	@ApiModelProperty("蓝冲金额")
	private BigDecimal blueWriteOffAmount;
	@ApiModelProperty("是否回款_回款状态:0-未回款;1-部分回款;2-全部回款;69-红冲发票;")
	private Integer    isBackCollection;
	@ApiModelProperty("回款时间 eg 2021-03-03 10:02:34")
	private Date       backCollectionTime;
	@ApiModelProperty("已回款金额")
	private BigDecimal backCollectionAmountAlready;
	@ApiModelProperty("待回款金额")
	private BigDecimal backCollectionAmountWaitFor;
	@ApiModelProperty("回款次数")
	private Integer    backCollectionFrequency;
	@ApiModelProperty("主要商品名称")
	private String     mainGoodsName;
	@ApiModelProperty("商品税目")
	private String     goodsTaxItem;
	@ApiModelProperty("备注")
	private String     remarks;
	@ApiModelProperty("开票人")
	private String     personNameInvoice;
	@ApiModelProperty("复核人")
	private String     personNameReview;
	@ApiModelProperty("收款人")
	private String     personNameCashier;
	@ApiModelProperty("开票人-统一订单 sys_user_id ---- add")
	private Long       sysUserIdInvoice;
	@ApiModelProperty("复核人-统一订单 sys_user_id ---- add")
	private Long       sysUserIdReview;
	@ApiModelProperty("收款人-统一订单 sys_user_id ---- add")
	private Long       sysUserIdCashier;
	@ApiModelProperty("清单标志 eg True TRUE False FALSE")
	private String     flagList;
	@ApiModelProperty("作废标志 eg True TRUE False FALSE")
	private String     flagVoidSign;
	@ApiModelProperty("是否作废:0-正常;1-作废")
	private Integer    isInvalid;
	@ApiModelProperty("软删除:0-未删除;1-已删除")
	private Integer    deleted;
	@ApiModelProperty("修复标志 eg True TRUE False FALSE")
	private String     flagRepair;
	@ApiModelProperty("申请人 eg 空串")
	private String     personNameApplicant;
	@ApiModelProperty("申请人-统一订单 sys_user_id ---- add")
	private Long       sysUserIdApplicant;
	@ApiModelProperty("自定义项 eg 空串")
	private String     customItem;
	@ApiModelProperty("单据编号 eg 2021030301 与 ERP单据编号 是同一个东西吗？")
	private String     documentNumber;
	@ApiModelProperty("自定义项2 eg 空串")
	private String     customItem2;
	@ApiModelProperty("开票方式 eg 空串")
	private String     invoicedMethod;
	@ApiModelProperty("硬件销售额 eg 0")
	private String     hardwareSalesVolume;
	@ApiModelProperty("软件销售额 eg 0")
	private String     softwareSalesVolume;
	@ApiModelProperty("经营类目代码")
	private String     businessCategoryCode;
	@ApiModelProperty("经营类目名称")
	private String     businessCategoryName;
	@ApiModelProperty("逾期天数 当前日期-开票日期-30")
	private Integer    overdueDays;
	@ApiModelProperty("是否逾期 0<=逾期天数 =IF(0<=B917,已逾期,未逾期):0-未逾期;1-已逾期;")
	private Integer    isOverdue;

	@ApiModelProperty("物业公司-Id-统一订单 sys_user_id ---- add")
	private Long   propertyCompanyId;
	@ApiModelProperty("物业公司-名称")
	private String propertyCompanyName;
	@ApiModelProperty("客户经理-Id-统一订单 sys_user_id ---- add")
	private Long   customerManagerId;
	@ApiModelProperty("客户经理-名称")
	private String customerManagerName;

	@ApiModelProperty("流程单号+进度")
	private String  processNumberAndRateOfProgress;
	@ApiModelProperty("进度更新位置(格式:时间+进度)")
	private String  rateOfProgressUpdate;
	@ApiModelProperty("是否重点推进:0-否;1-是;")
	private Integer isPushHardly;
	@ApiModelProperty("项目(财务口)")
	private String  customerProjectName;
	@ApiModelProperty("备注1")
	private String  memo1;
	@ApiModelProperty("备注2")
	private String  memo2;
	@ApiModelProperty("备注3")
	private String  memo3;
	@ApiModelProperty("备注4")
	private String  memo4;
	@ApiModelProperty("备注5")
	private String  memo5;
	@ApiModelProperty("备注6")
	private String  memo6;
	@ApiModelProperty("备注7")
	private String  memo7;
	@ApiModelProperty("备注8")
	private String  memo8;
	@ApiModelProperty("备注9")
	private String  memo9;
	@ApiModelProperty("备注10")
	private String  memo10;

	@ApiModelProperty("外部系统 集团Id 一般是指 服务之窗 或 福利商城")
	private Long   outCliqueLeave0Id;
	@ApiModelProperty("外部系统 集团名称 一般是指 服务之窗 或 福利商城")
	private String outCliqueLeave0Name;
	@ApiModelProperty("外部系统 区域分公司Id eg: 1/2/3/4 一般是指 服务之窗 或 福利商城")
	private String outCliqueLeave14Id;
	@ApiModelProperty("外部系统 区域分公司名称 eg: 区域/分公司/ 一般是指 服务之窗 或 福利商城")
	private String outCliqueLeave14Name;
	@ApiModelProperty("外部系统 项目Id 一般是指 服务之窗 或 福利商城")
	private Long   outOrgId;
	@ApiModelProperty("外部系统 项目名称 一般是指 服务之窗 或 福利商城")
	private String outOrgName;
	@ApiModelProperty("外部系统 企业Id 一般是指 服务之窗 或 福利商城")
	private Long   outVirtId;
	@ApiModelProperty("外部系统 企业名称 一般是指 服务之窗 或 福利商城")
	private String outVirtName;

	@ApiModelProperty("路径eg 0/1/1/1 中间数值均为服务之窗的数据")
	private String outPath;
	@ApiModelProperty("路径eg 集团/分公司/项目/企业 中间数值均为服务之窗的数据")
	private String outEffect;


	@ApiModelProperty("创建时间")
	private Date   createTime;
	@ApiModelProperty("操作人 sysUserId")
	private Long   createUserId;
	@ApiModelProperty("操作人 sysUserName")
	private String createUserName;
	@ApiModelProperty("最近更新时间")
	private Date   updateTime;
	@ApiModelProperty("操作人 sysUserId")
	private Long   updateUserId;
	@ApiModelProperty("操作人 sysUserName")
	private String updateUserName;


}
