/*
 * 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 pe.siso.horario.Services;

import java.util.ArrayList;
import pe.siso.horario.Beans.Aula;
import pe.siso.horario.Beans.Bloque;
import pe.siso.horario.Beans.Horario;
import pe.siso.horario.DAO.DAOFactory;
import pe.siso.horario.DAO.HorarioDAO;

/**
 *
 * @author fcelestino
 */
public class HorarioServices {
    DAOFactory fabrica = DAOFactory.getDAOFactory(DAOFactory.MYSQL);
    HorarioDAO objHorarioDAO= fabrica.getHorarioDAO();
    
    public int registrarGrupoBloque(String codigoGrupo,String codAula){
        int dato=0;
        try {
            dato=objHorarioDAO.registrarGrupoBloque(codigoGrupo,codAula);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public int consultarCantGrupoBloque(String codAula){
        int dato=0;
        try {
            dato=objHorarioDAO.consultarCantGrupoBloque(codAula);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public String consultarCodigoGrupo(String codAula){
        String dato="";
        try {
            dato=objHorarioDAO.consultarCodigoGrupo(codAula);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public int registrarAsigCurDoceHorario(String codigoAula, String dia, String Posicionbloque, String Hini, String Hfin, String codigoTurno, String codigoCurso, String codigoDocente){
        int dato=0;
        try {
            dato=objHorarioDAO.registrarAsigCurDoceHorario(codigoAula, dia, Posicionbloque, Hini, Hfin, codigoTurno, codigoCurso, codigoDocente);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public int cantidadAsignado(String codAula, String dia, String posicionBloque){
        int dato=0;
        try {
            dato=objHorarioDAO.cantidadAsignado(codAula, dia, posicionBloque);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public Horario consultarDatosAsignados(String codAula, String dia, String posicionBloque){
        Horario horario = new Horario();
        try {
            horario=objHorarioDAO.consultarDatosAsignados(codAula, dia, posicionBloque);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return horario;
    }
    
    public Bloque consultarCodigoGrupoTurno(String codAula){
        Bloque bloque = new Bloque();
        try {
            bloque=objHorarioDAO.consultarCodigoGrupoTurno(codAula);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return bloque;
    }
    
    public ArrayList<Aula> verCruce(String dia, String Hini, String Hfin, String codigoDocente){
        ArrayList<Aula> lista = null;
        try {
            lista=objHorarioDAO.verCruce(dia, Hini, Hfin, codigoDocente);   
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return lista;
    }
    
    
    //-------------------
    
    
    public int consultacantidadCursos(String codAula){
        
        int dato=0;
        try {
            dato=objHorarioDAO.consultacantidadCursos(codAula);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public Horario consultarDatosAsignadosExportar(String dia, String posicionBloque){
        Horario horario = new Horario();
        try {
            horario=objHorarioDAO.consultarDatosAsignadosExportar(dia, posicionBloque);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return horario;
    }
    
    public int consultacantCursosSinAsignar(String codAula){
        
        int codigo=0;
        try {
            codigo=objHorarioDAO.consultacantCursosSinAsignar(codAula);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return codigo;
    }
    
    public Bloque consultarCodigoGrupoTurno(){
        Bloque bloque = new Bloque();
        try {
            bloque=objHorarioDAO.consultarCodigoGrupoTurno();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return bloque;
    }
    
    public int cantidadAsignadoExportarTotal(String dia, String posicionBloque){
        int dato=0;
        try {
            dato=objHorarioDAO.cantidadAsignadoExportarTotal(dia, posicionBloque);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public Bloque consultarCodigoGrupoTurnoDoc(String codDocente){
        Bloque bloque = new Bloque();
        try {
            bloque=objHorarioDAO.consultarCodigoGrupoTurnoDoc(codDocente);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return bloque;
    }
    
    public int cantidadAsignadoCursosDoc(String codDocente){
        int dato=0;
        try {
            dato=objHorarioDAO.cantidadAsignadoCursosDoc(codDocente);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
     public ArrayList<Horario> consultarDatosAsignadosDoc(String codDocente, String dia, String posicionBloque){
       ArrayList<Horario> lista=new ArrayList<Horario>();
        try {
            lista=objHorarioDAO.consultarDatosAsignadosDoc(codDocente, dia, posicionBloque);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return lista;
    }
     public ArrayList<Horario> horarioDocente(String codDocente) {
         ArrayList<Horario> lista =null;
        
        try {
            lista=objHorarioDAO.horarioDocente(codDocente);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return lista;
    }
    
     public int consultarExistenciaHorarioRegistrado(String codAula){
        int dato = 0;
        
        try {
            dato=objHorarioDAO.consultarExistenciaHorarioRegistrado(codAula);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
     }
     
    public void limpiarRegistro(String codigoAula, String dia, String Posicionbloque, String Hini, String Hfin, String codigoTurno, String codigoCurso, String codigoDocente)  {
        try {
              objHorarioDAO.limpiarRegistro(codigoAula, dia, Posicionbloque, Hini, Hfin, codigoTurno, codigoCurso, codigoDocente );
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
     }
    //----------------------------------horario-------------------
    public ArrayList<Aula> verCruce(String codHorario, String dia, String Hini, String Hfin, String codigoDocente){
        ArrayList<Aula> lista = null;
        try {
            lista=objHorarioDAO.verCruce(codHorario, dia, Hini, Hfin, codigoDocente);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return lista;
    }
     
    public int consultarCursos(String codAula, String codTurno, String codCurso) {
        int dato=0;
        try {
            dato=objHorarioDAO.consultarCursos(codAula, codTurno, codCurso);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    public int consultarCursos(String codAula, String codTurno, String codCurso, String pos_blo,String dia, String periodo) {
        int dato=0;
        try {
            dato=objHorarioDAO.consultarCursos(codAula, codTurno, codCurso, pos_blo, dia, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public int cantidadHorario(String aula, String periodo) {
        int dato=0;
        try {
            dato=objHorarioDAO.cantidadHorario(aula, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public int consultarCursos(String codAula, String codTurno, String codCurso, String periodo){
        int dato=0;
        try {
            dato=objHorarioDAO.consultarCursos(codAula, codTurno, codCurso, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    
    public int registrarAsigCurDoceHorario(String codigoAula, String dia, String Posicionbloque, String Hini, String Hfin, String codigoTurno, String codigoCurso, String codigoDocente, String periodo, String codigoGrupo,int codUsuario,int clase,String grupoAulas,String historial,String motivoCambio, String observacion, String condicionTrabajador, String horaAviso){
        int dato=0;
        try {
            dato=objHorarioDAO.registrarAsigCurDoceHorario(codigoAula, dia, Posicionbloque, Hini, Hfin, codigoTurno, codigoCurso, codigoDocente, periodo, codigoGrupo, codUsuario,clase,grupoAulas,historial,motivoCambio, observacion, condicionTrabajador, horaAviso);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public ArrayList<Aula> verCruceIndividual(String dia, String Hini, String Hfin, String codDocente, String periodo){
        ArrayList<Aula> lista = null;
        try {
            lista=objHorarioDAO.verCruceIndividual(dia, Hini, Hfin, codDocente, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return lista;
    }
    
    public int registrarAsigCurDoceHorarioMasivo(String cadenaTotal, String hora_inicio, String hora_termino, String dia, String codigoTurno, String codigoCurso, String codigoDocente, String periodo, String codigoGrupo,int codUsuario,int clase){
        int dato=0;
        try {
            dato=objHorarioDAO.registrarAsigCurDoceHorarioMasivo(cadenaTotal, hora_inicio, hora_termino, dia, codigoTurno, codigoCurso, codigoDocente, periodo, codigoGrupo, codUsuario, clase);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public ArrayList<Aula> verCruceMasivio(String dia, String Hini, String Hfin, String codDocente, String periodo){
        ArrayList<Aula> lista = null;
        try {
            lista=objHorarioDAO.verCruceMasivio(dia, Hini, Hfin, codDocente, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return lista;
    }
    
    public Horario consultarDatosHorario(String codigoAula, String dia, String posicion){
        Horario horario = new Horario();
        try {
            horario=objHorarioDAO.consultarDatosHorario(codigoAula, dia, posicion);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return horario;
    }
    
    public ArrayList<Horario> consultarDatosHorario(String codigoAula,String codigoPeriodo){
        ArrayList<Horario> lista = null;
        try {
            lista=objHorarioDAO.consultarDatosHorario(codigoAula, codigoPeriodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return lista;
    }
    
    public Horario consultarDatosHorarioAula(String codigoAula, String codigoPeriodo){
        Horario horario = new Horario();
        try {
            horario=objHorarioDAO.consultarDatosHorarioAula(codigoAula, codigoPeriodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return horario;
    }
    
    public void eliminarHorarioCurso(String codHorarioCursoDocente,int codUsuario){
        try {
            objHorarioDAO.eliminarHorarioCurso(codHorarioCursoDocente, codUsuario);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    public void eliminarHorarioTodoAula(String codAula, String periodo,int codUsuario){
        try {
            objHorarioDAO.eliminarHorarioTodoAula(codAula, periodo, codUsuario);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    public int codigoBloque(String codigoGrupo){
        int dato = 0;
        try {
            dato=objHorarioDAO.codigoBloque(codigoGrupo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public int cantidaCursosAsignados(String codigoAula, String periodo){
        int dato = 0;
        try {
            dato=objHorarioDAO.cantidaCursosAsignados(codigoAula, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public int cantidadAsignado(String codAula, String dia, String posicionBloque, String Periodo){
        int dato = 0;
        try {
            dato=objHorarioDAO.cantidadAsignado(codAula, dia, posicionBloque, Periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public Horario consultarDatosAsignados(String codAula, String dia, String posicionBloque, String periodo){
        Horario horario=new Horario();
        try {
            horario=objHorarioDAO.consultarDatosAsignados(codAula, dia, posicionBloque, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return horario;
    }
    
    public ArrayList<Horario> horarioDocente(String codDocente, String periodo){
        ArrayList<Horario> lista =null;
        
        try {
            lista=objHorarioDAO.horarioDocente(codDocente, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return lista;
    }
    
    public int cantidadAsignadoCursosDoc(String codDocente, String periodo){
        int dato = 0;
        try {
            dato=objHorarioDAO.cantidadAsignadoCursosDoc(codDocente, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public int consultacantidadCursos(String codAula, String periodo){
        int dato = 0;
        try {
            dato=objHorarioDAO.consultacantidadCursos(codAula, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public int consultacantCursosSinAsignar(String codAula, String periodo){
        int dato = 0;
        try {
            dato=objHorarioDAO.consultacantCursosSinAsignar(codAula, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public Bloque consultarCodigoGrupoTurno(String codAula, String periodo){
        Bloque bloque = new Bloque();
        try {
            bloque=objHorarioDAO.consultarCodigoGrupoTurno(codAula, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return bloque;
    }
    
    public int cantGrupoHorario(String codigoAula, String periodo){
        int dato = 0;
        try {
            dato=objHorarioDAO.cantGrupoHorario(codigoAula, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public ArrayList<Horario> historial(String periodo, String aula){
        ArrayList<Horario> lista = null;
        try {
            lista=objHorarioDAO.historial(periodo, aula);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return lista;
    }
    
    public int cantidaAulaConHistorial(String aula, String periodo){
        int dato = 0;
        try {
            dato=objHorarioDAO.cantidaAulaConHistorial(aula, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public int cantidadHorarioCero(String aula, String periodo){
        int dato = 0;
        try {
            dato=objHorarioDAO.cantidadHorarioCero(aula, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public Horario consultarDatosHorarioAulaPorPosicionDiaria(String codigoAula, String codigoPeriodo, String dia, String posicion){
        Horario horairo = new Horario();
        try {
            horairo=objHorarioDAO.consultarDatosHorarioAulaPorPosicionDiaria(codigoAula, codigoPeriodo, dia, posicion);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return horairo;
    }
    
    public int registrarAsigCurDoceHorarioMasivo2(String cadenaTotal, String hora_inicio, String hora_termino, String dia, String codigoTurno, String codigoCurso, String codigoDocente, String periodo, String codigoGrupo, int codUsuario, int clase,String grupoAulas){
        int dato = 0;
        try {
            dato=objHorarioDAO.registrarAsigCurDoceHorarioMasivo2(cadenaTotal, hora_inicio, hora_termino, dia, codigoTurno, codigoCurso, codigoDocente, periodo, codigoGrupo, codUsuario, clase,grupoAulas);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public int registrarGrupoAula(int codPeriodo, String cadenaAulas, int cant_aula, String codigo){
        int dato = 0;
        try {
            dato=objHorarioDAO.registrarGrupoAula(codPeriodo, cadenaAulas, cant_aula, codigo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public Horario consultarCadenaGH(String codigo){
        Horario horario = new Horario();
        try {
            horario=objHorarioDAO.consultarCadenaGH(codigo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return horario;
    }
    
    public ArrayList<Horario> listaGrupoAulas(String aula, String periodo){
        ArrayList<Horario> lista = null;
        try {
            lista=objHorarioDAO.listaGrupoAulas(aula, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return lista;
    }
    
    public String limbiarGrupoAulasVacias(String aula, String periodo){
        String cadena = "";
        try {
            cadena=objHorarioDAO.limbiarGrupoAulasVacias(aula, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return cadena;
    }
    
    public int eliminarMasivo(String codAulas, String codCur, String periodo){
        int dato = 0;
        try {
            dato=objHorarioDAO.eliminarMasivo(codAulas, codCur, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return dato;
    }
    
    public Horario nombreDocente(String codigoDocente){
        Horario horario = new Horario();
        try {
            horario=objHorarioDAO.nombreDocente(codigoDocente);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return horario;
    }
    
    
    public ArrayList<Horario> horarioDocenteReducido(String codDocente, String periodo){
        ArrayList<Horario> lista = null;
        try {
            lista=objHorarioDAO.horarioDocenteReducido(codDocente, periodo);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return lista;
    }
    
    public Horario consultarCadenaGH(String codigoAula, String codigoPeriodoAcademico){
        Horario horario = new Horario();
        try {
            horario = objHorarioDAO.consultarCadenaGH(codigoAula, codigoPeriodoAcademico);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return horario;
    }
    
}
