package sikd.sikd5.sikd5bean.ws.simpatik;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

import sikd.sikd5.sikd5bean.fault.SIKDServiceException;

@XmlRootElement
@XmlType(name = "posisiKasWS", propOrder = {
    "kodeSatker",
    "kodePemda",
    "namaPemda",
    "tahunAnggaran",
    "bulan",
    "statusData",
    "userName",
    "password",
    "namaAplikasi",
    "pengembangAplikasi",
    "versiSinergi",
    "penyusunanKe",
    "posisiKasAkuns",

})
public class PosisiKas_WS extends ValidasiData implements Serializable {

    private String kodeSatker;
    private String kodePemda;
    private String namaPemda;
    private short tahunAnggaran;
    private short bulan;
    private short statusData;
    private String userName;
    private String password;
    private String namaAplikasi;
    private String pengembangAplikasi;
    private String versiSinergi;
    private int penyusunanKe;
    private List<PosisiKasAkun_WS> posisiKasAkuns;

    public PosisiKas_WS() {
        super();
    }

    public PosisiKas_WS(String kodeSatker, String kodePemda, String namaPemda, short tahunAnggaran,
            short bulan, short statusData, String userName, String password, String namaAplikasi, String pengembangAplikasi, String versiSinergi,
            List<PosisiKasAkun_WS> posisiKasAkuns) throws SIKDServiceException {
        super();
        if (tahunAnggaran == (tahunCalendari + 1) && bulan < 12) {
            throw new SIKDServiceException("Kontak Pemda Tahun anggaran " + tahunAnggaran + " bisa dikirim setelah bulan Desember");
        }
        if (tahunAnggaran > (tahunCalendari + 1)) {
            throw new SIKDServiceException("Kontak Pemda Tahun anggaran " + tahunAnggaran + " belum bisa dikirim");
        }

        if (kodeSatker == null || kodeSatker.trim().equals("")) {
            throw new SIKDServiceException("Silahkan isi data Kode Satker");
        }
        if (kodePemda == null || kodePemda.trim().equals("")) {
            throw new SIKDServiceException("Silahkan isi data Kode Pemda");
        }
        if (namaPemda == null || namaPemda.trim().equals("")) {
            throw new SIKDServiceException("Silahkan isi data Nama Pemda");
        }
        if (statusData < 0 || statusData > 4) {
            throw new SIKDServiceException("silahkan isi status data dengan angka 0, 1, 2, 3 atau 4  \n Untuk keterangan lebih lanjut silahkan lihat developer guide");
        }
        if (userName == null || userName.trim().equals("")) {
            throw new SIKDServiceException("Silahkan isi data User Name Service");
        }
        if (password == null || password.trim().equals("")) {
            throw new SIKDServiceException("silahkan isi data Password Service, untuk mendapatkan password Service silahkan lihat developer guide");
        }
        if (namaAplikasi == null || namaAplikasi.trim().equals("")) {
            throw new SIKDServiceException("Silahkan isi data Nama Aplikasi");
        }
        if (pengembangAplikasi == null || pengembangAplikasi.trim().equals("")) {
            throw new SIKDServiceException("Silahkan isi data Pengembang Aplikasi");
        }
        if (versiSinergi == null || versiSinergi.trim().equals("")) {
            throw new SIKDServiceException("Silahkan isi Versi Sinergi");
        }
        this.kodeSatker = kodeSatker;
        this.kodePemda = kodePemda;
        this.namaPemda = namaPemda;
        this.tahunAnggaran = tahunAnggaran;
        this.bulan = bulan;
        this.statusData = statusData;
        this.namaAplikasi = namaAplikasi;
        this.pengembangAplikasi = pengembangAplikasi;
        this.versiSinergi = versiSinergi;
        this.posisiKasAkuns = posisiKasAkuns;
    }


    public String getKodeSatker() throws SIKDServiceException {
        if (kodeSatker == null || kodeSatker.trim().equals("")) {
            throw new SIKDServiceException("Silahkan isi data Kode Satker");
        }
        return kodeSatker;
    }

    public void setKodeSatker(String kodeSatker) {
        this.kodeSatker = kodeSatker;
    }

    public String getKodePemda() throws SIKDServiceException {
        if (kodePemda == null || kodePemda.trim().equals("")) {
            throw new SIKDServiceException("Silahkan isi data Kode Pemda");
        }
        return kodePemda;
    }

    public void setKodePemda(String kodePemda) {
        this.kodePemda = kodePemda;
    }

    public String getNamaPemda() {
        return namaPemda;
    }

    public void setNamaPemda(String namaPemda) {
        this.namaPemda = namaPemda;
    }

    public short getTahunAnggaran() throws SIKDServiceException {
        if (tahunAnggaran == (tahunCalendari + 1) && bulan < 12) {
            throw new SIKDServiceException("Kontak Pemda Tahun anggaran " + tahunAnggaran + " bisa dikirim setelah bulan Desember");
        }
        if (tahunAnggaran > (tahunCalendari + 1)) {
            throw new SIKDServiceException("Kontak Pemda Tahun anggaran " + tahunAnggaran + " belum bisa dikirim");
        }
        return tahunAnggaran;
    }

    public void setTahunAnggaran(short tahunAnggaran) throws SIKDServiceException {
        if (tahunAnggaran == (tahunCalendari + 1) && bulan < 12) {
            throw new SIKDServiceException("Kontak Pemda Tahun anggaran " + tahunAnggaran + " bisa dikirim setelah bulan Desember");
        }
        if (tahunAnggaran > (tahunCalendari + 1)) {
            throw new SIKDServiceException("Kontak Pemda Tahun anggaran " + tahunAnggaran + " belum bisa dikirim");
        }
        this.tahunAnggaran = tahunAnggaran;
    }

    public short getBulan() {
        return bulan;
    }

    public void setBulan(short bulan) {
        this.bulan = bulan;
    }

    public short getStatusData() {
        return statusData;
    }

    public void setStatusData(short statusData) {
        this.statusData = statusData;
    }

    public String getUserName() throws SIKDServiceException {
        if (userName == null || userName.trim().equals("")) {
            throw new SIKDServiceException("Silahkan isi data User Name Service");
        }
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() throws SIKDServiceException {
        if (password == null || password.trim().equals("")) {
            throw new SIKDServiceException("silahkan isi data Password Service, untuk mendapatkan password Service silahkan lihat developer guide");
        }
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getNamaAplikasi() {
        return namaAplikasi;
    }

    public void setNamaAplikasi(String namaAplikasi) {
        this.namaAplikasi = namaAplikasi;
    }

    public String getPengembangAplikasi() {
        return pengembangAplikasi;
    }

    public void setPengembangAplikasi(String pengembangAplikasi) {
        this.pengembangAplikasi = pengembangAplikasi;
    }

    public String getVersiSinergi() throws SIKDServiceException {
        if (versiSinergi == null || versiSinergi.trim().equals("")) {
            throw new SIKDServiceException("Silahkan isi Versi Sinergi");
        }
        return versiSinergi;
    }

    public void setVersiSinergi(String versiSinergi) throws SIKDServiceException {
        if (versiSinergi == null || versiSinergi.trim().equals("")) {
            throw new SIKDServiceException("Silahkan isi Versi Sinergi");
        }
        this.versiSinergi = versiSinergi;
    }

    public int getPenyusunanKe() {
		return penyusunanKe;
	}

	public void setPenyusunanKe(int penyusunanKe) {
		this.penyusunanKe = penyusunanKe;
	}

	public List<PosisiKasAkun_WS> getPosisiKasAkuns() {
        return posisiKasAkuns;
    }

    public void setPosisiKasAkuns(List<PosisiKasAkun_WS> posisiKasAkuns) {
        this.posisiKasAkuns = posisiKasAkuns;
    }

  
}
