mediatek86/Mediatek86/View/ModifierAbsence.cs

84 lines
2.7 KiB
C#
Raw Normal View History

2025-06-04 17:10:08 +00:00
using Mediatek86.Controller;
using projet.modele;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace projet.View
{
public partial class ModifierAbsence : Form
{
private ModifierAbsenceController controller;
Absence absence;
Personnel personnel;
/// <summary>
/// Méthode d'initialisation du formulaire de modification d'absence.
/// </summary>
public ModifierAbsence(Absence absence, Personnel personnel)
{
InitializeComponent();
Init();
this.absence = absence;
this.personnel = personnel;
RemplirDefaut();
}
public void Init()
{
controller = new ModifierAbsenceController();
RemplirComboBoxMotif();
}
public void RemplirDefaut()
{
textBoxDateDebut.Text = absence.DateDebut.ToString("dd-MM-yyyy");
textBoxDateFin.Text = absence.DateFin.HasValue ? absence.DateFin.Value.ToString("dd-MM-yyyy") : string.Empty;
int motifId = controller.GetMotifIdByLibelle(absence.IdMotif);
Motif motif = controller.GetMotifById(motifId);
//comboBoxMotif.SelectedItem = motif;
}
private void btnRetour_Click(object sender, EventArgs e)
{
this.Hide();
this.Close();
GestionAbsence gestionAbsence = new GestionAbsence(personnel);
gestionAbsence.ShowDialog();
}
private void RemplirComboBoxMotif()
{
List<Motif> motifs = controller.GetAllMotifs();
comboBoxMotif.Items.Clear();
foreach (Motif motif in motifs)
{
comboBoxMotif.Items.Add(motif);
}
}
private void buttonModifier_Click(object sender, EventArgs e)
{
string NomMotif = comboBoxMotif.SelectedItem != null ? ((Motif)comboBoxMotif.SelectedItem).Libelle : string.Empty;
Absence newAbsence = new Absence(
personnel.IdPersonnel,
DateTime.ParseExact(textBoxDateDebut.Text, "dd-MM-yyyy", null),
string.IsNullOrEmpty(textBoxDateFin.Text) ? (DateTime?)null : DateTime.ParseExact(textBoxDateFin.Text, "dd-MM-yyyy", null),
Convert.ToString(controller.GetMotifIdByLibelle(NomMotif))
);
controller.ModifierAbsence(newAbsence, personnel);
this.Hide();
this.Close();
GestionAbsence gestionAbsence = new GestionAbsence(personnel);
gestionAbsence.ShowDialog();
}
}
}