/** * Ejecuta la validacion en la p\u00E1gina JSP <code>redactarMail.jsp</code> * * @param mapping El mapeo utilizado para seleccionar esta instancia * @param request La petici\u00F3n que se est\u00E1 procesando * @return errors Coleccion de errores producidos por la validaci\u00F3n, si no hubieron errores * se retorna <code>null</code> */ public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); PropertyValidator validar = new PropertyValidatorImpl(); try { if (request.getParameter("ayuda") != null && request.getParameter("ayuda").equals("siEnviarEmail")) { LogSISPE.getLog().info("request redactarMail"); validar.validateMandatory( errors, "emailContacto", this.emailEnviarCotizacion, "errors.requerido", "Para"); if (errors.isEmpty()) { validar.validateFormato( errors, "emailContacto", this.emailEnviarCotizacion, false, "^[A-Za-z0-9_]+@[A-Za-z0-9_]|[A-Za-z0-9_]+@[A-Za-z0-9_]+\\.[A-Za-z0-9_]", "errors.formato.email"); } if (this.ccMail != null && !this.ccMail.trim().isEmpty()) { validar.validateFormato( errors, "emailContactoConCopia", this.ccMail, false, "^[A-Za-z0-9_]+@[A-Za-z0-9_]|[A-Za-z0-9_]+@[A-Za-z0-9_]+\\.[A-Za-z0-9_]", "errors.formato.email"); } validar.validateMandatory( errors, "asuntoMail", this.asuntoMail, "errors.requerido", "Asunto"); validar.validateMandatory( errors, "textoMail", this.textoMail, "errors.requerido", "Contenido"); request .getSession() .setAttribute( "ec.com.smx.sic.sispe.textoMail", this.textoMail != null ? this.textoMail : ""); request .getSession() .setAttribute( "ec.com.smx.sic.sispe.asuntoMail", this.asuntoMail != null ? this.asuntoMail : ""); request .getSession() .setAttribute( "ec.com.smx.sic.sispe.paraMail", this.emailEnviarCotizacion != null ? this.emailEnviarCotizacion : ""); if (errors.size() > 0) { request.getSession().setAttribute(SessionManagerSISPE.MENSAJES_SISPE, "ok"); } } } catch (Exception ex) { LogSISPE.getLog().error("error de aplicaci\u00F3n", ex); } return errors; }
/** * Procesa la petici\u00F3n HTTP (request) especificada y genera su correspondiente respuesta HTTP * (response) (o lo redirige a otro componente web que podr\u00EDa crear) Devuelve una instancia * <code>ActionForward</code> que describe d\u00F3nde y c\u00F3mo se redirige el control. * * @param mapping El mapeo utilizado para seleccionar esta instancia * @param form El formulario asociado a esta acci\u00F3n de donde se toman y establecen valores de * campos * @param request La petición que estamos procesando * @param response La respuesta HTTP que se genera * @return ActionForward Acción o p´gina jsp donde se redirige el control * @throws Exception */ public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // posibles mensajes a usar ActionMessages errors = new ActionMessages(); String forward = "principal"; HttpSession session = request.getSession(); // ModificarFechasEntregaForm formulario = (ModificarFechasEntregaForm)form; String peticion = request.getParameter(Globals.AYUDA); if (request.getParameter("indice") != null) { // se forma la consulta para obtener las entregas VistaPedidoDTO vistaPedidoDTO = (VistaPedidoDTO) ((List) session.getAttribute(SessionManagerSISPE.COLECCION_PEDIDOS_GENERAL)) .get(Integer.parseInt(request.getParameter("indice"))); EstadoDetallePedidoDTO estadoDetallePedidoFiltro = new EstadoDetallePedidoDTO(); estadoDetallePedidoFiltro .getId() .setCodigoCompania( SessionManagerSISPE.getCurrentCompanys(request).getId().getCodigoCompania()); estadoDetallePedidoFiltro.getId().setCodigoPedido(vistaPedidoDTO.getId().getCodigoPedido()); estadoDetallePedidoFiltro.getId().setCodigoEstado(vistaPedidoDTO.getId().getCodigoEstado()); estadoDetallePedidoFiltro .getId() .setSecuencialEstadoPedido(vistaPedidoDTO.getId().getSecuencialEstadoPedido()); ArticuloDTO articuloDTO = new ArticuloDTO(); // articuloDTO.setArticuloComercialDTO(new ArticuloComercialDTO()); articuloDTO.setArticuloUnidadManejoCol(new ArrayList<ArticuloUnidadManejoDTO>()); articuloDTO.getArticuloUnidadManejoCol().add(new ArticuloUnidadManejoDTO()); DetallePedidoDTO detallePedidoDTO = new DetallePedidoDTO(); detallePedidoDTO.setArticuloDTO(articuloDTO); estadoDetallePedidoFiltro.setDetallePedidoDTO( detallePedidoDTO); // obtiene los datos del art\u00EDculo EntregaDetallePedidoDTO entregaDetallePedidoDTO = new EntregaDetallePedidoDTO(); entregaDetallePedidoDTO.setEntregaPedidoDTO(new EntregaPedidoDTO()); estadoDetallePedidoFiltro.setEntregaDetallePedidoCol( new ArrayList<EntregaDetallePedidoDTO>()); // obtiene las entregas de cada detalle estadoDetallePedidoFiltro.getEntregaDetallePedidoCol().add(entregaDetallePedidoDTO); ContactoUtil.cargarDatosPersonaEmpresa(request, vistaPedidoDTO); session.setAttribute( COL_ESTADO_DETALLE_PEDIDO, SessionManagerSISPE.getServicioClienteServicio() .transObtenerEstadoDetallePedido(estadoDetallePedidoFiltro)); session.setAttribute(VISTA_PEDIDO, vistaPedidoDTO); // ----------PRUEBA Collection<EstadoDetallePedidoDTO> detalles = (Collection<EstadoDetallePedidoDTO>) session.getAttribute(COL_ESTADO_DETALLE_PEDIDO); // c\u00E1lculo de los bultos for (EstadoDetallePedidoDTO estadoDetallePedidoDTO : detalles) { for (EntregaDetallePedidoDTO entDetPedDTO : estadoDetallePedidoDTO.getEntregaDetallePedidoCol()) { if (entDetPedDTO.getCantidadDespacho() > 0) { entDetPedDTO.setNpCantidadBultos( UtilesSISPE.calcularCantidadBultos( entDetPedDTO.getCantidadDespacho(), estadoDetallePedidoDTO.getDetallePedidoDTO().getArticuloDTO())); } } } // --------------- // para obtener la entregas del pedido - cjui\u00F1a List<VistaDetallePedidoDTO> detalleVistaPedido = new ArrayList<VistaDetallePedidoDTO>(); VistaDetallePedidoDTO consultaVistaDetallePedidoDTO = new VistaDetallePedidoDTO(); consultaVistaDetallePedidoDTO .getId() .setCodigoCompania(vistaPedidoDTO.getId().getCodigoCompania()); consultaVistaDetallePedidoDTO .getId() .setCodigoAreaTrabajo(vistaPedidoDTO.getId().getCodigoAreaTrabajo()); consultaVistaDetallePedidoDTO .getId() .setCodigoPedido(vistaPedidoDTO.getId().getCodigoPedido()); consultaVistaDetallePedidoDTO .getId() .setCodigoEstado(vistaPedidoDTO.getId().getCodigoEstado()); consultaVistaDetallePedidoDTO .getId() .setSecuencialEstadoPedido(vistaPedidoDTO.getId().getSecuencialEstadoPedido()); consultaVistaDetallePedidoDTO.setArticuloDTO(new ArticuloDTO()); consultaVistaDetallePedidoDTO.setEntregaDetallePedidoCol( new ArrayList<EntregaDetallePedidoDTO>()); detalleVistaPedido = (List<VistaDetallePedidoDTO>) SessionManagerSISPE.getServicioClienteServicio() .transObtenerVistaDetallePedido(consultaVistaDetallePedidoDTO); session.setAttribute(DETALLELPEDIDOAUX, detalleVistaPedido); obtenerEntregas(session); LogSISPE.getLog().info("se consult\u00F3 las entregas"); } else if (peticion != null && peticion.equals("guardar")) { LogSISPE.getLog().info("ingresa a guardar"); try { List<EstadoDetallePedidoDTO> detalle = (List<EstadoDetallePedidoDTO>) request.getSession().getAttribute(COL_ESTADO_DETALLE_PEDIDO); for (EstadoDetallePedidoDTO detalleDTO : detalle) { detalleDTO.setUserId(SessionManagerSISPE.getDefault().getLoggedUser(request).getUserId()); DetallePedidoDTO detallePedidoDTO = detalleDTO.getDetallePedidoDTO(); LogSISPE.getLog() .info( "Articulo y sus entregas--{}", detallePedidoDTO.getArticuloDTO().getDescripcionArticulo()); for (EntregaDetallePedidoDTO entDetPedDTO : detalleDTO.getEntregaDetallePedidoCol()) { LogSISPE.getLog() .info( "Fecha Entrega cliente--{}", entDetPedDTO.getEntregaPedidoDTO().getFechaEntregaCliente()); LogSISPE.getLog() .info( "Fecha Despacho Bodega--{}", entDetPedDTO.getEntregaPedidoDTO().getFechaDespachoBodega()); LogSISPE.getLog() .info("Direccion--{}", entDetPedDTO.getEntregaPedidoDTO().getDireccionEntrega()); if (entDetPedDTO.getEntregaPedidoDTO().getNpFechaEntregaInicial() != null && entDetPedDTO.getEntregaPedidoDTO().getNpFechaDespachoInicial() != null) { LogSISPE.getLog() .info( "Fecha Entrega clienteO--{}", entDetPedDTO.getEntregaPedidoDTO().getNpFechaEntregaInicial()); LogSISPE.getLog() .info( "Fecha Despacho BodegaO--{}", entDetPedDTO.getEntregaPedidoDTO().getNpFechaDespachoInicial()); } } } SessionManagerSISPE.getServicioClienteServicio() .transModificarFechasDespachoYEntrega( (Collection<EstadoDetallePedidoDTO>) session.getAttribute(COL_ESTADO_DETALLE_PEDIDO), SessionManagerSISPE.getDefault().getLoggedUser(request).getUserId()); // mensaje de exito para el registro ControlMensajes controlMensajes = new ControlMensajes(); controlMensajes.setMessages(session, "message.exito.fechasEntregaModificadas"); session.setAttribute(ListadoPedidosAction.VOLVER_A_BUSQUEDA, "ok"); session.removeAttribute(SessionManagerSISPE.COLECCION_PEDIDOS_GENERAL); forward = "busqueda"; } catch (SISPEException e) { errors.add( "registro", new ActionMessage( "errors.llamadaServicio.registrarDatos", "la modificaci\u00F3n de fechas")); errors.add("dinamico", new ActionMessage("errors.SISPEException", e.getMessage())); } } else if (peticion != null && peticion.equals("cancelar")) { LogSISPE.getLog().info("ingresa a cancelar"); session.setAttribute(ListadoPedidosAction.VOLVER_A_BUSQUEDA, "ok"); forward = "busqueda"; } saveErrors(request, errors); return mapping.findForward(forward); }
/** * @param errors * @param request * @return * @throws Exception */ public int validarNumOrden(ActionMessages errors, HttpServletRequest request) throws Exception { ActionErrors errorsTemp = null; PropertyValidator validar = null; ArrayList estadosDetallesPedido = null; boolean[] autorizacionesIncorrectas = null; if (this.botonGuardarOrdenesCompra != null) { validar = new PropertyValidatorImpl(); autorizacionesIncorrectas = new boolean[this.numerosAutorizaciones.length]; LogSISPE.getLog().info("Valores arreglo boolean"); for (boolean a : autorizacionesIncorrectas) { LogSISPE.getLog().info("a1: {}", a); } for (int i = 0; i < this.numerosAutorizaciones.length; i++) { if (this.numerosAutorizaciones[i].equals("") && this.observacionesNumerosAutorizaciones[i].equals("") == false) { errors.add( "numerosAutorizaciones", new ActionMessage("errors.numeroAutorizacionOrdenCompraObligatorio")); autorizacionesIncorrectas[i] = true; } else if (this.numerosAutorizaciones[i].equals("") == false && this.observacionesNumerosAutorizaciones[i].equals("")) { errors.add( "observacionesNumerosAutorizaciones", new ActionMessage("errors.observacionAutorizacionOrdenCompraObligatorio")); autorizacionesIncorrectas[i] = true; } else { errorsTemp = new ActionErrors(); validar.validateFormato( errorsTemp, "numerosAutorizaciones", this.numerosAutorizaciones[i], false, "^(\\d)*$", "errors.formato.numeroAutorizacionOrdenCompra", "errors.requerido", "N\u00FAmero de autorizaci\u00F3n de orden de compra"); validar.validateFormato( errorsTemp, "observacionesNumerosAutorizaciones", this.observacionesNumerosAutorizaciones[i], false, "^(.){1,500}$", "errors.formato.observacionNumeroAutorizacionOrdenCompra", "errors.requerido", "Observación del abono"); if (errorsTemp.size() > 0) { autorizacionesIncorrectas[i] = true; for (Iterator j = errorsTemp.get(); j.hasNext(); ) { // LogSISPE.getLog().info("ClaseErrorsRegistroOrdenCompra: " + j.next().getClass()); errors.add("observacionesNumerosAutorizaciones", (ActionMessage) j.next()); } } } } if (errors.size() > 0) { if (request.getSession().getAttribute("ec.com.smx.sic.sispe.ordenCompra.detallesPedido") != null) { estadosDetallesPedido = (ArrayList) request .getSession() .getAttribute("ec.com.smx.sic.sispe.ordenCompra.detallesPedido"); for (int i = 0; i < this.getNumerosAutorizaciones().length; i++) { if (this.getNumerosAutorizaciones()[i].equals("") == false) { EstadoDetallePedidoDTO estadoDetallePedidoActual = (EstadoDetallePedidoDTO) estadosDetallesPedido.get(i); estadoDetallePedidoActual.setNumeroAutorizacionOrdenCompra( this.getNumerosAutorizaciones()[i]); estadoDetallePedidoActual.setObservacionAutorizacionOrdenCompra( this.getObservacionesNumerosAutorizaciones()[i]); estadoDetallePedidoActual.setNpNumeroAutorizacionOrdenCompraInCorrecto( autorizacionesIncorrectas[i]); } } } } } LogSISPE.getLog().info("numero de errores:{}", errors.size()); return errors.size(); }
/** * Procesa la petici\u00F3n HTTP (request) especificada y genera su correspondiente respuesta HTTP * (response) (o lo redirige a otro componente web que podr\u00EDa crear) Devuelve una instancia * <code>ActionForward</code> que describe d\u00F3nde y c\u00F3mo se redirige el control(si la * respuesta se ha completado <code>null</code>) Este m\u00E9todo permite: * * <ul> * <li>Manejar un listado de art\u00EDculos luego de una b\u00FAsqueda * <li>Acceder a los datos de un determinado art\u00EDculo, para su actualizaci\u00F3n * <li>Guardar los nuevos datos de un conjkunto de art\u00EDculos * </ul> * * @param mapping El mapeo utilizado para seleccionar esta instancia * @param form El formulario asociado a esta acci\u00F3n de donde se toman y establecen valores de * campos * @param request El request que estamos procesando * @param response La respuesta HTTP que se crea * @throws Exception * @return ActionForward Describe donde y como se redirige el control */ public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // objetos para los mensajes generados ActionMessages success = new ActionMessages(); ActionMessages infos = new ActionMessages(); ActionMessages errors = new ActionMessages(); HttpSession session = request.getSession(); MantenimientoArticulosForm formulario = (MantenimientoArticulosForm) form; String salida = "mantenimientoArticulos"; // se verifica el valor de la petici\u00F3n String peticion = request.getParameter("ayuda"); if (peticion == null) { peticion = ""; } try { // -------------- cuando se desea actualizar los datos de un pedido --------------- if (request.getParameter("indiceArticulo") != null) { // se declara el indice seleccionado int indice = Integer.parseInt(request.getParameter("indiceArticulo")); // se obtiene la colecci\u00F3n de art\u00EDculos ArrayList<ArticuloDTO> articulos = (ArrayList<ArticuloDTO>) session.getAttribute(LISTA_ARTICULOS); ArticuloDTO articuloDTO = articulos.get(indice); // se inicializan los datos del formulario formulario.setDescripcionArticulo(articuloDTO.getDescripcionArticulo()); // formulario.setPrecioArticulo(articuloDTO.getPrecioArticulo().toString()); formulario.setPrecioArticulo(articuloDTO.getPrecioBase().toString()); formulario.setPrecioCajaArticulo(articuloDTO.getPrecioCaja().toString()); // formulario.setPesoAproximado(articuloDTO.getPesoAproximado().toString()); formulario.setPesoAproximado( articuloDTO.getArticuloComercialDTO().getPesoAproximadoVenta().toString()); formulario.setUnidadManejo(articuloDTO.getUnidadManejo().toString()); formulario.setUnidadManejoCaja(articuloDTO.getUnidadManejo().toString()); formulario.setEstadoArticulo(articuloDTO.getEstadoArticulo()); formulario.setTipoArticuloCalculoPrecio(articuloDTO.getTipoCalculoPrecio()); // se guarda en sesi\u00F3n el art\u00EDculo seleccionado session.setAttribute(ARTICULO_SELECCIONADO, articuloDTO); // se guardan en sesi\u00F3n los tipos de art\u00EDculo para los c\u00E1lculos if (session.getAttribute("ec.com.smx.sic.sispe.articulo.normal") == null) { // c\u00F3digos de los tipos de art\u00EDculos para realizar los calculos session.setAttribute( "ec.com.smx.sic.sispe.articulo.normal", MessagesAplicacionSISPE.getString("ec.com.smx.sic.sispe.articulo.normal")); session.setAttribute( "ec.com.smx.sic.sispe.articulo.pavo", MessagesAplicacionSISPE.getString("ec.com.smx.sic.sispe.articulo.pavo")); session.setAttribute( "ec.com.smx.sic.sispe.articulo.otroPesoVariable", MessagesAplicacionSISPE.getString("ec.com.smx.sic.sispe.articulo.otroPesoVariable")); // descripci\u00F3n de los tipos de art\u00EDculos para realizar los calculos session.setAttribute( "ec.com.smx.sic.sispe.articulo.normal.descripcion", MessagesAplicacionSISPE.getString( "ec.com.smx.sic.sispe.articulo.normal.descripcion")); session.setAttribute( "ec.com.smx.sic.sispe.articulo.pavo.descripcion", MessagesAplicacionSISPE.getString("ec.com.smx.sic.sispe.articulo.pavo.descripcion")); session.setAttribute( "ec.com.smx.sic.sispe.articulo.otroPesoVariable.descripcion", MessagesAplicacionSISPE.getString( "ec.com.smx.sic.sispe.articulo.otroPesoVariable.descripcion")); } salida = "actualizarArticulo"; } // ------------- cuando se desea agregar un art\u00EDculo por su c\u00F3digo ------------ else if (request.getParameter("agregarArticulo") != null) { // se obtiene la colecci\u00F3n de art\u00EDculos Collection<ArticuloDTO> listaArticulos = (Collection<ArticuloDTO>) session.getAttribute(LISTA_ARTICULOS); if (listaArticulos == null) listaArticulos = new ArrayList<ArticuloDTO>(); // se verifica que el c\u00F3digo de art\u00EDculo a ingresar no est\u00E9 en el listado for (ArticuloDTO articuloDTO : listaArticulos) { if (formulario .getCodigoArticulo() .trim() .equals(articuloDTO.getId().getCodigoArticulo())) { errors.add( "codigoArticulo", new ActionMessage("errors.itemRepetido", "El art\u00EDculo")); break; } } // solo si no hubo errores anteriormente if (errors.isEmpty()) { // se construye el objeto para la condulta ArticuloDTO consultaArticuloDTO = new ArticuloDTO(); consultaArticuloDTO .getId() .setCodigoCompania( SessionManagerSISPE.getCurrentCompanys(request).getId().getCodigoCompania()); consultaArticuloDTO.getId().setCodigoArticulo(formulario.getCodigoArticulo().trim()); // llamada al m\u00E9todo de la capa de servicio que devuelve la colecci\u00F3n de // art\u00EDculos Collection<ArticuloDTO> articulos = SessionManagerSISPE.getServicioClienteServicio() .transObtenerArticuloQBE(consultaArticuloDTO); if (!articulos.isEmpty()) { Iterator<ArticuloDTO> it = articulos.iterator(); ArticuloDTO articuloDTO = it.next(); // se agrega el art\u00EDculo a la colecci\u00F3n listaArticulos.add(articuloDTO); session.setAttribute(LISTA_ARTICULOS, listaArticulos); } else { infos.add("articulosInvalido", new ActionMessage("message.codigoBarras.invalido")); } } } // ------------- cuando se agregan art\u00EDculos por la b\u00FAsqueda ------------ else if (request.getParameter("agregarArticulos") != null) { // se obtiene la colecci\u00F3n de art\u00EDculos agregados por la b\u00FAsqueda Collection<ArticuloDTO> articulosBuscados = (Collection<ArticuloDTO>) session.getAttribute(BuscarArticuloAction.ARTICULOS_AGREGADOS_MANTENIMIENTO); if (articulosBuscados != null) { LogSISPE.getLog().info("longitud agregados: " + articulosBuscados.size()); // se obtiene la colecci\u00F3n de art\u00EDculos Collection<ArticuloDTO> listaArticulos = (Collection<ArticuloDTO>) session.getAttribute(LISTA_ARTICULOS); if (listaArticulos == null) listaArticulos = new ArrayList<ArticuloDTO>(); // se crea la colecci\u00F3n para agregar los nuevos art\u00EDculos Collection<ArticuloDTO> articulosParaAgregar = new ArrayList<ArticuloDTO>(); // se itera la colecci\u00F3n de art\u00EDculos buscados for (ArticuloDTO articuloBuscado : articulosBuscados) { boolean seEncontroArticulo = false; if (!listaArticulos.isEmpty()) { // se verifica que el c\u00F3digo de art\u00EDculo buscado no este en el listado // principal for (ArticuloDTO articuloDTO : listaArticulos) { if (articuloBuscado .getId() .getCodigoArticulo() .equals(articuloDTO.getId().getCodigoArticulo())) { seEncontroArticulo = true; break; } } if (!seEncontroArticulo) articulosParaAgregar.add(articuloBuscado); } else { articulosParaAgregar.add(articuloBuscado); } } // se agregan todos los art\u00EDculos listaArticulos.addAll(articulosParaAgregar); session.setAttribute(LISTA_ARTICULOS, listaArticulos); // se elimina la colecci\u00F3n de articulos buscados session.removeAttribute(BuscarArticuloAction.ARTICULOS_AGREGADOS_MANTENIMIENTO); } } // -------------- caso por omisi\u00F3n --------------- else { // primero se eliminan las posibles variables de sesi\u00F3n SessionManagerSISPE.removeVarSession(request); // se inicializa algunos datos del formulario formulario.setOpTipoBusqueda( MessagesWebSISPE.getString("ec.com.smx.sic.sispe.opcion.numeroClasificacion")); // se crea una variable para determinar como se debe manejar la adici\u00F3n de // art\u00EDculos por la b\u00FAsqueda session.setAttribute("ec.com.smx.sic.sispe.busqueda.porMantenimiento", "ok"); } // se guardan los mensajes generados saveMessages(request, success); saveInfos(request, infos); saveErrors(request, errors); } catch (Exception ex) { LogSISPE.getLog().error("error de aplicaci\u00F3n", ex); salida = "errorGlobal"; } // salida hacia la p\u00E1gina adecuada return mapping.findForward(salida); }