/*
 * 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.DAO;

import java.sql.Date;
import java.util.ArrayList;
import org.json.JSONObject;
import pe.siso.horario.Beans.Aula;
import pe.siso.horario.Beans.Bloque;
import pe.siso.horario.Beans.Horario;
import pe.siso.horario.Beans.HorarioHCD;


/**
 *
 * @author fcelestino
 */
public interface HorarioDAO {

	public int registrarGrupoBloque(String codigoGrupo, String codAula) throws Exception;

	public int consultarCantGrupoBloque(String codAula) throws Exception;

	public String consultarCodigoGrupo(String codAula) throws Exception;

	public Bloque consultarCodigoGrupoTurno(String codAula, String periodo) throws Exception;

	public Bloque consultarCodigoGrupoTurno(String codAula) throws Exception;

	public Bloque consultarCodigoGrupoTurno() throws Exception;

	public int registrarAsigCurDoceHorario(String codigoAula, String dia, String Posicionbloque, String Hini, String Hfin, String codigoTurno, String codigoCurso, String codigoDocente) throws Exception;

	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, String recuperacion) throws Exception;
	public int registrarAsigCurDoceHorarioPersonalizado(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, String recuperacion,String fechafin,String fechainicio,String cadenaTotal,String avance,String fecha_recuperacion,String curso_recuperacion,String aula_recuperacion,String docente_recuperacion,String fecha_aviso,String horaInicioRecuperacion,String horaFinRecuperacion) throws Exception;

	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) throws Exception;

	public int cantidadAsignado(String codAula, String dia, String posicionBloque) throws Exception;

	public int cantidadAsignado(String codAula, String dia, String posicionBloque, String Periodo) throws Exception;

	public Horario consultarDatosAsignados(String codAula, String dia, String posicionBloque) throws Exception;

	public Horario consultarDatosAsignados(String codAula, String dia, String posicionBloque, String periodo) throws Exception;

	public ArrayList<Aula> verCruce(String dia, String Hini, String Hfin, String codigoDocente) throws Exception;

	public Horario consultarDatosAsignadosExportar(String dia, String posicionBloque) throws Exception;

	public int consultacantidadCursos(String codAula) throws Exception;

	public int consultacantidadCursos(String codAula, String periodo) throws Exception;

	public int consultacantCursosSinAsignar(String codAula) throws Exception;

	public int consultacantCursosSinAsignar(String codAula, String periodo) throws Exception;

	public int cantidadAsignadoExportarTotal(String dia, String posicionBloque) throws Exception;

	public Bloque consultarCodigoGrupoTurnoDoc(String codDocente) throws Exception;

	public int cantidadAsignadoCursosDoc(String codDocente) throws Exception;

	public int cantidadAsignadoCursosDoc(String codDocente, String periodo) throws Exception;

	public int consultarCursos(String codAula, String codTurno, String codCurso, String periodo) throws Exception;

	public int consultarCursos(String codAula, String codTurno, String codCurso) throws Exception;

	public int consultarCursos(String codAula, String codTurno, String codCurso, String pos_blo, String dia, String periodo) throws Exception;

	public ArrayList<Horario> consultarDatosAsignadosDoc(String codDocente, String dia, String posicionBloque) throws Exception;

	public ArrayList<Horario> horarioDocente(String codDocente) throws Exception;

	public ArrayList<Horario> horarioDocente(String codDocente, String periodo) throws Exception;

	public int consultarExistenciaHorarioRegistrado(String codAula) throws Exception;

	public void limpiarRegistro(String codigoAula, String dia, String Posicionbloque, String Hini, String Hfin, String codigoTurno, String codigoCurso, String codigoDocente) throws Exception;

	public ArrayList<Aula> verCruce(String codhorario, String dia, String Hini, String Hfin, String codigoDocente) throws Exception;

	public ArrayList<Aula> verCruceIndividual(String dia, String Hini, String Hfin, String codDocente, String periodo) throws Exception;
	
	public JSONObject consultarHorarioByAula(String dia, String codAula, String periodo,String posicionbloque) throws Exception;

	public ArrayList<Aula> verCruceMasivio(String dia, String Hini, String Hfin, String codDocente, String periodo) throws Exception;

	public int cantidadHorario(String aula, String periodo) throws Exception;

	public Horario consultarDatosHorario(String codigoAula, String dia, String posicion) throws Exception;

	public ArrayList<Horario> consultarDatosHorario(String codigoAula, String codigoPeriodo) throws Exception;

	public Horario consultarDatosHorarioAula(String codigoAula, String codigoPeriodo) throws Exception;

	public void eliminarHorarioCurso(String codHorarioCursoDocente, int codUsuario) throws Exception;

	public void eliminarHorarioTodoAula(String codAula, String periodo, int codUsuario) throws Exception;

	public int codigoBloque(String codigoGrupo) throws Exception;

	public int cantidaCursosAsignados(String codigoAula, String periodo) throws Exception;

	public int cantGrupoHorario(String codigoAula, String periodo) throws Exception;

	public ArrayList<Horario> horarioHistorial(String periodo) throws Exception;

	public ArrayList<Horario> historial(String periodo, String aula) throws Exception;

	public int cantidaAulaConHistorial(String aula, String periodo) throws Exception;

	public int cantidadHorarioCero(String aula, String periodo) throws Exception;

	public Horario consultarDatosHorarioAulaPorPosicionDiaria(String codigoAula, String codigoPeriodo, String dia, String posicion) throws Exception;

	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) throws Exception;

	public int registrarGrupoAula(int codPeriodo, String cadenaAulas, int cant_aula, String codigo) throws Exception;

	public Horario consultarCadenaGH(String codigo) throws Exception;

	public Horario nombreDocente(String codigoDocente) throws Exception;

	public ArrayList<Horario> listaGrupoAulas(String aula, String periodo) throws Exception;

	public String limbiarGrupoAulasVacias(String aula, String periodo) throws Exception;

	public int eliminarMasivo(String codAulas, String codCur, String periodo) throws Exception;

	public ArrayList<Horario> horarioDocenteReducido(String codDocente, String periodo) throws Exception;

	public Horario consultarCadenaGH(String codigoAula, String codigoPeriodoAcademico) throws Exception;

	public JSONObject listarVistaDobleDisponibilidad(JSONObject json);
	public JSONObject listarVistaDobleDisponibilidad2(JSONObject json);
	public JSONObject listarVistaDobleDisponibilidadSinZona(JSONObject json);
	
	public JSONObject listarVistaHorarioDisponibilidad(JSONObject json)throws Exception;
	public JSONObject listarVistaHorarioConformidad(JSONObject json)throws Exception;
	
	public JSONObject listarVistaHorarioDocenteDni(JSONObject json)throws Exception;
	public JSONObject listarVistaHorarioDocenteDni2(JSONObject json)throws Exception;
	
	public Horario verDocenteExamenEncuesta(String codigoDocente,String codigoPlana)throws Exception;
	public Horario verDocenteCelular(String codigoDocente)throws Exception;
	
	public int updateCambioCurso(String codigoAula,String periodo,String dia,String posBloque,String nombreCursoNuevo)throws Exception;
	
	public int updateDisponibilidad(String codDocente,String periodo,String turno,String dia)throws Exception;
	
	public int rollbackDisponibilidad(String codDocente,String periodo,String turno,String dia)throws Exception;
	
	public int registroInforme(String argumento,String motivo,String codigoDocente,String nombreDocente,String nombreSede,String codigoSede)throws Exception;
	public int insertarNuevaHoras(JSONObject json)throws Exception;
	public JSONObject registrarConformidad(JSONObject object,String codDocente,String codPeriodo)throws Exception;
	public JSONObject mostrarNuevaHoras(JSONObject object)throws Exception;
	public JSONObject deshabilitarHorario(JSONObject object)throws Exception;

	
}
