package com.zt.plat.module.erp.dal.dataobject.erp;

import com.baomidou.mybatisplus.annotation.*;
import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
import lombok.*;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * ERP合同映射 DO
 *
 * @author 后台管理
 */
@TableName("bse_erp_ctrt")
@KeySequence("bse_erp_ctrt_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
/**
 * 支持业务基类继承：isBusiness=true 时继承 BusinessBaseDO，否则继承 BaseDO
 */
public class ErpContractDO extends BusinessBaseDO {


    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /**
     * 操作标识
     */
    @TableField("OPTN_ID")
    private String operationId;
    /**
     * 合同主信息主键
     */
    @TableField("CTRT_MAIN_ID")
    private Long contractMainId;
    /**
     * 合同编号
     */
    @TableField("CTRT_PPR_NUM")
    private String contractPaperNumber;
    /**
     * 合同名称
     */
    @TableField("CTRT_NAME")
    private String contractName;
    /**
     * 合同类型编号
     */
    @TableField("CTRT_TP_NUM")
    private String contractTypeNumber;
    /**
     * 合同类型名称
     */
    @TableField("CTRT_TP_NAME")
    private String contractTypeName;
    /**
     * 合同类别
     */
    @TableField("CTRT_CTGR")
    private String contractCategory;
    /**
     * 是否虚拟合同
     */
    @TableField("IS_VRTL_CTRT")
    private String isVirtualContract;
    /**
     * 客户/供应商编号;SAP客商公司代码
     */
    @TableField("SPLR_NUM")
    private String supplierNumber;
    /**
     * 客户/供应商名称;SAP客商公司名称
     */
    @TableField("SPLR_NAME")
    private String supplierName;
    /**
     * 代理方;SAP客商公司代码
     */
    @TableField("AGT")
    private String agent;
    /**
     * 合同实施主体编号;SAP公司代码
     */
    @TableField("CTRT_IMPL_NUM")
    private String contractImplementNumber;
    /**
     * 合同签订主体编号;SAP公司代码
     */
    @TableField("CTRT_SGN_NUM")
    private String contractSignNumber;
    /**
     * 合同签订日期;格式：YYYY-MM-DD
     */
    @TableField("SGN_DT")
    private LocalDate signDate;
    /**
     * 合同起始日期;格式：YYYY-MM-DD，长单合同：长单合同起始日期 非长单：合同合同签订日期
     */
    @TableField("STRT_DT")
    private LocalDate startDate;
    /**
     * 合同终止日期;格式：YYYY-MM-DD，长单合同：长单合同起始日期 非长单：合同合同签订日期
     */
    @TableField("STOP_DT")
    private LocalDate stopDate;
    /**
     * 币种编号
     */
    @TableField("CUR")
    private String currency;
    /**
     * 合同总金额（原币-含税）;非长单合同：合同金额 长单合同：默认1000000000000000.00
     */
    @TableField("SRC_AMT")
    private BigDecimal sourceAmount;
    /**
     * 合同总金额（本位币-含税）;非长单合同：合同金额*合同的临时汇率 长单合同：默认1000000000000000.00
     */
    @TableField("BSC_AMT")
    private BigDecimal basicAmount;
    /**
     * 变更后合同总金额（原币-含税）;如果未做合同变更，金额等于合同总金额（原币-含税）
     */
    @TableField("CHG_SRC_AMT")
    private BigDecimal changeSourceAmount;
    /**
     * 变更后合同总金额（本位币-含税）;如果未做合同变更，金额等于合同总金额（本位币-含税）
     */
    @TableField("CHG_BSC_AMT")
    private BigDecimal changeBasicAmount;
    /**
     * 合同状态编号
     */
    @TableField("STS_NUM")
    private String statusNumber;
    /**
     * 合同状态名称
     */
    @TableField("STS_NAME")
    private String statusName;
    /**
     * 是否有预付款;长单合同:否，非长单:取合同的预付款
     */
    @TableField("IS_PPYM")
    private String isPrepayment;
    /**
     * 预付款比例;有预付款则需要填写
     */
    @TableField("PPYM_RTIO")
    private BigDecimal prepaymentRatio;
    /**
     * 预付款金额;有预付款则需要填写(通过计算得出)
     */
    @TableField("PPYM_AMT")
    private BigDecimal prepaymentAmount;
    /**
     * 履约保证金-变更前（原币）
     */
    @TableField("SRC_BFR_BND")
    private BigDecimal sourceBeforeBond;
    /**
     * 履约保证金-变更前（本位币）
     */
    @TableField("BSC_BFR_BND")
    private BigDecimal basicBeforeBond;
    /**
     * 履约保证金-变更后（原币）
     */
    @TableField("SRC_AFT_BND")
    private BigDecimal sourceAfterBond;
    /**
     * 履约保证金-变更后（本位币）
     */
    @TableField("BSC_AFT_BND")
    private BigDecimal basicAfterBond;
    /**
     * 是否含质保金
     */
    @TableField("IS_QUA_AMT")
    private String isQualityassuranceAmount;
    /**
     * 质保金比例;有质保金则需要填写
     */
    @TableField("QUA_RTIO")
    private BigDecimal qualityassuranceRatio;
    /**
     * 质保金金额;有质保金则需要填写
     */
    @TableField("QUA_AMT")
    private BigDecimal qualityassuranceAmount;
    /**
     * 是否内部企业
     */
    @TableField("IS_INTL")
    private String isInternal;
    /**
     * 收支性质
     */
    @TableField("NTR")
    private String nature;
    /**
     * 备注信息;提交ERP
     */
    @TableField("RMK")
    private String remark;
    /**
     * 累计结算金额（原币-含税）;暂定不传
     */
    @TableField("SRC_ACC_STLM_AMT")
    private BigDecimal sourceAccumulateSettlementAmount;
    /**
     * 累计结算金额（本位币-含税）;暂定不传
     */
    @TableField("BSC_ACC_STLM_AMT")
    private BigDecimal basicAccumulateSettlementAmount;
    /**
     * 累计已收付款金额（原币-含税）;暂定不传
     */
    @TableField("SRC_USE_AMT")
    private BigDecimal sourceUseAmount;
    /**
     * 累计已收付款金额（本位币-含税）;暂定不传
     */
    @TableField("BSC_USE_AMT")
    private BigDecimal basicUseAmount;
    /**
     * 累计已开收票金额（原币-含税）;暂定不传
     */
    @TableField("SRC_INV_AMT")
    private BigDecimal sourceInvoiceAmount;
    /**
     * 累计已开收票金额（本位币-含税）;暂定不传
     */
    @TableField("BSC_INV_AMT")
    private BigDecimal basicInvoiceAmount;
    /**
     * 累计预付款金额（原币-含税）;暂定不传
     */
    @TableField("SRC_ACC_PPYM")
    private BigDecimal sourceAccumulatePrepayment;
    /**
     * 累计预付款金额（本位币-含税）;暂定不传
     */
    @TableField("BSC_ACC_PPYM")
    private BigDecimal basicAccumulatePrepayment;
    /**
     * 履约保证金累计付款金额（原币）;暂定不传
     */
    @TableField("SRC_ACC_BND")
    private BigDecimal sourceAccumulateBond;
    /**
     * 履约保证金累计付款金额（本位币）;暂定不传
     */
    @TableField("BSC_ACC_BND")
    private BigDecimal basicAccumulateBond;
    /**
     * 履约保证金累计收款金额（原币）;暂定不传
     */
    @TableField("SRC_ACC_AMT")
    private BigDecimal sourceAccumulateAmount;
    /**
     * 履约保证金累计收款金额（本位币）;暂定不传
     */
    @TableField("BSC_ACC_AMT")
    private BigDecimal basicAccumulateAmount;
    /**
     * 是否框架合同;如果为是，合同总金额（本币）、合同总金额（原币）、变更后合同总金额（原币-含税）、变更后合同总金额（本位币-含税）赋默认值为：1000000000000000.00
     */
    @TableField("IS_FMWK")
    private String isFramework;
    /**
     * 境内/境外
     */
    @TableField("IS_DOM")
    private String isDomestic;
    /**
     * 建筑服务发生地;销售合同，且类型为SAP02COSR必填
     */
    @TableField("ARCH_SVC_PLCE")
    private String architectureService‌Place;
    /**
     * 达到收款条件金额;销售合同，且类型为SAP02COSR必填
     */
    @TableField("PYEE_CND_AMT")
    private BigDecimal payeeConditionAmount;

}