package com.jasamedika.medifirst2000.entities;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;

import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.helper.Caption;

@Entity
@Table(name = "sdm_anggaranremunerasi_t")
public class AnggaranRemunerasi extends BaseTransaction {

	@Caption(value = "Tahun")
	@Column(name = "tahun", nullable = false)
	@Temporal(TemporalType.DATE)
	private Date tahun;

	@Column(name = "totalnilaijabatan", nullable = false)
	@Caption(value = "Total Nilai Jabatan")
	private Long totalNilaiJabatan;

	@Column(name = "anggaranremuntahun", nullable = false)
	@Caption(value = "Anggaran Remunerasi Tahunan")
	private Double anggaranRemunTahun;

	@Column(name = "anggaranremunbulan", nullable = false)
	@Caption(value = "Anggaran Remun Bulanan")
	private Double anggaranRemunBulan;

	@Column(name = "poinindeksrupiah", nullable = false)
	@Caption(value = "Poin Indeks Rupiah")
	private Double poinIndeksRupiah;

	@ManyToOne
	@NotNull(message = "Grade Harus Diisi")
	@JoinColumn(name = "objectgradefk", nullable = false)
	@Caption(value = "Grade")
	private GradeRemunerasi grade;

	@Column(name = "objectgradefk", insertable = false, updatable = false)
	private Integer gradeId;

	@Column(name = "gajihonorarium", nullable = false)
	@Caption(value = "Gaji Honorarium")
	private Double gajiHonorarium;

	@Column(name = "mininsentif", nullable = false)
	@Caption(value = "Minimal Insentif")
	private Double minInsentif;

	@Column(name = "maxinsentif", nullable = false)
	@Caption(value = "Maksimal Insentif")
	private Double maxInsentif;

	@Column(name = "maxtotalremunerasi", nullable = false)
	@Caption(value = "Maksimal Total Remunerasi")
	private Double maxTotalRemunerasi;

	@Caption(value = "Tanggal Pembaharuan Data")
	@Column(name = "tanggalpembaharuandata", nullable = false)
	@Temporal(TemporalType.TIMESTAMP)
	private Date tanggalPembaharuanData;

	public Date getTahun() {
		return tahun;
	}

	public void setTahun(Date tahun) {
		this.tahun = tahun;
	}

	public Long getTotalNilaiJabatan() {
		return totalNilaiJabatan;
	}

	public void setTotalNilaiJabatan(Long totalNilaiJabatan) {
		this.totalNilaiJabatan = totalNilaiJabatan;
	}

	public Double getAnggaranRemunTahun() {
		return anggaranRemunTahun;
	}

	public void setAnggaranRemunTahun(Double anggaranRemunTahun) {
		this.anggaranRemunTahun = anggaranRemunTahun;
	}

	public Double getAnggaranRemunBulan() {
		return anggaranRemunBulan;
	}

	public void setAnggaranRemunBulan(Double anggaranRemunBulan) {
		this.anggaranRemunBulan = anggaranRemunBulan;
	}

	public Double getPoinIndeksRupiah() {
		return poinIndeksRupiah;
	}

	public void setPoinIndeksRupiah(Double poinIndeksRupiah) {
		this.poinIndeksRupiah = poinIndeksRupiah;
	}

	public GradeRemunerasi getGrade() {
		return grade;
	}

	public void setGrade(GradeRemunerasi grade) {
		this.grade = grade;
	}

	public Integer getGradeId() {
		return gradeId;
	}

	public void setGradeId(Integer gradeId) {
		this.gradeId = gradeId;
	}

	public Double getGajiHonorarium() {
		return gajiHonorarium;
	}

	public void setGajiHonorarium(Double gajiHonorarium) {
		this.gajiHonorarium = gajiHonorarium;
	}

	public Double getMinInsentif() {
		return minInsentif;
	}

	public void setMinInsentif(Double minInsentif) {
		this.minInsentif = minInsentif;
	}

	public Double getMaxInsentif() {
		return maxInsentif;
	}

	public void setMaxInsentif(Double maxInsentif) {
		this.maxInsentif = maxInsentif;
	}

	public Double getMaxTotalRemunerasi() {
		return maxTotalRemunerasi;
	}

	public void setMaxTotalRemunerasi(Double maxTotalRemunerasi) {
		this.maxTotalRemunerasi = maxTotalRemunerasi;
	}

	public Date getTanggalPembaharuanData() {
		return tanggalPembaharuanData;
	}

	public void setTanggalPembaharuanData(Date tanggalPembaharuanData) {
		this.tanggalPembaharuanData = tanggalPembaharuanData;
	}

}
