/** * 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); }
/** * 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); }