using MauiAppStock.Models; using MauiAppStock.Data; namespace MauiAppStock.Views { public partial class EditPiecePage : ContentPage { private Piece _piece; private List _fournisseurs; public EditPiecePage(Piece piece) { InitializeComponent(); _piece = piece; // Remplir les champs de base NomEntry.Text = piece.Nom; DescriptionEditor.Text = piece.Description; PrixEntry.Text = piece.Prix.ToString(); StockEntry.Text = piece.Stock.ToString(); } protected override async void OnAppearing() { base.OnAppearing(); // Charger les fournisseurs _fournisseurs = await Database.GetFournisseursAsync(); FournisseurPicker.ItemsSource = _fournisseurs; FournisseurPicker.ItemDisplayBinding = new Binding("Nom"); // Sélectionner le fournisseur existant (si défini) if (!string.IsNullOrEmpty(_piece.Fournisseur)) { var fournisseurActuel = _fournisseurs.FirstOrDefault(f => f.Nom == _piece.Fournisseur); if (fournisseurActuel != null) { FournisseurPicker.SelectedItem = fournisseurActuel; } } } private async void OnSaveClicked(object sender, EventArgs e) { if (double.TryParse(PrixEntry.Text, out double prix) && int.TryParse(StockEntry.Text, out int stock)) { _piece.Nom = NomEntry.Text; _piece.Description = DescriptionEditor.Text; _piece.Prix = prix; _piece.Stock = stock; var fournisseurSelectionne = FournisseurPicker.SelectedItem as Fournisseur; _piece.Fournisseur = fournisseurSelectionne?.Nom; await Database.UpdatePieceAsync(_piece); await Navigation.PopAsync(); } else { await DisplayAlert("Erreur", "Veuillez vérifier les valeurs du prix et du stock.", "OK"); } } private async void OnDeleteClicked(object sender, EventArgs e) { bool confirm = await DisplayAlert("Confirmation", "Voulez-vous vraiment supprimer cette pièce ?", "Oui", "Non"); if (confirm) { await Database.DeletePieceAsync(_piece); await Navigation.PopAsync(); } } } }