package com.prolog.rdc.tms.model.entity;

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

import com.prolog.framework.core.annotation.Column;
import com.prolog.framework.core.annotation.Id;
import com.prolog.framework.core.annotation.Table;

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

@Data
@Table(value = "bms_shipbill_fee_detail")
public class BmsShipBillFeeDetailModel implements Serializable {

	private static final long serialVersionUID = 6032807483930079130L;

	@ApiModelProperty(value = "ID")
	@Id
	@Column(value = "ID")
	private Long id;

	@ApiModelProperty(value = "运单编号")
	@Column(value = "shipbill_no")
	private String shipbillNo;

	@Column(value = "expense_code")
	@ApiModelProperty(value = "费用编码")
	private String expenseCode;

	@Column(value = "expense_name")
	@ApiModelProperty(value = "费用名称")
	private String expenseName;

	@Column(value = "expense_type")
	@ApiModelProperty(value = "费用类别")
	private Integer expenseType;

	@Column(value = "expense_type_name")
	@ApiModelProperty(value = "费用类别")
	private String expenseTypeName;

	@Column(value = "expense_account_code")
	@ApiModelProperty(value = "费用科目编码")
	private String expenseAccountCode;

	@Column(value = "expense_account_name")
	@ApiModelProperty(value = "费用科目名称")
	private String expenseAccountName;

	@Column(value = "amount")
	@ApiModelProperty(value = "金额")
	private BigDecimal amount;

	@Column(value = "tax_point")
	@ApiModelProperty(value = "税点")
	private String taxPoint;

	@ApiModelProperty(value = "含税金额")
	@Column(value = "tax_amt")
	private BigDecimal taxAmt;

	@ApiModelProperty(value = "1:税前，0：税后")
	@Column(value = "is_pre_tax")
	private Integer isPreTax;

	@ApiModelProperty(value = "无税金额")
	@Column(value = "no_tax_amt")
	private BigDecimal noTaxAmt;

	@ApiModelProperty(value = "税额")
	@Column(value = "tax")
	private BigDecimal tax;

	@ApiModelProperty(value = "分摊到每一单 1：是，0：否")
	@Column(value = "is_share")
	private String isShare;

	@Column(value = "memo")
	@ApiModelProperty(value = "费用说明")
	private String memo;

	@ApiModelProperty(value = "费用单号")
	@Column(value = "expense_no")
	private String expenseNo;

	@ApiModelProperty(value = "费用状态 EXPENSE_STATUS 0：新增 1：审核中 2:正常")
	@Column(value = "expense_status")
	private Integer expenseStatus;

	@ApiModelProperty(value = "结算状态 CHECK_STATUS 0：未结算，1：对账提交，2：对账确认，3：结算单生成 4 结算单审核")
	@Column(value = "check_status")
	private Integer checkStatus;

	@ApiModelProperty(value = "费用来源 1:价格表生成，2：手工录入")
	@Column(value = "billing_source")
	private Integer billingSource;

	@ApiModelProperty(value = "费用状态 0：新增，1：计费成功")
	@Column(value = "billing_status")
	private Integer billingStatus;

	@ApiModelProperty(value = "计费时间")
	@Column(value = "billing_date")
	private Date billingDate;

	@ApiModelProperty(value = "计费合同")
	@Column(value = "billing_contract")
	private String billingContract;

	@ApiModelProperty(value = "计费价格表")
	@Column(value = "billing_price")
	private String billingPrice;

	@ApiModelProperty(value = "计费类型 EXPENSE_CLASSIFY")
	@Column(value = "billing_type")
	private String billingType;

	@ApiModelProperty(value = "计费失败原因")
	@Column(value = "billing_fail_reason")
	private String billingFailReason;

	@ApiModelProperty(value = "扩展字段1")
	@Column(value = "attr_str1")
	private String attrStr1;

	@ApiModelProperty(value = "扩展字段2")
	@Column(value = "attr_str2")
	private String attrStr2;

	@ApiModelProperty(value = "扩展字段3")
	@Column(value = "attr_str3")
	private String attrStr3;

	@ApiModelProperty(value = "扩展字段4")
	@Column(value = "attr_str4")
	private String attrStr4;

	@ApiModelProperty(value = "扩展字段5")
	@Column(value = "attr_str5")
	private String attrStr5;

	@Column(value = "CREATEPERSON")
	@ApiModelProperty(value = "创建人")
	private String createperson;

	@Column(value = "CREATETIME")
	@ApiModelProperty(value = "创建时间")
	private Date createtime;

	@Column(value = "UPDATEPERSON")
	@ApiModelProperty(value = "最后修改人")
	private String updateperson;

	@Column(value = "UPDATETIME")
	@ApiModelProperty(value = "最后修改时间")
	private Date updatetime;

	@Column(value = "enterprise_id")
	@ApiModelProperty(value = "企业ID")
	private Long enterpriseId;

	@Column(value = "enterprise_name")
	@ApiModelProperty(value = "企业名称")
	private String enterpriseName;

}