push de Fournisseur + base de style (logo bou

tons)
This commit is contained in:
bayardk 2025-04-08 11:55:53 +02:00
parent b8f9c55b66
commit a2f833d35d
12 changed files with 193 additions and 4 deletions

View File

@ -20,6 +20,7 @@ namespace MauiAppStock.Data
await db.CreateTableAsync<Appareil>();
await db.CreateTableAsync<Piece>();
await db.CreateTableAsync<AppareilPiece>(); // Table de liaison
await db.CreateTableAsync<Fournisseur>();
}
}
@ -65,6 +66,29 @@ namespace MauiAppStock.Data
return db.DeleteAsync(piece);
}
// CRUD pour Fournisseur
public static Task<int> AddFournisseurAsync(Fournisseur fournisseur)
{
return db.InsertAsync(fournisseur);
}
public static Task<List<Fournisseur>> GetFournisseursAsync()
{
return db.Table<Fournisseur>().ToListAsync();
}
public static Task<int> UpdateFournisseursync(Fournisseur fournisseur)
{
return db.UpdateAsync(fournisseur);
}
public static Task<int> DeleteFournisseurAsync(Fournisseur fournisseur)
{
return db.DeleteAsync(fournisseur);
}
// Liaison entre Appareil et Piece
public static Task<int> AddAppareilPieceAsync(AppareilPiece appareilPiece)
{

View File

@ -0,0 +1,13 @@
using SQLite;
namespace MauiAppStock.Models
{
public class Fournisseur
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Nom { get; set; }
public string Numtel { get; set; }
}
}

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application android:allowBackup="true" android:icon="@mipmap/appicon" android:roundIcon="@mipmap/appicon_round" android:supportsRtl="true"></application>
<application android:allowBackup="true" android:icon="@mipmap/image" android:roundIcon="@mipmap/image" android:supportsRtl="true"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

View File

@ -0,0 +1,42 @@
using System.Collections.ObjectModel;
using System.Threading.Tasks;
using System.Windows.Input;
using MauiAppStock.Models;
using MauiAppStock.Data;
using MauiAppStock.Helpers;
namespace MauiAppStock.ViewModels
{
public class FournisseursViewModel : BaseViewModel
{
public ObservableCollection<Fournisseur> Fournisseurs { get; set; }
public ICommand LoadFournisseursCommand { get; }
public ICommand DeleteFournisseurCommand { get; }
public FournisseursViewModel()
{
Fournisseurs = new ObservableCollection<Fournisseur>();
LoadFournisseursCommand = new AsyncCommand(LoadFournisseurs);
DeleteFournisseurCommand = new AsyncCommand<Fournisseur>(DeleteFournisseur);
}
private async Task LoadFournisseurs()
{
Fournisseurs.Clear();
var fournisseursList = await Database.GetFournisseursAsync();
foreach (var fournisseur in fournisseursList)
{
Fournisseurs.Add(fournisseur);
}
}
private async Task DeleteFournisseur(Fournisseur fournisseur)
{
if (fournisseur != null)
{
await Database.DeleteFournisseurAsync(fournisseur);
Fournisseurs.Remove(fournisseur);
}
}
}
}

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage x:Class="MauiAppStock.Views.AddFournisseurPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
<StackLayout Padding="10">
<Label Text="Ajouter un Fournisseur" FontSize="24" HorizontalOptions="Center"/>
<Entry x:Name="NomEntry" Placeholder="Nom"/>
<Entry x:Name="NumEntry" Placeholder="NumTel" Keyboard="Numeric"/>
<Button Text="Enregistrer" Clicked="OnSaveClicked"/>
</StackLayout>
</ContentPage>

View File

@ -0,0 +1,29 @@
using MauiAppStock.Models;
using MauiAppStock.Data;
namespace MauiAppStock.Views
{
public partial class AddFournisseurPage : ContentPage
{
public AddFournisseurPage()
{
InitializeComponent();
}
private async void OnSaveClicked(object sender, EventArgs e)
{
{
var fournisseur = new Fournisseur
{
Nom = NomEntry.Text,
Numtel = NumEntry.Text
}
;
await Database.AddFournisseurAsync(fournisseur);
await Navigation.PopAsync();
}
}
}
}

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
x:Class="MauiAppStock.Views.FournisseursPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:vm="clr-namespace:MauiAppStock.ViewModels">
<ContentPage.BindingContext>
<vm:FournisseursViewModel/>
</ContentPage.BindingContext>
<ContentPage.ToolbarItems>
<ToolbarItem Text="+" Clicked="OnAddFournisseurClicked"/>
</ContentPage.ToolbarItems>
<StackLayout Padding="10">
<Label Text="Liste des Fournisseurs" FontSize="24" HorizontalOptions="Center"/>
<ListView x:Name="FournisseursListView" ItemsSource="{Binding Fournisseurs}"
IsPullToRefreshEnabled="True"
RefreshCommand="{Binding LoadFournisseursCommand}"
>
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding Nom}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage>

View File

@ -0,0 +1,26 @@
using MauiAppStock.Models;
using MauiAppStock.ViewModels;
namespace MauiAppStock.Views
{
public partial class FournisseursPage : ContentPage
{
public FournisseursPage()
{
InitializeComponent();
}
protected override void OnAppearing()
{
base.OnAppearing();
var viewModel = BindingContext as FournisseursViewModel;
viewModel.LoadFournisseursCommand.Execute(null);
}
private async void OnAddFournisseurClicked(object sender, EventArgs e)
{
// Navigation vers la page d'ajout
await Navigation.PushAsync(new AddFournisseurPage());
}
}
}

View File

@ -4,8 +4,17 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
<StackLayout Padding="20" Spacing="20" VerticalOptions="Center">
<Label Text="Menu Principal" FontSize="30" HorizontalOptions="Center" />
<Button Text="Gestion des Appareils" Clicked="OnAppareilsClicked" />
<Button Text="Gestion des Pièces" Clicked="OnPiecesClicked" />
<Button Text="Associer une Pièce à un Appareil" Clicked="OnAssocierPieceClicked" />
<Button Text="Gestion des Appareils" BackgroundColor="Black" Clicked="OnAppareilsClicked" />
<Button Text="Gestion des Pièces" BackgroundColor="Black" Clicked="OnPiecesClicked" />
<Button Text="Gestion des Fournisseurs" BackgroundColor="Black" Clicked="OnFournisseursClicked" />
<Button Text="Associer une Pièce à un Appareil" BackgroundColor="Black" Clicked="OnAssocierPieceClicked" />
<VerticalStackLayout Padding="20" Spacing="20">
<Image Source="logo.png"
HeightRequest="200"
Aspect="AspectFit" />
</VerticalStackLayout>
</StackLayout>
</ContentPage>

View File

@ -20,6 +20,12 @@ namespace MauiAppStock.Views
await Navigation.PushAsync(new PiecesPage());
}
private async void OnFournisseursClicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new FournisseursPage());
}
private async void OnAssocierPieceClicked(object sender, EventArgs e)
{
// On navigue vers une page qui permet de sélectionner un appareil pour ensuite associer une pièce.