@Override
 public Response logicaNegocio(ValueObject persistentObject) {
   Siniestro siniestro = (Siniestro) persistentObject;
   if (ReportesUtil.diferenciaEnDias(new Date(), siniestro.getFechaCreacion()) < 0) {
     if (!SuperusuarioLoginDialog.VerificarSuperusuario()) {
       return new ErrorResponse("Usuario no Verificado");
     }
   }
   return new VOResponse(persistentObject);
 }
  @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>
    }
  }