AppSAV/MauiAppStock/Views/EditPiecePage.xaml.cs

76 lines
2.5 KiB
C#

using MauiAppStock.Models;
using MauiAppStock.Data;
namespace MauiAppStock.Views
{
public partial class EditPiecePage : ContentPage
{
private Piece _piece;
private List<Fournisseur> _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();
}
}
}
}