public void actualizarSesion(ActionEvent event) {
    int s_cambio;
    int s_ses_id;
    int s_doc_ant;
    String tipo;
    HSAsistenciaDocenteDAO asistDocDAO;
    Object obj_inicio;
    Object obj_fin;

    s_ses_id = CommonWeb.parseObjToInt(CommonWeb.getParamFromUIParameterUI(event, "p_ses_id"));
    s_cambio = CommonWeb.parseObjToInt(CommonWeb.getParamFromUIParameterUI(event, "p_cambio"));
    s_doc_ant = CommonWeb.parseObjToInt(CommonWeb.getParamFromUIParameterUI(event, "p_doc_ant"));
    obj_inicio = ((UIParameter) event.getComponent().findComponent("p_inicio")).getValue();
    obj_fin = ((UIParameter) event.getComponent().findComponent("p_fin")).getValue();

    Date s_inicio = (Date) obj_inicio;
    Date s_fin = (Date) obj_fin;
    try {
      asistDocDAO = CommonDAO.getAsistenciaDocenteDAO();

      tipo = s_cambio != s_doc_ant ? "047002" : "047001";

      asistDocDAO.actualizarSesionDocente(s_ses_id, s_cambio, s_inicio, s_fin, tipo);

      this.mostrarSessionAsistencia(event);

      this.setOncomplete(
          "javascript:alert('SE ACTUALIZO CORRECTAMENTE LA SESSION');"
              + "Richfaces.hideModalPanel('mpSessionAsis')");
    } catch (Exception e) {
      e.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')";
  }
  public void guardarMarcaAsistencia(ActionEvent event) {
    int p_ses_id;
    int s_doc_aux_id;
    int p_sesefec_id;
    AcSesionEfectivaAsisDoc acSesEfec;
    Date dateRegistro;
    Date dateSalida;
    HSAsistenciaDocenteDAO asisDocDAO;
    SimpleDateFormat formatTimeStamp;
    Timestamp tfRegistro;
    Timestamp tfSalida;

    s_doc_aux_id = CommonWeb.parseObjToInt(CommonWeb.getParamFromUIParameterUI(event, "p_doc_id"));
    p_ses_id = CommonWeb.parseObjToInt(CommonWeb.getParamFromUIParameterUI(event, "p_ses_id"));
    p_sesefec_id =
        CommonWeb.parseObjToInt(CommonWeb.getParamFromUIParameterUI(event, "p_sesefec_id"));
    formatTimeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    try {
      if (asisDocente.getEstasis_code().equals("0")) {
        oncomplete = "javascript:alert('SELECCIONE UN TIPO DE ASISTENCIA');";
      } else if (asisDocente.getReg_hora() == 0 && this.getAsisDocente().getReg_min() == 0) {
        oncomplete = "javascript:alert('INGRESE LA HORA DE INGRESO');";
      } else {

        dateRegistro = new Date(asisDocente.getSesefeasisdoc_fecha().getTime());
        dateRegistro.setHours(asisDocente.getReg_hora());
        dateRegistro.setMinutes(asisDocente.getReg_min());

        dateSalida = new Date(asisDocente.getSesefeasisdoc_fecha().getTime());
        dateSalida.setHours(asisDocente.getSal_hora());
        dateSalida.setMinutes(asisDocente.getSal_min());

        asisDocDAO = CommonDAO.getAsistenciaDocenteDAO();

        acSesEfec = new AcSesionEfectivaAsisDoc();

        if (p_sesefec_id != 0) {
          acSesEfec.setSesefeasisdocId(p_sesefec_id);
        }
        tfRegistro = Timestamp.valueOf(formatTimeStamp.format(dateRegistro));
        acSesEfec.setSesefeasisdocRegistro(tfRegistro);

        tfSalida = null;
        if (asisDocente.getSal_hora() == 0 && asisDocente.getSal_min() == 0) {
          acSesEfec.setSesefeasisdocSalida(tfSalida);
        } else {
          tfSalida = Timestamp.valueOf(formatTimeStamp.format(dateSalida));
          acSesEfec.setSesefeasisdocSalida(tfSalida);
        }
        acSesEfec.setSesefeasisdocObs(asisDocente.getSesefeasisdoc_obs());
        acSesEfec.setSesefeasisdocActivo("1");
        acSesEfec.setSesefeasisdocTole(0);
        acSesEfec.setSesefeasisdocTipo(asisDocente.getEstasis_code());
        acSesEfec.setAcSesionAsistencia(asisDocDAO.listarSessionAsistencia_x_sesid(p_ses_id));
        acSesEfec.setAcDocente(new AcDocente(s_doc_aux_id));

        asisDocDAO.ingresarAsisteanDocente(acSesEfec);
        this.mostrarSessionAsistencia(event);
        this.setOncomplete(
            "javascript:alert('REGISTRO COMPLETO');" + "Richfaces.hideModalPanel('mpAsisDocente')");
      }
    } 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();
    }
  }