示例#1
0
        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();
        }