package com.fjhx.sale.entity.purchase.po;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fjhx.sale.entity.contract.po.ContractDocumentary;
import com.ruoyi.common.core.domain.BasePo;
import lombok.Getter;
import lombok.Setter;

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

/**
 * <p>
 * ehsd采购表
 * </p>
 *
 * @author
 * @since 2023-05-17
 */
@Getter
@Setter
@TableName("ehsd_purchase")
public class EhsdPurchase extends BasePo {

    /**
     * 编码
     */
    private String code;

    /**
     * 合同模版ID
     */
    private Long contractTemplateId;

    /**
     * 卖方公司ID
     */
    private Long sellCorporationId;

    /**
     * 卖方联系人名称
     */
    private String sellContactName;

    /**
     * 卖方联系人电话
     */
    private String sellContactNumber;

    /**
     * 卖方国家表id
     */
    private Long sellCountryId;

    /**
     * 卖方省份id
     */
    private Long sellProvinceId;

    /**
     * 卖方城市id
     */
    private Long sellCityId;

    /**
     * 卖方详细地址
     */
    private String sellAddress;

    /**
     * 买方公司ID
     */
    private Long buyCorporationId;

    /**
     * 买方联系人名称
     */
    private String buyContactName;

    /**
     * 买方联系人电话
     */
    private String buyContactNumber;

    /**
     * 买方国家表id
     */
    private Long buyCountryId;

    /**
     * 买方省份id
     */
    private Long buyProvinceId;

    /**
     * 买方城市id
     */
    private Long buyCityId;

    /**
     * 买方国家表名称
     */
    private String buyCountryName;

    /**
     * 买方省份名称
     */
    private String buyProvinceName;

    /**
     * 买方城市名称
     */
    private String buyCityName;

    /**
     * 买方详细地址
     */
    private String buyAddress;

    /**
     * 买方邮编
     */
    private String buyPostalCode;

    /**
     * 审批状态 0草稿 10、审批中；20、驳回  30、审批通过 88：作废   99终止
     */
    private Integer status;

    /**
     * 付款状态 0未付款  10部分付款  20已付款
     */
    private Integer payStatus;

    /**
     * 采购总金额
     */
    private BigDecimal amount;

    /**
     * 详细地址
     */
    private String address;

    /**
     * 条款内容
     */
    private String remark;

    /**
     * 币种（字典account_currency）
     */
    private String currency;

    /**
     * 交期
     */
    private String deliveryTime;

    /**
     * 交货类型字典（delivery_type）
     */
    private String deliveryType;

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

    /**
     * 付款方式（字典funds_payment_method
     */
    private String paymentMethod;

    /**
     * 质保期
     */
    private Integer warranty;

    /**
     * 流程KEY
     */
    private String processInstanceId;

    /**
     * 审核通过时间
     */
    private Date approvedDate;

    /**
     * 创建人名称
     */
    private String userName;

    //-------------------------标准版采购独有字段开始------------------------------
    /**
     * 部门名称
     */
    private String deptName;

    /**
     * 采购人名称
     */
    private String purchaseName;

    /**
     * 采购时间
     */
    private Date purchaseTime;

    /**
     * 到货状态 0未到货  10 部分到货  20已到货
     */
    private Integer arrivalStatus;

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

    /**
     * 汇率
     */
    private BigDecimal rate;


    /**
     * 流程实例
     */
    private Long flowId;

    /**
     * 采购单个数
     */
    private Integer count;

    /***
     * 业务来源 0自建  1外销合同采购 2:样品单
     */
    private Integer dataResource;

    /**
     * 业务来源ID (外销合同id)
     */
    private Long dataResourceId;
    //-------------------------标准版采购独有字段结束------------------------------

    /**
     * 原采购id
     */
    private Long oldPurchaseId;

    /**
     * 卖方邮编
     */
    private String sellPostalCode;

    /**
     * 采购到货列表
     */
    @TableField(exist = false)
    private List<EhsdPurchaseArrival> purchaseArrivalList;


    /**
     * 采购商品列表
     */
    @TableField(exist = false)
    private List<EhsdPurchaseProject> purchaseProjectList;

    /**
     * 采购跟单列表
     */
    @TableField(exist = false)
    private List<ContractDocumentary> purchaseDocumentary;

    /**
     * 供应商名称
     */
    @TableField(exist = false)
    private String supplyName;

    /**
     * 归属公司id
     */
    private Long companyId;

    @TableField(exist = false)
    private BigDecimal sumInvoiceMoney;

    @TableField(exist = false)
    private BigDecimal sumPayMoney;

}
