/*
 * 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.annotation.PostConstruct;
import javax.ejb.Stateless;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import sikd.ikonsol.ejb.dao.AkunEliminasiDao;
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;
import sikd.sikd5.sikd5ejb.session.util.MyBatisConnectionFactory;

/**
 *
 * @author Imam Bhoim
 */
@Stateless
public class AkunEliminasiEjbHomeImpl implements AkunEliminasiEjbHome {

    private SqlSessionFactory sqlSessionFactory;
    private SqlSession session = null;

    private AkunEliminasiDao dao;

    @PostConstruct
    public void init() {
        try {
            System.out.println("-------- Load MyBatis Factory IKonsol ------- ");
            sqlSessionFactory = MyBatisConnectionFactory.getSqlSessionFactoryIkonsol();
            dao = new AkunEliminasiDao(sqlSessionFactory);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    @Override
    public List<AkunEliminasi> findAll() {
        return dao.findAll();
    }

    @Override
    public AkunEliminasi saveProses(AkunEliminasi obj) {
        return dao.saveProses(obj);
    }

    @Override
    public List<AkunEliminasi> selectCompare() {
        return dao.selectCompare();
    }

    @Override
    public List<AkunEliminasi> findAllByTahunBasJenisLap(int tahun, int idbas, int idjnslaporan, String kdperiode) {
        return dao.findAllByTahunBasJnsLaporan(tahun, idbas, idjnslaporan, kdperiode);
    }

    @Override
    public List<AkunEliminasi> findByKodeProvinsi(String kode, int id, int tahun, int idbas, int idjnslaporan, String kdperiode) {
        return dao.findKodeProvinsi(kode, id, tahun, idbas, idjnslaporan, kdperiode);
    }

    @Override
    public List<AkunEliminasi> selectKdProv(int idheaderdata) {
        return dao.selectKdProv(idheaderdata);
    }

    @Override
    public List<AkunResiprokal> selectResipro(int idjnslapor) {
        return dao.selectResipro(idjnslapor);
    }

    @Override
    public List<RawData> selectProvRawData(AkunResiprokal objresiprokal, SusunKonsolidasi obj2, HeaderDataKonsolidasi obj3,
            String kdpemda) {
        return dao.selectProvRawData(objresiprokal, obj2, obj3, kdpemda);
    }

    @Override
    public List<RawData> selectKabRawData(AkunResiprokal objresiprokal, SusunKonsolidasi obj2, HeaderDataKonsolidasi obj3,
            String kdpemda) {
        return dao.selectKabRawData(objresiprokal, obj2, obj3, kdpemda);
    }

    @Override
    public List<AkunEliminasi> selectKdProv1(int idheaderdata) {
        return dao.selectKdProv1(idheaderdata);
    }

    @Override
    public List<AkunResiprokal> selectResipro2(int id, String kdpemda) {
        return dao.selectResipro2(id, kdpemda);
    }

    @Override
    public AkunResiprokal selectOpsiNilai(int opsi) {
        return dao.selectOpsiNilai(opsi);
    }

    @Override
    public AkunEliminasi selectCountKabKota(int id, String kdprov, int headerid) {
        return dao.selectCountKabKota(id, kdprov, headerid);
    }

    @Override
    public AkunEliminasi updateProses(AkunEliminasi obj) {
        return dao.updateProses(obj);
    }

    @Override
    public AkunEliminasi updateEliminasi(AkunEliminasi obj) {
        return dao.updateEliminasi(obj);
//        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public AkunEliminasi selectCountFlag(String kdprov, String flag, int headerid, int idres) {
        //     throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        return dao.selectCountFlag(kdprov, flag, headerid, idres);
    }

    @Override
    public AkunEliminasi updateEliminasiManual(AkunEliminasi obj) {
        return dao.updateEliminasiManual(obj);
    }

    @Override
    public List<AkunEliminasi> findByListNasional(String priode, int idbas, int idjenis, int tahun) {
        return dao.findAllByListNasional(priode, idbas, idjenis, tahun);
    }
    
      @Override
    public List<AkunEliminasi> findByListNasionalEksport(String priode, int idbas, int idjenis, int tahun) {
        return dao.findAllByListNasionalEksport(priode, idbas, idjenis, tahun);
    }

    @Override
    public List<AkunEliminasi> findByListProv(String priode, int idbas, int idjenis, int tahun, String prov) {
        return dao.findAllByListProv(priode, idbas, idjenis, tahun, prov);
    }
    
    @Override
    public List<AkunEliminasi> findByListProvEksport(String priode, int idbas, int idjenis, int tahun, String prov) {
        return dao.findAllByListProvEksport(priode, idbas, idjenis, tahun, prov);
    }

    @Override
    public List<AkunEliminasi> findByListWilayah(String priode, int idbas, int idjenis, int tahun, String wilayah) {
        //    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        return dao.findAllByListWilayah(priode, idbas, idjenis, tahun, wilayah);

    }
    
     @Override
    public List<AkunEliminasi> findByListWilayahEksport(String priode, int idbas, int idjenis, int tahun, String wilayah) {
        //    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        return dao.findAllByListWilayahEksport(priode, idbas, idjenis, tahun, wilayah);

    }

    @Override
    public AkunEliminasi selectRefAkun2(String kdLvl1, String kdLvl2, int idres) {
        return dao.selectRefAkun2(kdLvl1, kdLvl2, idres); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public AkunEliminasi selectRefAkun1(String kdLvl1, int idres) {
        return dao.selectRefAkun1(kdLvl1, idres);
    }

    @Override
    public AkunEliminasi selectRefAkun3(String kdLvl1, String kdLvl2, String kdLvl3, int idres) {
        return dao.selectRefAkun3(kdLvl1, kdLvl2, kdLvl3, idres);
    }

    @Override
    public AkunEliminasi createNew() {
        return new AkunEliminasi();
    }

    @Override
    public AkunEliminasi selectEliminasi(String kdLvl1, String kdLvl2, String kdLvl3, int idres, String kdperiode,
            String kdprov, int idlaporan, int tahun) {
        //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        return dao.selectEliminasi(kdLvl1, kdLvl2, kdLvl3, idres, kdperiode, kdprov, idlaporan, tahun);

    }

    @Override
    public AkunEliminasi save(AkunEliminasi obj) {
        return dao.save(obj);
    }

    @Override
    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) {
        return dao.findKodeAkunHeaderLengkap(tahun, kdprov, lvl1, lvl2, lvl3, lvl4, lvl5, kategoripemdaid, idbas,
                idlap, idresipro, idtransfer, idheaderdata, kdperiode);

    }

    @Override
    public AkunEliminasi selectRefAkun4(String kdLvl1, String kdLvl2, String kdLvl3, String kdLvl4, int idres) {
        return dao.selectRefAkun4(kdLvl1, kdLvl2, kdLvl3, kdLvl4, idres);
    }

    @Override
    public List<AkunEliminasi> findByListWilayahSummary(String priode, int idbas, int idjenis, int tahun, String wilayah, int kdlvl1, int kdlvl2) {
        return dao.findAllByListWilayahSummary(priode, idbas, idjenis, tahun, wilayah, kdlvl1, kdlvl2);
    }

    @Override
    public List<AkunEliminasi> findByListNasionalSummary(String priode, int idbas, int idjenis, int tahun, int kdlvl1, int kdlvl2) {
        return dao.findAllByListNasionalSummary(priode, idbas, idjenis, tahun, kdlvl1, kdlvl2);
    }

    @Override
    public List<AkunEliminasi> findByListProvSummary(String priode, int idbas, int idjenis, int tahun, String prov, int kdlvl1, int kdlvl2) {
        return dao.findAllByListProvSummary(priode, idbas, idjenis, tahun, prov, kdlvl1, kdlvl2);
    }

    @Override
    public List<AkunEliminasi> findAllByListProvLak(String priode, int idjenis, int tahun, String prov) {
        return dao.findAllByListProvLak(priode, idjenis, tahun, prov);
    }

    @Override
    public List<AkunEliminasi> findByListWilayahLak(String priode, int idjenis, int tahun, String wilayah) {
        return dao.findAllByListWilayahLak(priode, idjenis, tahun, wilayah);
    }

    @Override
    public List<AkunEliminasi> findByListNasionalLak(String priode, int idjenis, int tahun) {
        return dao.findAllByListNasionalLak(priode, idjenis, tahun);
    }

    @Override
    public AkunEliminasi findNasional(String priode, int idbas, int idjenis, int tahun) {
        return dao.findNasional(priode, idbas, idjenis, tahun);
    }

    @Override
    public AkunEliminasi selectEliminasiWilayah(String kdLvl1, String kdLvl2, String kdLvl3, int idres, String kdperiode, String kdwilayah, int idlaporan, int tahun) {
        return dao.selectEliminasiWilayah(kdLvl1, kdLvl2, kdLvl3, idres, kdperiode, kdwilayah, idlaporan, tahun);
    }

    @Override
    public AkunEliminasi selectEliminasiNasional(String kdLvl1, String kdLvl2, String kdLvl3, int idres, String kdperiode, int idlaporan, int tahun) {
        return dao.selectEliminasiNasional(kdLvl1, kdLvl2, kdLvl3, idres, kdperiode, idlaporan, tahun);
    }

    @Override
    public AkunEliminasi selectKdWilayah(String kdprov) {
        return dao.selectKdWilayah(kdprov);

    }

    @Override
    public List<AkunEliminasi> findByListProvSummaryEliminasi(String priode, int idbas, int idjenis, int tahun, String prov, int kdlvl1, int kdlvl2) {
        return dao.findAllByListProvSummaryEliminasi(priode, idbas, idjenis, tahun, prov, kdlvl1, kdlvl2);
    }

    @Override
    public List<AkunEliminasi> findByListNasionalSummaryEliminasi(String priode, int idbas, int idjenis, int tahun, int kdlvl1, int kdlvl2) {
        return dao.findAllByListNasionalSummaryEliminasi(priode, idbas, idjenis, tahun, kdlvl1, kdlvl2);
    }

    @Override
    public List<AkunEliminasi> findByListWilayahSummaryEliminasi(String priode, int idbas, int idjenis, int tahun, String kdwilayah, int kdlvl1, int kdlvl2) {
        return dao.findAllByListWilayahSummaryEliminasi(priode, idbas, idjenis, tahun, kdwilayah, kdlvl1, kdlvl2);
    }

    @Override
    public void deleteBySusun(int id) {
        dao.deleteBySusun(id);
    }

    @Override
    public void delete(int id) {
        dao.deleteByID(id);
    }

    @Override
    public AkunEliminasi selectEliminasiCari(String kdLvl1, String kdLvl2, String kdLvl3, String kdLvl4, int idres, String kdperiode, String kdprov, int idlaporan, int tahun) {
        return dao.selectEliminasiCari(kdLvl1, kdLvl2, kdLvl3, kdLvl4, idres, kdperiode, kdprov, idlaporan, tahun);
    }

    @Override
    public AkunEliminasi selectRawDataCari(String kdLvl1, String kdLvl2, String kdLvl3, String kdLvl4, int idres, String kdperiode, String kdprov, int idlaporan, int tahun) {
        return dao.selectRawDataCari(kdLvl1, kdLvl2, kdLvl3, kdLvl4, idres, kdperiode, kdprov, idlaporan, tahun);
    }

}
