package com.jasamedika.medifirst2000.entities;

import java.io.Serializable;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.*;
import org.joda.time.DateTime;
import org.hibernate.validator.constraints.NotEmpty;

import com.jasamedika.medifirst2000.base.BaseTransaction;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.internal.util.logging.Messages;

import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.helper.Caption;

/**
 *  class PeriodeAccount
 * 
 * @author Generator
 */
@Entity
@Table(name = "PeriodeAccount_T")
public class PeriodeAccount extends BaseTransaction {

	@ManyToOne
	@JoinColumn(name = "ObjectJenisAccountFk")
	@NotNull(message="Object Jenis Account Harus Diisi")
	@Caption(value="Object Jenis Account")
	private JenisAccount kdjenisaccount;

	@Column(name = "ObjectJenisAccountFk", insertable=false,updatable=false)
	private Integer ObjectJenisAccountId;

	@Caption(value="Kode Periode Account")
	@Column(name = "KdPeriodeAccount", nullable = false )
	private Integer kdperiodeaccount;

	@ManyToOne
	@JoinColumn(name = "ObjectRuanganFk")
	@NotNull(message="Object Ruangan Harus Diisi")
	@Caption(value="Object Ruangan")
	private Ruangan kdruangan;

	@Column(name = "ObjectRuanganFk", insertable=false,updatable=false)
	private Integer ObjectRuanganId;

	@Caption(value="Keterangan Lainnya")
	@Column(name = "KeteranganLainnya", nullable = true , length = 150)
	private String keteranganlainnya;

	@ManyToOne
	@JoinColumn(name = "NoClosingFk")
	@Caption(value="No Closing")
	private StrukClosing noclosing;

	@Column(name = "NoClosingFk", insertable=false,updatable=false)
	private String NoClosingId;

	@Caption(value="Periode Account")
	@Column(name = "PeriodeAccount", nullable = false , length = 75)
	private String periodeaccount;

	@Caption(value="Tanggal Akhir Periode")
	@Column(name = "TglAkhirPeriode", nullable = false )
	private Date tglakhirperiode;

	@Caption(value="Tanggal Awal Periode")
	@Column(name = "TglAwalPeriode", nullable = false )
	private Date tglawalperiode;

	public JenisAccount getKdjenisaccount() {
		return kdjenisaccount;
	}

	public void setKdjenisaccount(JenisAccount kdjenisaccount) {
		this.kdjenisaccount = kdjenisaccount;
	}

	public Integer getObjectJenisAccountId() {
		return ObjectJenisAccountId;
	}

	public void setObjectJenisAccountId(Integer objectJenisAccountId) {
		ObjectJenisAccountId = objectJenisAccountId;
	}



	public Integer getKdperiodeaccount() {
		return kdperiodeaccount;
	}

	public void setKdperiodeaccount(Integer kdperiodeaccount) {
		this.kdperiodeaccount = kdperiodeaccount;
	}

	public Ruangan getKdruangan() {
		return kdruangan;
	}

	public void setKdruangan(Ruangan kdruangan) {
		this.kdruangan = kdruangan;
	}

	public Integer getObjectRuanganId() {
		return ObjectRuanganId;
	}

	public void setObjectRuanganId(Integer objectRuanganId) {
		ObjectRuanganId = objectRuanganId;
	}

	public String getKeteranganlainnya() {
		return keteranganlainnya;
	}

	public void setKeteranganlainnya(String keteranganlainnya) {
		this.keteranganlainnya = keteranganlainnya;
	}

	public StrukClosing getNoclosing() {
		return noclosing;
	}

	public void setNoclosing(StrukClosing noclosing) {
		this.noclosing = noclosing;
	}


	public String getPeriodeaccount() {
		return periodeaccount;
	}

	public void setPeriodeaccount(String periodeaccount) {
		this.periodeaccount = periodeaccount;
	}

	public Date getTglakhirperiode() {
		return tglakhirperiode;
	}

	public void setTglakhirperiode(Date tglakhirperiode) {
		this.tglakhirperiode = tglakhirperiode;
	}

	public Date getTglawalperiode() {
		return tglawalperiode;
	}

	public void setTglawalperiode(Date tglawalperiode) {
		this.tglawalperiode = tglawalperiode;
	}

	public String getNoClosingId() {
		return NoClosingId;
	}

	public void setNoClosingId(String noClosingId) {
		NoClosingId = noClosingId;
	}
	
	

}

