@Override
 public Response deleteRecords(ArrayList persistentObjects) throws Exception {
   Session s = null;
   try {
     boolean allOk = true;
     s = HibernateUtil.getSessionFactory().openSession();
     Transaction t = s.beginTransaction();
     for (Object o : persistentObjects) {
       s.delete(o);
     }
     try {
       t.commit();
     } catch (Exception ex) {
       LoggerUtil.error(this.getClass(), "deleteRecords", ex);
       t.rollback();
       allOk = false;
     }
     if (allOk) {
       return new VOResponse(true);
     } else {
       return new ErrorResponse("delete.constraint.violation");
     }
   } finally {
     s.close();
   }
 }
 @Override
 public Response updateRecords(
     int[] rowNumbers, ArrayList oldPersistentObjects, ArrayList persistentObjects)
     throws Exception {
   Response r = super.updateRecords(rowNumbers, oldPersistentObjects, persistentObjects);
   for (Object e : persistentObjects) {
     DireccionPersona d = (DireccionPersona) e;
     if (d.getTipoDireccion().getNombre().toLowerCase().contains("fiscal")) {
       Session s = null;
       try {
         s = HibernateUtil.getSessionFactory().openSession();
         Transaction tr = s.beginTransaction();
         Persona p = (Persona) beanVO;
         p.setDireccionFiscal(d);
         s.update(beanVO);
         tr.commit();
       } catch (Exception ex) {
         ex.printStackTrace();
       } finally {
         s.close();
       }
       break;
     }
   }
   return r;
 }
 @Override
 public Response insertRecords(int[] rowNumbers, ArrayList newValueObjects) throws Exception {
   Session s = null;
   if (getSet() != null) {
     ValueObject o = (ValueObject) newValueObjects.get(0);
     try {
       s = HibernateUtil.getSessionFactory().openSession();
       Transaction t = s.beginTransaction();
       AuditoriaBasica ab = new AuditoriaBasica(new Date(), General.usuario.getUserName(), true);
       if (o instanceof Auditable) {
         ((Auditable) o).setAuditoria(ab);
       }
       // getSet().add(o);
       ((Diagnostico) o).setEspecialidad((Especialidad) super.beanVO);
       // s.update(super.beanVO);
       s.save(o);
       selectedCell(0, 0, null, o);
       t.commit();
       return new VOListResponse(newValueObjects, false, newValueObjects.size());
     } catch (Exception ex) {
       getSet().remove(o);
       return new ErrorResponse(
           LoggerUtil.isInvalidStateException(this.getClass(), "insertRecords", ex));
     } finally {
       s.close();
     }
   } else {
     return new ErrorResponse("Primero tienes que guardar el Registro Principal");
   }
 }
  private void delete() {
    Session s = null;

    try {
      s = HibernateUtil.getSessionFactory().openSession();

      Transaction t = s.beginTransaction();

      s.createQuery("UPDATE " + Usuario.class.getName() + " SET rol = NULL").executeUpdate();

      System.out.println("----Roles desligados---");

      System.out.println(s.createQuery("DELETE FROM " + Rol.class.getName()).executeUpdate());
      System.out.println("----Roles Eliminados---");

      System.out.println(s.createQuery("DELETE FROM " + MenuByRol.class.getName()).executeUpdate());
      System.out.println("----MenuByRols Eliminados---");

      List<Item> lista = (List<Item>) s.createQuery("FROM " + Item.class.getName()).list();
      borrarItems(s, lista);

      t.commit();
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      s.close();
    }
  }
  private void open() throws Exception {
    try {
      s = HibernateUtil.getSessionFactory().openSession();
      t = s.beginTransaction();

    } catch (Exception e) {
      throw e;
    }
  }
 @Override
 public Response loadData(Class valueObjectClass) {
   Session s = HibernateUtil.getSessionFactory().openSession();
   Siniestro sin = (Siniestro) s.get(Siniestro.class, ((Siniestro) beanVO).getId());
   Hibernate.initialize(sin.getDetalleSiniestro());
   Hibernate.initialize(sin.getObservaciones());
   Hibernate.initialize(sin.getDocumentos());
   Hibernate.initialize(sin.getNotasTecnicas());
   s.close();
   beanVO = sin;
   return new VOResponse(beanVO);
 }
  @Override
  public Response loadData(
      int action,
      int startIndex,
      Map filteredColumns,
      ArrayList currentSortedColumns,
      ArrayList currentSortedVersusColumns,
      Class valueObjectType,
      Map otherGridParams) {
    Session s = null;
    try {

      String sql =
          "FROM "
              + claseModeloFullPath
              + " C WHERE C.personaPago.id=? "
              + "AND C.etapaSiniestro.idPropio=?";

      ArrayList<Object> al = new ArrayList<Object>(0);
      ArrayList<Type> ty = new ArrayList<Type>(0);
      al.add(personaPago.getId());
      ty.add(new LongType());
      al.add("LIQ");
      ty.add(new StringType());
      if (ordenDePago.getTipoDetalleSiniestro().equals(TipoDetalleSiniestro.Todos)) {
        sql += " AND C.tipoDetalle <> ? ";
        al.add(TipoDetalleSiniestro.Reembolso.toString());
        ty.add(new StringType());
      }
      SessionFactory sf = HibernateUtil.getSessionFactory();
      s = sf.openSession();
      Response res =
          HibernateUtils.getAllFromQuery(
              filteredColumns,
              currentSortedColumns,
              currentSortedVersusColumns,
              valueObjectType,
              sql,
              al.toArray(),
              ty.toArray(new Type[0]),
              "C",
              sf,
              s);
      return res;
    } catch (Exception ex) {
      LoggerUtil.error(this.getClass(), "loadData", ex);
      return new ErrorResponse(ex.getMessage());
    } finally {
      s.close();
    }
  }
  @Override
  public void actionPerformed(ActionEvent e) {
    VOListTableModel model =
        ((VOListTableModel) gridFrame.getGridControl().getTable().getGrid().getModel());

    if (e.getSource() instanceof CheckBoxControl) {
      for (int i = 0; i < model.getRowCount(); i++) {
        model.setField(i, "selected", ((CheckBoxControl) e.getSource()).isSelected());
      }
      gridFrame.getGridControl().repaint();
    } else {
      Session s = null;
      try {
        s = HibernateUtil.getSessionFactory().openSession();
        s.beginTransaction();
        EtapaSiniestro es =
            (EtapaSiniestro)
                s.createQuery("FROM " + EtapaSiniestro.class.getName() + " C WHERE " + "idPropio=?")
                    .setString(0, "ORD_PAG")
                    .uniqueResult();
        OrdenDePago p = (OrdenDePago) s.get(OrdenDePago.class, ordenDePago.getId());

        List lista = model.getChangedRows();
        if (lista == null || lista.isEmpty()) {
          lista = getSubList(model.getDataVector());
        }
        s.createQuery(
                "UPDATE "
                    + DetalleSiniestro.class.getName()
                    + " D SET D.etapaSiniestro=:es, D.ordenDePago=:ord WHERE D in(:ds)")
            .setEntity("es", es)
            .setEntity("ord", p)
            .setParameterList("ds", lista)
            .executeUpdate();

        s.getTransaction().commit();
        gridFrame.dispose();

      } catch (Exception ex) {
        LoggerUtil.error(this.getClass(), "actionPerformed", ex);
      } finally {
        s.close();
        controller.getVista().getMainPanel().getReloadButton().doClick();
      }
    }
  }
 public Response loadData(
     int action,
     int startIndex,
     Map filteredColumns,
     ArrayList currentSortedColumns,
     ArrayList currentSortedVersusColumns,
     Class valueObjectType,
     Map otherGridParams) {
   Session s = HibernateUtil.getSessionFactory().openSession();
   List al;
   if (beanVO != null) {
     al =
         s.createQuery(
                 "FROM " + Diagnostico.class.getName() + " WHERE especialidad.id=:especialidadId")
             .setLong("especialidadId", ((Especialidad) beanVO).getId())
             .list();
   } else {
     al = new ArrayList<Diagnostico>(0);
   }
   return new VOListResponse(al, false, al.size());
 }
  @Override
  public Response loadData(
      int action,
      int startIndex,
      Map filteredColumns,
      ArrayList currentSortedColumns,
      ArrayList currentSortedVersusColumns,
      Class valueObjectType,
      Map otherGridParams) {
    Session s = null;
    try {
      String select =
          gridFrame
              .getGridControl()
              .getVOListTableModel()
              .createSelect("C", AliasedTupleSRT.SEPARATOR);
      select =
          select.replaceFirst("SELECT", "SELECT DISTINCT")
              + ", C.rif.tipoCedula as rif_tipoCedula ";

      String sql = select + " FROM " + claseModeloFullPath + " C LEFT JOIN C.tiposPersona T ";

      List<TipoPersona> tiposPersonasFiltradas =
          ((Personas2GridFrame) gridFrame).getTiposPersonaFiltro();
      if (tiposPersonasFiltradas != null && tiposPersonasFiltradas.size() != 0) {
        sql += "WHERE T.id IN ( ";
        sql += tiposPersonasFiltradas.get(0).getId();
        for (int i = 1; i < tiposPersonasFiltradas.size(); i++) {
          TipoPersona tipo = tiposPersonasFiltradas.get(i);
          sql += ", " + tipo.getId();
        }
        sql += " )";
      }
      this.sql1 = sql;
      this.filteredColumns = filteredColumns;
      SessionFactory sf = HibernateUtil.getSessionFactory();
      s = sf.openSession();
      Response res =
          HibernateUtils.getBlockFromQuery(
              new AliasedTupleSRT(Persona.class),
              action,
              startIndex,
              General.licencia.getBlockSize(),
              filteredColumns,
              currentSortedColumns,
              currentSortedVersusColumns,
              valueObjectType,
              sql,
              new Object[0],
              new Type[0],
              "C",
              sf,
              s);
      //            Response res = HibernateUtils.getAllFromQuery(
      //                    filteredColumns,
      //                    currentSortedColumns,
      //                    currentSortedVersusColumns,
      //                    valueObjectType,
      //                    sql,
      //                    new Object[0],
      //                    new Type[0],
      //                    "C",
      //                    sf,
      //                    s);
      return res;

      //            SessionFactory sf = HibernateUtil.getSessionFactory();
      //            Session s = sf.openSession();
      //            Criteria c = s.createCriteria(Persona.class);
      //            Criteria artistCriteria = c.createCriteria("tiposPersona");
      //            artistCriteria.add(Restrictions.like("idPropio", "%CON%"));
      //            Response res = HibernateUtils.getAllFromCriteria(filteredColumns,
      // currentSortedColumns, currentSortedVersusColumns, c, s);
      //            s.close();
      //            return res;
      //            SessionFactory sf = HibernateUtil.getSessionFactory();
      //            Session s = sf.openSession();
      //            Criteria c = s.createCriteria(Persona.class);
      //            Criteria artistCriteria = c.createCriteria("tiposPersona");
      //            artistCriteria.add(Expression.like("idPropio", "%CON%"));
      //            List l = c.list();
      //            s.close();
      //            return new VOListResponse(l, false, l.size());
    } catch (Exception ex) {
      LoggerUtil.error(this.getClass(), "loadData", ex);
      return new ErrorResponse(ex.getMessage());
    } finally {
      s.close();
    }
  }
  @Override
  public void actionPerformed(ActionEvent e) {
    if (e.getSource() instanceof InsertButton) {
      // <editor-fold defaultstate="collapsed" desc="Crear nuevo">
      if (beanVO != null) {
        if (((Siniestro) beanVO)
            .getCertificado()
            .getPoliza()
            .getVigenciaHasta()
            .before(new Date())) {
          JOptionPane.showMessageDialog(
              gridControl,
              ClientSettings.getInstance()
                  .getResources()
                  .getResource(
                      "No se Permite Realizar el Siniestro a Este Asegurado\n"
                          + "La Poliza no esta Vigente"),
              General.edition,
              JOptionPane.INFORMATION_MESSAGE);
          return;
        }
        if (!((Siniestro) beanVO).getAsegurado().getAuditoria().getActivo()) {
          JOptionPane.showMessageDialog(
              gridControl,
              ClientSettings.getInstance()
                  .getResources()
                  .getResource(
                      "No se Permite Realizar el Siniestro a Este Asegurado\n"
                          + "El Asegurado no está Activo"),
              General.edition,
              JOptionPane.INFORMATION_MESSAGE);
          return;
        }
        if (!((Siniestro) beanVO).getCertificado().getAuditoria().getActivo()) {
          JOptionPane.showMessageDialog(
              gridControl,
              ClientSettings.getInstance()
                  .getResources()
                  .getResource(
                      "No se Permite Realizar el Siniestro a Este Asegurado\n"
                          + "El Certificado no está Activo"),
              General.edition,
              JOptionPane.INFORMATION_MESSAGE);
          return;
        }
        if (!((Siniestro) beanVO).getCertificado().getPoliza().getAuditoria().getActivo()) {
          JOptionPane.showMessageDialog(
              gridControl,
              ClientSettings.getInstance()
                  .getResources()
                  .getResource(
                      "No se Permite Realizar el Siniestro a Este Asegurado\n"
                          + "El Poliza no está Activo"),
              General.edition,
              JOptionPane.INFORMATION_MESSAGE);
          return;
        }

        if (!((Siniestro) beanVO).getCertificado().getTitular().getAuditoria().getActivo()) {
          JOptionPane.showMessageDialog(
              gridControl,
              ClientSettings.getInstance()
                  .getResources()
                  .getResource(
                      "No se Permite Realizar el Siniestro a Este Asegurado\n"
                          + "El Titular del certificado no está Activo"),
              General.edition,
              JOptionPane.INFORMATION_MESSAGE);
          return;
        }

        Class c = DetalleSiniestroChousser.showDialog();
        if (c != null && c.getClass() != null) {
          if (c.equals(Vida.class)) {
            new DetalleVidaNuevoDetrailController(
                DetalleVidaNuevoDetailFrame.class.getName(),
                ((SiniestroDetailFrame) vista).getGridData(),
                null,
                (Siniestro) beanVO,
                false);
          } else {
            new DetalleSiniestroDetailFrameController(
                DetalleSiniestroDetailFrame.class.getName(),
                ((SiniestroDetailFrame) vista).getGridData(),
                null,
                true,
                (Siniestro) beanVO,
                c);
          }
        }
      }
      // </editor-fold>
    } else if (e.getSource() == ((SiniestroDetailFrame) vista).getEstadoButton()) {
      // <editor-fold defaultstate="collapsed" desc="Cambiar Estado">
      if (vista.getMainPanel().getMode() == Consts.READONLY) {
        Siniestro ss = ((Siniestro) beanVO);
        switch (((Siniestro) beanVO).getEstadoSiniestro()) {
          case ABIERTO:
            int op =
                JOptionPane.showConfirmDialog(
                    MDIFrame.getInstance(),
                    "Si Cierra el siniestro necesitara privilegios de Super usuario para poder abrirlo nuevamente. Desea Cerralo?",
                    "Cerrar Sinietro",
                    JOptionPane.YES_NO_OPTION,
                    JOptionPane.INFORMATION_MESSAGE);
            if (op == JOptionPane.YES_OPTION) {
              ss.setEstadoSiniestro(Dominios.EstadoSiniestro.CERRADO);
              ((SiniestroDetailFrame) vista).validarEstadoSiniestro(ss.getEstadoSiniestro());
            }
            break;
          case CERRADO:
            if (SuperusuarioLoginDialog.VerificarSuperusuario()) {
              ss.setEstadoSiniestro(Dominios.EstadoSiniestro.ABIERTO);
              ((SiniestroDetailFrame) vista).validarEstadoSiniestro(ss.getEstadoSiniestro());
            } else {
              return;
            }
            break;
        }

        Session s = null;
        try {
          s = HibernateUtil.getSessionFactory().openSession();
          Transaction t = s.beginTransaction();
          s.update(ss);
          t.commit();
        } catch (Exception ex) {
          ex.printStackTrace();
        } finally {
          s.close();
        }
        ((SiniestroDetailFrame) vista).validarEstado(ss);
      } else {
        JOptionPane.showMessageDialog(vista, "Debes guardar primero el Registro");
      }
      // </editor-fold>
    }
  }