/**
   * Metodo para guardar
   *
   * @param dto catalogo a guardar
   * @return Cadena de satisfaccion
   */
  public String guardar(CategoriaPecDto dto) {

    String to = null;
    String mensajeTrx = "";
    SessionMBean sessionMBean =
        (SessionMBean) WebServletContextListener.getApplicationContext().getBean("sessionMBean");
    ApplicationMBean applicationMBean =
        (ApplicationMBean)
            WebServletContextListener.getApplicationContext().getBean("applicationMBean");

    {
      dto.setUsuarioDto(sessionMBean.getSessionUsuarioDto());
      dto.setFecha(UtilCore.Fecha.obtenerFechaActualDate());
      dto.setTerminal(sessionMBean.getSessionTerminal());
    }

    if (sessionMBean.getAccion() == applicationMBean.getNuevo()) {
      try {
        dto.setUsuarioCreacionDto(sessionMBean.getSessionUsuarioDto());
        dto.setFechaCreacion(UtilCore.Fecha.obtenerFechaActualDate());
        dto.setTerminalCreacion(sessionMBean.getSessionTerminal());
        UtilCore.General.toUpperCaseDto(dto);
        actualizarCuadrante(dto);
        nuevo(dto);
        sessionMBean.setAccion(applicationMBean.getEditar());
        mensajeTrx =
            UtilCore.Internacionalizacion.getMensajeInternacional(
                "form.general.mensaje.transaccion.ok");
        recursosManager.showMessage(mensajeTrx);

        to = ""; // retroceder();
      } catch (Exception ex) {
        mensajeTrx = ex.getMessage();
        recursosManager.showError(ex.getMessage());
        logger.error(mensajeTrx);

        to = null;
      }
    } else if (sessionMBean.getAccion() == applicationMBean.getEditar()) {
      try {
        UtilCore.General.toUpperCaseDto(dto);
        actualizarCuadrante(dto);
        editar(dto);
        mensajeTrx =
            UtilCore.Internacionalizacion.getMensajeInternacional(
                "form.general.mensaje.transaccion.ok");
        recursosManager.showMessage(mensajeTrx);
        to = ""; // retroceder();
      } catch (Exception ex) {
        mensajeTrx = ex.getMessage();
        recursosManager.showError(ex.getMessage());
        logger.error(mensajeTrx);
        to = null;
      }
    }

    return to;
  }
  /**
   * Metodo para guardar, editar Materiales
   *
   * @param dto Material
   * @return cadena de satisfaccion
   */
  public String guardar(MaterialDto dto) {
    String to = null;
    String mensajeTrx = "";
    SessionMBean sessionMBean =
        (SessionMBean) WebServletContextListener.getApplicationContext().getBean("sessionMBean");
    ApplicationMBean applicationMBean =
        (ApplicationMBean)
            WebServletContextListener.getApplicationContext().getBean("applicationMBean");
    try {

      if (obtenerCantMaterialesPorProducto(dto) <= 0) {
        {
          dto.setUsuarioDto(sessionMBean.getSessionUsuarioDto());
          dto.setFecha(UtilCore.Fecha.obtenerFechaActualDate());
          dto.setTerminal(sessionMBean.getSessionTerminal());
        }

        if (sessionMBean.getAccionDetalle() == applicationMBean.getNuevo()) {

          dto.setUsuarioCreacionDto(sessionMBean.getSessionUsuarioDto());
          dto.setFechaCreacion(UtilCore.Fecha.obtenerFechaActualDate());
          dto.setTerminalCreacion(sessionMBean.getSessionTerminal());
          UtilCore.General.toUpperCaseDto(dto);
          nuevo(dto);
          mensajeTrx =
              UtilCore.Internacionalizacion.getMensajeInternacional(
                  "form.general.mensaje.transaccion.ok");
          recursosManager.showMessage(mensajeTrx);
          to = ""; // retroceder();

        } else if (sessionMBean.getAccionDetalle() == applicationMBean.getEditar()) {

          UtilCore.General.toUpperCaseDto(dto);
          editar(dto);
          mensajeTrx =
              UtilCore.Internacionalizacion.getMensajeInternacional(
                  "form.general.mensaje.transaccion.ok");
          recursosManager.showMessage(mensajeTrx);
          to = ""; // retroceder();
        }
      } else {
        recursosManager.showWarning(
            UtilCore.Internacionalizacion.getMensajeInternacional(
                "moneda.mensaje.moneda.duplicada"));
        to = null;
      }
    } catch (Exception ex) {
      mensajeTrx = ex.getMessage();
      recursosManager.showError(ex.getMessage());
      logger.error(mensajeTrx);
      to = null;
    }
    return to;
  }
  /**
   * Metodo que setea los valores del dto y construye el formulario para crear un nuevo registro
   *
   * @since 28/01/2014
   */
  public void nuevaUbigeo() {
    this.ubigeoSeleccionadoDto = (UbigeoDto) selectedUbigeo.getData();

    this.dto = new UbigeoDto();
    this.dto.setEstado(Boolean.TRUE);
    this.dto.setUsuarioDto(sessionMBean.getSessionUsuarioDto());
    this.dto.setFecha(UtilCore.Fecha.obtenerFechaActualDate());
    this.dto.setUbigeoPadreDto(this.ubigeoSeleccionadoDto);
    this.dto.setRetencion(BigDecimal.ZERO);
    this.dto.setRetencionHonorarios(BigDecimal.ZERO);
    this.dto.setTipo(this.manager.evaluarTipo(this.ubigeoSeleccionadoDto));

    validarBotonGuardar = Boolean.FALSE;

    sessionMBean.setAccion(applicationMBean.getNuevo());
  }