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.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 InvoiceNewListBean {

    @ZfireField(tbName = "ia")
    @ApiModelProperty(value = "订单号")
    private String id;

    @ZfireField(tbName = "ia")
    @ApiModelProperty(value = "单据日期")
    private Date orderTime;

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

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

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

    @ZfireField(tbName = "ia")
    @ApiModelProperty(value = "备注信息")
    private String remark;

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

    @ZfireField(tbName = "ia")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ZfireField(tbName = "ia")
    @ApiModelProperty(value = "更新人")
    private String updateBy;

    @ZfireField(tbName = "ia")
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

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

    @ZfireField(tbName = "ia")
    @ApiModelProperty(value = "仓库名称")
    private String correspondName;

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

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

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

    @ZfireField(hide = true)
    @ApiModelProperty(value = "1自动生成 0非自动 （商用）")
    private Boolean automaticStatus;

    @ApiModelProperty(value = "订单计划单状态")
    private String automaticStatusName;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "审批人账号")
    private String correspondUserName;

    @ZfireField(tbName = "eo")
    @ApiModelProperty(value = "工程信息单号")
    private String enginInfoNo;

    @ZfireField(tbName = "ia")
    @ApiModelProperty(value = "单据状态 SAVE=保存 WAIT=待审核 OK=通过 FAIL=不通过 CLOSE=关闭")
    private String examineStatus;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "关闭人")
    private String closeName;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "关闭时间")
    private Date closeTime;

    @ZfireField(hide = true,tbName = "ia")
    @ApiModelProperty(value = "工程订单编号")
    private String enginOrderNo;

    @ZfireField(tbName = "eo")
    @ApiModelProperty(value = "项目名称")
    private String refProjectName;

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

    @ZfireField(tbName = "ia")
    @ApiModelProperty(value = "工程类型 TRADE=商用 HOME=家用")
    private String enginOrderType;

    @ZfireField(tbName = "eo")
    @ApiModelProperty(value = "厂编号")
    private String refFactoryNo;

    @ZfireField(tbName = "eo")
    @ApiModelProperty(value = "安装地址")
    private String refInstallAddress;

    @ZfireField(tbName = "eo")
    @ApiModelProperty(value = "联系人")
    private String refLinkman;

    @ZfireField(tbName = "eo")
    @ApiModelProperty(value = "联系电话")
    private String refPhone;

    @ZfireField(tbName = "eo")
    @ApiModelProperty(value = "固定电话")
    private String refTel;

    @ZfireField(tbName = "eo")
    @ApiModelProperty(value = "工程登录编号")
    private String refEnginRecordNo;

    @ZfireField(tbName = "eo")
    @ApiModelProperty(value = "文件编号")
    private String fileNo;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "1 申请发货单   2退货单 3 直调发货单")
    private Integer type;

    @ApiModelProperty(value = "订单类型")
    private Integer typeName;

    @ZfireField(tbName = "ia")
    @ApiModelProperty(value = "销售出库单号")
    private String salesOrderId;

    @ZfireField(tbName = "eo")
    @ApiModelProperty(value = "区域")
    private String refRegionWork;

    @ZfireField(tbName = "eo")
    @ApiModelProperty(value = "工程编号")
    private String refProjectNo;

    @ApiModelProperty(value = "工程文件编号")
    private String enginFileNo;

    @ZfireField(tbName = "eo")
    @ApiModelProperty(value = "行业类别")
    private String refTradeCategory;

    @ZfireField(tbName = "eo")
    @ApiModelProperty(value = "权限分类")
    private String refPowerCategory;

    @ZfireField(tbName = "eo")
    @ApiModelProperty(value = "机型类别")
    private String refMachineType;

    @ZfireField(tbName = "eo")
    @ApiModelProperty(value = "项目类别")
    private String refProjectCategory;

    @ZfireField(tbName = "iao")
    @ApiModelProperty(value = "零售订单号")
    private String mainOrderId;


    @ZfireField(hide = true)
    @ApiModelProperty(value = "订单商品id")
    private String orderId;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "申请发货订单号")
    private String invoiceId;

    @ZfireField(tbName = "iao")
    @ApiModelProperty(value = "申请数量")
    private Integer invoiceNum;

    @ZfireField(tbName = "iao")
    @ApiModelProperty(value = "审批数量")
    private Integer approvalNumber;

    @ZfireField(tbName = "iao")
    @ApiModelProperty(value = "可退数量")
    private Integer refundableQty;

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


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

    @ZfireField(hide = true)
    @ApiModelProperty(value = "订单类型 TRADE=商用 HOME=家用 RETAIL=零售单 RETAIL_POLICY 销售政策单  PERMU_HOME = 置换单家用        PERMU_TRADE 置换商用   PERMU_RETAIL  置换零售   PERMU_RETAIL_POLICY 置换销售政策单")
    private String orderType;

    @ZfireField(hide = true)
    @ApiModelProperty(value = "订单归属")
    private String orderTypeName;

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

    @ZfireField(hide = true)
    @ApiModelProperty(value = "销售类型编号")
    private String saleTypeCode;

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

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

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

    @ZfireField(tbName = "iao")
    @ApiModelProperty(value = "产品编码")
    private String materialOldNumber;

    @ZfireField(tbName = "iao")
    @ApiModelProperty(value = "物料名称")
    private String materialName;

    @ZfireField(tbName = "iao")
    @ApiModelProperty(value = "物料规格型号")
    private String specification;

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


    @ZfireField(tbName = "iao")
    @ApiModelProperty(value = "单价")
    private BigDecimal price;

    @ZfireField(tbName = "iao")
    @ApiModelProperty(value = "实付金额")
    private BigDecimal payAmount;

    @ZfireField(tbName = "iao")
    @ApiModelProperty(value = "税率例如: 0.13")
    private BigDecimal tax;

    @ZfireField(tbName = "iao")
    @ApiModelProperty(value = "订单数量")
    private Integer qty;

    @ZfireField(tbName = "iao")
    @ApiModelProperty(value = "税后单价")
    private BigDecimal afterTaxPrice;

    @ZfireField(tbName = "iao")
    @ApiModelProperty(value = "无税金额")
    private BigDecimal noTotalAmount;

    @ZfireField(tbName = "iao")
    @ApiModelProperty(value = "实际扣除的返利金额")
    private BigDecimal payRebateAmount;

    @ZfireField(tbName = "iao")
    @ApiModelProperty(value = "总的格力折扣金额")
    private BigDecimal totalDiscAmount;

    @ApiModelProperty(value = "1正常")
    private Boolean refundStatus;

    @ApiModelProperty(value = "单个商品的实际支付金额(实际支付金额/qty)")
    private BigDecimal singlePayPrice;

    @ApiModelProperty(value = "单个商品的押金金额(单个商品的实际支付金额*押金比例)")
    private BigDecimal singleDepositAmount;

    @ApiModelProperty(value = "业务员id(对应admin_user表的id)")
    private String serviceId;

    @ApiModelProperty(value = "业务员名称")
    private String serviceName;

    @ApiModelProperty(value = "单个商品的格力折扣金额")
    private BigDecimal discAmount;

    @ApiModelProperty(value = "金蝶行号")
    private String kingDeeSeq;

    @ApiModelProperty(value = "金蝶内码")
    private String kingDeeEntryId;

    @ApiModelProperty(value = "金蝶销售出库单id")
    private String kingSaleId;

    @ApiModelProperty(value = "金蝶销售出库单行号")
    private String kingDeeOrderSeq;

    @ApiModelProperty(value = "金蝶销售出库单内码")
    private String kingDeeOrderId;

    @ApiModelProperty(value = "金蝶销售出库number")
    private String kingBillNo;

    @ApiModelProperty(value = "订单金额")
    private BigDecimal totalAmount;

    @ApiModelProperty(value = "单个商品的返利金额(实际扣除的返利金额/qty)")
    private BigDecimal singleRebateAmount;

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

    @ApiModelProperty(value = "区域")
    private String adminArea;

    @ApiModelProperty(value = "销售政策编号")
    private String policyCode;

    @ApiModelProperty(value = "业务区域")
    private String serviceArea;

    @ApiModelProperty(value = "月份")
    private String month;

    @ApiModelProperty(value = "产品详细备注")
    private String invoiceRemark;

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

    @ApiModelProperty(value = "销售政策说明")
    private String policyTitle;

    @ApiModelProperty("表头备注")
    private String headerRemark;

    @ApiModelProperty(value = "表头业务员id")
    private String k3ServiceId;

    @ApiModelProperty(value = "表头业务员name")
    private String k3ServiceName;


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

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

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

    @ApiModelProperty(value = "经销商现金钱包id")
    private String customerWalletId;

    @ApiModelProperty(value = "经销商现金钱包名称")
    private String customerWalletName;

    @ApiModelProperty(value = "经销商现金钱包编码")
    private String customerWalletNumber;

    @ApiModelProperty(value = "经销商返利钱包id")
    private String customerWalletId2;

    @ApiModelProperty(value = "经销商返利钱包名称")
    private String customerWalletName2;

    @ApiModelProperty(value = "文件编号")
    private String itemFileNo;




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


    @ApiModelProperty(value = "项目类型")
    private String refProjectType;

    @ApiModelProperty(value = "项目说明")
    private String refProjectNote;


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


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


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


    @ApiModelProperty(value = "扣押金 false=扣 true=不扣")
    private Boolean takeDeposit;

    @ApiModelProperty(value = "直调状态 false=未完结 true=已完结")
    private Boolean directTransferStatus;

    @ApiModelProperty(value = "预付款 true=已扣 false=未扣")
    private Boolean advanceStatus;

    @ApiModelProperty(value = "格力回复")
    private String geLiNote;

    @ApiModelProperty(value = "格力内部备注")
    private String geLiInerNote;

    @ApiModelProperty(value = "备注")
    private String enginRemark;

    @ApiModelProperty(value = "审核说明")
    private String examineNote;

    @ApiModelProperty(value = "单据状态 SAVE=保存 WAIT=待审核 OK=通过 FAIL=不通过 CLOSE=关闭")
    private String enginExamineStatus;

    @ApiModelProperty(value = "创建人")
    @TableField(fill = FieldFill.INSERT)
    private String enginCreateBy;

    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date enginCreateTime;



    @ApiModelProperty(value = "提交人")
    private String submitBy;

    @ApiModelProperty(value = "提交时间")
    private Date submitTime;

    @ApiModelProperty(value = "审核人")
    private String confirmBy;

    @ApiModelProperty(value = "审核人")
    private String confirmName;

    @ApiModelProperty(value = "审核时间")
    private Date confirmTime;

    @ApiModelProperty(value = "弃审人")
    private String abandonBy;

    @ApiModelProperty(value = "弃审时间")
    private Date abandonTime;

    @ApiModelProperty(value = "关闭人")
    private String closeBy;



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

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

    @ApiModelProperty(value = "预约提货打印状态 1 打印 0 未打印")
    private String printStatus;


    @ApiModelProperty(value = "二级经销商代码")
    private String secondCustomerNumber;

    @ApiModelProperty(value = "是否同步到格匠采购入库单 1是 0待同步 -1失败")
    private Integer gejiangSync;

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

    @ApiModelProperty(value = "物料分组")
    private String materialGroupName;

    @ApiModelProperty(value = "物料类别")
    private String k3CategoryName;

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

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

    @ApiModelProperty(value = "图片")
    private List<SalesOrderPicture> salesOrderPictures;





}
