public static Date getRangeDate(Date midDate, int unitRange, TsUnit aTsUnit, int addOrSub) { Date result = null; if (aTsUnit == TsUnit.YEARLY) { result = DateUtils.addYears(midDate, unitRange * addOrSub); } else if (aTsUnit == TsUnit.DAILY) { result = DateUtils.addDays(midDate, unitRange * addOrSub); } else if (aTsUnit == TsUnit.MONTHLY) { result = DateUtils.addMonths(midDate, unitRange * addOrSub); } else { EUtils.throwNotSupportedException(Version.V1_0_0); } return result; }
public void doQuery() throws Exception { disneyProducts.clear(); Date startDate = (Date) queryOption.get("startDate"); Date endDate = (Date) queryOption.get("endDate"); if (startDate == null) { startDate = new Date(); } if (endDate == null) { endDate = DateUtils.addYears(startDate, 7); } String fromDate = DateUtil.formatDate(startDate, "yyyy-MM-dd"); String toDate = DateUtil.formatDate(endDate, "yyyy-MM-dd"); ; EventResponse res = DisneyUtil.init().getEvents(); for (Event event : res.getEvents()) { String response = DisneyUtil.init().getShows(event.getEventId(), fromDate, toDate); ShowResponse showRes = DisneyUtil.init().paseShowResponse(response); if (showRes.getShows() != null && showRes.getShows().size() > 0) { for (Show show : showRes.getShows()) { ProductBean bean = new ProductBean(); bean.setEventId(event.getEventId()); bean.setName(event.getName()); bean.setRemark(event.getRemark()); bean.setShowId(show.getShowId()); bean.setShowDateTime(show.getShowDateTime()); bean.setCutoffDateTime(show.getCutoffDateTime()); disneyProducts.add(bean); } } else { ProductBean bean = new ProductBean(); bean.setEventId(event.getEventId()); bean.setName(event.getName()); bean.setRemark(event.getRemark()); bean.setShowId(""); bean.setShowDateTime(""); bean.setCutoffDateTime(""); disneyProducts.add(bean); } } }
/** * permet de recupérer les dernières infos d'absences lié à un utilisateur et de calculer les nb * de jours de congés/rtt restant * * @param utilisateur * @return * @throws AbsenceException */ public SessionUtilisateur loadSessionUtilisateur(Long utilisateurId, Date dateAbsence) throws Exception { // date du jour Date now = new Date(); now = DateUtils.truncate(now, Calendar.DATE); Utilisateur utilisateur = utilisateurRepository.findOne(utilisateurId); SessionUtilisateur session = new SessionUtilisateur(); session.setUtilisateur(utilisateur); // recuperation des rtt de l'utilisateur sur la période liée à la date d'absence souhaitée List<DemandeAbsence> rtts = absenceRepository.findByUtilisateur( utilisateur.getId(), getDateDebutPeriodeRTT(dateAbsence), getDateFinPeriodeRTT(dateAbsence), TypeAbsence.RTT); // recuperation des conges de l'utilisateur sur la période liée à la date d'absence souhaitée List<DemandeAbsence> conges = absenceRepository.findByUtilisateur( utilisateur.getId(), getDateDebutPeriodeConges(dateAbsence), getDateFinPeriodeConges(dateAbsence), TypeAbsence.CONGE); // recuperation des conges de l'utilisateur sur la période liée à la date d'absence souhaitée List<DemandeAbsence> autresConges = absenceRepository.findByUtilisateur( utilisateur.getId(), now, DateUtils.addYears(now, 1), TypeAbsence.AUTRE); // init des compteurs par rapport aux infos utilisateurs (congés/RTT de l'année + deltas // éventuels) CompteurConges compteurs = new CompteurConges(); session.setCompteurs(compteurs); compteurs.setCongesAposer(utilisateur.getNbConges()); compteurs.setRttAposer(utilisateur.getNbRTT()); // prise en compte des deltas si la date de l'absence se trouve dans la période courante if (isPeriodeCouranteConges(dateAbsence)) { compteurs.setCongesAposer(compteurs.getCongesAposer() + utilisateur.getDeltaJoursConges()); } if (isPeriodeCouranteRTT(dateAbsence)) { compteurs.setRttAposer(compteurs.getRttAposer() + utilisateur.getDeltaJoursRTT()); } // maj des compteurs par rapport à la liste des absences // TODO gérer les cas de 80% for (DemandeAbsence rtt : rtts) { if (!rtt.getStatut().equals(StatutAbsence.REFUSE)) { float nbJours = getNbJoursForAbsence(rtt); compteurs.setRttAposer(compteurs.getRttAposer() - nbJours); if (rtt.getStatut().equals(StatutAbsence.POSE)) { compteurs.setRttEnAttente(compteurs.getRttEnAttente() + nbJours); } } if (rtt.getDateDebut().after(now)) { session.getAbsences().add(rtt); } } for (DemandeAbsence conge : conges) { if (!conge.getStatut().equals(StatutAbsence.REFUSE)) { float nbJours = getNbJoursForAbsence(conge); compteurs.setCongesAposer(compteurs.getCongesAposer() - nbJours); if (conge.getStatut().equals(StatutAbsence.POSE)) { compteurs.setCongesEnAttente(compteurs.getCongesEnAttente() + nbJours); } } if (conge.getDateDebut().after(now)) { session.getAbsences().add(conge); } } for (DemandeAbsence conge : autresConges) { if (conge.getDateDebut().after(now)) { session.getAbsences().add(conge); } } Collections.sort(session.getAbsences()); // ajout des absences sur la période suivante List<DemandeAbsence> rttFuturs = absenceRepository.findByUtilisateur( utilisateur.getId(), DateUtils.addDays(getDateFinPeriodeRTT(dateAbsence), 1), TypeAbsence.RTT); List<DemandeAbsence> congesFuturs = absenceRepository.findByUtilisateur( utilisateur.getId(), DateUtils.addDays(getDateFinPeriodeConges(dateAbsence), 1), TypeAbsence.CONGE); List<DemandeAbsence> autresCongesFuturs = absenceRepository.findByUtilisateur( utilisateur.getId(), DateUtils.addDays(getDateFinPeriodeConges(dateAbsence), 1), TypeAbsence.AUTRE); session.getAbsencesFutures().addAll(rttFuturs); session.getAbsencesFutures().addAll(congesFuturs); session.getAbsencesFutures().addAll(autresCongesFuturs); Collections.sort(session.getAbsencesFutures()); return session; }