76 lines
2.5 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
}
|