package com.zfire.mall.manager.bean.invoice;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.zfire.mall.manager.annotation.ZfireField;
import com.zfire.mall.manager.constant.FrontCodeConstant;
import com.zfire.mall.manager.enums.*;
import com.zfire.mall.manager.plus.entity.SalesOrderPicture;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * @author change
 */
@ApiModel
@Data
public class InvoiceProjectVO {


    @ZfireField(isQuery = false )
    @ApiModelProperty(value = "打印次数")
    private Integer printNum;

    @ZfireField(hide = false,isQuery = true,tbName = "iao")
    @ApiModelProperty(value = "物料分组")
    private String materialGroupName;

    @ZfireField(hide = false,frontCode = FrontCodeConstant.CATEGORY,tbName = "iao",colName = "k3_category_id",type ="select",multiple = true)
    @ApiModelProperty(value = "存货分类")
    private String k3CategoryName;

    @ZfireField(tbName = "ia",type = "select")
    @ApiModelProperty(value = "是否非计划单")
    private IsEnum automaticStatus;

    @ZfireField(tbName = "iao",hide = true)
    @ApiModelProperty(value = "明细id")
    private String itemId;


    @ZfireField(hide = false,isQuery = true,tbName = "ia")
    @ApiModelProperty(value = "发货类型")
    private InvoiceOrderTypeEnum type;

    @ZfireField(hide = false,isQuery = true,tbName = "iao")
    @ApiModelProperty(value = "销售订单类型")
    private OrderTypeEnum orderType;


    @ZfireField(hide = false,isQuery = true,tbName = "ia")
    @ApiModelProperty(value = "单据状态")
    private ExamineStatusEnum examineStatus;


    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "审批时间")
    private Date approvalTime;


    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "审批人")
    private String approvalName;

    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "审批说明")
    private String approvalRemark;


    @ZfireField(hide = true,isQuery = true,tbName = "iao")
    @ApiModelProperty(value = "审核时间")
    private Date confirmTime;

    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "发货日期")
    private Date orderTime;

    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "发货创建日期")
    private Date createTime;

    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "单据日期")
    private Date theTime;

    @ZfireField(hide = false,isQuery = true,tbName = "ia")
    @ApiModelProperty(value = "发货单号")
    private String id;


    @ZfireField(tbName = "iao",colName = "goods_order_id")
    @ApiModelProperty(value = "订单号")
    private String goodsOrderId;


    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "经销商编号")
    private String customerNumber;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "经销商id")
    private String customerId;

    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "经销商名称")
    private String customerName;



    @ZfireField(hide = true,tbName = "iao")
    @ApiModelProperty(value = "销售类型id")
    private String saleTypeId;

    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "销售类型编号")
    private String saleTypeCode;

    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "销售类型名称")
    private String saleTypeName;

    @ZfireField(hide = true,tbName = "iao")
    @ApiModelProperty(value = "金蝶物料id")
    private String materialId;


    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "厂产品代码")
    private String materialOldNumber;

    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "物料编号")
    private String materialCode;

    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "产品名称")
    private String materialName;

    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "规格型号")
    private String specification;

    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "单位")
    private String unit;

    @ZfireField(hide = true,tbName = "iao")
    @ApiModelProperty(value = "仓库ID")
    private String correspondId;

    @ZfireField(tbName = "ia",colName = "correspond_id",frontCode = FrontCodeConstant.STOCK,type = "select",multiple = true)
    @ApiModelProperty(value = "仓库名称")
    private String correspondName;

    @ZfireField(hide = true,isQuery = false)
    @ApiModelProperty(value = "未出库数量")
    private Integer salesQty;

    @ZfireField(hide = false,isQuery = true)
    @ApiModelProperty(value = "发货数量")
    private Integer refundableQty;

    @ZfireField(hide = false,isQuery = true)
    @ApiModelProperty(value = "发货金额")
    private BigDecimal payAmount;

    @ZfireField(hide = false,isQuery = true)
    @ApiModelProperty(value = "发货返利金额")
    private BigDecimal payRebateAmount;

    @ZfireField(hide = false,isQuery = true)
    @ApiModelProperty(value = "发货折扣金额")
    private BigDecimal totalDiscAmount;

    @ZfireField(hide = false,isQuery = false)
    @ApiModelProperty(value = "折扣额合计")
    private BigDecimal payDiscAmount;

    @ZfireField(hide = false,isQuery = true)
    @ApiModelProperty(value = "含税单价")
    private BigDecimal price;

    @ZfireField(hide = false,isQuery = false)
    @ApiModelProperty(value = "含税总额")
    private BigDecimal payAllAmount;


    @ZfireField(hide = true,tbName = "iao")
    @ApiModelProperty(value = "表头业务员id")
    private String k3ServiceId;

    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "表头业务员n")
    private String k3ServiceName;


    @ZfireField(hide = true,tbName = "iao")
    @ApiModelProperty(value = "业务员id(对应admin_user表的id)")
    private String serviceId;

    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "业务员名称")
    private String serviceName;


    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "政策单号")
    private String policyCode;

    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "销售政策名称")
    private String policyTitle;

    @ZfireField(hide = false,isQuery = false)
    @ApiModelProperty(value = "区域")
    private String adminArea;


    @ZfireField(hide = false,isQuery = false)
    @ApiModelProperty(value = "业务区域")
    private String serviceArea;

    @ZfireField(hide = false,isQuery = false)
    @ApiModelProperty(value = "月份")
    private String month;

    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "项目编码")
    private String refProjectNo;

    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "项目名称")
    private String refProjectName;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "存货分类")
    private String categoryName;

    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "申请发货单备注")
    private String remark;

    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "发货申请文件编号")
    private String fileNo;

    @ZfireField(hide = false,tbName = "ia",colName = "file_no")
    @ApiModelProperty(value = "工程文件编号")
    private String enginFileNo;


    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty("表头备注")
    private String headerRemark;

    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "表体备注")
    private String invoiceRemark;

    @ZfireField(hide = true,tbName = "iao")
    @ApiModelProperty(value = "经销商现金钱包id")
    private String customerWalletId;

    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "经销商现金钱包名称")
    private String customerWalletName;

    @ZfireField(hide = true,tbName = "iao")
    @ApiModelProperty(value = "经销商现金钱包编码")
    private String customerWalletNumber;

    @ZfireField(hide = true,tbName = "iao")
    @ApiModelProperty(value = "经销商返利钱包id")
    private String customerWalletId2;

    @ZfireField(hide = true,tbName = "iao")
    @ApiModelProperty(value = "经销商返利钱包名称")
    private String customerWalletName2;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "金蝶部门编码")
    private String k3OrgNumber;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "金蝶部门名称")
    private String k3OrgName;

    @ZfireField(hide = true,tbName = "iao")
    @ApiModelProperty(value = "文件编号")
    private String itemFileNo;

    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "创建人（制单人）")
    private String createBy;

    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "更新人")
    private String updateBy;

    @ZfireField(hide = false,tbName = "iao")
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "审核人")
    private String confirmBy;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "审核人")
    private String confirmName;

    @ZfireField(isQuery = false,type = "select")
    @ApiModelProperty(value = "预约提货打印状态")
    private PickOrderEnum printStatus;

    @ZfireField(isQuery = true,tbName = "iao",colName = "second_customer_number")
    @ApiModelProperty(value = "二级经销商代码")
    private String secondCustomerNumber;

    @ZfireField(tbName = "ia")
    @ApiModelProperty(value = "使用单位")
    private String refUseUnit;

    @ZfireField(isQuery = false,type = "select")
    @ApiModelProperty(value = "是否同步到格匠采购入库单")
    private GeJiangIsEnum gejiangSync;

    @ZfireField(isQuery = false)
    @ApiModelProperty(value = "同步格匠失败原因")
    private String gejiangSyncRemark;




















    @ZfireField(hide = true)
    @ApiModelProperty(value = "附近名")
    private String fileName;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "附件")
    private String fileUrl;


    @ZfireField(hide = true)
    @ApiModelProperty(value = "审批人账号")
    private String correspondUserName;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "工程信息单号")
    private String enginInfoNo;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "关闭人")
    private String closeName;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "关闭时间")
    private Date closeTime;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "工程订单编号")
    private String enginOrderNo;



    @ZfireField(hide = true)
    @ApiModelProperty(value = "工程类型 TRADE=商用 HOME=家用")
    private String enginOrderType;
    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "厂编号")
    private String refFactoryNo;
    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "安装地址")
    private String refInstallAddress;

    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "联系人")
    private String refLinkman;
    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "联系电话")
    private String refPhone;
    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "固定电话")
    private String refTel;
    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "工程登录编号")
    private String refEnginRecordNo;


    @ZfireField(hide = true)
    @ApiModelProperty(value = "销售出库单号")
    private String salesOrderId;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "金蝶仓库")
    private String stockId;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "金蝶仓库编码")
    private String stockNumber;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "金蝶仓库名称")
    private String stockName;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "最顶层销售出库单")
    private String salesId;
    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "区域")
    private String refRegionWork;
    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "行业类别")
    private String refTradeCategory;
    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "权限分类")
    private String refPowerCategory;
    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "机型类别")
    private String refMachineType;
    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "项目类别")
    private String refProjectCategory;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "主订单id")
    private String mainOrderId;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "订单商品id")
    private String orderId;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "申请发货订单号")
    private String invoiceId;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "申请数量")
    private Integer invoiceNum;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "审批数量")
    private Integer approvalNumber;


    @ZfireField(hide = true)
    @ApiModelProperty(value = "已退数量")
    private Integer retiredQty;






    @ZfireField(hide = true)
    @ApiModelProperty(value = "税率例如: 0.13")
    private BigDecimal tax;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "数量")
    private Integer qty;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "税后单价")
    private BigDecimal afterTaxPrice;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "无税金额")
    private BigDecimal noTotalAmount;




    @ZfireField(hide = true)
    @ApiModelProperty(value = "1正常")
    private Boolean refundStatus;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "单个商品的实际支付金额(实际支付金额/qty)")
    private BigDecimal singlePayPrice;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "单个商品的押金金额(单个商品的实际支付金额*押金比例)")
    private BigDecimal singleDepositAmount;


    @ZfireField(hide = true)
    @ApiModelProperty(value = "单个商品的格力折扣金额")
    private BigDecimal discAmount;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "金蝶行号")
    private String kingDeeSeq;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "金蝶内码")
    private String kingDeeEntryId;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "金蝶销售出库单id")
    private String kingSaleId;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "金蝶销售出库单行号")
    private String kingDeeOrderSeq;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "金蝶销售出库单内码")
    private String kingDeeOrderId;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "金蝶销售出库number")
    private String kingBillNo;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "订单金额")
    private BigDecimal totalAmount;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "单个商品的返利金额(实际扣除的返利金额/qty)")
    private BigDecimal singleRebateAmount;






    @ZfireField(hide = true)
    @ApiModelProperty(value = "销售政策id")
    private String policyId;






    @ZfireField(hide = true)
    @ApiModelProperty(value = "配件型号1")
    private String pjxh1Text;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "销售出库单状态")
    private String salesExamineStatus;






    @ZfireField(hide = true)
    @ApiModelProperty(value = "订单日期")
    private Date orderDate;

    @ZfireField(hide = false,tbName = "ia")
    @ApiModelProperty(value = "项目类型")
    private String refProjectType;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "项目说明")
    private String refProjectNote;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "工程登录类型")
    private String refPromiseStatus;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "第几申报")
    private String refDeclareNo;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "引用次数")
    private Integer refCount;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "扣押金 false=扣 true=不扣")
    private Boolean takeDeposit;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "直调状态 false=未完结 true=已完结")
    private Boolean directTransferStatus;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "预付款 true=已扣 false=未扣")
    private Boolean advanceStatus;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "格力回复")
    private String geLiNote;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "格力内部备注")
    private String geLiInerNote;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "备注")
    private String enginRemark;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "审核说明")
    private String examineNote;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "单据状态 SAVE=保存 WAIT=待审核 OK=通过 FAIL=不通过 CLOSE=关闭")
    private String enginExamineStatus;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "创建人")
    @TableField(fill = FieldFill.INSERT)
    private String enginCreateBy;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date enginCreateTime;


    @ZfireField(hide = true)
    @ApiModelProperty(value = "提交人")
    private String submitBy;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "提交时间")
    private Date submitTime;


    @ZfireField(hide = true)
    @ApiModelProperty(value = "弃审人")
    private String abandonBy;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "弃审时间")
    private Date abandonTime;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "关闭人")
    private String closeBy;


    @ZfireField(hide = true)
    @ApiModelProperty(value = "经销商集团名称")
    private String parentId;
    @ZfireField(hide = true)
    @ApiModelProperty(value = "经销商集团名称")
    private String customerGroupName;





}
