/** * Obtiene la configuraci\u00F3n de entregas del pedido * * @param session */ public void obtenerEntregas(HttpSession session) { // cjui\u00F1a Collection<EntregaDetallePedidoDTO> entregasResp = new ArrayList<EntregaDetallePedidoDTO>(); Collection<DetallePedidoDTO> detPedResp = new ArrayList<DetallePedidoDTO>(); Collection<VistaDetallePedidoDTO> detallePedidoDTOCol = (Collection<VistaDetallePedidoDTO>) session.getAttribute(DETALLELPEDIDOAUX); if (!CollectionUtils.isEmpty(detallePedidoDTOCol)) { for (VistaDetallePedidoDTO detPed : detallePedidoDTOCol) { if (!CollectionUtils.isEmpty(detPed.getEntregaDetallePedidoCol())) { Collection<EntregaDetallePedidoDTO> entregas = (Collection<EntregaDetallePedidoDTO>) detPed.getEntregaDetallePedidoCol(); if (CollectionUtils.isEmpty(entregasResp)) { entregasResp = (Collection<EntregaDetallePedidoDTO>) SerializationUtils.clone((Serializable) entregas); for (EntregaDetallePedidoDTO entPed : entregasResp) { detPedResp = new ArrayList<DetallePedidoDTO>(); entPed.getEntregaPedidoDTO().setNpDetallePedido(new ArrayList<DetallePedidoDTO>()); DetallePedidoDTO dp = new DetallePedidoDTO(); dp.setArticuloDTO(new ArticuloDTO()); dp.getArticuloDTO() .setId( (ArticuloID) SerializationUtils.clone((Serializable) detPed.getArticuloDTO().getId())); dp.getArticuloDTO() .setDescripcionArticulo(detPed.getArticuloDTO().getDescripcionArticulo()); dp.getArticuloDTO().setCodigoBarrasActivo(new ArticuloBitacoraCodigoBarrasDTO()); dp.getArticuloDTO() .getCodigoBarrasActivo() .setId( (ArticuloBitacoraCodigoBarrasID) SerializationUtils.clone( (Serializable) detPed.getArticuloDTO().getCodigoBarrasActivo().getId())); dp.setEstadoDetallePedidoDTO(new EstadoDetallePedidoDTO()); dp.getEstadoDetallePedidoDTO().setCantidadEstado(entPed.getCantidadEntrega()); dp.setNpContadorDespacho(entPed.getCantidadDespacho()); dp.setNpContadorEntrega(entPed.getCantidadEntrega()); detPedResp.add(dp); entPed.getEntregaPedidoDTO().setNpDetallePedido(detPedResp); } } else { for (EntregaDetallePedidoDTO entDetPed : entregas) { Boolean existeEntrega = Boolean.FALSE; DetallePedidoDTO dp = new DetallePedidoDTO(); dp.setArticuloDTO(new ArticuloDTO()); dp.getArticuloDTO() .setId( (ArticuloID) SerializationUtils.clone((Serializable) detPed.getArticuloDTO().getId())); dp.getArticuloDTO() .setDescripcionArticulo(detPed.getArticuloDTO().getDescripcionArticulo()); dp.getArticuloDTO().setCodigoBarrasActivo(new ArticuloBitacoraCodigoBarrasDTO()); dp.getArticuloDTO() .getCodigoBarrasActivo() .setId( (ArticuloBitacoraCodigoBarrasID) SerializationUtils.clone( (Serializable) detPed.getArticuloDTO().getCodigoBarrasActivo().getId())); dp.setEstadoDetallePedidoDTO(new EstadoDetallePedidoDTO()); dp.getEstadoDetallePedidoDTO().setCantidadEstado(entDetPed.getCantidadEntrega()); dp.setNpContadorDespacho(entDetPed.getCantidadDespacho()); dp.setNpContadorEntrega(entDetPed.getCantidadEntrega()); for (EntregaDetallePedidoDTO entPedRes : entregasResp) { Long diferencia = entDetPed.getEntregaPedidoDTO().getFechaEntregaCliente().getTime() - entPedRes.getEntregaPedidoDTO().getFechaEntregaCliente().getTime(); if (diferencia == 0L && entDetPed .getEntregaPedidoDTO() .getDireccionEntrega() .toUpperCase() .trim() .equals( entPedRes .getEntregaPedidoDTO() .getDireccionEntrega() .toUpperCase() .trim())) { entPedRes.getEntregaPedidoDTO().getNpDetallePedido().add(dp); existeEntrega = Boolean.TRUE; break; } } if (!existeEntrega) { entDetPed .getEntregaPedidoDTO() .setNpDetallePedido(new ArrayList<DetallePedidoDTO>()); entDetPed.getEntregaPedidoDTO().getNpDetallePedido().add(dp); entregasResp.add(entDetPed); } } } } } } for (EntregaDetallePedidoDTO entPed : entregasResp) { Long cantidadDespacho = 0L; Long cantidadEntrega = 0L; for (DetallePedidoDTO detallePedido : entPed.getEntregaPedidoDTO().getNpDetallePedido()) { cantidadDespacho = cantidadDespacho + detallePedido.getNpContadorDespacho(); cantidadEntrega = cantidadEntrega + detallePedido.getNpContadorEntrega(); } entPed.setCantidadDespacho(cantidadDespacho); entPed.setCantidadEntrega(cantidadEntrega); } session.setAttribute(ENTREGAS_RESPONSABLES, entregasResp); }