private void SelectHolidays(bool modif) { if (holidays.SelectedCells.Count == 0) { Utils.Error("Veuillez sélectionner un jour"); return; } if (this.holidays.SelectedCells.Count > 1) { Utils.Error("Sélectionnez uniquement une journée dans le congé concerné"); return; } if ( !ManageDate.Instance.IsExistingDay(this.holidays.SelectedCells[0].RowIndex + 1, this.holidays.SelectedCells[0].ColumnIndex + 1)) { Utils.Error("Ce jour n'existe pas"); return; } DateTime date = new DateTime(currentYear, this.holidays.SelectedCells[0].RowIndex + 1, this.holidays.SelectedCells[0].ColumnIndex + 1); Holiday holiday = HolidayManager.Instance.FilterByDate(date); if (holiday == null) { Utils.Error("Ce jour n'est pas un congé"); return; } if (holiday.Accepted) { Utils.Error(modif ? "Vous ne pouvez modifier que les congés qui n'ont pas été validés" : "Vous ne pouvez supprimer que les congés qui n'ont pas été validés"); return; } if (!modif) { if ( Utils.Prompt("Voulez-vous vraiment supprimer votre demande de congé du " + holiday.StartingDate.ToShortDateString() + " au " + holiday.EndingDate.ToShortDateString() + " ? ")) { HolidayManager.Instance.Delete(holiday); Utils.Notify("Suppression effectuée"); } } else { int nbHollidays = holiday.ConcernedDays().Except(ManageDate.Instance.UnworkingDate).ToList().Count(); NewHolidaysForm form = new NewHolidaysForm(holiday, nbHollidays, alreadyPresent); if (form.ShowDialog() != DialogResult.OK) { return; } HolidayManager.Instance.Save(form.CurrentHoliday); Utils.Notify("Modification enregistrée"); } UpdateCalendar(); }