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

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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


@Data
public class BmsPayFeeDetailDTO implements Serializable {

    @ApiModelProperty(value = "费用ID")
    private Long id;

    @ApiModelProperty(value = "单据")
    private String billNo;

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

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

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

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

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


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

    @ApiModelProperty(value = "费用类型名称")
    private String expenseTypeName;

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

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

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

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

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

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

    @ApiModelProperty(value = "核算状态")
    private Integer settlementStatus;
    private String settlementStatusName;

    @ApiModelProperty(value = "结算状态")
    private Integer checkStatus;
    private String checkStatusName;

    @ApiModelProperty(value = "计费状态 1：计费成功")
    private Integer billingStatus;
    private String billingStatusName;

    @ApiModelProperty(value = "计费时间")
    private Date costDate;

    @ApiModelProperty(value = "计费合同")
    private String costContract;

    @ApiModelProperty(value = "计费价格表")
    private String costPriceTable;

    @ApiModelProperty(value = "计费类别")
    private Integer costType;

    @ApiModelProperty(value = "计费类别")
    private String costTypeName;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createtime;

    @ApiModelProperty(name = "创建用户")
    private String createperson;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(name = "修改时间")
    private Date updatetime;

    @ApiModelProperty(name = "修改用户")
    private String updateperson;

}