/*
 * 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> findByListWilayahSummary(String priode, int idbas, int idjenis, int tahun,String wilayah, 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);
}
