/*GUARDAMOS LA OBSERVACION EN LA TABLA AC_SESION_ASISTENCIA*/
 public void guardarObservacionAsistencia(ActionEvent event) {
   int p_ses_id =
       Integer.parseInt(
           ((UIParameter) event.getComponent().findComponent("p_ses_id")).getValue().toString());
   int s_doc_aux_id =
       Integer.parseInt(
           ((UIParameter) event.getComponent().findComponent("p_doc_id")).getValue().toString());
   int p_sesefec_id =
       Integer.parseInt(
           ((UIParameter) event.getComponent().findComponent("p_sesefec_id"))
               .getValue()
               .toString());
   String estadoDocTipo;
   try {
     if (this.getAsisDocenteCL().getEstasis_code_diario().equals("0")) {
       this.setOncompleteADD("javascript:alert('SELECCIONE UN TIPO DE ASISTENCIA');");
     } else {
       HSAsistenciaDocenteDAO dao =
           (HSAsistenciaDocenteDAO) ServiceFinder.findBean("SpringHibernateDaoAsistenciaDocente");
       AcSesionAsistencia sesAsis = new AcSesionAsistencia();
       sesAsis.setSesEstadoDocTipo(this.getAsisDocenteCL().getEstasis_code_diario());
       estadoDocTipo = this.getAsisDocenteCL().getEstasis_code_diario();
       String sesObservacion = this.getAsisDocenteCL().getSesObservacion();
       dao.actualizarObservacionSesionDocente(p_ses_id, estadoDocTipo, sesObservacion);
       this.mostrarAsistenciaDiaria(event);
       this.setOncompleteADD(
           "javascript:alert('REGISTRO COMPLETO');"
               + "Richfaces.hideModalPanel('mpAsisDocenteDiaria')");
     }
   } catch (Exception e) {
     e.printStackTrace();
   }
 }
  /*MOSTRAMOS LA ASISTENCIA DIARIA*/
  public void mostrarAsistenciaDiaria(ActionEvent event) {

    SimpleDateFormat dateFormat;

    // BeanReporte asis;
    HSAsistenciaDocenteDAO daoAsistencia;
    HSDocenteDAO daoDocente;

    try {
      lstSesiones = new ArrayList<BeanReporte>();

      daoAsistencia =
          (HSAsistenciaDocenteDAO) ServiceFinder.findBean("SpringHibernateDaoAsistenciaDocente");
      List<bAsistenciaDocenteCL> listaEmpleados = new ArrayList<bAsistenciaDocenteCL>();
      List<AsistenciaDocenteCLBean> empleados =
          daoAsistencia.listarAsistenciaDiariaCl_x_docenteFecha(
              this.getW_doc_id(), this.fechaIni, 0, this.getAsisDocenteCL().getCentro());

      int iSizeSesAsist = empleados.size();
      for (int i = 0; i < iSizeSesAsist; i++) {
        // asis = new BeanReporte();
        bAsistenciaDocenteCL asis = new bAsistenciaDocenteCL();

        asis.setB_ses_id(empleados.get(i).getSes_id());
        asis.setB_doc_id(empleados.get(i).getDoc_id());
        asis.setB_doc_nombre(empleados.get(i).getDoc_nombre());
        asis.setB_centro(empleados.get(i).getCentro());
        asis.setB_especialidad(empleados.get(i).getEspecialidad());
        asis.setB_seccion(empleados.get(i).getSec_nombre());
        asis.setB_curso(empleados.get(i).getCur_nombre());
        asis.setB_ses_horaIni(empleados.get(i).getHora_inicio());
        asis.setB_ses_horaFin(empleados.get(i).getHora_fin());
        asis.setB_ses_horaIngreso(empleados.get(i).getHora_ingreso());
        asis.setB_ses_horaSalida(empleados.get(i).getHora_salida());
        // lstSesiones.add( asis );
        HSAsistenciaDocenteDAO dao =
            (HSAsistenciaDocenteDAO) ServiceFinder.findBean("SpringHibernateDaoAsistenciaDocente");
        AcSesionAsistencia ses = dao.listarSessionAsistencia_x_sesid(asis.getB_ses_id());
        if (!ses.getSesObservacion().equals("")) {
          asis.setB_visualizar("true");
        } else {
          asis.setB_visualizar("false");
        }
        listaEmpleados.add(asis);
        this.setW_doc_id(0);
        this.setW_doc_codigo("");
        this.setW_doc_nombre("");
        this.setSuggestion("");
      }
      this.setB_listar_Sessiones(listaEmpleados);
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
  public void mostrarSessionAsistencia(ActionEvent event) {
    String sFechaInicio;
    String sFechaFin;
    String sFechaRegistro;
    SimpleDateFormat dateFormat;
    AcSesionAsistencia sesAsis;
    BeanReporte asis;
    ClSeccion clSec;
    HSAsistenciaDocenteDAO daoAsistencia;
    HSDocenteDAO daoDocente;
    List<AcSesionAsistencia> lstSesAsist;
    try {

      daoAsistencia = CommonDAO.getAsistenciaDocenteDAO();
      daoDocente = CommonDAO.getAcDocenteDAO();
      lstSesiones = new ArrayList<BeanReporte>();

      lstSesAsist =
          daoAsistencia.listarSessionAsistencia_x_docenteFecha(
              this.docId, this.fechaIni, this.fechaFin, ConstantesWeb.COD_SES_ASIST_CL);
      int iSizeSesAsist = lstSesAsist.size();
      for (int i = 0; i < iSizeSesAsist; i++) {
        asis = new BeanReporte();
        sesAsis = lstSesAsist.get(i);

        clSec = CommonDAO.getClSeccionDAO().seleccionarSeccion(sesAsis.getAcSeccion().getId());

        asis.setExpr1(sesAsis.getSesId() + "");
        asis.setExpr2(daoDocente.seleccionarDocente(sesAsis.getDocId()).getDocNombre());
        dateFormat = new SimpleDateFormat("dd/MM/yyyy");
        sFechaRegistro = dateFormat.format(sesAsis.getSesFechaRegistro());
        asis.setExpr3(sFechaRegistro);
        try {
          asis.setExpr4(clSec.getSecNombre());
        } catch (Exception ex) {
          asis.setExpr4("NO DETERMINADO");
          ex.printStackTrace();
        }
        try {
          asis.setExpr5(clSec.getClArbolAcademico().getArbAcadPadre().getArbDescripcion());
        } catch (Exception ex) {
          asis.setExpr5("NO DETERMINADO");
          ex.printStackTrace();
        }

        dateFormat = new SimpleDateFormat("hh:mm");
        sFechaInicio = dateFormat.format(sesAsis.getSesFechaInicio());
        sFechaFin = dateFormat.format(sesAsis.getSesFechaFin());
        asis.setExpr6(sFechaInicio);
        asis.setExpr7(sFechaFin);
        asis.setExpr8(sesAsis.getDocId() + "");
        lstSesiones.add(asis);
      }
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
  public void seleccionarSesion(ActionEvent event) {
    int iParamSesId;
    AcDocente doc;
    AcSesionAsistencia sesAsis;
    ClArbolAcademico arbAreaAux;
    ClArbolAcademico arbModAux;
    ClArbolAcademico arbCurAux;
    ClSeccion clSec;
    HSAsistenciaDocenteDAO daoAsistencia;
    HSDocenteDAO daoDocente;
    oncomplete = "";

    iParamSesId = CommonWeb.parseObjToInt(CommonWeb.getParamFromUIParameterUI(event, "w_ses_id"));

    daoAsistencia = CommonDAO.getAsistenciaDocenteDAO();
    daoDocente = CommonDAO.getAcDocenteDAO();

    sesAsis = daoAsistencia.listarSessionAsistencia_x_sesid(iParamSesId);

    clSec = CommonDAO.getClSeccionDAO().seleccionarSeccion(sesAsis.getAcSeccion().getId());
    arbCurAux = clSec.getClArbolAcademico().getArbAcadPadre();
    arbModAux = arbCurAux.getArbAcadPadre();
    arbAreaAux = arbModAux.getArbAcadPadre();
    doc = (AcDocente) daoDocente.seleccionarDocente(sesAsis.getDocId());

    iSesId = iParamSesId;
    b_doc_id = doc.getId();
    s_doc_id = doc.getId();
    b_doc_nombre = doc.getDocNombre();
    w_doc_id = sesAsis.getDocIdBk();
    sCurNombre = arbCurAux.getArbDescripcion();
    sSecNombre = clSec.getSecNombre();
    sEspNombre = arbAreaAux.getArbDescripcion() + " / " + arbModAux.getArbDescripcion();
    horaIni2 = sesAsis.getSesFechaInicio();
    horaFin2 = sesAsis.getSesFechaFin();

    oncomplete = "Richfaces.showModalPanel('mpSessionAsis')";
  }
  /*INGRESAMOS LA OBSERVACION AC_SESION_ASISTENCIA*/
  public void seleccionarMarcaObservacionDocente(ActionEvent event) throws Exception {
    HSAsistenciaDocenteDAO dao =
        (HSAsistenciaDocenteDAO) ServiceFinder.findBean("SpringHibernateDaoAsistenciaDocente");
    HSDocenteDAO daoDoc = (HSDocenteDAO) ServiceFinder.findBean("SpringHibernateDaoDocente");

    int p_ses_id =
        Integer.parseInt(
            ((UIParameter) event.getComponent().findComponent("w_ses_id")).getValue().toString());
    String p_cur_nombre =
        ((UIParameter) event.getComponent().findComponent("p_cur_nombre")).getValue().toString();
    String p_sec_nombre =
        ((UIParameter) event.getComponent().findComponent("p_sec_nombre")).getValue().toString();
    int p_doc_id =
        Integer.parseInt(
            ((UIParameter) event.getComponent().findComponent("w_doc_id")).getValue().toString());
    try {
      AcSesionEfectivaAsisDoc sesefeasisdoc = dao.listaMarcadoDeAsistencia_x_Docente(p_ses_id);
      AsistenciaDocenteCLBean asis = new AsistenciaDocenteCLBean();
      if (sesefeasisdoc instanceof AcSesionEfectivaAsisDoc) {

        asis.setDoc_id(sesefeasisdoc.getAcDocente().getId());
        asis.setDoc_codigo(sesefeasisdoc.getAcDocente().getDocCodigo());
        asis.setDoc_nombre(sesefeasisdoc.getAcDocente().getDocNombre());
        asis.setSes_id(sesefeasisdoc.getAcSesionAsistencia().getSesId());
        asis.setSec_nombre(sesefeasisdoc.getAcSesionAsistencia().getAcSeccion().getSecNombre());
        asis.setCur_nombre(
            sesefeasisdoc
                .getAcSesionAsistencia()
                .getAcSeccion()
                .getCurape()
                .getPlancur()
                .getCur()
                .getCurNombre());
        asis.setSesefeasisdoc_fecha(sesefeasisdoc.getAcSesionAsistencia().getSesFechaRegistro());
        asis.setSesefeasisdoc_id(sesefeasisdoc.getSesefeasisdocId());

        AcSesionAsistencia ses = dao.listarSessionAsistencia_x_sesid(p_ses_id);
        asis.setRegistro(ses.getSesFechaInicio());
        asis.setSesObservacion(ses.getSesObservacion());
        if (asis.getSesObservacion().equals("")) {}

        asis.setSesEstadoDocTipo(ses.getSesEstadoDocTipo());
        asis.setEstasis_code_diario(ses.getSesEstadoDocTipo());
        asis.setCentro(this.getAsisDocenteCL().getCentro());
        System.out.println("XD ->" + this.getAsisDocenteCL().getCentro());
        HSCatalogoDAO catalogoDAO =
            (HSCatalogoDAO) ServiceFinder.findBean("SpringHibernateDaoCatalogo");
        this.setB_sesEstadoDocTipo(catalogoDAO.seleccionarDescripcion(ses.getSesEstadoDocTipo()));
      } else {
        AcDocente doc = daoDoc.seleccionarDocente(p_doc_id);
        AcSesionAsistencia ses = dao.listarSessionAsistencia_x_sesid(p_ses_id);
        asis.setRegistro(ses.getSesFechaInicio());
        asis.setSalida(ses.getSesFechaFin());
        asis.setSesefeasisdoc_fecha(ses.getSesFechaRegistro());
        asis.setDoc_id(doc.getId());
        asis.setDoc_codigo(doc.getDocCodigo());
        asis.setDoc_nombre(doc.getDocNombre());
        asis.setSes_id(p_ses_id);
        asis.setSec_nombre(p_sec_nombre);
        asis.setCur_nombre(p_cur_nombre);
        asis.setSesObservacion(ses.getSesObservacion());
        HSCatalogoDAO catalogoDAO =
            (HSCatalogoDAO) ServiceFinder.findBean("SpringHibernateDaoCatalogo");
        this.setB_sesEstadoDocTipo(catalogoDAO.seleccionarDescripcion(ses.getSesEstadoDocTipo()));
        asis.setSesEstadoDocTipo(ses.getSesEstadoDocTipo());
        asis.setEstasis_code_diario(ses.getSesEstadoDocTipo());
      }
      this.setAsisDocenteCL(asis);
      this.setOncompleteADD("Richfaces.showModalPanel('mpAsisDocenteDiaria')");
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  public void seleccionarMarcaDocente(ActionEvent event) {
    int paramDocId;
    int paramSesId;
    String paramCurNombre;
    String paramSecNombre;
    AcDocente acDoc;
    AcSesionAsistencia sesAsis;
    AcSesionEfectivaAsisDoc sesEfecAsisDoc;
    AsistenciaDocenteBean asisDoc;
    ClSeccion clSec;
    HSAsistenciaDocenteDAO asisDocDAO;
    HSDocenteDAO docDAO;
    Timestamp t1;
    Timestamp t2;

    paramDocId = CommonWeb.parseObjToInt(CommonWeb.getParamFromUIParameterUI(event, "w_doc_id"));
    paramSesId = CommonWeb.parseObjToInt(CommonWeb.getParamFromUIParameterUI(event, "w_ses_id"));
    paramCurNombre = CommonWeb.getParamFromUIParameterUI(event, "p_cur_nombre");
    paramSecNombre = CommonWeb.getParamFromUIParameterUI(event, "p_sec_nombre");

    asisDocDAO = CommonDAO.getAsistenciaDocenteDAO();
    docDAO = CommonDAO.getAcDocenteDAO();
    try {
      sesEfecAsisDoc = asisDocDAO.listaMarcadoDeAsistencia_x_Docente(paramSesId);
      asisDoc = new AsistenciaDocenteBean();

      if (sesEfecAsisDoc instanceof AcSesionEfectivaAsisDoc) {
        asisDoc.setDoc_id(sesEfecAsisDoc.getAcDocente().getId());
        asisDoc.setDoc_codigo(sesEfecAsisDoc.getAcDocente().getDocCodigo());
        asisDoc.setDoc_nombre(sesEfecAsisDoc.getAcDocente().getDocNombre());
        asisDoc.setSes_id(sesEfecAsisDoc.getAcSesionAsistencia().getSesId());

        clSec =
            CommonDAO.getClSeccionDAO()
                .seleccionarSeccion(sesEfecAsisDoc.getAcSesionAsistencia().getAcSeccion().getId());
        try {
          asisDoc.setSec_nombre(clSec.getSecNombre());
        } catch (Exception ex) {
          asisDoc.setSec_nombre("NO DETERMINADO");
          ex.printStackTrace();
        }

        try {
          asisDoc.setCur_nombre(clSec.getClArbolAcademico().getArbAcadPadre().getArbDescripcion());
        } catch (Exception ex) {
          asisDoc.setCur_nombre("NO DETERMINADO");
          ex.printStackTrace();
        }

        asisDoc.setEstasis_code(sesEfecAsisDoc.getSesefeasisdocTipo());
        asisDoc.setSesefeasisdoc_fecha(
            sesEfecAsisDoc.getAcSesionAsistencia().getSesFechaRegistro());
        asisDoc.setSesefeasisdoc_id(sesEfecAsisDoc.getSesefeasisdocId());

        t1 = sesEfecAsisDoc.getSesefeasisdocRegistro();
        t2 = sesEfecAsisDoc.getSesefeasisdocSalida();
        if (t1 != null) {
          asisDoc.setReg_hora(t1.getHours());
          asisDoc.setReg_min(t1.getMinutes());
        }
        if (t2 != null) {
          asisDoc.setSal_hora(t2.getHours());
          asisDoc.setSal_min(t2.getMinutes());
        }
        sesAsis = asisDocDAO.listarSessionAsistencia_x_sesid(paramSesId);
        asisDoc.setRegistro(sesAsis.getSesFechaInicio());
        asisDoc.setSalida(sesAsis.getSesFechaFin());
        asisDoc.setSesefeasisdoc_registro(sesEfecAsisDoc.getSesefeasisdocRegistro());
        asisDoc.setSesefeasisdoc_salida(sesEfecAsisDoc.getSesefeasisdocSalida());
        asisDoc.setSesefeasisdoc_obs(sesEfecAsisDoc.getSesefeasisdocObs());
      } else {
        //                System.out.println("nuevo ingreso!");
        acDoc = docDAO.seleccionarDocente(paramDocId);
        sesAsis = asisDocDAO.listarSessionAsistencia_x_sesid(paramSesId);
        asisDoc.setRegistro(sesAsis.getSesFechaInicio());
        asisDoc.setSalida(sesAsis.getSesFechaFin());
        asisDoc.setSesefeasisdoc_fecha(sesAsis.getSesFechaRegistro());
        asisDoc.setDoc_id(acDoc.getId());
        asisDoc.setDoc_codigo(acDoc.getDocCodigo());
        asisDoc.setDoc_nombre(acDoc.getDocNombre());
        asisDoc.setSes_id(paramSesId);
        asisDoc.setSec_nombre(paramSecNombre);
        asisDoc.setCur_nombre(paramCurNombre);
      }
      asisDocente = asisDoc;
      oncomplete = "Richfaces.showModalPanel('mpAsisDocente')";
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  private void horaAdicional() {
    SimpleDateFormat formatTimeStamp;
    formatTimeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try {
      HSAsistenciaDocenteDAO dao =
          (HSAsistenciaDocenteDAO) ServiceFinder.findBean("SpringHibernateDaoAsistenciaDocente");

      AcSesionAsistencia sesasis = new AcSesionAsistencia();
      // this.getNuevAsisDocente().getN_curso_seccion()
      sesasis.setAcSeccion(new AcSeccion(nuevaHoraAdicional.getIdSec()));
      sesasis.setSesFechaSesion(nuevaHoraAdicional.getN_fsesion());
      sesasis.setSesFechaRegistro(nuevaHoraAdicional.getN_fsesion());
      sesasis.setSesFechaInicio(
          Timestamp.valueOf(formatTimeStamp.format(nuevaHoraAdicional.getN_fsesion_ini())));
      sesasis.setSesFechaFin(
          Timestamp.valueOf(formatTimeStamp.format(nuevaHoraAdicional.getN_fsesion_fin())));
      sesasis.setSesActivo("1");
      sesasis.setSesTimeTolerancia(20);
      sesasis.setSesTimeAntes(20);
      sesasis.setSesTimeTope(30);
      sesasis.setAulId(0);
      sesasis.setSesEstado("044001");
      sesasis.setSesFechaSalida(10);
      sesasis.setDocId(nuevaHoraAdicional.getN_doc_id());
      sesasis.setDocIdBk(nuevaHoraAdicional.getN_doc_id());
      sesasis.setSesTipo(nuevaHoraAdicional.getN_tipses_code());
      sesasis.setSesTipoAsistencia(ConstantesWeb.COD_SES_ASIST_CL);
      sesasis.setSesObservacion("");
      sesasis.setSesEstadoDocTipo("046001");

      dao.ingresarSesionAsistencia(sesasis);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  private void nuevaSesion() {
    AcSesionAsistencia sesAsis;
    HSAsistenciaDocenteDAO asisDocDAO;
    SimpleDateFormat formatTimeStamp;
    formatTimeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try {
      asisDocDAO = CommonDAO.getAsistenciaDocenteDAO();

      sesAsis = new AcSesionAsistencia();

      sesAsis.setAcSeccion(new AcSeccion(nuevAsisDocente.getIdSec()));
      sesAsis.setSesFechaSesion(nuevAsisDocente.getN_fsesion());
      sesAsis.setSesFechaRegistro(nuevAsisDocente.getN_fsesion());
      sesAsis.setSesFechaInicio(
          Timestamp.valueOf(formatTimeStamp.format(nuevAsisDocente.getN_fsesion_ini())));
      sesAsis.setSesFechaFin(
          Timestamp.valueOf(formatTimeStamp.format(nuevAsisDocente.getN_fsesion_fin())));
      sesAsis.setSesActivo("1");
      sesAsis.setSesTimeTolerancia(20);
      sesAsis.setSesTimeAntes(20);
      sesAsis.setSesTimeTope(30);
      sesAsis.setAulId(0);
      sesAsis.setSesEstado("044001");
      sesAsis.setSesFechaSalida(10);
      sesAsis.setDocId(nuevAsisDocente.getN_doc_id());
      sesAsis.setDocIdBk(nuevAsisDocente.getN_doc_id());
      sesAsis.setSesTipo(nuevAsisDocente.getN_tipses_code());
      sesAsis.setSesTipoAsistencia(ConstantesWeb.COD_SES_ASIST_CL);
      sesAsis.setSesObservacion("");
      sesAsis.setSesEstadoDocTipo("046001");

      asisDocDAO.ingresarSesionAsistencia(sesAsis);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }