示例#1
0
  public static String generateFilter(String field, String[] values) {

    /*
     * 	Ejemplo:
     *
     *  (SPAC_EXPEDIENTES.NUMEXP='EXP2011/000002' OR SPAC_EXPEDIENTES.NUMEXP='EXP2011/000005' OR
     *  SPAC_EXPEDIENTES.NUMEXP='EXP2011/000001' OR SPAC_EXPEDIENTES.NUMEXP='EXP2011/000003' OR
     *  SPAC_EXPEDIENTES.NUMEXP='EXP2011/000006' OR SPAC_EXPEDIENTES.NUMEXP='EXP2011/000004')
     */

    StringBuffer filter = new StringBuffer();

    if (!ArrayUtils.isEmpty(values)) {

      filter.append("(");

      filter.append(field).append("='").append(DBUtil.replaceQuotes(values[0])).append("'");
      for (int i = 1; i < values.length; i++) {
        filter
            .append(" OR ")
            .append(field)
            .append("='")
            .append(DBUtil.replaceQuotes(values[i]))
            .append("'");
      }

      filter.append(")");
    }

    return filter.toString();
  }
示例#2
0
  public void deletePermission(int typeObject, int idObject, String resp, int typePermission)
      throws ISPACException {
    StringBuffer sqlWhere = new StringBuffer();
    CollectionDAO objlist = null;
    sqlWhere.append(" WHERE PERMISO= ").append(typePermission);

    switch (typePermission) {
      case ISecurityAPI.PERMISSION_INIT_EXP_PCD:
      case ISecurityAPI.PERMISSION_DELETE_EXP_PCD:
        sqlWhere
            .append(" AND ID_PCD = ")
            .append(idObject)
            .append(" AND UID_USR = '******' ");
        objlist = new CollectionDAO(PermissionsDAO.class);
        objlist.delete(mDbCnt, sqlWhere.toString());
        break;
      default:
        sqlWhere
            .append(" AND TP_OBJ = ")
            .append(typeObject)
            .append(" AND ID_OBJ = ")
            .append(idObject)
            .append(" AND ID_RESP = '")
            .append(DBUtil.replaceQuotes(resp))
            .append("' ");
        objlist = new CollectionDAO(PermissionDAO.class);
        objlist.delete(mDbCnt, sqlWhere.toString());
    }
  }
示例#3
0
  /**
   * Obtener el contenido del documento que tenga asignado el CSV recibido.
   *
   * @param context Contexto de tramitación.
   * @param csv CSV del documento
   * @return Contenido del documento.
   * @throws ISPACException Si se produce algún error.
   */
  public static byte[] getContenidoDocumento(IClientContext context, String csv)
      throws ISPACException {

    // Contenido del documento
    byte[] content = null;

    // Consulta
    String sqlQuery = "WHERE COD_COTEJO = '" + DBUtil.replaceQuotes(csv) + "'";
    IItemCollection documents =
        context.getAPI().getEntitiesAPI().queryEntities(SpacEntities.SPAC_DT_DOCUMENTOS, sqlQuery);
    if (documents.next()) {

      IItem document = documents.value();

      // Obtener el identificador del documento en el repositorio
      String guid = document.getString("INFOPAG_RDE");
      if (StringUtils.isBlank(guid)) {
        guid = document.getString("INFOPAG");
      }

      // Obtener el contenido del documento
      content =
          ieci.tdw.ispac.services.helpers.DocumentsHelper.getContenidoDocumento(context, guid);
    }

    return content;
  }
示例#4
0
  /**
   * Valida la información del formulario.
   *
   * @throws ISPACException si ocurre algún error.
   */
  public boolean validate() throws ISPACException {

    boolean ret = super.validate();

    if (ret) {

      IInvesflowAPI invesFlowAPI = mContext.getAPI();
      ICatalogAPI catalogAPI = invesFlowAPI.getCatalogAPI();

      // Bloqueo de la tabla
      catalogAPI.setCTEntitiesForUpdate(ICatalogAPI.ENTITY_CT_STAGE, "");

      // Nombre único de fase
      String nombre = getString("NOMBRE");
      IItemCollection itemcol =
          catalogAPI.queryCTEntities(
              ICatalogAPI.ENTITY_CT_STAGE,
              " WHERE NOMBRE = '"
                  + DBUtil.replaceQuotes(nombre)
                  + "' AND ID != "
                  + getString("ID"));
      if (itemcol.next()) {

        addError(
            new ValidationError(
                "property(NOMBRE)", "error.stage.nameDuplicated", new String[] {nombre}));
        return false;
      }

      return true;
    } else {
      return false;
    }
  }
示例#5
0
 public IItemCollection getSubstitutesHistorics(String sustitutoUID) throws ISPACException {
   CollectionDAO collDAO =
       SustitucionDAO.getSustitutosHistorics(
           mDbCnt,
           sustitutoUID,
           DBUtil.getToDateByBD(mDbCnt, new Date(System.currentTimeMillis())));
   return collDAO.disconnect();
 }
示例#6
0
  public static String addInResponsibleOrExistPermissionCondition(String resp)
      throws ISPACException {
    String sql = " ";

    // Obtener la condición SQL de responsabilidad y de permisos
    // siempre que la responsabilidad no sea de Supervisor
    if (StringUtils.isNotBlank(resp) && !Responsible.SUPERVISOR.equalsIgnoreCase(resp)) {

      String sqlResponsibles = DBUtil.addInResponsibleCondition("ID_RESP", resp);

      // Añadir la responsabilidad y consultar los permisos asignados
      sql =
          getSqlInResponsibleOrExistPermissionCondition(
              sqlResponsibles, DBUtil.addInResponsibleCondition("SPC_PERMS.ID_RESP", resp));
    }

    return sql;
  }
示例#7
0
  public static int countProcess(DbCnt cnt, String numexp, String query) throws ISPACException {
    String sql = "WHERE ";
    if (StringUtils.isNotBlank(numexp)) {
      sql += " NUMEXP = '" + DBUtil.replaceQuotes(numexp) + "'";
    }
    if (sql != null && sql.length() > 0) sql += query;

    CollectionDAO objlist = new CollectionDAO(TXProcesoDAO.class);
    return objlist.count(cnt, sql);
  }
示例#8
0
  private static IItemCollection getProcess(DbCnt cnt, String numexp, ClientContext ctx, int type)
      throws ISPACException {
    Object[] argsarr = new Object[1];
    argsarr[0] = ctx;

    String sql = "WHERE NUMEXP = '" + DBUtil.replaceQuotes(numexp) + "' AND TIPO = " + type;

    CollectionDAO objlist = new CollectionDAO(TXProcesoDAO.class, argsarr);
    objlist.query(cnt, sql);

    return objlist.disconnect();
  }
示例#9
0
  public static CollectionDAO getOutdatedProcess(DbCnt cnt) throws ISPACException {
    String sql =
        new StringBuffer("WHERE ESTADO=")
            .append(IProcess.OPEN)
            .append(" AND FECHA_LIMITE <= ")
            .append(DBUtil.getToDateByBD(cnt, new Date()))
            .append(" ORDER BY ID ASC ")
            .toString();

    CollectionDAO objlist = new CollectionDAO(TXProcesoDAO.class);
    objlist.query(cnt, sql);
    return objlist;
  }
示例#10
0
  /**
   * Comprobar si existe un documento que tenga asignado el CSV recibido.
   *
   * @param context Contexto de tramitación.
   * @param csv CSV del documento
   * @return Cierto si existe un documento con el CSV asignado en su Código de Cotejo, en caso
   *     contrario, retorna falso.
   * @throws ISPACException Si se produce algún error.
   */
  public static boolean existeDocumento(IClientContext context, String csv) throws ISPACException {

    boolean existe = false;

    // Consulta
    String sqlQuery = "WHERE COD_COTEJO = '" + DBUtil.replaceQuotes(csv) + "'";
    int count =
        context.getAPI().getEntitiesAPI().countEntities(SpacEntities.SPAC_DT_DOCUMENTOS, sqlQuery);
    if (count > 0) {
      existe = true;
    }

    return existe;
  }
示例#11
0
  public static IItemCollection getExpedients(
      DbCnt cnt,
      String query,
      int limit,
      String fechaInicio,
      String fechaEliminacion,
      int idProcedimiento)
      throws ISPACException {

    TableJoinFactoryDAO factory = new TableJoinFactoryDAO();

    factory.addTable(TABLENAME, "PROCESOS");
    factory.addTable("SPAC_P_PROCEDIMIENTOS", "PPROCEDIMIENTOS");

    String sql = " WHERE PPROCEDIMIENTOS.ID = PROCESOS.ID_PCD" + " AND " + query;

    // Fecha de inicio
    if (StringUtils.isNotBlank(fechaInicio)) {

      sql += " AND PROCESOS.FECHA_INICIO >= " + DBUtil.getToTimestampByBD(cnt, fechaInicio);
    }

    // Fecha de eliminacion
    if (StringUtils.isNotBlank(fechaEliminacion)) {
      sql +=
          " AND  PROCESOS.FECHA_ELIMINACION <=  "
              + DBUtil.getToTimestampByBD(cnt, fechaEliminacion);
    }

    if (idProcedimiento != -1) {
      sql += " AND PROCESOS.ID_PCD=" + idProcedimiento;
    }

    sql += " ORDER BY PPROCEDIMIENTOS.NOMBRE";

    return factory.queryTableJoin(cnt, sql, limit).disconnect();
  }
示例#12
0
  /**
   * Devuelve cierto si el usuario tiene el permiso
   *
   * @param respList cadena de responsabilidad
   * @param type Tipo de permiso a comprobar 0-->Eliminar expediente (enviar a la papelera)
   *     1->Iniciar expediente
   * @param idpcd Identificador del procedimiento para el que se va a comprobar el permiso
   * @return Cierto si el usuario tiene el permiso, falso en caso contrario
   * @throws ISPACException
   */
  public boolean isPermission(String respList, int type, int idpcd) throws ISPACException {

    if (!respList.equals(Responsible.SUPERVISOR)) {
      String sql =
          "WHERE ID_PCD = "
              + idpcd
              + DBUtil.addAndInResponsibleCondition("UID_USR", respList)
              + " AND PERMISO="
              + type;

      CollectionDAO objlist = new CollectionDAO(PermissionsDAO.class);
      return objlist.exist(mDbCnt, sql);
    }
    return false;
  }
示例#13
0
  /**
   * Elimina todos los permisos de un responsable para un idObject en particular.
   *
   * @param typeObject
   * @param idObject
   * @param resp
   * @throws ISPACException
   */
  public void deletePermission(int typeObject, int idObject, String resp) throws ISPACException {
    StringBuffer sqlWhere = new StringBuffer();

    sqlWhere
        .append(" WHERE  ")
        .append(" TP_OBJ = ")
        .append(typeObject)
        .append(" AND ID_OBJ = ")
        .append(idObject)
        .append(" AND ID_RESP = '")
        .append(DBUtil.replaceQuotes(resp))
        .append("' ");

    CollectionDAO objlist = new CollectionDAO(PermissionDAO.class);
    objlist.delete(mDbCnt, sqlWhere.toString());
  }
示例#14
0
  public CollectionDAO getSubprocess(DbCnt cnt, String numexp) throws ISPACException {
    try {

      String sql =
          "WHERE NUMEXP = '"
              + DBUtil.replaceQuotes(numexp)
              + "' AND TIPO="
              + IProcess.SUBPROCESS_TYPE;
      ;
      CollectionDAO objlist = new CollectionDAO(TXProcesoDAO.class);
      objlist.query(cnt, sql);
      return objlist;
    } catch (ISPACException e) {
      throw new ISPACException("Error en TXProcesoDAO:getSubprocess()", e);
    }
  }
示例#15
0
  public List validate(String name, SessionAPI session) throws ISPACException {

    ArrayList mErrorList = new ArrayList();

    ValidationError error = null;

    if (StringUtils.isBlank(name)) {

      error =
          new ValidationError(
              "property(NEW_CALENDAR_NAME)",
              "errors.required",
              new String[] {
                Messages.getString(
                    session.getClientContext().getAppLanguage(), "form.calendar.propertyLabel.name")
              });
      mErrorList.add(error);
    } else {
      IInvesflowAPI invesFlowAPI = session.getAPI();
      ICatalogAPI catalogAPI = invesFlowAPI.getCatalogAPI();

      // Bloqueo
      IItemCollection itemcol = catalogAPI.queryCTEntities(ICatalogAPI.ENTITY_SPAC_CALENDARIOS, "");
      // Nombre único de calendario

      itemcol =
          (IItemCollection)
              catalogAPI.queryCTEntities(
                  ICatalogAPI.ENTITY_SPAC_CALENDARIOS,
                  " WHERE NOMBRE = '" + DBUtil.replaceQuotes(name) + "'");
      if (itemcol.next()) {

        error =
            new ValidationError(
                "property(NEW_CALENDAR_NAME)",
                "error.calendar.nameDuplicated",
                new String[] {name});
        mErrorList.add(error);
      }
    }
    return mErrorList;
  }
示例#16
0
  /* (non-Javadoc)
   * @see ieci.tdw.ispac.api.IWorklistAPI#getCreateProcedures()
   */
  public IItemCollection getCreateProcedures() throws ISPACException {
    // Si es supervisor podra crear todos, sino le corresponderan los suyos y y los que pueden crear
    // los que sustituye
    String resp = null;

    DbCnt cnt = context.getConnection();
    try {
      Responsible user = context.getUser();
      SecurityMgr securityMgr = new SecurityMgr(cnt);
      // Comprobar si el usuario tiene asignada la función de Supervisor Total
      if (securityMgr.isSupervisorTotal(user.getUID())) {
        resp = Responsible.SUPERVISOR;
      } else {
        // los que sustituye
        resp = getSubstitutesRespString();
      }

      CollectionDAO pcdset = new CollectionDAO(PProcedimientoDAO.class);

      /* Procedimientos en vigor */
      String sqlquery =
          "WHERE ESTADO="
              + IProcedure.PCD_STATE_CURRENT
              + " AND TIPO="
              + IProcedure.PROCEDURE_TYPE
              + " AND ID IN"
              + " (SELECT ID_PCD FROM SPAC_SS_PERMISOS WHERE  PERMISO="
              + ISecurityAPI.ISPAC_RIGHTS_CREATEEXP
              + DBUtil.addAndInResponsibleCondition("UID_USR", resp)
              + ") ORDER BY NOMBRE";

      pcdset.query(cnt, sqlquery);

      return pcdset.disconnect();
    } catch (ISPACException ie) {
      throw new ISPACException("Error en WLWorklist:getProcs()", ie);
    } finally {
      context.releaseConnection(cnt);
    }
  }
示例#17
0
  public boolean isInResponsibleList(String sUID, int supervisionType, IItem item)
      throws ISPACException {

    DbCnt cnt = context.getConnection();
    List listSupervisados = new ArrayList();
    List listSustituidos = new ArrayList();
    int i = 0;

    try {
      // Comprobar el UID en la cadena de responsabilidad directa del usuario
      Responsible user = context.getUser();
      if (user.isInResponsibleList(sUID)) {
        return true;
      }

      if (mWorkMode == IWorklistAPI.SUPERVISOR) {

        SecurityMgr securityMgr = new SecurityMgr(cnt);

        // Comprobar si el usuario es Supervisor en Modo Modificación
        if (securityMgr.isFunction(user.getUID(), ISecurityAPI.FUNC_TOTALSUPERVISOR)) {
          return true;
        }

        // Comprobar si el usuario es Supervisor en Modo Consulta, si aplica
        if ((supervisionType != ISecurityAPI.SUPERV_TOTALMODE)
            && securityMgr.isFunction(user.getUID(), ISecurityAPI.FUNC_MONITORINGSUPERVISOR)) {
          return true;
        }

        // Comprobar las responsabilidades referentes a las supervisiones
        IItemCollection collection = null;
        if (supervisionType == ISecurityAPI.SUPERV_TOTALMODE) {
          collection = securityMgr.getAllSuperviseds(user, ISecurityAPI.SUPERV_TOTALMODE);
        } else {
          collection = securityMgr.getAllSuperviseds(user);
        }

        while (collection.next()) {
          IItem supervisor = (IItem) collection.value();
          listSupervisados = getRespListFromEntryUID(supervisor.getString("UID_SUPERVISADO"));
          if (listSupervisados.contains(sUID)) {
            return true;
          }
        }

        // Comprobar las responsabilidades referentes a las sustituciones
        collection = securityMgr.getAllSubstitutes(user);
        while (collection.next()) {

          IItem substitute = (IItem) collection.value();
          listSustituidos = getRespListFromEntryUID(substitute.getString("UID_SUSTITUIDO"));
          if (listSustituidos.contains(sUID)) return true;
        }

        // Comprobar si tenemos permisos a nivel de catálogo
        if (item != null) {
          if (logger.isDebugEnabled()) {
            logger.debug(
                "El responsable "
                    + sUID
                    + "No tiene permisos genéricos, "
                    + "vamos a comprobar si tiene permisos a nivel"
                    + "de catálogo (permisos sobre un procedimiento)");
          }
          ISecurityAPI securityAPI = context.getAPI().getSecurityAPI();
          int[] permisos = new int[1];
          permisos[0] = ISecurityAPI.PERMISSION_TYPE_EDIT;

          // Componemos la cadena de responsabilidad separada por comas
          List resp = user.getRespList();
          String cadenaResp = "";
          // Al menos esta el propio usuario
          cadenaResp = "'" + DBUtil.replaceQuotes(resp.get(0).toString()) + "'";
          for (i = 1; i < resp.size(); i++) {
            cadenaResp += " , '" + DBUtil.replaceQuotes(resp.get(i).toString()) + "'";
          }

          for (i = 0; i < listSupervisados.size(); i++) {
            cadenaResp += " , '" + DBUtil.replaceQuotes(listSupervisados.get(i).toString()) + "'";
          }
          for (i = 0; i < listSustituidos.size(); i++) {
            cadenaResp += " , '" + DBUtil.replaceQuotes(listSustituidos.get(i).toString()) + "'";
          }
          // Item puede ser IProcess ,  IStage , ITask
          if (item instanceof ITask) {
            return securityAPI.existPermissions((ITask) item, cadenaResp, permisos);

          } else if (item instanceof IStage) {

            if (IPcdElement.TYPE_SUBPROCEDURE == item.getInt("TIPO")) {
              IInvesflowAPI api = context.getAPI();
              IEntitiesAPI entitiesAPI = api.getEntitiesAPI();
              String sql = "WHERE TIPO=" + IPcdElement.TYPE_PROCEDURE + " AND";
              sql += " NUMEXP = '" + DBUtil.replaceQuotes(item.getString("NUMEXP")) + "'";
              IItemCollection col = entitiesAPI.queryEntities(SpacEntities.SPAC_FASES, sql);
              if (col.next()) {
                IItem fasePadre = col.value();
                int id = fasePadre.getKeyInt();
                IStage stage = api.getStage(id);
                return securityAPI.existPermissions(stage, cadenaResp, permisos);
              }
            }
            return securityAPI.existPermissions((IStage) item, cadenaResp, permisos);
          } else if (item instanceof IProcess) {
            return securityAPI.existPermissions((IProcess) item, cadenaResp, permisos);
          }
        }
      }
    } finally {
      context.releaseConnection(cnt);
    }

    return false;
  }
示例#18
0
  public ActionForward executeAction(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response,
      SessionAPI session)
      throws Exception {

    // Comprobar si el usuario tiene asignadas las funciones adecuadas
    FunctionHelper.checkFunctions(
        request,
        session.getClientContext(),
        new int[] {ISecurityAPI.FUNC_INV_DOCTYPES_EDIT, ISecurityAPI.FUNC_INV_TEMPLATES_EDIT});

    IInvesflowAPI invesFlowAPI = session.getAPI();
    ICatalogAPI catalogAPI = invesFlowAPI.getCatalogAPI();
    ITemplateAPI templateAPI = invesFlowAPI.getTemplateAPI();

    // Formulario asociado a la acción
    UploadForm defaultForm = (UploadForm) form;

    int keyId = Integer.parseInt(defaultForm.getKey());
    int entityId = Integer.parseInt(defaultForm.getEntity());
    String name = defaultForm.getProperty("NOMBRE");
    String code = defaultForm.getProperty("COD_PLANT");
    CTTemplate template = null;

    try {

      if (keyId == ISPACEntities.ENTITY_NULLREGKEYID) {

        int type = Integer.parseInt(defaultForm.getProperty("ID_TPDOC"));
        String expresion = defaultForm.getProperty("EXPRESION");
        FormFile fichero = defaultForm.getUploadFile();
        EntityApp entityapp = catalogAPI.getCTDefaultEntityApp(entityId, getRealPath(""));

        // Comprobar si existe otra plantilla con el mismo nombre
        IItemCollection itemcol =
            catalogAPI.queryCTEntities(
                ICatalogAPI.ENTITY_CT_TEMPLATE,
                " WHERE NOMBRE = '" + DBUtil.replaceQuotes(name) + "'");
        if (itemcol.next() && !isGeneric(templateAPI, itemcol)) {
          ActionMessages errors = new ActionMessages();
          errors.add(
              "property(NOMBRE)",
              new ActionMessage("error.template.nameDuplicated", new String[] {name}));
          saveAppErrors(request, errors);

          return new ActionForward(mapping.getInput());
        }

        // Comprobar si existe otra plantilla con el mismo código
        if (StringUtils.isNotBlank(code)) {
          itemcol =
              catalogAPI.queryCTEntities(
                  ICatalogAPI.ENTITY_CT_TEMPLATE,
                  " WHERE COD_PLANT = '" + DBUtil.replaceQuotes(code) + "'");
          if (itemcol.next()) {
            ActionMessages errors = new ActionMessages();
            errors.add(
                "property(COD_PLANT)",
                new ActionMessage("error.template.codeDuplicated", new String[] {code}));
            saveAppErrors(request, errors);

            return new ActionForward(mapping.getInput());
          }
        }

        if (!entityapp.validate()) {

          ActionMessages errors = new ActionMessages();
          List errorList = entityapp.getErrors();
          Iterator iteError = errorList.iterator();
          while (iteError.hasNext()) {

            ValidationError validError = (ValidationError) iteError.next();
            ActionMessage error = new ActionMessage(validError.getErrorKey(), validError.getArgs());
            errors.add(ActionMessages.GLOBAL_MESSAGE, error);
          }
          saveAppErrors(request, errors);

          return new ActionForward(mapping.getInput());
        }

        if (fichero.getFileName().equals("")) {
          template = templateAPI.newTemplate(type, name, code, 0, expresion, null);
        } else {
          if (fichero.getFileSize() > 0) {

            // Comprobar si el tipo MIME de la plantilla está soportado
            String mimeType = MimetypeMapping.getFileMimeType(fichero.getFileName());
            // Se comprueba si esta habilitado el uso de plantillas ODT
            if (StringUtils.equals(mimeType, "application/vnd.oasis.opendocument.text")
                && !ConfigurationMgr.getVarGlobalBoolean(
                    session.getClientContext(), ConfigurationMgr.USE_ODT_TEMPLATES, false)) {
              throw new ISPACInfo(
                  getResources(request).getMessage("exception.template.odt.disabled"));
            }

            if (templateAPI.isMimeTypeSupported(mimeType)) {
              template =
                  templateAPI.newTemplate(
                      type, name, code, 0, expresion, fichero.getInputStream(), mimeType);
            } else {
              throw new ISPACInfo(
                  getResources(request).getMessage("exception.template.document.invalidFile"));
            }
          } else {
            throw new ISPACInfo("exception.uploadfile.empty");
          }
        }
      } else {
        EntityApp entityapp = catalogAPI.getCTDefaultEntityApp(entityId, getRealPath(""));

        // Comprobar si existe otra plantilla con el mismo nombre
        IItemCollection itemcol =
            catalogAPI.queryCTEntities(
                ICatalogAPI.ENTITY_CT_TEMPLATE,
                " WHERE NOMBRE = '" + DBUtil.replaceQuotes(name) + "' AND ID != " + keyId);
        if (itemcol.next() && !isGeneric(templateAPI, itemcol)) {
          ActionMessages errors = new ActionMessages();
          errors.add(
              "property(NOMBRE)",
              new ActionMessage("error.template.nameDuplicated", new String[] {name}));
          saveAppErrors(request, errors);

          return new ActionForward(mapping.getInput());
        }

        // Comprobar si existe otra plantilla con el mismo código
        if (StringUtils.isNotBlank(code)) {
          itemcol =
              catalogAPI.queryCTEntities(
                  ICatalogAPI.ENTITY_CT_TEMPLATE,
                  " WHERE COD_PLANT = '" + DBUtil.replaceQuotes(code) + "' AND ID != " + keyId);
          if (itemcol.next()) {
            ActionMessages errors = new ActionMessages();
            errors.add(
                "property(COD_PLANT)",
                new ActionMessage("error.template.codeDuplicated", new String[] {code}));
            saveAppErrors(request, errors);

            return new ActionForward(mapping.getInput());
          }
        }

        defaultForm.processEntityApp(entityapp);
        entityapp.getItem().set("FECHA", new Date());
        entityapp.store();
      }

    } catch (Exception e) {
      ActionForward action = mapping.findForward("success");
      String url =
          action.getPath()
              + "?entity="
              + entityId
              + "&type="
              + defaultForm.getProperty("ID_TPDOC")
              + "&key="
              + keyId;

      request.getSession().setAttribute(BaseAction.LAST_URL_SESSION_KEY, url);

      if (e instanceof ISPACInfo) {
        throw e;
      } else {
        throw new ISPACInfo(e.getMessage());
      }
    }

    if (template != null) {
      keyId = template.getInt("TEMPLATE:ID");
    }

    ActionForward action = mapping.findForward("success");
    String redirected =
        action.getPath()
            + "?entity="
            + entityId
            + "&type="
            + defaultForm.getProperty("ID_TPDOC")
            + "&key="
            + keyId;
    return new ActionForward(action.getName(), redirected, true);
  }
示例#19
0
  public void deletePermissions(int idpcd, String uid) throws ISPACException {
    String sql = "WHERE ID_PCD = " + idpcd + " AND UID_USR = '******'";

    CollectionDAO objlist = new CollectionDAO(PermissionsDAO.class);
    objlist.delete(mDbCnt, sql);
  }