/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package sikd.ikonsol.ejb.session;

import java.util.List;
import javax.ejb.Remote;
import sikd.ikonsol.model.AkunEliminasi;
import sikd.ikonsol.model.AkunResiprokal;
import sikd.ikonsol.model.HeaderDataKonsolidasi;
import sikd.ikonsol.model.RawData;
import sikd.ikonsol.model.SusunKonsolidasi;

/**
 *
 * @author Imam Bhoim
 */
@Remote
public interface AkunEliminasiEjbHome {

    public AkunEliminasi createNew();

    public List<AkunEliminasi> findAll();

    public List<AkunEliminasi> findAllByTahunBasJenisLap(int tahun, int idbas, int idjnslaporan, String kdperiode);

    public List<AkunEliminasi> findByKodeProvinsi(String kode, int id, int tahun, int idbas, int idjnslaporan, String kdperiode);

    public List<AkunEliminasi> selectCompare();

    public AkunEliminasi saveProses(AkunEliminasi obj);

    public AkunEliminasi updateProses(AkunEliminasi obj);

//insert awal eliminasi
    public List<AkunEliminasi> selectKdProv(int idheaderdata);

    public AkunEliminasi selectKdWilayah(String kdprov);

    public List<AkunResiprokal> selectResipro(int idjnslapor);

    public List<RawData> selectProvRawData(AkunResiprokal objresiprokal, SusunKonsolidasi obj, HeaderDataKonsolidasi hd,
            String kdpemda);

    public List<RawData> selectKabRawData(AkunResiprokal objresiprokal, SusunKonsolidasi obj, HeaderDataKonsolidasi hd,
            String kdpemda);

    //update
    public List<AkunEliminasi> selectKdProv1(int idheaderdata);

    public List<AkunResiprokal> selectResipro2(int id, String kdpemda);

    public AkunResiprokal selectOpsiNilai(int opsi);

    public AkunEliminasi selectCountKabKota(int id, String kdprov, int headerid);

    public AkunEliminasi updateEliminasi(AkunEliminasi obj);

    public AkunEliminasi updateEliminasiManual(AkunEliminasi obj);

    public AkunEliminasi selectCountFlag(String kdprov, String flag, int headeridint, int idres);

    public AkunEliminasi selectRefAkun1(String kdLvl1, int idres);

    public AkunEliminasi selectRefAkun2(String kdLvl1, String kdLvl2, int idres);

    public AkunEliminasi selectRefAkun3(String kdLvl1, String kdLvl2, String kdLvl3, int idres);

    public AkunEliminasi selectRefAkun4(String kdLvl1, String kdLvl2, String kdLvl3, String kdLvl4, int idres);

    public AkunEliminasi selectEliminasi(String kdLvl1, String kdLvl2, String kdLvl3, int idres,
            String kdperiode, String kdprov, int idlaporan,
            int tahun);

    public AkunEliminasi selectEliminasiWilayah(String kdLvl1, String kdLvl2, String kdLvl3, int idres,
            String kdperiode, String kdwilayah, int idlaporan,
            int tahun);

    public AkunEliminasi selectEliminasiNasional(String kdLvl1, String kdLvl2, String kdLvl3, int idres,
            String kdperiode, int idlaporan,
            int tahun);

    public List<AkunEliminasi> findByListNasional(String priode, int idbas, int idjenis, int tahun);

    public List<AkunEliminasi> findByListProv(String priode, int idbas, int idjenis, int tahun, String prov);

    public List<AkunEliminasi> findByListWilayah(String priode, int idbas, int idjenis, int tahun, String wilayah);

    public List<AkunEliminasi> findByListNasionalSummary(String priode, int idbas, int idjenis, int tahun, int kdlvl1,
            int kdlvl2);

    public List<AkunEliminasi> findByListProvSummary(String priode, int idbas, int idjenis, int tahun, String prov, int kdlvl1,
            int kdlvl2);

    public List<AkunEliminasi> findByListProvSummaryEliminasi(String priode, int idbas, int idjenis, int tahun, String prov, int kdlvl1,
            int kdlvl2);

    public List<AkunEliminasi> findByListNasionalSummaryEliminasi(String priode, int idbas, int idjenis, int tahun, int kdlvl1,
            int kdlvl2);

    public List<AkunEliminasi> findByListWilayahSummary(String priode, int idbas, int idjenis, int tahun, String wilayah, int kdlvl1,
            int kdlvl2);
    
     public List<AkunEliminasi> findByListWilayahSummaryEliminasi(String priode, int idbas, int idjenis, int tahun, 
             String kdwilayah, int kdlvl1,
            int kdlvl2);

    public AkunEliminasi save(AkunEliminasi obj);

    public AkunEliminasi findByKodeAkunHeaderLengkap(int tahun,
            String kdprov, int lvl1, int lvl2, int lvl3, String lvl4,
            String lvl5, int kategoripemdaid, int idbas, int idlap, int idresipro, int idtransfer,
            int idheaderdata, String kdperiode);

    public List<AkunEliminasi> findAllByListProvLak(String priode, int idjenis, int tahun, String prov);

    public List<AkunEliminasi> findByListWilayahLak(String priode, int idjenis, int tahun, String wilayah);

    public List<AkunEliminasi> findByListNasionalLak(String priode, int idjenis, int tahun);

    public AkunEliminasi findNasional(String priode, int idbas, int idjenis, int tahun);
    
    
     public void deleteBySusun(int id);
     
     public void delete(int id);
     
     public AkunEliminasi selectEliminasiCari(String kdLvl1, String kdLvl2, String kdLvl3, String kdLvl4, int idres,
            String kdperiode, String kdprov, int idlaporan,
            int tahun);
     
     public AkunEliminasi selectRawDataCari(String kdLvl1, String kdLvl2, String kdLvl3, String kdLvl4, int idres,
            String kdperiode, String kdprov, int idlaporan,
            int tahun);
}
