Ejemplo n.º 1
0
 @RequestMapping(value = "/events", method = GET, headers = "Authorization")
 public List<EventListItem> getAllEventsForExternal(
     Principal principal, HttpServletRequest request) {
   List<Integer> userOrganizations =
       userManager
           .findUserOrganizations(principal.getName())
           .stream()
           .map(Organization::getId)
           .collect(Collectors.toList());
   return eventManager
       .getActiveEvents()
       .stream()
       .filter(e -> userOrganizations.contains(e.getOrganizationId()))
       .sorted(
           (e1, e2) ->
               e1.getBegin()
                   .withZoneSameInstant(ZoneId.systemDefault())
                   .compareTo(e2.getBegin().withZoneSameInstant(ZoneId.systemDefault())))
       .map(
           s ->
               new EventListItem(
                   s, request.getContextPath(), descriptionsLoader.eventDescriptions()))
       .collect(Collectors.toList());
 }
  /**
   * * Obetener la información de una notificación y cargarla en pantalla para su edición
   *
   * @param idNotificacion a cargar
   * @param request con datos de autenticación
   * @return ModelAndView
   * @throws Exception
   */
  @RequestMapping("edit/{idNotificacion}")
  public ModelAndView editIrag(
      @PathVariable("idNotificacion") String idNotificacion, HttpServletRequest request)
      throws Exception {
    String urlValidacion = "";
    boolean autorizado = true;
    try {
      urlValidacion = seguridadService.validarLogin(request);
      // si la url esta vacia significa que la validaci�n del login fue exitosa
      if (urlValidacion.isEmpty())
        urlValidacion =
            seguridadService.validarAutorizacionUsuario(
                request, ConstantsSecurity.SYSTEM_CODE, true);
    } catch (Exception e) {
      e.printStackTrace();
      urlValidacion = "404";
    }

    ModelAndView mav = new ModelAndView();
    if (urlValidacion.isEmpty()) {

      if (idNotificacion != null) {
        FichaRotavirus fichaRotavirus = rotaVirusService.getFichaById(idNotificacion);

        if (fichaRotavirus != null) {
          Initialize();

          long idUsuario = seguridadService.obtenerIdUsuario(request);
          // irag.setUsuario(usuarioService.getUsuarioById((int) idUsuario));
          if (idUsuario != 0) {
            autorizado =
                seguridadService.esUsuarioNivelCentral(idUsuario, ConstantsSecurity.SYSTEM_CODE)
                    || ((fichaRotavirus.getDaNotificacion().getCodSilaisAtencion() != null
                            && fichaRotavirus.getDaNotificacion().getCodUnidadAtencion() != null)
                        && seguridadService.esUsuarioAutorizadoEntidad(
                            (int) idUsuario,
                            ConstantsSecurity.SYSTEM_CODE,
                            fichaRotavirus.getDaNotificacion().getCodSilaisAtencion().getCodigo())
                        && seguridadService.esUsuarioAutorizadoUnidad(
                            (int) idUsuario,
                            ConstantsSecurity.SYSTEM_CODE,
                            fichaRotavirus.getDaNotificacion().getCodUnidadAtencion().getCodigo()));
          }

          entidades =
              seguridadService.obtenerEntidadesPorUsuario(
                  (int) idUsuario, ConstantsSecurity.SYSTEM_CODE);

          if (entidades.size() <= 0) {
            entidades.add(fichaRotavirus.getDaNotificacion().getCodSilaisAtencion());
          }

          Divisionpolitica municipio =
              divisionPoliticaService.getMunicipiosByUnidadSalud(
                  fichaRotavirus
                      .getDaNotificacion()
                      .getCodUnidadAtencion()
                      .getMunicipio()
                      .getCodigoNacional());
          List<Divisionpolitica> munic =
              divisionPoliticaService.getMunicipiosBySilais(
                  fichaRotavirus.getDaNotificacion().getCodSilaisAtencion().getCodigo());

          List<Unidades> uni = null;
          if (seguridadService.esUsuarioNivelCentral(idUsuario, ConstantsSecurity.SYSTEM_CODE)) {
            if (fichaRotavirus.getDaNotificacion().getCodSilaisAtencion() != null
                && fichaRotavirus.getDaNotificacion().getCodUnidadAtencion() != null) {
              uni =
                  seguridadService.obtenerUnidadesPorUsuarioEntidadMunicipio(
                      (int) idUsuario,
                      fichaRotavirus.getDaNotificacion().getCodSilaisAtencion().getCodigo(),
                      fichaRotavirus
                          .getDaNotificacion()
                          .getCodUnidadAtencion()
                          .getMunicipio()
                          .getCodigoNacional(),
                      ConstantsSecurity.SYSTEM_CODE,
                      HealthUnitType.UnidadesPrimHosp.getDiscriminator());
            }
          } else {
            if (fichaRotavirus.getDaNotificacion().getCodSilaisAtencion() != null
                && fichaRotavirus.getDaNotificacion().getCodUnidadAtencion() != null) {
              uni =
                  seguridadService.obtenerUnidadesPorUsuarioEntidadMunicipio(
                      (int) idUsuario,
                      fichaRotavirus.getDaNotificacion().getCodSilaisAtencion().getCodigo(),
                      fichaRotavirus
                          .getDaNotificacion()
                          .getCodUnidadAtencion()
                          .getMunicipio()
                          .getCodigoNacional(),
                      ConstantsSecurity.SYSTEM_CODE,
                      HealthUnitType.UnidadesPrimHosp.getDiscriminator());
              if (!uni.contains(fichaRotavirus.getDaNotificacion().getCodUnidadAtencion())) {
                uni.add(fichaRotavirus.getDaNotificacion().getCodUnidadAtencion());
              }
            }
          }

          // datos persona
          Divisionpolitica departamentoProce;
          List<Divisionpolitica> municipiosResi = null;
          List<Comunidades> comunidades = null;

          if (fichaRotavirus.getDaNotificacion().getPersona().getMunicipioResidencia() != null) {
            String municipioResidencia =
                fichaRotavirus
                    .getDaNotificacion()
                    .getPersona()
                    .getMunicipioResidencia()
                    .getCodigoNacional();
            departamentoProce =
                divisionPoliticaService.getDepartamentoByMunicipi(municipioResidencia);
            municipiosResi =
                divisionPoliticaService.getMunicipiosFromDepartamento(
                    departamentoProce.getCodigoNacional());
            String comu =
                fichaRotavirus
                    .getDaNotificacion()
                    .getPersona()
                    .getMunicipioResidencia()
                    .getCodigoNacional();
            comunidades = comunidadesService.getComunidades(comu);
          }

          mav.addObject("fichaRotavirus", fichaRotavirus);
          mav.addObject("autorizado", autorizado);
          mav.addObject("entidades", entidades);
          mav.addObject("munic", munic);
          mav.addObject("municipiosResi", municipiosResi);
          mav.addObject("comunidades", comunidades);
          mav.addObject("uni", uni);
          mav.addObject("municipio", municipio);
          mav.addAllObjects(mapModel);

          mav.setViewName("rotavirus/create");
        } else {
          mav.setViewName("404");
        }
      } else {
        mav.setViewName("404");
      }

    } else {
      mav.setViewName(urlValidacion);
    }

    return mav;
  }
Ejemplo n.º 3
0
  @RequestMapping("/events/{eventName}/export.csv")
  public void downloadAllTicketsCSV(
      @PathVariable("eventName") String eventName,
      HttpServletRequest request,
      HttpServletResponse response,
      Principal principal)
      throws IOException {
    List<String> fields =
        Arrays.asList(
            Optional.ofNullable(request.getParameterValues("fields")).orElse(new String[] {}));
    Event event = loadEvent(eventName, principal);
    Map<Integer, TicketCategory> categoriesMap =
        eventManager
            .loadTicketCategories(event)
            .stream()
            .collect(Collectors.toMap(TicketCategory::getId, Function.identity()));
    ZoneId eventZoneId = event.getZoneId();

    Predicate<String> contains = FIXED_FIELDS::contains;

    response.setContentType("text/csv;charset=UTF-8");
    response.setHeader("Content-Disposition", "attachment; filename=" + eventName + "-export.csv");

    try (ServletOutputStream out = response.getOutputStream();
        CSVWriter writer = new CSVWriter(new OutputStreamWriter(out))) {

      for (int marker :
          BOM_MARKERS) { // UGLY-MODE_ON: specify that the file is written in UTF-8 with BOM, thanks
                         // to alexr http://stackoverflow.com/a/4192897
        out.write(marker);
      }

      writer.writeNext(fields.toArray(new String[fields.size()]));

      eventManager
          .findAllConfirmedTickets(eventName, principal.getName())
          .stream()
          .map(
              t -> {
                List<String> line = new ArrayList<>();
                if (fields.contains("ID")) {
                  line.add(t.getUuid());
                }
                if (fields.contains("creation")) {
                  line.add(t.getCreation().withZoneSameInstant(eventZoneId).toString());
                }
                if (fields.contains("category")) {
                  line.add(categoriesMap.get(t.getCategoryId()).getName());
                }
                if (fields.contains("event")) {
                  line.add(eventName);
                }
                if (fields.contains("status")) {
                  line.add(t.getStatus().toString());
                }
                if (fields.contains("originalPrice")) {
                  line.add(MonetaryUtil.centsToUnit(t.getSrcPriceCts()).toString());
                }
                if (fields.contains("paidPrice")) {
                  line.add(MonetaryUtil.centsToUnit(t.getFinalPriceCts()).toString());
                }
                if (fields.contains("discount")) {
                  line.add(MonetaryUtil.centsToUnit(t.getDiscountCts()).toString());
                }
                if (fields.contains("vat")) {
                  line.add(MonetaryUtil.centsToUnit(t.getVatCts()).toString());
                }
                if (fields.contains("reservationID")) {
                  line.add(t.getTicketsReservationId());
                }
                if (fields.contains("Full Name")) {
                  line.add(t.getFullName());
                }
                if (fields.contains("First Name")) {
                  line.add(t.getFirstName());
                }
                if (fields.contains("Last Name")) {
                  line.add(t.getLastName());
                }
                if (fields.contains("E-Mail")) {
                  line.add(t.getEmail());
                }
                if (fields.contains("locked")) {
                  line.add(String.valueOf(t.getLockedAssignment()));
                }
                if (fields.contains("Language")) {
                  line.add(String.valueOf(t.getUserLanguage()));
                }

                // obviously not optimized
                Map<String, String> additionalValues =
                    ticketFieldRepository.findAllValuesForTicketId(t.getId());

                fields
                    .stream()
                    .filter(contains.negate())
                    .forEachOrdered(
                        field -> {
                          line.add(additionalValues.getOrDefault(field, "").replaceAll("\"", ""));
                        });

                return line.toArray(new String[line.size()]);
              })
          .forEachOrdered(writer::writeNext);
      writer.flush();
      out.flush();
    }
  }