package com.palmnest.model.bill;

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

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 账单主体信息实体类
 *
 * @author 金牙
 */
@Entity
@Table(name = "tb_generalbills")
public class GeneralBills implements java.io.Serializable {

	/**
	 * 序列号
	 */
	private static final long serialVersionUID = 2252368916872153656L;

	private Integer    id;                //主键ID
	private Integer    virtualId;        //企业ID
	private Integer    organizationId;    //项目ID
	private String     outMonth;        //账单月份
	private Date       startTime;            //计费开始时间
	private Date       endTime;            //计费结束时间
	private BigDecimal totalFee;    //本期费用总额
	private BigDecimal payFee;        //实付金额
	private BigDecimal dedFee;        //此时剩余预付款余额
	private String     payStatus;        //支付状态（1-已支付、0-未支付）默认为0
	private String     payType;            //支付方式（cash-现金、wxpay-微信、alipay-支付宝）
	private Date       payTime;            //支付日期
	private String     billNo;            //业务账单号
	private String     transactionId;    //支付业务订单号（微信、支付宝）
	private String     makePerson;        //账单人
	private String     makeTime;        //制单时间
	private String     creator;            //创建者
	private Date       createTime;        //创建日期
	private String     modifier;        //修改者
	private Date       modifyTime;        //修改日期
	private String     isEnabled;        //是否可用或删除（0-不可用，1-可用）

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "ID", unique = true, nullable = false)
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	@Column(name = "virtualId")
	public Integer getVirtualId() {
		return virtualId;
	}

	public void setVirtualId(Integer virtualId) {
		this.virtualId = virtualId;
	}

	@Column(name = "organizationId")
	public Integer getOrganizationId() {
		return organizationId;
	}

	public void setOrganizationId(Integer organizationId) {
		this.organizationId = organizationId;
	}

	@Column(name = "outMonth")
	public String getOutMonth() {
		return outMonth;
	}

	public void setOutMonth(String outMonth) {
		this.outMonth = outMonth;
	}

	@Column(name = "startTime")
	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	@Column(name = "endTime")
	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	@Column(name = "totalFee")
	public BigDecimal getTotalFee() {
		return totalFee;
	}

	public void setTotalFee(BigDecimal totalFee) {
		this.totalFee = totalFee;
	}

	@Column(name = "payFee")
	public BigDecimal getPayFee() {
		return payFee;
	}

	public void setPayFee(BigDecimal payFee) {
		this.payFee = payFee;
	}

	@Column(name = "dedFee")
	public BigDecimal getDedFee() {
		return dedFee;
	}

	public void setDedFee(BigDecimal dedFee) {
		this.dedFee = dedFee;
	}

	@Column(name = "payStatus")
	public String getPayStatus() {
		return payStatus;
	}

	public void setPayStatus(String payStatus) {
		this.payStatus = payStatus;
	}

	@Column(name = "payType")
	public String getPayType() {
		return payType;
	}

	public void setPayType(String payType) {
		this.payType = payType;
	}

	@Column(name = "payTime")
	public Date getPayTime() {
		return payTime;
	}

	public void setPayTime(Date payTime) {
		this.payTime = payTime;
	}

	@Column(name = "billNo")
	public String getBillNo() {
		return billNo;
	}

	public void setBillNo(String billNo) {
		this.billNo = billNo;
	}

	@Column(name = "transactionId")
	public String getTransactionId() {
		return transactionId;
	}

	public void setTransactionId(String transactionId) {
		this.transactionId = transactionId;
	}

	@Column(name = "makePerson")
	public String getMakePerson() {
		return makePerson;
	}

	public void setMakePerson(String makePerson) {
		this.makePerson = makePerson;
	}

	@Column(name = "makeTime")
	public String getMakeTime() {
		return makeTime;
	}

	public void setMakeTime(String makeTime) {
		this.makeTime = makeTime;
	}

	@Column(name = "creator")
	public String getCreator() {
		return creator;
	}

	public void setCreator(String creator) {
		this.creator = creator;
	}

	@Column(name = "createTime")
	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	@Column(name = "modifier")
	public String getModifier() {
		return modifier;
	}

	public void setModifier(String modifier) {
		this.modifier = modifier;
	}

	@Column(name = "modifyTime")
	public Date getModifyTime() {
		return modifyTime;
	}

	public void setModifyTime(Date modifyTime) {
		this.modifyTime = modifyTime;
	}

	@Column(name = "isEnabled")
	public String getIsEnabled() {
		return isEnabled;
	}

	public void setIsEnabled(String isEnabled) {
		this.isEnabled = isEnabled;
	}

}
