Compare commits

...

45 Commits

Author SHA1 Message Date
Nicolas MAYE 87f00a822b modification sur ecran de connexion
continuous-integration/drone/push Build is failing Details
2 years ago
Hugo LIVET 1abb8c9ada Merge branch 'Binding'
continuous-integration/drone/push Build is failing Details
2 years ago
Hugo LIVET 341bb8f5e6 ReadOnly buggé :(
continuous-integration/drone/push Build is failing Details
2 years ago
Hugo LIVET a392a21fc5 Patch Heure dans les vues
continuous-integration/drone/push Build is failing Details
2 years ago
Hugo LIVET 59fbd7c2d6 Réparation des tags de moyens de payement
continuous-integration/drone/push Build is failing Details
2 years ago
Hugo LIVET 9ce0a4af12 Push gestion Banques Desktop
continuous-integration/drone/push Build is failing Details
2 years ago
Hugo LIVET 6db964aafb Merge branch 'Binding' of https://codefirst.iut.uca.fr/git/ConsEcoTeam/ConsEco into Binding
continuous-integration/drone/push Build is failing Details
2 years ago
Hugo LIVET eeb10e8926 Bind Mobile
2 years ago
Hugo LIVET 12f7ebad49 Binding Mobile
2 years ago
Nicolas MAYE 3c93c66374 Modification majeur interface utilisateur (modification style global + navigation + binding statistique...)
continuous-integration/drone/push Build is failing Details
2 years ago
Nicolas MAYE fe1f1f8ff9 implémentation des fonctionnalités enregistrer et supprimer echeance + retirer et supprimer operation
2 years ago
Nicolas MAYE 4f0099fcef methode debit et crédit implémentés
2 years ago
Hugo LIVET c031ce2137 gestion combo box
continuous-integration/drone/push Build was killed Details
2 years ago
Hugo LIVET fd34a64857 Merge branch 'Binding' of https://codefirst.iut.uca.fr/git/ConsEcoTeam/ConsEco into Binding
continuous-integration/drone/push Build was killed Details
2 years ago
Hugo LIVET 2a0172ca8d add image
2 years ago
Nicolas MAYE bf2838b4c1 fusion
continuous-integration/drone/push Build was killed Details
2 years ago
Nicolas MAYE 43af56ca06 modification temporaire
2 years ago
Hugo LIVET ae06599285 Changement d'icones
continuous-integration/drone/push Build was killed Details
2 years ago
Hugo LIVET 529f4fd8b4 Bind mieux que nico psk il sait pas écrire
continuous-integration/drone/push Build was killed Details
2 years ago
Hugo LIVET 62c668c011 Patch bug LoadCompte, en cas de pluseurs appels de la méthode
continuous-integration/drone/push Build was killed Details
2 years ago
Nicolas MAYE c82de40d19 binding partie échéancier
continuous-integration/drone/push Build was killed Details
2 years ago
Nicolas MAYE ec757cad9f binding partie operation
continuous-integration/drone/push Build was killed Details
2 years ago
Nicolas MAYE d2cc90c555 Merge branch 'Binding' of https://codefirst.iut.uca.fr/git/ConsEcoTeam/ConsEco into Binding
continuous-integration/drone/push Build was killed Details
2 years ago
Nicolas MAYE 85ad54c95f modification mineur sur les vues
2 years ago
Hugo LIVET 517db9a0fe Bind nom planification
continuous-integration/drone/push Build was killed Details
2 years ago
Hugo LIVET 79964920a9 Bind Plannification ok
continuous-integration/drone/push Build was killed Details
2 years ago
Hugo LIVET b7c339d999 Fussion
2 years ago
Hugo LIVET 72156049aa Binding Plannification OK
2 years ago
Nicolas MAYE 75be7dd588 modification des vue concernant les fonctions
continuous-integration/drone/push Build was killed Details
2 years ago
Nicolas MAYE f3cf398e73 modification du dashboard pour le responsive
continuous-integration/drone/push Build was killed Details
2 years ago
Nicolas MAYE a7b8445c65 Amélioration UX (uniformisation de l'aspect visuel + ajout de bordure) + Binding du user dans "mon compte"
continuous-integration/drone/push Build was killed Details
2 years ago
Nicolas MAYE 3f341cebba modification vue login
continuous-integration/drone/push Build is failing Details
2 years ago
Nicolas MAYE 5e393fc899 modification mineur
continuous-integration/drone/push Build is failing Details
2 years ago
Nicolas MAYE 8346bdc69f Merge branch 'Binding' of https://codefirst.iut.uca.fr/git/ConsEcoTeam/ConsEco into Binding
2 years ago
Nicolas MAYE b6a61795e8 ajout de loadBanque, loadInscrit et loadBanqueDisponible + binding
2 years ago
Hugo LIVET f307902c6e System de connexion Desktop
continuous-integration/drone/push Build is failing Details
2 years ago
Hugo LIVET 325ca468f1 Push a reprendre
continuous-integration/drone/push Build is failing Details
2 years ago
Nicolas MAYE eba13a0488 Transférer les fichiers vers 'Documentation'
continuous-integration/drone/push Build is failing Details
2 years ago
Nicolas MAYE cf61f1c62a Supprimer 'Documentation/diagramme d'utilisation cons'eco.mdj'
continuous-integration/drone/push Build is failing Details
2 years ago
Nicolas MAYE bb85c270f1 Supprimer 'Documentation/Diagramme de cas dutilisation.pdf'
continuous-integration/drone/push Build is failing Details
2 years ago
Nicolas MAYE 84810a8966 Supprimer 'Documentation/Diagramme de cas d'utilisation.pdf'
continuous-integration/drone/push Build is failing Details
2 years ago
Nicolas MAYE c77146cd4e Transférer les fichiers vers 'Documentation'
continuous-integration/drone/push Build is failing Details
2 years ago
Nicolas MAYE 0a4b1727d8 modification et binding de compte
continuous-integration/drone/push Build is failing Details
2 years ago
Nicolas MAYE 1ca736aa2f implémentation des vues dans la partie statistique + ajout des comboBox
continuous-integration/drone/push Build is failing Details
2 years ago
Nicolas MAYE 582df8f9d8 Début de la modification, du manager et persistance
continuous-integration/drone/push Build is failing Details
2 years ago

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -45,7 +45,7 @@ $app->get('/Banque/', function(Request $request, Response $response){
$app->post('/Banque/FromId/', function(Request $request, Response $response,array $args){ $app->post('/Banque/FromId/', function(Request $request, Response $response,array $args){
$id = $request->getParsedBody()["id"]; $id = $request->getParsedBody()["id"];
$query = 'SELECT * FROM Banque WHERE nom IN (SELECT nomBanque FROM InscrBanque WHERE idInscrit=:id)'; $query = 'SELECT id, nomBanque FROM InscrBanque WHERE idInscrit=:id';
try{ try{
$db = new Database(); $db = new Database();

@ -155,14 +155,14 @@ namespace Data
} }
} }
public static async Task<List<Banque>> GetBanqueAsync(string id) public static async Task<List<BanqueInscrit>> GetBanqueAsync(string id)
{ {
var dataBody = new Dictionary<string, string> { { "id", id } }; var dataBody = new Dictionary<string, string> { { "id", id } };
HttpResponseMessage reponse = await cli.PostAsJsonAsync(POST_BANQUES_INSCRIT_DATA_URL, dataBody); HttpResponseMessage reponse = await cli.PostAsJsonAsync(POST_BANQUES_INSCRIT_DATA_URL, dataBody);
if (reponse.IsSuccessStatusCode) if (reponse.IsSuccessStatusCode)
{ {
return JsonConvert.DeserializeObject<List<Banque>>(await reponse.Content.ReadAsStringAsync()); return JsonConvert.DeserializeObject<List<BanqueInscrit>>(await reponse.Content.ReadAsStringAsync());
} }
else else
{ {
@ -290,7 +290,7 @@ namespace Data
var dataBody = new Dictionary<string, string> var dataBody = new Dictionary<string, string>
{ {
{ "compte", compte.Identifiant }, { "compte", compte.Identifiant },
{ "nom", operation.IntituleOperation }, { "nom", operation.Nom },
{ "montant", operation.Montant.ToString() }, { "montant", operation.Montant.ToString() },
{ "dateO", operation.DateOperation.ToString() }, { "dateO", operation.DateOperation.ToString() },
{ "methodePayement", operation.ModePayement.ToString() }, { "methodePayement", operation.ModePayement.ToString() },
@ -357,7 +357,7 @@ namespace Data
var dataBody = new Dictionary<string, string> var dataBody = new Dictionary<string, string>
{ {
{ "compte", compte.Identifiant }, { "compte", compte.Identifiant },
{ "nom", planification.IntituleOperation }, { "nom", planification.Nom },
{ "montant", planification.Montant.ToString() }, { "montant", planification.Montant.ToString() },
{ "dateO", planification.DateOperation.ToString() }, { "dateO", planification.DateOperation.ToString() },
{ "methodePayement", planification.ModePayement.ToString() }, { "methodePayement", planification.ModePayement.ToString() },
@ -423,7 +423,7 @@ namespace Data
var dataBody = new Dictionary<string, string> var dataBody = new Dictionary<string, string>
{ {
{ "compte", compte.Identifiant }, { "compte", compte.Identifiant },
{ "nom", echeance.IntituleOperation }, { "nom", echeance.Nom },
{ "montant", echeance.Montant.ToString() }, { "montant", echeance.Montant.ToString() },
{ "dateO", echeance.DateOperation.ToString() }, { "dateO", echeance.DateOperation.ToString() },
{ "methodePayement", echeance.ModePayement.ToString() }, { "methodePayement", echeance.ModePayement.ToString() },

@ -20,6 +20,9 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="Npgsql" Version="6.0.7" /> <PackageReference Include="Npgsql" Version="6.0.7" />
<PackageReference Include="Syncfusion.Maui.Charts" Version="20.4.43" />
<PackageReference Include="Syncfusion.Maui.Inputs" Version="20.4.43" />
<PackageReference Include="Syncfusion.Maui.ListView" Version="20.4.43" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

@ -56,7 +56,7 @@ namespace Data
{ {
return await ClientAPI.DeleteBanqueInscritAsync(banque.Nom, inscrit.Id.ToString()); return await ClientAPI.DeleteBanqueInscritAsync(banque.Nom, inscrit.Id.ToString());
} }
public async Task<IList<Banque>> RecupererBanques(Inscrit inscrit) public async Task<IList<BanqueInscrit>> RecupererBanques(Inscrit inscrit)
{ {
return await ClientAPI.GetBanqueAsync(inscrit.Id.ToString()); return await ClientAPI.GetBanqueAsync(inscrit.Id.ToString());
} }
@ -75,9 +75,9 @@ namespace Data
{ {
return await ClientAPI.DeleteCompteInscritAsync(compte.Nom, inscrit.Id.ToString()); return await ClientAPI.DeleteCompteInscritAsync(compte.Nom, inscrit.Id.ToString());
} }
public async Task<IList<Compte>> RecupererCompte(Banque banque, Inscrit inscrit) public async Task<IList<Compte>> RecupererCompte(BanqueInscrit banque)
{ {
return await ClientAPI.GetCompteAsync(inscrit.Id.ToString()); return await ClientAPI.GetCompteAsync(banque.Id.ToString());
} }
@ -88,7 +88,7 @@ namespace Data
} }
public async Task<bool> SupprimerOperation(Compte compte, Operation operation) public async Task<bool> SupprimerOperation(Compte compte, Operation operation)
{ {
return await ClientAPI.DeleteOperationInscritAsync(compte.Identifiant, operation.IntituleOperation); return await ClientAPI.DeleteOperationInscritAsync(compte.Identifiant, operation.Nom);
} }
public async Task<IList<Operation>> RecupererOperation(Compte compte) public async Task<IList<Operation>> RecupererOperation(Compte compte)
{ {
@ -103,7 +103,7 @@ namespace Data
} }
public async Task<bool> SupprimerPlanification(Compte compte, Planification planification) public async Task<bool> SupprimerPlanification(Compte compte, Planification planification)
{ {
return await ClientAPI.DeletePlanificationInscritAsync(compte.Identifiant, planification.IntituleOperation); return await ClientAPI.DeletePlanificationInscritAsync(compte.Identifiant, planification.Nom);
} }
public async Task<IList<Planification>> RecupererPlanification(Compte compte) public async Task<IList<Planification>> RecupererPlanification(Compte compte)
{ {
@ -117,7 +117,7 @@ namespace Data
} }
public async Task<bool> SupprimerEcheance(Compte compte, Echeance echeance) public async Task<bool> SupprimerEcheance(Compte compte, Echeance echeance)
{ {
return await ClientAPI.DeleteEcheanceInscritAsync(compte.Identifiant, echeance.IntituleOperation); return await ClientAPI.DeleteEcheanceInscritAsync(compte.Identifiant, echeance.Nom);
} }
public async Task<IList<Echeance>> RecupererEcheance(Compte compte) public async Task<IList<Echeance>> RecupererEcheance(Compte compte)
{ {

@ -201,7 +201,7 @@ namespace Data
throw new NotImplementedException(); throw new NotImplementedException();
} }
public Task<IList<Banque>> RecupererBanques(Inscrit inscrit) public Task<IList<BanqueInscrit>> RecupererBanques(Inscrit inscrit)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
@ -211,7 +211,7 @@ namespace Data
throw new NotImplementedException(); throw new NotImplementedException();
} }
public Task<IList<Compte>> RecupererCompte(Banque banque, Inscrit inscrit) public Task<IList<Compte>> RecupererCompte(BanqueInscrit banque)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }

@ -69,7 +69,7 @@ CREATE TABLE Echeancier
methodePayement varchar(20), methodePayement varchar(20),
isDebit boolean, isDebit boolean,
tag varchar(30), tag varchar(30),
CONSTRAINT ck_methEch CHECK (methodePayement IN ('Cb','Esp','Chq','Vir','Pre', 'None')), CONSTRAINT ck_methEch CHECK (methodePayement IN ('None','CB','Espece','Cheque','Virement', 'Prevelement')),
CONSTRAINT ck_tagEch CHECK (tag IN ('Alimentaire','Carburant','Habitation','Energie','Telephonie','Loisir','Restauration','Divers','Transport','Transaction','Santé')), CONSTRAINT ck_tagEch CHECK (tag IN ('Alimentaire','Carburant','Habitation','Energie','Telephonie','Loisir','Restauration','Divers','Transport','Transaction','Santé')),
FOREIGN KEY(compte) REFERENCES Compte(id) FOREIGN KEY(compte) REFERENCES Compte(id)
); );
@ -85,7 +85,7 @@ CREATE TABLE Operation
isDebit boolean, isDebit boolean,
fromBanque boolean, fromBanque boolean,
tag varchar(30), tag varchar(30),
CONSTRAINT ck_methOpe CHECK (methodePayement IN ('Cb','Esp','Chq','Vir','Pre', 'None')), CONSTRAINT ck_methOpe CHECK (methodePayement IN ('None','CB','Espece','Cheque','Virement', 'Prevelement')),
CONSTRAINT ck_tagOpe CHECK (tag IN ('Alimentaire','Carburant','Habitation','Energie','Telephonie','Loisir','Restauration','Divers','Transport','Transaction','Santé')), CONSTRAINT ck_tagOpe CHECK (tag IN ('Alimentaire','Carburant','Habitation','Energie','Telephonie','Loisir','Restauration','Divers','Transport','Transaction','Santé')),
FOREIGN KEY(compte) REFERENCES Compte(id) FOREIGN KEY(compte) REFERENCES Compte(id)
); );
@ -100,7 +100,7 @@ CREATE TABLE Planification
methodePayement varchar(20), methodePayement varchar(20),
isDebit boolean, isDebit boolean,
tag varchar(30), tag varchar(30),
CONSTRAINT ck_methPla CHECK (methodePayement IN ('Cb','Esp','Chq','Vir','Pre', 'None')), CONSTRAINT ck_methPla CHECK (methodePayement IN ('None','CB','Espece','Cheque','Virement', 'Prevelement')),
CONSTRAINT ck_tagPla CHECK (tag IN ('Alimentaire','Carburant','Habitation','Energie','Telephonie','Loisir','Restauration','Divers','Transport','Transaction','Santé')), CONSTRAINT ck_tagPla CHECK (tag IN ('Alimentaire','Carburant','Habitation','Energie','Telephonie','Loisir','Restauration','Divers','Transport','Transaction','Santé')),
FOREIGN KEY(compte) REFERENCES Compte(id) FOREIGN KEY(compte) REFERENCES Compte(id)
); );

@ -14,7 +14,7 @@
<ShellContent Title="Opérations" <ShellContent Title="Opérations"
Icon="dollar_black.png" Icon="dollar_black.png"
ContentTemplate="{DataTemplate local:Operations}" /> ContentTemplate="{DataTemplate local:Operations}" />
<ShellContent Title="Planification" <ShellContent Title="Echeance"
Icon="planification_black.png" Icon="planification_black.png"
ContentTemplate="{DataTemplate local:Planification}" /> ContentTemplate="{DataTemplate local:Planification}" />
<ShellContent Title="Paramètres" <ShellContent Title="Paramètres"

@ -4,7 +4,7 @@
x:Class="IHM.Desktop.CV_AddPlanification"> x:Class="IHM.Desktop.CV_AddPlanification">
<Grid BackgroundColor="{StaticResource Secondary}"> <Grid BackgroundColor="{StaticResource Tertiary}">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
@ -13,6 +13,8 @@
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/>
<RowDefinition Height="2*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
@ -23,20 +25,26 @@
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Label Text="Planification d'une échéance" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3" Style="{StaticResource TitreWindows}"/>
<Label Text="Planification d'une échéance" Grid.Column="0" HorizontalOptions="Center" Grid.Row="0" Grid.ColumnSpan="5" Style="{StaticResource TitreWindows}" VerticalOptions="Center"/>
<Label Text="Nom" Grid.Column="1" Grid.Row="2" Style="{StaticResource TitreWindows}" Margin="20"/> <Label Text="Nom" Grid.Column="1" Grid.Row="2" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Montant" Grid.Column="1" Grid.Row="3" Style="{StaticResource TitreWindows}" Margin="20"/> <Label Text="Montant" Grid.Column="1" Grid.Row="3" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Type" Grid.Column="1" Grid.Row="4" Style="{StaticResource TitreWindows}" Margin="20"/> <Label Text="Type" Grid.Column="1" Grid.Row="4" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Date" Grid.Column="1" Grid.Row="5" Style="{StaticResource TitreWindows}" Margin="20"/> <Label Text="Tag" Grid.Column="1" Grid.Row="5" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Date" Grid.Column="1" Grid.Row="6" Style="{StaticResource TitreWindows}" Margin="20"/>
<Entry Placeholder="Entrez un nom" Grid.Column="3" Grid.Row="2" Style="{StaticResource zoneDeTexte}" Margin="20" x:Name="name" IsTextPredictionEnabled="True"/>
<Entry Placeholder="Entrez un montant" Grid.Column="3" Grid.Row="3" Style="{StaticResource zoneDeTexte}" Margin="20" x:Name="montant"/>
<Entry Placeholder="Entrez un moyen de paiement" Grid.Column="3" Grid.Row="4" Style="{StaticResource zoneDeTexte}" Margin="20" x:Name="type"/>
<Entry Placeholder="Entrez une catégorie" Grid.Column="3" Grid.Row="5" Style="{StaticResource zoneDeTexte}" Margin="20" x:Name="tag"/>
<DatePicker Grid.Column="3" Grid.Row="6" BackgroundColor="{StaticResource Secondary}" Margin="20" x:Name="date"/>
<Entry Placeholder="Entrez un nom" Grid.Column="3" Grid.Row="2" Style="{StaticResource zoneDeTexte}" Margin="20"/>
<Entry Placeholder="Entrez un montant" Grid.Column="3" Grid.Row="3" Style="{StaticResource zoneDeTexte}" Margin="20"/>
<Entry Placeholder="Entrez un type de transaction" Grid.Column="3" Grid.Row="4" Style="{StaticResource zoneDeTexte}" Margin="20"/>
<DatePicker Grid.Column="3" Grid.Row="5" BackgroundColor="{StaticResource Secondary}" Margin="20"/>
<Button Text="ANNULER" Clicked="annuler_button" Grid.Column="1" Grid.Row="6" Style="{StaticResource WindowsButton}"/> <Button Text="ANNULER" Clicked="Button_Annuler" Grid.Column="1" Grid.Row="7" Style="{StaticResource WindowsButton2}"/>
<Button Text="VALIDER" Clicked="annuler_button" Grid.Column="3" Grid.Row="6" Style="{StaticResource WindowsButton}"/> <Button Text="VALIDER" Clicked="Button_Valider" Grid.Column="3" Grid.Row="7" Style="{StaticResource WindowsButton}"/>
</Grid> </Grid>

@ -1,17 +1,58 @@
using Model;
namespace IHM.Desktop; namespace IHM.Desktop;
public partial class CV_AddPlanification : ContentView public partial class CV_AddPlanification : ContentView
{ {
public CV_AddPlanification() public Manager Mgr => (App.Current as App).Manager;
public CV_AddPlanification()
{ {
InitializeComponent(); InitializeComponent();
} Mgr.LoadBanque();
Mgr.LoadCompte();
private void annuler_button(object sender, EventArgs e)
{
} BindingContext = Mgr;
}
private void Button_Annuler(object sender, EventArgs e)
{
Navigation.PushAsync(new Dashboard());
}
private void Button_Valider(object sender, EventArgs e)
{
string nom = name.Text;
double Montant = Double.Parse(montant.Text);
string Type = type.Text;
string Tag = tag.Text;
DateTime Date = date.Date;
TagOperation to2 = new TagOperation();
MethodePayement mp2 = new MethodePayement();
foreach (string mp in Enum.GetNames(typeof(MethodePayement)))
{
if (Equals(Type, mp))
{
mp2 = (MethodePayement)Enum.Parse(typeof(MethodePayement), Type);
}
}
foreach (string to in Enum.GetNames(typeof(TagOperation)))
{
if (Equals(Tag, to))
{
to2 = (TagOperation)Enum.Parse(typeof(TagOperation), Tag);
}
}
Model.Planification planification = new(nom, Montant, Date, mp2, to2,false);
Mgr.ajouterPlanification(Mgr.SelectedCompte, planification);
Navigation.PushAsync(new Dashboard());
}
} }

@ -1,9 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui" <ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:inputs="clr-namespace:Syncfusion.Maui.Inputs;assembly=Syncfusion.Maui.Inputs"
x:Class="IHM.Desktop.CV_DeletePlanification"> x:Class="IHM.Desktop.CV_DeletePlanification">
<Grid BackgroundColor="{StaticResource Secondary}">
<Grid BackgroundColor="{StaticResource Tertiary}">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
@ -21,17 +24,20 @@
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Label Text="Supprimer une planification" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3" Style="{StaticResource TitreWindows}" VerticalOptions="Center"/>
<Label Text="Selectionner la planification" Grid.ColumnSpan="3" Grid.Column="0" Grid.Row="3" Style="{StaticResource TitreWindows}" VerticalOptions="Center"/>
<Label Text="Supprimer une planification" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3" Style="{StaticResource TitreWindows}"/>
<Label Text="Nom" Grid.Column="1" Grid.Row="2" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Montant" Grid.Column="1" Grid.Row="3" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Type" Grid.Column="1" Grid.Row="4" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Date" Grid.Column="1" Grid.Row="5" Style="{StaticResource TitreWindows}" Margin="20"/>
<inputs:SfComboBox HeightRequest="50" ItemsSource="{Binding SelectedCompte.LesPla}" Grid.Column="3" Grid.Row="3" x:Name="recup"/>
<Button Text="ANNULER" Clicked="Button_Annuler" Grid.Column="1" Grid.Row="5" Style="{StaticResource WindowsButton2}"/>
<Button Text="VALIDER" Clicked="Button_Valider" Grid.Column="3" Grid.Row="5" Style="{StaticResource WindowsButton}"/>
<Button Text="ANNULER" Clicked="Button_Clicked" Grid.Column="1" Grid.Row="6" Style="{StaticResource WindowsButton}"/>
<Button Text="VALIDER" Clicked="Button_Clicked_1" Grid.Column="3" Grid.Row="6" Style="{StaticResource WindowsButton}"/>
</Grid> </Grid>
</ContentView> </ContentView>

@ -1,19 +1,29 @@
using Model;
namespace IHM.Desktop; namespace IHM.Desktop;
public partial class CV_DeletePlanification : ContentView public partial class CV_DeletePlanification : ContentView
{ {
public CV_DeletePlanification() public Manager Mgr => (App.Current as App).Manager;
public CV_DeletePlanification()
{ {
InitializeComponent(); InitializeComponent();
} Mgr.LoadBanque();
Mgr.LoadCompte();
private void Button_Clicked(object sender, EventArgs e)
{
} BindingContext = Mgr;
}
private void Button_Clicked_1(object sender, EventArgs e) private void Button_Annuler(object sender, EventArgs e)
{ {
Navigation.PushAsync(new Dashboard());
}
} private void Button_Valider(object sender, EventArgs e)
{
var s = recup.SelectedItem;
Model.Planification planification = (Model.Planification)s;
Mgr.supprimerPlanification(Mgr.SelectedCompte, planification);
Navigation.PushAsync(new Dashboard());
}
} }

@ -1,42 +1,42 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui" <ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:inputs="clr-namespace:Syncfusion.Maui.Inputs;assembly=Syncfusion.Maui.Inputs"
x:Class="IHM.Desktop.CV_EnregistrerEcheance"> x:Class="IHM.Desktop.CV_EnregistrerEcheance">
<Grid BackgroundColor="{StaticResource Secondary}">
<Grid.RowDefinitions>
<RowDefinition Height="1*"/> <Grid BackgroundColor="{StaticResource Tertiary}">
<RowDefinition Height="1*"/> <Grid.RowDefinitions>
<RowDefinition Height="2*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
</Grid.RowDefinitions> <RowDefinition Height="2*"/>
<Grid.ColumnDefinitions> <RowDefinition Height="2*"/>
<ColumnDefinition Width="1*"/> </Grid.RowDefinitions>
<ColumnDefinition Width="2*"/> <Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Label Text="Enregistrer une échéance" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3" Style="{StaticResource TitreWindows}"/>
<Label Text="Nom" Grid.Column="1" Grid.Row="2" Style="{StaticResource TitreWindows}" Margin="20"/> <Label Text="Enregistrer une échéance" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3" Style="{StaticResource TitreWindows}" VerticalOptions="Center"/>
<Label Text="Montant" Grid.Column="1" Grid.Row="3" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Type" Grid.Column="1" Grid.Row="4" Style="{StaticResource TitreWindows}" Margin="20"/> <Label Text="Selectionner l'échéance" Grid.ColumnSpan="3" Grid.Column="0" Grid.Row="3" Style="{StaticResource TitreWindows}" VerticalOptions="Center"/>
<Label Text="Date" Grid.Column="1" Grid.Row="5" Style="{StaticResource TitreWindows}" Margin="20"/>
<inputs:SfComboBox HeightRequest="50" ItemsSource="{Binding SelectedCompte.LesEch}" Grid.Column="3" Grid.Row="3" x:Name="recup"/>
<Entry Placeholder="Entrez un nom" Grid.Column="3" Grid.Row="2" Style="{StaticResource zoneDeTexte}" Margin="20"/>
<Entry Placeholder="Entrez un montant" Grid.Column="3" Grid.Row="3" Style="{StaticResource zoneDeTexte}" Margin="20"/> <Button Text="ANNULER" Clicked="Button_Annuler" Grid.Column="1" Grid.Row="5" Style="{StaticResource WindowsButton2}"/>
<Entry Placeholder="Entrez un type de transaction" Grid.Column="3" Grid.Row="4" Style="{StaticResource zoneDeTexte}" Margin="20"/> <Button Text="VALIDER" Clicked="Button_Valider" Grid.Column="3" Grid.Row="5" Style="{StaticResource WindowsButton}"/>
<DatePicker Grid.Column="3" Grid.Row="5" BackgroundColor="{StaticResource Secondary}" Margin="20"/>
<Button Text="ANNULER" Clicked="Button_Clicked" Grid.Column="1" Grid.Row="6" Style="{StaticResource WindowsButton}"/>
<Button Text="VALIDER" Clicked="Button_Clicked_1" Grid.Column="3" Grid.Row="6" Style="{StaticResource WindowsButton}"/> </Grid>
</Grid>
</ContentView> </ContentView>

@ -1,19 +1,35 @@
using Model;
namespace IHM.Desktop; namespace IHM.Desktop;
public partial class CV_EnregistrerEcheance : ContentView public partial class CV_EnregistrerEcheance : ContentView
{ {
public CV_EnregistrerEcheance() public Manager Mgr => (App.Current as App).Manager;
public CV_EnregistrerEcheance()
{ {
InitializeComponent(); InitializeComponent();
} Mgr.LoadBanque();
Mgr.LoadCompte();
private void Button_Clicked(object sender, EventArgs e) BindingContext = Mgr;
{
}
} private void Button_Annuler(object sender, EventArgs e)
{
Navigation.PushAsync(new Dashboard());
}
private void Button_Clicked_1(object sender, EventArgs e) private void Button_Valider(object sender, EventArgs e)
{ {
var s = recup.SelectedItem;
Echeance ech = (Echeance)s;
Operation operation = new Operation(ech.Nom, ech.Montant, ech.DateOperation, ech.ModePayement,ech.Tag,ech.IsDebit);
} Mgr.effectuerOperation(Mgr.SelectedCompte, operation);
Mgr.supprimerEcheance(Mgr.SelectedCompte, ech);
Navigation.PushAsync(new Dashboard());
}
} }

@ -2,22 +2,152 @@
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui" <ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="IHM.Desktop.CV_HomePage"> x:Class="IHM.Desktop.CV_HomePage">
<Border Stroke="{StaticResource Yellow100Accent}" StrokeThickness="4" Margin="10" StrokeShape="RoundRectangle 45,5,5,45">
<Grid BackgroundColor="{StaticResource Tertiary}"> <Grid BackgroundColor="{StaticResource Tertiary}">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="0.25*"/>
<RowDefinition Height="0.25*"/>
<RowDefinition Height="0.1*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.1*"/>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Label Grid.Row="1"
Text="Bienvenue sur CONS'ECO" </Grid.RowDefinitions>
FontSize="Large"
FontAttributes="Bold" <Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
Text="BANQUE"
VerticalOptions="Center" VerticalOptions="Center"
HorizontalOptions="Center" HorizontalOptions="Center"
Style="{StaticResource TitreWindows}"
/> />
</Grid>
<HorizontalStackLayout Grid.Row="1" Grid.ColumnSpan="2" HorizontalOptions="Center" >
<Picker Title="Choisir une Banque"
TitleColor="Black"
TextColor="Black"
ItemsSource="{Binding ListeDesBanques}"
ItemDisplayBinding="{Binding Name}"
SelectedItem="{Binding SelectedBanque}"
Margin="0,0,30,0"/>
<Picker Title="Choisir un Compte"
ItemsSource="{Binding ListeDesComptes}"
ItemDisplayBinding="{Binding Nom}"
SelectedItem="{Binding SelectedCompte}"
Margin="30,0,0,0"/>
</HorizontalStackLayout>
<Label Grid.Row="2" Grid.Column="0" Grid.RowSpan="2" Grid.ColumnSpan="2"
HorizontalOptions="Center"
Text="Réactualiser mes banques :"
FontSize="20"
TextColor="Black"/>
<ContentView Grid.Row="3" Grid.Column="0" Grid.RowSpan="2" Grid.ColumnSpan="2" >
<CollectionView Grid.Row="2" Grid.Column="0" Grid.RowSpan="2" Grid.ColumnSpan="2" ItemsSource="{Binding ListeDesBanques}" >
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.75*"/>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="1.5*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="{Binding Name}"
FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center"
VerticalOptions="Center"
TextColor="Black"/>
<ImageButton Grid.Column="2" Source="reload_banks.png"
Padding="10" Margin="5"
CornerRadius="10" HeightRequest="45"
BackgroundColor="{StaticResource Primary}"/>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</ContentView>
<Label Grid.Row="4" Grid.Column="0" Grid.RowSpan="2" Grid.ColumnSpan="2"
HorizontalOptions="Center"
Text="Ajouter une banque :"
FontSize="20"
TextColor="Black"/>
<ScrollView Grid.Row="5" Grid.Column="0" Grid.RowSpan="2" Grid.ColumnSpan="2" Scale="0.8">
<VerticalStackLayout>
<Border Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3"
BackgroundColor="{StaticResource Tertiary}"
StrokeShape="RoundRectangle 20" Margin="10">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.75*"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="Importer depuis un fichier" TextColor="Black"
FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center"
VerticalOptions="Center"/>
<ImageButton Grid.Column="2" Source="import_from_file.png"
Padding="10" Margin="5"
CornerRadius="10" HeightRequest="65"
BackgroundColor="{StaticResource Primary}"
Clicked="ImportOFX_Clicked"/>
</Grid>
</Border>
<CollectionView ItemsSource="{Binding BanquesDisponibleInApp}">
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.75*"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="{Binding Nom}"
FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center"
VerticalOptions="Center"
TextColor="Black"/>
<ImageButton Grid.Column="2" Source="add_new_banks.png"
Padding="10" Margin="5"
CornerRadius="10" HeightRequest="65"
BackgroundColor="{StaticResource Primary}"
Clicked="AddBanque_Clicked"/>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</VerticalStackLayout>
</ScrollView>
</Grid>
</Border>
</ContentView> </ContentView>

@ -1,9 +1,30 @@
using Model;
namespace IHM.Desktop; namespace IHM.Desktop;
public partial class CV_HomePage : ContentView public partial class CV_HomePage : ContentView
{ {
public CV_HomePage() public Manager Mgr => (App.Current as App).Manager;
public CV_HomePage()
{ {
InitializeComponent(); InitializeComponent();
}
Mgr.LoadBanque();
Mgr.LoadCompte();
Mgr.LoadBanqueDispo();
BindingContext = Mgr;
}
private void ImportOFX_Clicked(object sender, EventArgs e)
{
}
private void AddBanque_Clicked(object sender, EventArgs e)
{
}
} }

@ -3,21 +3,51 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="IHM.Desktop.CV_Log"> x:Class="IHM.Desktop.CV_Log">
<Grid BackgroundColor="{StaticResource Yellow200Accent}"> <Border Stroke="{StaticResource Gray100}" StrokeThickness="4" Margin="10" StrokeShape="RoundRectangle 45,5,5,45">
<Grid.RowDefinitions>
<RowDefinition Height="1*"/> <Grid BackgroundColor="{StaticResource Yellow100Accent}">
<RowDefinition Height="1*"/> <Grid.RowDefinitions>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions> <RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<Label Grid.Row="0" <RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
Text="Compte utilisateur"
FontSize="Large" </Grid.RowDefinitions>
FontAttributes="Bold"
VerticalOptions="Center" <Grid.ColumnDefinitions>
HorizontalOptions="Center" <ColumnDefinition Width="1*"/>
/> <ColumnDefinition Width="1*"/>
</Grid> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Label
Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="4"
VerticalOptions="Center"
Style="{StaticResource TitreWindows}"
Text="GESTION DU COMPTE"
HorizontalOptions="Center"/>
<Label Text="Nom" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2" Style="{StaticResource TitreWindows}"/>
<Label Grid.ColumnSpan="2" Grid.Column="2" Grid.Row="2" Style="{StaticResource TitreWindows}" Text="{Binding Nom}"/>
<Label Text="Prenom" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="2" Style="{StaticResource TitreWindows}"/>
<Label Grid.ColumnSpan="2" Grid.Column="2" Grid.Row="3" Style="{StaticResource TitreWindows}" Text="{Binding Prenom}"/>
<Label Text="Email" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="2" Style="{StaticResource TitreWindows}"/>
<Label Grid.ColumnSpan="2" Grid.Column="2" Grid.Row="4" Style="{StaticResource TitreWindows}" Text="{Binding Mail}"/>
<Button Text="QUITTER" Clicked="Button_Quitter" Grid.Column="6" Grid.Row="0" Margin="25" Style="{StaticResource WindowsButton2}"/>
</Grid>
</Border>
</ContentView> </ContentView>

@ -1,9 +1,21 @@
using Model;
namespace IHM.Desktop; namespace IHM.Desktop;
public partial class CV_Log : ContentView public partial class CV_Log : ContentView
{ {
public CV_Log() public Manager Mgr => (App.Current as App).Manager;
public CV_Log()
{ {
InitializeComponent(); InitializeComponent();
}
BindingContext = Mgr.User;
}
private void Button_Quitter(object sender, EventArgs e)
{
Microsoft.Maui.Controls.Application.Current?.CloseWindow(Microsoft.Maui.Controls.Application.Current.MainPage.Window);
}
} }

@ -3,34 +3,39 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="IHM.Desktop.CV_Planification"> x:Class="IHM.Desktop.CV_Planification">
<Grid> <Border Stroke="{StaticResource Yellow100Accent}" StrokeThickness="4" Margin="10" StrokeShape="RoundRectangle 45,5,5,45">
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/> <Grid BackgroundColor="{StaticResource Tertiary}">
<RowDefinition Height="0.7*"/> <Grid.RowDefinitions>
<RowDefinition Height="5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="1*"/> <RowDefinition Height="0.75*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions> <RowDefinition Height="5*"/>
<Grid.ColumnDefinitions> <RowDefinition Height="0.7*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> </Grid.RowDefinitions>
</Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<StackLayout Grid.Row="0" Grid.ColumnSpan="2"> <ColumnDefinition Width="1*"/>
<Label </Grid.ColumnDefinitions>
Style="{StaticResource TitreWindows}"
Text="PLANIFICATION"
HorizontalOptions="Center"/> <Label
</StackLayout> Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2"
Style="{StaticResource TitreWindows}"
<Button Text="PLANIFICATION"
HorizontalOptions="Center"
VerticalOptions="Center"/>
<Button
Clicked="Button_Clicked" Clicked="Button_Clicked"
Grid.Column="0" Grid.Row="1" Grid.Column="0" Grid.Row="1"
x:Name="AddCredit" x:Name="AddCredit"
Text="Planifier une échéance" Text="Planifier une échéance"
Style="{StaticResource WindowsButton}"/> Style="{StaticResource WindowsButton}"/>
<Button <Button
Clicked="Button_Clicked_1" Clicked="Button_Clicked_1"
Grid.Column="1" Grid.Row="1" Grid.Column="1" Grid.Row="1"
x:Name="RetireOperation" x:Name="RetireOperation"
@ -38,73 +43,111 @@
Style="{StaticResource WindowsButton}"/> Style="{StaticResource WindowsButton}"/>
<Border Stroke="{StaticResource Secondary}" Margin="10,0,10,0" Padding="3" StrokeThickness="4" StrokeShape="RoundRectangle 45,5,5,45" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="4">
<Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ContentView BackgroundColor="{StaticResource Yellow300Accent}" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="4" Grid.RowSpan="2" x:Name="windowAjout"> </Grid.ColumnDefinitions>
<Label Text="Nom" Grid.Column="0" TextColor="{StaticResource Secondary}" HorizontalOptions="Center" FontSize="Micro" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="Date" Grid.Column="1" TextColor="{StaticResource Secondary}" HorizontalOptions="Center" FontSize="Micro" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="Moyen de Paiement" Grid.Column="2" TextColor="{StaticResource Secondary}" HorizontalOptions="Center" FontSize="Micro" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="Tag" Grid.Column="3" TextColor="{StaticResource Secondary}" HorizontalOptions="Center" FontSize="Micro" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="Montant" Grid.Column="4" TextColor="{StaticResource Secondary}" HorizontalOptions="Center" FontSize="Micro" FontAttributes="Bold" VerticalOptions="Center"></Label>
<CollectionView ItemsSource="{Binding}" Grid.Row="2" Grid.ColumnSpan="4" Grid.RowSpan="2"> </Grid>
</Border>
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<ContentView Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="4" Grid.RowSpan="2" Margin="10,0,10,0">
<CollectionView ItemsSource="{Binding SelectedCompte.LesPla }" Grid.Row="3" Grid.ColumnSpan="4" Grid.RowSpan="2">
<Label Grid.Column="0" Text="{Binding IntituleOperation}" <CollectionView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="{Binding Nom}"
TextColor="{StaticResource Secondary}" TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
<Label Grid.Column="1" Text="{Binding DateOperation}" <Label Grid.Column="1" Text="{Binding DateOperation, StringFormat='{0:d}'}"
TextColor="{StaticResource Secondary}" TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
<Label Grid.Column="2" Text="{Binding ModePayement}" <Label Grid.Column="2" Text="{Binding ModePayement}"
TextColor="{StaticResource Secondary}" TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
<Label Grid.Column="3" Text="{Binding Tag}" <Label Grid.Column="3" Text="{Binding Tag}"
TextColor="{StaticResource Secondary}" TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
<Label Grid.Column="4" Text="{Binding Montant}" <Label Grid.Column="4" Text="{Binding Montant}"
TextColor="{StaticResource Secondary}" TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
</Grid> </Grid>
</DataTemplate> </DataTemplate>
</CollectionView.ItemTemplate> </CollectionView.ItemTemplate>
</CollectionView> </CollectionView>
</ContentView>
</ContentView>
<ContentView Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Grid.RowSpan="5" x:Name="windowAjout" Margin="10,0,10,0">
</ContentView>
<Border Stroke="{StaticResource Secondary}" BackgroundColor="{StaticResource Yellow100Accent}" Margin="10,10,10,10" Padding="3" StrokeThickness="4" StrokeShape="RoundRectangle 45,5,5,45" Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="4">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="6*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Label Text="TOTAL" Grid.Column="0" Grid.ColumnSpan="2" HorizontalOptions="Center" TextColor="{StaticResource Secondary}" FontSize="Medium" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="{Binding SelectedCompte.Solde}" Grid.Column="1" Grid.ColumnSpan="2" HorizontalOptions="Center" TextColor="{StaticResource Secondary}" FontSize="Medium" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="€" Grid.Column="1" Grid.ColumnSpan="2" HorizontalOptions="End" Margin="0,0,50,0" TextColor="{StaticResource Secondary}" FontSize="Medium" FontAttributes="Bold" VerticalOptions="Center"></Label>
</Grid>
</Border>
</Grid>
</Grid>
</Border>
</ContentView> </ContentView>

@ -10,36 +10,14 @@ public partial class CV_Planification : ContentView
public Manager Mgr => (App.Current as App).Manager; public Manager Mgr => (App.Current as App).Manager;
List<Planification> planification;
public CV_Planification() public CV_Planification()
{ {
InitializeComponent(); InitializeComponent();
planification = new List<Planification>(); Mgr.LoadBanque();
Mgr.LoadCompte();
/*planification.Add(new("Eau", 55, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
planification.Add(new("Amazon", 103.30, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true)); BindingContext = Mgr;
planification.Add(new("Mutuelle", 38.50, DateTime.Now, MethodePayement.Prevelement, TagOperation.Santé, true));
planification.Add(new("Loyer", 500, DateTime.Now, MethodePayement.Virement, TagOperation.Habitation, true));
planification.Add(new("Eau", 55, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
planification.Add(new("Amazon", 103.30, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
planification.Add(new("Mutuelle", 38.50, DateTime.Now, MethodePayement.Prevelement, TagOperation.Santé, true));
planification.Add(new("Loyer", 500, DateTime.Now, MethodePayement.Virement, TagOperation.Habitation, true));
planification.Add(new("Eau", 55, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
planification.Add(new("Amazon", 103.30, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
planification.Add(new("Mutuelle", 38.50, DateTime.Now, MethodePayement.Prevelement, TagOperation.Santé, true));
planification.Add(new("Loyer", 500, DateTime.Now, MethodePayement.Virement, TagOperation.Habitation, true));
planification.Add(new("Eau", 55, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
planification.Add(new("Amazon", 103.30, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
planification.Add(new("Mutuelle", 38.50, DateTime.Now, MethodePayement.Prevelement, TagOperation.Santé, true));
planification.Add(new("Loyer", 500, DateTime.Now, MethodePayement.Virement, TagOperation.Habitation, true));
planification.Add(new("Eau", 55, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
planification.Add(new("Amazon", 103.30, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
planification.Add(new("Mutuelle", 38.50, DateTime.Now, MethodePayement.Prevelement, TagOperation.Santé, true));
planification.Add(new("Loyer", 500, DateTime.Now, MethodePayement.Virement, TagOperation.Habitation, true));
*/
BindingContext = planification;
} }

@ -1,62 +1,141 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui" <ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:chart="clr-namespace:Syncfusion.Maui.Charts;assembly=Syncfusion.Maui.Charts"
xmlns:model="clr-namespace:IHM.Desktop"
x:Class="IHM.Desktop.CV_Statistiques"> x:Class="IHM.Desktop.CV_Statistiques">
<Grid> <Border Stroke="{StaticResource Yellow100Accent}" StrokeThickness="4" Margin="10" StrokeShape="RoundRectangle 45,5,5,45">
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.7*"/>
<RowDefinition Height="5*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<StackLayout Grid.Row="0" Grid.ColumnSpan="2">
<Label <Grid BackgroundColor="{StaticResource Tertiary}">
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.75*"/>
<RowDefinition Height="5*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Label
Grid.Row="0" Grid.ColumnSpan="2"
Style="{StaticResource TitreWindows}" Style="{StaticResource TitreWindows}"
Text="STATISTIQUES" Text="STATISTIQUES"
VerticalOptions="Center"
HorizontalOptions="Center"/> HorizontalOptions="Center"/>
</StackLayout>
<ContentView Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" Grid.RowSpan="3" Margin="15" x:Name="windowAjout">
<Grid BackgroundColor="{StaticResource Yellow300Accent}"> <ContentView Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" Grid.RowSpan="3" Margin="15" x:Name="windowAjout">
<Grid.RowDefinitions> <Grid >
<RowDefinition Height="1*"/> <Grid.RowDefinitions>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
</Grid.RowDefinitions> <RowDefinition Height="2*"/>
<Grid.ColumnDefinitions> </Grid.RowDefinitions>
<ColumnDefinition Width="1*"/> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<!-- <Switch IsToggled="true" Grid.Column="1" OnColor="{StaticResource Primary}" ThumbColor="{StaticResource Secondary}" Scale="1.5" /> -->
<chart:SfCartesianChart Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" Grid.RowSpan="5" Margin="50,0,0,0">
<chart:ColumnSeries
Label="Dépense en €"
ItemsSource="{Binding SelectedCompte.LesEch} "
XBindingPath="Tag"
YBindingPath="Montant"
ShowDataLabels="True"
>
<chart:ColumnSeries.DataLabelSettings>
<chart:CartesianDataLabelSettings LabelPlacement="Inner"/>
</chart:ColumnSeries.DataLabelSettings>
</chart:ColumnSeries>
<chart:SfCartesianChart.Title Grid.Column="4">
<Label Text="Consommation par type" TextColor="{StaticResource Secondary}" FontSize="Large" FontAttributes="Bold"/>
</chart:SfCartesianChart.Title>
<chart:SfCartesianChart.Legend>
<chart:ChartLegend/>
</chart:SfCartesianChart.Legend>
<chart:SfCartesianChart.XAxes>
<chart:CategoryAxis>
<chart:CategoryAxis.Title>
<chart:ChartAxisTitle Text="Tag"/>
</chart:CategoryAxis.Title>
</chart:CategoryAxis>
</chart:SfCartesianChart.XAxes>
<chart:SfCartesianChart.YAxes>
<chart:NumericalAxis>
<chart:NumericalAxis.Title>
<chart:ChartAxisTitle Text="Montant"/>
</chart:NumericalAxis.Title>
</chart:NumericalAxis>
</chart:SfCartesianChart.YAxes>
</chart:SfCartesianChart>
<chart:SfCircularChart Grid.Column="3" Grid.Row="1" Grid.ColumnSpan="2" Grid.RowSpan="5">
<chart:SfCircularChart.Title>
<Label Text="Nombre d'achat par type" TextColor="{StaticResource Secondary}" Grid.Column="4" FontSize="Large" FontAttributes="Bold"/>
</chart:SfCircularChart.Title>
<chart:PieSeries ItemsSource="{Binding SelectedCompte.LesOpe}"
XBindingPath="Montant"
YBindingPath="Tag"
Radius = "1"
ShowDataLabels="True"
/>
<chart:SfCircularChart.Legend>
<chart:ChartLegend/>
</chart:SfCircularChart.Legend>
</chart:SfCircularChart>
</Grid> </Grid>
</ContentView> </ContentView>
@ -65,6 +144,7 @@
</Grid> </Grid>
</Border>
</ContentView> </ContentView>

@ -1,9 +1,16 @@
namespace IHM.Desktop; namespace IHM.Desktop;
using Model;
public partial class CV_Statistiques : ContentView public partial class CV_Statistiques : ContentView
{ {
public CV_Statistiques() public Manager Mgr => (App.Current as App).Manager;
public CV_Statistiques()
{ {
InitializeComponent(); InitializeComponent();
}
Mgr.LoadBanque();
Mgr.LoadCompte();
BindingContext = Mgr;
}
} }

@ -1,42 +1,46 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui" <ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:inputs="clr-namespace:Syncfusion.Maui.Inputs;assembly=Syncfusion.Maui.Inputs"
x:Class="IHM.Desktop.CV_SupprimerEcheance"> x:Class="IHM.Desktop.CV_SupprimerEcheance">
<Grid BackgroundColor="{StaticResource Secondary}">
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/> <Grid BackgroundColor="{StaticResource Tertiary}">
<RowDefinition Height="2*"/> <Grid.RowDefinitions>
<RowDefinition Height="2*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
</Grid.RowDefinitions> <RowDefinition Height="2*"/>
<Grid.ColumnDefinitions> <RowDefinition Height="2*"/>
<ColumnDefinition Width="1*"/> <RowDefinition Height="2*"/>
<ColumnDefinition Width="2*"/> </Grid.RowDefinitions>
<ColumnDefinition Width="1*"/> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
<Label Text="Supprimer une échéance" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3" Style="{StaticResource TitreWindows}"/> </Grid.ColumnDefinitions>
<Label Text="Nom" Grid.Column="1" Grid.Row="2" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Montant" Grid.Column="1" Grid.Row="3" Style="{StaticResource TitreWindows}" Margin="20"/> <Label Text="Supprimer une échéance" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3" Style="{StaticResource TitreWindows}" VerticalOptions="Center"/>
<Label Text="Type" Grid.Column="1" Grid.Row="4" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Date" Grid.Column="1" Grid.Row="5" Style="{StaticResource TitreWindows}" Margin="20"/> <Label Text="Selectionner l'échéance" Grid.ColumnSpan="3" Grid.Column="0" Grid.Row="3" Style="{StaticResource TitreWindows}" VerticalOptions="Center"/>
<Entry Placeholder="Entrez un nom" Grid.Column="3" Grid.Row="2" Style="{StaticResource zoneDeTexte}" Margin="20"/>
<Entry Placeholder="Entrez un montant" Grid.Column="3" Grid.Row="3" Style="{StaticResource zoneDeTexte}" Margin="20"/>
<Entry Placeholder="Entrez un type de transaction" Grid.Column="3" Grid.Row="4" Style="{StaticResource zoneDeTexte}" Margin="20"/> <inputs:SfComboBox HeightRequest="50" ItemsSource="{Binding SelectedCompte.LesEch}" Grid.Column="3" Grid.Row="3" x:Name="recup"/>
<DatePicker Grid.Column="3" Grid.Row="5" BackgroundColor="{StaticResource Secondary}" Margin="20"/>
<Button Text="ANNULER" Clicked="Button_Clicked" Grid.Column="1" Grid.Row="6" Style="{StaticResource WindowsButton}"/>
<Button Text="VALIDER" Clicked="Button_Clicked_1" Grid.Column="3" Grid.Row="6" Style="{StaticResource WindowsButton}"/>
<Button Text="ANNULER" Clicked="Button_Annuler" Grid.Column="1" Grid.Row="5" Style="{StaticResource WindowsButton2}"/>
</Grid> <Button Text="VALIDER" Clicked="Button_Valider" Grid.Column="3" Grid.Row="5" Style="{StaticResource WindowsButton}"/>
</Grid>
</ContentView> </ContentView>

@ -1,19 +1,34 @@
using Model;
namespace IHM.Desktop; namespace IHM.Desktop;
public partial class CV_SupprimerEcheance : ContentView public partial class CV_SupprimerEcheance : ContentView
{ {
public Manager Mgr => (App.Current as App).Manager;
public CV_SupprimerEcheance() public CV_SupprimerEcheance()
{ {
InitializeComponent(); InitializeComponent();
}
private void Button_Clicked(object sender, EventArgs e)
{
} Mgr.LoadBanque();
Mgr.LoadCompte();
BindingContext = Mgr;
}
private void Button_Annuler(object sender, EventArgs e)
{
Navigation.PushAsync(new Dashboard());
}
private void Button_Clicked_1(object sender, EventArgs e) private void Button_Valider(object sender, EventArgs e)
{ {
var s = recup.SelectedItem;
Echeance echeance = (Echeance)s;
Mgr.supprimerEcheance(Mgr.SelectedCompte, echeance);
Navigation.PushAsync(new Dashboard());
} }
} }

@ -3,40 +3,45 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="IHM.Desktop.CV_credit"> x:Class="IHM.Desktop.CV_credit">
<Grid BackgroundColor="{StaticResource Secondary}">
<Grid.RowDefinitions> <Grid BackgroundColor="{StaticResource Tertiary}">
<RowDefinition Height="1*"/> <Grid.RowDefinitions>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
</Grid.RowDefinitions> <RowDefinition Height="2*"/>
<Grid.ColumnDefinitions> <RowDefinition Height="2*"/>
<ColumnDefinition Width="1*"/> <RowDefinition Height="2*"/>
<ColumnDefinition Width="2*"/> </Grid.RowDefinitions>
<ColumnDefinition Width="1*"/> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
<Label Text="Effectuer un crédit" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3" Style="{StaticResource TitreWindows}"/> </Grid.ColumnDefinitions>
<Label Text="Nom" Grid.Column="1" Grid.Row="2" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Montant" Grid.Column="1" Grid.Row="3" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Type" Grid.Column="1" Grid.Row="4" Style="{StaticResource TitreWindows}" Margin="20"/> <Label Text="Effectuer un crédit" VerticalOptions="Center" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="5" Style="{StaticResource TitreWindows}"/>
<Label Text="Date" Grid.Column="1" Grid.Row="5" Style="{StaticResource TitreWindows}" Margin="20"/> <Label Text="Nom" Grid.Column="1" Grid.Row="2" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Montant" Grid.Column="1" Grid.Row="3" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Type" Grid.Column="1" Grid.Row="4" Style="{StaticResource TitreWindows}" Margin="20"/>
<Entry Placeholder="Entrez un nom" Grid.Column="3" Grid.Row="2" Style="{StaticResource zoneDeTexte}" Margin="20"/> <Label Text="Tag" Grid.Column="1" Grid.Row="5" Style="{StaticResource TitreWindows}" Margin="20"/>
<Entry Placeholder="Entrez un montant" Grid.Column="3" Grid.Row="3" Style="{StaticResource zoneDeTexte}" Margin="20"/> <Label Text="Date" Grid.Column="1" Grid.Row="6" Style="{StaticResource TitreWindows}" Margin="20"/>
<Entry Placeholder="Entrez un type de transaction" Grid.Column="3" Grid.Row="4" Style="{StaticResource zoneDeTexte}" Margin="20"/>
<DatePicker Grid.Column="3" Grid.Row="5" BackgroundColor="{StaticResource Secondary}" Margin="20"/>
<Entry Placeholder="Entrez un nom" Grid.Column="3" Grid.Row="2" Style="{StaticResource zoneDeTexte}" Margin="20" x:Name="name" IsTextPredictionEnabled="True"/>
<Button Text="ANNULER" Clicked="Button_Clicked" Grid.Column="1" Grid.Row="6" Style="{StaticResource WindowsButton}"/> <Entry Placeholder="Entrez un montant" Grid.Column="3" Grid.Row="3" Style="{StaticResource zoneDeTexte}" Margin="20" x:Name="montant"/>
<Button Text="VALIDER" Clicked="Button_Clicked_1" Grid.Column="3" Grid.Row="6" Style="{StaticResource WindowsButton}"/> <Entry Placeholder="Entrez un moyen de paiement" Grid.Column="3" Grid.Row="4" Style="{StaticResource zoneDeTexte}" Margin="20" x:Name="type"/>
<Entry Placeholder="Entrez une catégorie" Grid.Column="3" Grid.Row="5" Style="{StaticResource zoneDeTexte}" Margin="20" x:Name="tag"/>
</Grid> <DatePicker Grid.Column="3" Grid.Row="6" BackgroundColor="{StaticResource Secondary}" Margin="20" x:Name="date"/>
<Button Text="ANNULER" Clicked="Button_Annuler" Grid.Column="1" Grid.Row="7" Style="{StaticResource WindowsButton2}"/>
<Button Text="VALIDER" Clicked="Button_Valider" Grid.Column="3" Grid.Row="7" Style="{StaticResource WindowsButton}"/>
</Grid>
</ContentView> </ContentView>

@ -1,19 +1,64 @@
using Model;
namespace IHM.Desktop; namespace IHM.Desktop;
public partial class CV_credit : ContentView public partial class CV_credit : ContentView
{ {
public CV_credit() public Manager Mgr => (App.Current as App).Manager;
public CV_credit()
{ {
InitializeComponent(); InitializeComponent();
} Mgr.LoadBanque();
Mgr.LoadCompte();
private void Button_Clicked(object sender, EventArgs e) BindingContext = Mgr;
}
private void Button_Annuler(object sender, EventArgs e)
{ {
Navigation.PushAsync(new Dashboard());
} }
private void Button_Clicked_1(object sender, EventArgs e) private void Button_Valider(object sender, EventArgs e)
{ {
string nom = name.Text;
double Montant = Double.Parse(montant.Text);
string Type = type.Text;
string Tag = tag.Text;
DateTime Date = date.Date;
TagOperation to2 = new TagOperation();
MethodePayement mp2 = new MethodePayement();
foreach (string mp in Enum.GetNames(typeof(MethodePayement)))
{
if (Equals(Type, mp))
{
mp2 = (MethodePayement) Enum.Parse(typeof(MethodePayement), Type);
}
}
foreach (string to in Enum.GetNames(typeof(TagOperation)))
{
if (Equals(Tag, to))
{
to2 = (TagOperation)Enum.Parse(typeof(TagOperation), Tag);
}
}
Operation operation = new Operation(nom, Montant, Date, mp2, to2, false, false) ;
Mgr.effectuerOperation(Mgr.SelectedCompte, operation);
Navigation.PushAsync(new Dashboard());
}
}
} }

@ -3,40 +3,46 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="IHM.Desktop.CV_debit"> x:Class="IHM.Desktop.CV_debit">
<Grid BackgroundColor="{StaticResource Secondary}">
<Grid.RowDefinitions> <Grid BackgroundColor="{StaticResource Tertiary}">
<RowDefinition Height="1*"/> <Grid.RowDefinitions>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
</Grid.RowDefinitions> <RowDefinition Height="2*"/>
<Grid.ColumnDefinitions> <RowDefinition Height="2*"/>
<ColumnDefinition Width="1*"/> <RowDefinition Height="2*"/>
<ColumnDefinition Width="2*"/> </Grid.RowDefinitions>
<ColumnDefinition Width="1*"/> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
<Label Text="Effectuer un débit" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3" Style="{StaticResource TitreWindows}"/> </Grid.ColumnDefinitions>
<Label Text="Effectuer un débit" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="5" Style="{StaticResource TitreWindows}" VerticalOptions="Center" />
<Label Text="Nom" Grid.Column="1" Grid.Row="2" Style="{StaticResource TitreWindows}" Margin="20"/> <Label Text="Nom" Grid.Column="1" Grid.Row="2" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Montant" Grid.Column="1" Grid.Row="3" Style="{StaticResource TitreWindows}" Margin="20"/> <Label Text="Montant" Grid.Column="1" Grid.Row="3" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Type" Grid.Column="1" Grid.Row="4" Style="{StaticResource TitreWindows}" Margin="20"/> <Label Text="Type" Grid.Column="1" Grid.Row="4" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Date" Grid.Column="1" Grid.Row="5" Style="{StaticResource TitreWindows}" Margin="20"/> <Label Text="Tag" Grid.Column="1" Grid.Row="5" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Date" Grid.Column="1" Grid.Row="6" Style="{StaticResource TitreWindows}" Margin="20"/>
<Entry Placeholder="Entrez un nom" Grid.Column="3" Grid.Row="2" Style="{StaticResource zoneDeTexte}" Margin="20" x:Name="name" IsTextPredictionEnabled="True"/>
<Entry Placeholder="Entrez un montant" Grid.Column="3" Grid.Row="3" Style="{StaticResource zoneDeTexte}" Margin="20" x:Name="montant"/>
<Entry Placeholder="Entrez un moyen de paiement" Grid.Column="3" Grid.Row="4" Style="{StaticResource zoneDeTexte}" Margin="20" x:Name="type"/>
<Entry Placeholder="Entrez une catégorie" Grid.Column="3" Grid.Row="5" Style="{StaticResource zoneDeTexte}" Margin="20" x:Name="tag"/>
<DatePicker Grid.Column="3" Grid.Row="6" BackgroundColor="{StaticResource Secondary}" Margin="20" x:Name="date"/>
<Entry Placeholder="Entrez un nom" Grid.Column="3" Grid.Row="2" Style="{StaticResource zoneDeTexte}" Margin="20"/> <Button Text="ANNULER" Clicked="Button_Annuler" Grid.Column="1" Grid.Row="7" Style="{StaticResource WindowsButton2}"/>
<Entry Placeholder="Entrez un montant" Grid.Column="3" Grid.Row="3" Style="{StaticResource zoneDeTexte}" Margin="20"/> <Button Text="VALIDER" Clicked="Button_Valider" Grid.Column="3" Grid.Row="7" Style="{StaticResource WindowsButton}"/>
<Entry Placeholder="Entrez un type de transaction" Grid.Column="3" Grid.Row="4" Style="{StaticResource zoneDeTexte}" Margin="20"/>
<DatePicker Grid.Column="3" Grid.Row="5" BackgroundColor="{StaticResource Secondary}" Margin="20"/>
<Button Text="ANNULER" Clicked="Button_Clicked" Grid.Column="1" Grid.Row="6" Style="{StaticResource WindowsButton}"/> </Grid>
<Button Text="VALIDER" Clicked="Button_Clicked_1" Grid.Column="3" Grid.Row="6" Style="{StaticResource WindowsButton}"/>
</Grid>
</ContentView> </ContentView>

@ -1,19 +1,56 @@
using Model;
namespace IHM.Desktop; namespace IHM.Desktop;
public partial class CV_debit : ContentView public partial class CV_debit : ContentView
{ {
public CV_debit() public Manager Mgr => (App.Current as App).Manager;
public CV_debit()
{ {
InitializeComponent(); InitializeComponent();
} Mgr.LoadBanque();
Mgr.LoadCompte();
private void Button_Clicked(object sender, EventArgs e) BindingContext = Mgr;
{ }
} private void Button_Annuler(object sender, EventArgs e)
{
Navigation.PushAsync(new Dashboard());
}
private void Button_Clicked_1(object sender, EventArgs e) private void Button_Valider(object sender, EventArgs e)
{ {
string nom = name.Text;
double Montant = Double.Parse(montant.Text);
string Type = type.Text;
string Tag = tag.Text;
DateTime Date = date.Date;
TagOperation to2 = new TagOperation();
MethodePayement mp2 = new MethodePayement();
foreach (string mp in Enum.GetNames(typeof(MethodePayement)))
{
if (Equals(Type, mp))
{
mp2 = (MethodePayement)Enum.Parse(typeof(MethodePayement), Type);
}
}
foreach (string to in Enum.GetNames(typeof(TagOperation)))
{
if (Equals(Tag, to))
{
to2 = (TagOperation)Enum.Parse(typeof(TagOperation), Tag);
}
}
} Operation operation = new Operation(nom, Montant, Date, mp2, to2, false, true);
Mgr.effectuerOperation(Mgr.SelectedCompte, operation);
Navigation.PushAsync(new Dashboard());
}
} }

@ -4,37 +4,38 @@
x:Class="IHM.Desktop.CV_modificationSolde"> x:Class="IHM.Desktop.CV_modificationSolde">
<Grid BackgroundColor="{StaticResource Secondary}"> <Grid BackgroundColor="{StaticResource Tertiary}">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Label Text="Modification du solde" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3" Style="{StaticResource TitreWindows}"/> <Label Text="Modification du solde" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3" Style="{StaticResource TitreWindows}" VerticalOptions="Center"/>
<Label Text="Montant" Grid.Column="1" Grid.Row="3" Style="{StaticResource TitreWindows}" Margin="20"/> <Label Text="Montant" Grid.Column="1" Grid.Row="3" Style="{StaticResource TitreWindows}" Margin="20"/>
<Entry Placeholder="Entrez un montant" Grid.Column="3" Grid.Row="3" Style="{StaticResource zoneDeTexte}" Margin="20"/> <Entry Placeholder="Entrez un montant" Grid.Column="3" Grid.Row="3" Style="{StaticResource zoneDeTexte}" Margin="20"/>
<Button Text="ANNULER" Clicked="Button_Clicked" Grid.Column="1" Grid.Row="6" Style="{StaticResource WindowsButton}"/> <Button Text="ANNULER" Clicked="Button_Clicked" Grid.Column="1" Grid.Row="6" Style="{StaticResource WindowsButton2}"/>
<Button Text="VALIDER" Clicked="Button_Clicked_1" Grid.Column="3" Grid.Row="6" Style="{StaticResource WindowsButton}"/> <Button Text="VALIDER" Clicked="Button_Clicked_1" Grid.Column="3" Grid.Row="6" Style="{StaticResource WindowsButton}"/>
</Grid>
</Grid>
</ContentView> </ContentView>

@ -9,11 +9,11 @@ public partial class CV_modificationSolde : ContentView
private void Button_Clicked(object sender, EventArgs e) private void Button_Clicked(object sender, EventArgs e)
{ {
Navigation.PushAsync(new Dashboard());
} }
private void Button_Clicked_1(object sender, EventArgs e) private void Button_Clicked_1(object sender, EventArgs e)
{ {
Navigation.PushAsync(new Dashboard());
} }
} }

@ -1,43 +1,42 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui" <ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:inputs="clr-namespace:Syncfusion.Maui.Inputs;assembly=Syncfusion.Maui.Inputs"
x:Class="IHM.Desktop.CV_retirer"> x:Class="IHM.Desktop.CV_retirer">
<Grid BackgroundColor="{StaticResource Secondary}">
<Grid.RowDefinitions>
<RowDefinition Height="1*"/> <Grid BackgroundColor="{StaticResource Tertiary}">
<RowDefinition Height="1*"/> <Grid.RowDefinitions>
<RowDefinition Height="2*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
</Grid.RowDefinitions> <RowDefinition Height="2*"/>
<Grid.ColumnDefinitions> <RowDefinition Height="2*"/>
<ColumnDefinition Width="1*"/> </Grid.RowDefinitions>
<ColumnDefinition Width="2*"/> <Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Label Text="Retirer une opération" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3" Style="{StaticResource TitreWindows}"/>
<Label Text="Nom" Grid.Column="1" Grid.Row="2" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Montant" Grid.Column="1" Grid.Row="3" Style="{StaticResource TitreWindows}" Margin="20"/> <Label Text="Retirer une opération" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3" Style="{StaticResource TitreWindows}" VerticalOptions="Center"/>
<Label Text="Type" Grid.Column="1" Grid.Row="4" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Date" Grid.Column="1" Grid.Row="5" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Selectionner l'opération" Grid.ColumnSpan="2" Grid.Column="1" Grid.Row="3" Style="{StaticResource TitreWindows}" VerticalOptions="Center"/>
<Entry Placeholder="Entrez un nom" Grid.Column="3" Grid.Row="2" Style="{StaticResource zoneDeTexte}" Margin="20"/>
<Entry Placeholder="Entrez un montant" Grid.Column="3" Grid.Row="3" Style="{StaticResource zoneDeTexte}" Margin="20"/> <inputs:SfComboBox HeightRequest="50" ItemsSource="{Binding SelectedCompte.LesOpe}" Grid.Column="3" Grid.Row="3" x:Name="recup"/>
<Entry Placeholder="Entrez un type de transaction" Grid.Column="3" Grid.Row="4" Style="{StaticResource zoneDeTexte}" Margin="20"/>
<DatePicker Grid.Column="3" Grid.Row="5" BackgroundColor="{StaticResource Secondary}" Margin="20"/> <Button Text="ANNULER" Clicked="Button_Annuler" Grid.Column="1" Grid.Row="5" Style="{StaticResource WindowsButton2}"/>
<Button Text="VALIDER" Clicked="Button_Valider" Grid.Column="3" Grid.Row="5" Style="{StaticResource WindowsButton}"/>
<Button Text="ANNULER" Clicked="Button_Clicked" Grid.Column="1" Grid.Row="6" Style="{StaticResource WindowsButton}"/>
<Button Text="VALIDER" Clicked="Button_Clicked_1" Grid.Column="3" Grid.Row="6" Style="{StaticResource WindowsButton}"/> </Grid>
</Grid>
</ContentView> </ContentView>

@ -1,19 +1,30 @@
using Model;
namespace IHM.Desktop; namespace IHM.Desktop;
public partial class CV_retirer : ContentView public partial class CV_retirer : ContentView
{ {
public CV_retirer() public Manager Mgr => (App.Current as App).Manager;
public CV_retirer()
{ {
InitializeComponent(); InitializeComponent();
} Mgr.LoadBanque();
Mgr.LoadCompte();
private void Button_Clicked(object sender, EventArgs e) BindingContext = Mgr;
{ }
} private void Button_Annuler(object sender, EventArgs e)
{
Navigation.PushAsync(new Dashboard());
}
private void Button_Clicked_1(object sender, EventArgs e) private void Button_Valider(object sender, EventArgs e)
{ {
var s = recup.SelectedItem;
Operation operation = (Operation)s;
Mgr.supprimerOperation(Mgr.SelectedCompte, operation);
Navigation.PushAsync(new Dashboard());
} }
} }

@ -1,41 +1,39 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui" <ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:inputs="clr-namespace:Syncfusion.Maui.Inputs;assembly=Syncfusion.Maui.Inputs"
x:Class="IHM.Desktop.CV_supprimerOp"> x:Class="IHM.Desktop.CV_supprimerOp">
<Grid BackgroundColor="{StaticResource Secondary}">
<Grid.RowDefinitions> <Grid BackgroundColor="{StaticResource Tertiary}">
<RowDefinition Height="1*"/> <Grid.RowDefinitions>
<RowDefinition Height="1*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="1*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
</Grid.RowDefinitions> <RowDefinition Height="2*"/>
<Grid.ColumnDefinitions> </Grid.RowDefinitions>
<ColumnDefinition Width="1*"/> <Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Label Text="Supprimer une opération" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3" Style="{StaticResource TitreWindows}"/> <Label Text="Supprimer une opération" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3" Style="{StaticResource TitreWindows}" VerticalOptions="Center"/>
<Label Text="Nom" Grid.Column="1" Grid.Row="2" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Montant" Grid.Column="1" Grid.Row="3" Style="{StaticResource TitreWindows}" Margin="20"/> <Label Text="Selectionner l'opération" Grid.ColumnSpan="2" Grid.Column="1" Grid.Row="3" Style="{StaticResource TitreWindows}" VerticalOptions="Center"/>
<Label Text="Type" Grid.Column="1" Grid.Row="4" Style="{StaticResource TitreWindows}" Margin="20"/>
<Label Text="Date" Grid.Column="1" Grid.Row="5" Style="{StaticResource TitreWindows}" Margin="20"/>
<inputs:SfComboBox HeightRequest="50" ItemsSource="{Binding SelectedCompte.LesOpe}" Grid.Column="3" Grid.Row="3" x:Name="recup"/>
<Entry Placeholder="Entrez un nom" Grid.Column="3" Grid.Row="2" Style="{StaticResource zoneDeTexte}" Margin="20"/>
<Entry Placeholder="Entrez un montant" Grid.Column="3" Grid.Row="3" Style="{StaticResource zoneDeTexte}" Margin="20"/> <Button Text="ANNULER" Clicked="Button_Annuler" Grid.Column="1" Grid.Row="5" Style="{StaticResource WindowsButton2}"/>
<Entry Placeholder="Entrez un type de transaction" Grid.Column="3" Grid.Row="4" Style="{StaticResource zoneDeTexte}" Margin="20"/> <Button Text="VALIDER" Clicked="Button_Valider" Grid.Column="3" Grid.Row="5" Style="{StaticResource WindowsButton}"/>
<DatePicker Grid.Column="3" Grid.Row="5" BackgroundColor="{StaticResource Secondary}" Margin="20"/>
</Grid>
<Button Text="ANNULER" Clicked="Button_Clicked" Grid.Column="1" Grid.Row="6" Style="{StaticResource WindowsButton}"/>
<Button Text="VALIDER" Clicked="Button_Clicked_1" Grid.Column="3" Grid.Row="6" Style="{StaticResource WindowsButton}"/>
</Grid>
</ContentView> </ContentView>

@ -1,19 +1,29 @@
using Model;
namespace IHM.Desktop; namespace IHM.Desktop;
public partial class CV_supprimerOp : ContentView public partial class CV_supprimerOp : ContentView
{ {
public CV_supprimerOp() public Manager Mgr => (App.Current as App).Manager;
public CV_supprimerOp()
{ {
InitializeComponent(); InitializeComponent();
} Mgr.LoadBanque();
Mgr.LoadCompte();
private void Button_Clicked(object sender, EventArgs e)
{
} BindingContext = Mgr;
}
private void Button_Clicked_1(object sender, EventArgs e) private void Button_Annuler(object sender, EventArgs e)
{ {
Navigation.PushAsync(new Dashboard());
}
} private void Button_Valider(object sender, EventArgs e)
{
var s = recup.SelectedItem;
Operation operation = (Operation)s;
Mgr.supprimerOperation(Mgr.SelectedCompte,operation);
Navigation.PushAsync(new Dashboard());
}
} }

@ -3,84 +3,88 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="IHM.Desktop.Compte"> x:Class="IHM.Desktop.Compte">
<Border Stroke="{StaticResource Yellow100Accent}" StrokeThickness="4" Margin="10" StrokeShape="RoundRectangle 45,5,5,45">
<Grid BackgroundColor="{StaticResource Tertiary}" >
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.75*"/>
<RowDefinition Height="5*"/>
<RowDefinition Height="1*"/>
<Grid> </Grid.RowDefinitions>
<Grid.RowDefinitions> <Grid.ColumnDefinitions>
<RowDefinition Height="0.5*"/> <ColumnDefinition Width="1*"/>
<RowDefinition Height="0.7*"/> <ColumnDefinition Width="1*"/>
<RowDefinition Height="5*"/> </Grid.ColumnDefinitions>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<StackLayout Grid.Row="0" Grid.ColumnSpan="2"> <Label
<Label Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2"
VerticalOptions="Center"
Style="{StaticResource TitreWindows}" Style="{StaticResource TitreWindows}"
Text="COMPTE" Text="COMPTE"
HorizontalOptions="Center"/> HorizontalOptions="Center"/>
</StackLayout>
<Button
<Button
Clicked="AddCredit_Clicked" Clicked="AddCredit_Clicked"
Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1"
x:Name="AddCredit" x:Name="AddCredit"
Text="Modifier le solde" Text="Modifier le solde"
Style="{StaticResource WindowsButton}"/> Style="{StaticResource WindowsButton}"/>
<ListView ItemsSource="{Binding }">
</ListView>
<ContentView BackgroundColor="{StaticResource Yellow300Accent}" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2" Grid.RowSpan="2" x:Name="windowAjout">
<CollectionView ItemsSource="{Binding}" Grid.Row="2" Grid.ColumnSpan="4" Grid.RowSpan="2"> <ContentView Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2" Grid.RowSpan="2" >
<CollectionView.ItemTemplate>
<DataTemplate> <Grid>
<Grid> <Grid.ColumnDefinitions>
<Grid.ColumnDefinitions> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="{Binding Nom}" <Label Grid.Column="0" Text="{Binding SelectedCompte.Nom}"
TextColor="{StaticResource Secondary}" TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Large"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
<Label Grid.Column="1" Text="{Binding Solde}" <Label Grid.Column="1" Text="{Binding SelectedCompte.Solde}"
TextColor="{StaticResource Secondary}" TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Large"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
<Label Grid.Column="1" Text="€"
TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Large"
HorizontalOptions="Center"
VerticalOptions="Center"
Margin="120,0,0,0"/>
</Grid>
</Grid> </ContentView>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</ContentView>
<ContentView Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Grid.RowSpan="4" x:Name="windowAjout">
</ContentView>
</Grid> </Grid>
</Border>
</ContentView> </ContentView>

@ -4,17 +4,20 @@ namespace IHM.Desktop;
public partial class Compte : ContentView public partial class Compte : ContentView
{ {
public Manager Mgr => (App.Current as App).Manager;
public Compte() public Compte()
{ {
InitializeComponent(); InitializeComponent();
Model.Compte compte = new Model.Compte("", "compte courant", 2000);
BindingContext = compte;
Mgr.LoadBanque();
Mgr.LoadCompte();
BindingContext = Mgr;
}
}
private void AddCredit_Clicked(object sender, EventArgs e) private void AddCredit_Clicked(object sender, EventArgs e)
{ {

@ -4,10 +4,10 @@
x:Class="IHM.Desktop.Dashboard" x:Class="IHM.Desktop.Dashboard"
Title="Dashboard"> Title="Dashboard">
<StackLayout BackgroundColor="{StaticResource Secondary}">
<Grid> <Grid BackgroundColor="{StaticResource Secondary}">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="1*"/> <RowDefinition Height="1.3*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="2*"/>
@ -23,42 +23,30 @@
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<StackLayout BackgroundColor="{StaticResource Secondary}" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="4">
</StackLayout>
<Image Source="logo_sans_fond.png" HeightRequest="100" Margin="50,10,0,0" Grid.Column="0" Grid.Row="0"/> <Image Source="logo_sans_fond.png" HeightRequest="80" HorizontalOptions="Center" Margin="0,30,0,0" Grid.Column="0" Grid.Row="0"/>
<Button Text="Mon compte" ImageSource="logo_sans_fond.png" x:Name="ButLog" BackgroundColor="{StaticResource Yellow100Accent}" TextColor="{StaticResource Secondary}" Grid.Column="4" Grid.Row="0" MaximumWidthRequest="200" MaximumHeightRequest="50" Clicked="ButLog_Clicked"></Button>
<StackLayout BackgroundColor="{StaticResource Secondary}" Grid.Row="1" Grid.Column="0" Grid.RowSpan="6">
<Button Text="ACCUEIL" ImageSource="home_black.png" MaximumWidthRequest="200" MaximumHeightRequest="60" x:Name="ButAcc" BackgroundColor="{StaticResource Yellow100Accent}" TextColor="{StaticResource Secondary}" Padding="20" Margin="21" Grid.Column="0" Grid.Row="1" Clicked="ButAcc_Clicked" ></Button>
<Button Text="COMPTE" x:Name="ButCom" ImageSource="dollar_black.png" MaximumWidthRequest="200" MaximumHeightRequest="60" BackgroundColor="{StaticResource Yellow100Accent}" TextColor="{StaticResource Secondary}" Padding="20" Margin="21" Grid.Column="0" Grid.Row="2" Clicked="Button_compte"></Button>
<Button Text="OPERATION" x:Name="ButOpe" ImageSource="home_black.png" MaximumWidthRequest="200" MaximumHeightRequest="60" BackgroundColor="{StaticResource Yellow100Accent}" TextColor="{StaticResource Secondary}" Padding="20" Margin="21" Grid.Column="0" Grid.Row="3" Clicked="Button_operation"></Button>
<Button Text="ECHEANCIER" x:Name="ButEch" ImageSource="home_black.png" MaximumWidthRequest="200" MaximumHeightRequest="60" BackgroundColor="{StaticResource Yellow100Accent}" TextColor="{StaticResource Secondary}" Padding="20" Margin="21" Grid.Column="0" Grid.Row="4" Clicked="Button_echeancier"></Button>
<Button Text="PLANIFICATION" x:Name="ButPla" ImageSource="planification_black.png" MaximumWidthRequest="200" MaximumHeightRequest="60" BackgroundColor="{StaticResource Yellow100Accent}" TextColor="{StaticResource Secondary}" Padding="20" Margin="21" Grid.Column="0" Grid.Row="5" Clicked="Button_planification"></Button>
<Button Text="STATISTIQUES" x:Name="ButSta" ImageSource="home_black.png" MaximumWidthRequest="200" MaximumHeightRequest="60" BackgroundColor="{StaticResource Yellow100Accent}" TextColor="{StaticResource Secondary}" Padding="20" Margin="21" Grid.Column="0" Grid.Row="6" Clicked="Button_statistiques"></Button>
</StackLayout>
<Button Text="Mon Compte" ImageSource="logo_sans_fond.png" x:Name="ButLog" TextColor="{StaticResource Secondary}" Grid.Column="4" Grid.Row="0" MaximumWidthRequest="200" MaximumHeightRequest="50" Clicked="ButLog_Clicked" Style="{StaticResource WindowsButton}"/>
<Button Text="BANQUE" ImageSource="banque_black.png" MaximumWidthRequest="200" MaximumHeightRequest="62" x:Name="ButAcc" BackgroundColor="{StaticResource Gray100}" TextColor="{StaticResource Secondary}" Padding="20" Margin="21,30,21,0" Grid.Column="0" Grid.Row="1" Clicked="ButAcc_Clicked" ></Button>
<Button Text="COMPTE" x:Name="ButCom" ImageSource="cb_black.png" MaximumWidthRequest="200" MaximumHeightRequest="62" BackgroundColor="{StaticResource Gray100}" TextColor="{StaticResource Secondary}" Padding="20" Margin="21,30,21,0" Grid.Column="0" Grid.Row="2" Clicked="Button_compte"></Button>
<Button Text="OPERATION" x:Name="ButOpe" ImageSource="dollar_black.png" MaximumWidthRequest="200" MaximumHeightRequest="62" BackgroundColor="{StaticResource Gray100}" TextColor="{StaticResource Secondary}" Padding="20" Margin="21,30,21,0" Grid.Column="0" Grid.Row="3" Clicked="Button_operation"></Button>
<Button Text="ECHEANCIER" x:Name="ButEch" ImageSource="date_black.png" MaximumWidthRequest="200" MaximumHeightRequest="62" BackgroundColor="{StaticResource Gray100}" TextColor="{StaticResource Secondary}" Padding="20" Margin="21,30,21,0" Grid.Column="0" Grid.Row="4" Clicked="Button_echeancier"></Button>
<Button Text="PLANIFICATION" x:Name="ButPla" ImageSource="planification_black.png" MaximumWidthRequest="200" MaximumHeightRequest="62" BackgroundColor="{StaticResource Gray100}" TextColor="{StaticResource Secondary}" Padding="20" Margin="21,30,21,0" Grid.Column="0" Grid.Row="5" Clicked="Button_planification"></Button>
<Button Text="STATISTIQUES" x:Name="ButSta" ImageSource="stats_black.png" MaximumWidthRequest="200" MaximumHeightRequest="62" BackgroundColor="{StaticResource Gray100}" TextColor="{StaticResource Secondary}" Padding="20" Margin="21,30,21,0" Grid.Column="0" Grid.Row="6" Clicked="Button_statistiques"></Button>
<ContentView Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="3" Grid.RowSpan="6" x:Name="mainCV"> <ContentView Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="3" Grid.RowSpan="6" x:Name="mainCV">
<Border Stroke="{StaticResource Yellow100Accent}" StrokeThickness="4" Margin="10,0,10,10" StrokeShape="RoundRectangle 5,5,5,5">
</ContentView> <Image Source="background3.png" Aspect="Fill"/>
</Border>
</ContentView>
</Grid> </Grid>
</StackLayout>
</ContentPage> </ContentPage>

@ -1,31 +1,38 @@
using Microsoft.Maui.Graphics.Text; using Microsoft.Maui.Graphics.Text;
using Model;
namespace IHM.Desktop; namespace IHM.Desktop;
public partial class Dashboard public partial class Dashboard
{ {
public Manager Mgr => (App.Current as App).Manager;
public Dashboard() public Dashboard()
{ {
InitializeComponent(); InitializeComponent();
} BindingContext = Mgr.User;
}
private void RetourFormeBase() private void RetourFormeBase()
{ {
ButPla.BackgroundColor = Color.FromArgb("F7B548"); ButPla.TextColor = Colors.Black; ButPla.BackgroundColor = Color.FromArgb("E1E1E1"); ButPla.TextColor = Colors.Black;
ButEch.BackgroundColor = Color.FromArgb("F7B548"); ButEch.TextColor = Colors.Black; ButEch.BackgroundColor = Color.FromArgb("E1E1E1"); ButEch.TextColor = Colors.Black;
ButOpe.BackgroundColor = Color.FromArgb("F7B548"); ButOpe.TextColor = Colors.Black; ButOpe.BackgroundColor = Color.FromArgb("E1E1E1"); ButOpe.TextColor = Colors.Black;
ButCom.BackgroundColor = Color.FromArgb("F7B548"); ButCom.TextColor = Colors.Black; ButCom.BackgroundColor = Color.FromArgb("E1E1E1"); ButCom.TextColor = Colors.Black;
ButAcc.BackgroundColor = Color.FromArgb("F7B548"); ButAcc.TextColor = Colors.Black; ButAcc.BackgroundColor = Color.FromArgb("E1E1E1"); ButAcc.TextColor = Colors.Black;
ButSta.BackgroundColor = Color.FromArgb("F7B548"); ButSta.TextColor = Colors.Black; ButSta.BackgroundColor = Color.FromArgb("E1E1E1"); ButSta.TextColor = Colors.Black;
} }
private void Button_planification(object sender, EventArgs e) private void Button_planification(object sender, EventArgs e)
{ {
RetourFormeBase(); RetourFormeBase();
ButPla.TextColor = Colors.White; ButPla.TextColor = Colors.White;
ButPla.BackgroundColor = Color.FromArgb("DF775C"); ButPla.BackgroundColor = Color.FromArgb("7FB196");
mainCV.Content= new CV_Planification(); mainCV.Content= new CV_Planification();
} }
@ -33,7 +40,7 @@ public partial class Dashboard
{ {
RetourFormeBase(); RetourFormeBase();
ButEch.TextColor = Colors.White; ButEch.TextColor = Colors.White;
ButEch.BackgroundColor = Color.FromArgb("DF775C"); ButEch.BackgroundColor = Color.FromArgb("7FB196");
mainCV.Content = new Echeancier(); mainCV.Content = new Echeancier();
} }
@ -41,7 +48,7 @@ public partial class Dashboard
{ {
RetourFormeBase(); RetourFormeBase();
ButOpe.TextColor = Colors.White; ButOpe.TextColor = Colors.White;
ButOpe.BackgroundColor = Color.FromArgb("DF775C"); ButOpe.BackgroundColor = Color.FromArgb("7FB196");
mainCV.Content = new Operations(); mainCV.Content = new Operations();
} }
@ -49,7 +56,7 @@ public partial class Dashboard
{ {
RetourFormeBase(); RetourFormeBase();
ButCom.TextColor = Colors.White; ButCom.TextColor = Colors.White;
ButCom.BackgroundColor = Color.FromArgb("DF775C"); ButCom.BackgroundColor = Color.FromArgb("7FB196");
mainCV.Content = new Compte(); mainCV.Content = new Compte();
} }
@ -57,7 +64,7 @@ public partial class Dashboard
{ {
RetourFormeBase(); RetourFormeBase();
ButSta.TextColor = Colors.White; ButSta.TextColor = Colors.White;
ButSta.BackgroundColor = Color.FromArgb("DF775C"); ButSta.BackgroundColor = Color.FromArgb("7FB196");
mainCV.Content = new CV_Statistiques(); mainCV.Content = new CV_Statistiques();
} }
@ -65,7 +72,7 @@ public partial class Dashboard
{ {
RetourFormeBase(); RetourFormeBase();
ButAcc.TextColor = Colors.White; ButAcc.TextColor = Colors.White;
ButAcc.BackgroundColor = Color.FromArgb("DF775C"); ButAcc.BackgroundColor = Color.FromArgb("7FB196");
mainCV.Content = new CV_HomePage(); mainCV.Content = new CV_HomePage();
} }
@ -73,8 +80,9 @@ public partial class Dashboard
{ {
RetourFormeBase(); RetourFormeBase();
ButLog.TextColor = Colors.White; ButLog.TextColor = Colors.White;
ButLog.BackgroundColor = Color.FromArgb("DF775C"); ButLog.BackgroundColor = Color.FromArgb("7FB196");
mainCV.Content = new CV_Log(); mainCV.Content = new CV_Log();
} }
} }

@ -4,37 +4,42 @@
x:Class="IHM.Desktop.Echeancier" x:Class="IHM.Desktop.Echeancier"
> >
<Grid> <Border Stroke="{StaticResource Yellow100Accent}" StrokeThickness="4" Margin="10" StrokeShape="RoundRectangle 45,5,5,45">
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.7*"/>
<RowDefinition Height="5*"/>
<RowDefinition Height="1*"/>
<Grid BackgroundColor="{StaticResource Tertiary}">
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.75*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="5*"/>
<RowDefinition Height="0.7*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<StackLayout Grid.Row="0" Grid.ColumnSpan="2">
<Label
<Label
Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2"
Style="{StaticResource TitreWindows}" Style="{StaticResource TitreWindows}"
Text="ECHEANCIER" Text="ECHEANCIER"
VerticalOptions="Center"
HorizontalOptions="Center"/> HorizontalOptions="Center"/>
</StackLayout>
<Button
<Button
Clicked="SaveEcheance_Clicked" Clicked="SaveEcheance_Clicked"
Grid.Column="0" Grid.Row="1" Grid.Column="0" Grid.Row="1"
x:Name="SaveEcheance" x:Name="SaveEcheance"
Text="Enregistrer une échéance" Text="Enregistrer une échéance"
Style="{StaticResource WindowsButton}"/> Style="{StaticResource WindowsButton}"/>
<Button <Button
Clicked="DelEcheance_Clicked" Clicked="DelEcheance_Clicked"
Grid.Column="1" Grid.Row="1" Grid.Column="1" Grid.Row="1"
x:Name="DelEcheance" x:Name="DelEcheance"
@ -42,63 +47,85 @@
Style="{StaticResource WindowsButton}"/> Style="{StaticResource WindowsButton}"/>
<ContentView BackgroundColor="{StaticResource Yellow300Accent}" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="4" Grid.RowSpan="2" x:Name="windowAjout"> <Border Stroke="{StaticResource Secondary}" Margin="10,0,10,0" Padding="5" StrokeThickness="4" StrokeShape="RoundRectangle 45,5,5,45" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="4" >
<CollectionView ItemsSource="{Binding}" Grid.Row="2" Grid.ColumnSpan="4" Grid.RowSpan="2"> <Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<CollectionView.ItemTemplate> </Grid.ColumnDefinitions>
<Label Text="Nom" Grid.Column="0" TextColor="{StaticResource Secondary}" HorizontalOptions="Center" FontSize="Micro" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="Date" Grid.Column="1" TextColor="{StaticResource Secondary}" HorizontalOptions="Center" FontSize="Micro" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="Moyen de Paiement" Grid.Column="2" TextColor="{StaticResource Secondary}" HorizontalOptions="Center" FontSize="Micro" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="Tag" Grid.Column="3" TextColor="{StaticResource Secondary}" HorizontalOptions="Center" FontSize="Micro" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="Montant" Grid.Column="4" TextColor="{StaticResource Secondary}" HorizontalOptions="Center" FontSize="Micro" FontAttributes="Bold" VerticalOptions="Center"></Label>
<DataTemplate> </Grid>
<Grid> </Border>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<ContentView Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="4" Grid.RowSpan="2" Margin="10,0,10,0">
<Label Grid.Column="0" Text="{Binding IntituleOperation}" <CollectionView ItemsSource="{Binding SelectedCompte.LesEch}" Grid.Row="3" Grid.ColumnSpan="4" Grid.RowSpan="2">
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="{Binding Nom}"
TextColor="{StaticResource Secondary}" TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
<Label Grid.Column="1" Text="{Binding DateOperation}" <Label Grid.Column="1" Text="{Binding DateOperation, StringFormat='{0:d}'}"
TextColor="{StaticResource Secondary}" TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
<Label Grid.Column="2" Text="{Binding ModePayement}" <Label Grid.Column="2" Text="{Binding ModePayement}"
TextColor="{StaticResource Secondary}" TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
<Label Grid.Column="3" Text="{Binding Tag}" <Label Grid.Column="3" Text="{Binding Tag}"
TextColor="{StaticResource Secondary}" TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
<Label Grid.Column="4" Text="{Binding Montant}" <Label Grid.Column="4" Text="{Binding Montant}"
TextColor="{StaticResource Secondary}" TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
</Grid> </Grid>
</DataTemplate> </DataTemplate>
</CollectionView.ItemTemplate> </CollectionView.ItemTemplate>
</CollectionView> </CollectionView>
</ContentView> </ContentView>
@ -109,45 +136,62 @@
<CollectionView Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" ItemsSource="{Binding LesOpe}"> <CollectionView Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" ItemsSource="{Binding LesOpe}">
<CollectionView.ItemTemplate> <CollectionView.ItemTemplate>
<DataTemplate> <DataTemplate>
<Grid Padding="10"> <Grid Padding="10">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition/> <RowDefinition/>
<RowDefinition/> <RowDefinition/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition/> <ColumnDefinition/>
<ColumnDefinition/> <ColumnDefinition/>
<ColumnDefinition/> <ColumnDefinition/>
<ColumnDefinition/> <ColumnDefinition/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<ImageButton Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" <ImageButton Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
Source="{Binding ImageSrc}" Source="{Binding ImageSrc}"
CornerRadius="10"/> CornerRadius="10"/>
<Label Grid.Row="0" Grid.Column="1" <Label Grid.Row="0" Grid.Column="1"
Text="{Binding NomOpe}" Text="{Binding NomOpe}"
FontAttributes="Bold" /> FontAttributes="Bold" />
<Label Grid.Row="1" Grid.Column="1" <Label Grid.Row="1" Grid.Column="1"
Text="{Binding DetailTypeOpe}" Text="{Binding DetailTypeOpe}"
FontAttributes="Italic"/> FontAttributes="Italic"/>
<Label Grid.Row="0" Grid.Column="2" <Label Grid.Row="0" Grid.Column="2"
Text="{Binding DateOpe}"/> Text="{Binding DateOpe}"/>
<Label Grid.Row="0" Grid.Column="3" Grid.ColumnSpan="2" <Label Grid.Row="0" Grid.Column="3" Grid.ColumnSpan="2"
Text="{Binding MontantOpe}" Text="{Binding MontantOpe}"
FontAttributes="Bold"/> FontAttributes="Bold"/>
</Grid> </Grid>
</DataTemplate> </DataTemplate>
</CollectionView.ItemTemplate> </CollectionView.ItemTemplate>
</CollectionView> </CollectionView>
<ContentView Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Grid.RowSpan="5" x:Name="windowAjout">
</ContentView>
<Border Stroke="{StaticResource Secondary}" BackgroundColor="{StaticResource Yellow100Accent}" Margin="10,10,10,10" Padding="3" StrokeThickness="4" StrokeShape="RoundRectangle 45,5,5,45" Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="4">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="6*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Label Text="TOTAL" Grid.Column="0" Grid.ColumnSpan="2" HorizontalOptions="Center" TextColor="{StaticResource Secondary}" FontSize="Medium" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="{Binding SelectedCompte.Solde}" Grid.Column="1" Grid.ColumnSpan="2" HorizontalOptions="Center" TextColor="{StaticResource Secondary}" FontSize="Medium" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="€" Grid.Column="1" Grid.ColumnSpan="2" HorizontalOptions="End" Margin="0,0,50,0" TextColor="{StaticResource Secondary}" FontSize="Medium" FontAttributes="Bold" VerticalOptions="Center"></Label>
</Grid>
</Border>
</Grid> </Grid>
</Border>
</ContentView> </ContentView>

@ -4,27 +4,15 @@ namespace IHM.Desktop;
public partial class Echeancier : ContentView public partial class Echeancier : ContentView
{ {
List<Echeance> echeancier; public Manager Mgr => (App.Current as App).Manager;
public Echeancier() public Echeancier()
{ {
InitializeComponent(); InitializeComponent();
echeancier = new List<Echeance>(); Mgr.LoadBanque();
Mgr.LoadCompte();
echeancier.Add(new("Eau", 55, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true)); BindingContext = Mgr;
echeancier.Add(new("Amazon", 103.30, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
echeancier.Add(new("Mutuelle", 38.50, DateTime.Now, MethodePayement.Prevelement, TagOperation.Santé, true));
echeancier.Add(new("Loyer", 500, DateTime.Now, MethodePayement.Virement, TagOperation.Habitation, true));
echeancier.Add(new("Eau", 55, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
echeancier.Add(new("Amazon", 103.30, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
echeancier.Add(new("Mutuelle", 38.50, DateTime.Now, MethodePayement.Prevelement, TagOperation.Santé, true));
echeancier.Add(new("Loyer", 500, DateTime.Now, MethodePayement.Virement, TagOperation.Habitation, true));
echeancier.Add(new("Eau", 55, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
echeancier.Add(new("Amazon", 103.30, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
echeancier.Add(new("Mutuelle", 38.50, DateTime.Now, MethodePayement.Prevelement, TagOperation.Santé, true));
echeancier.Add(new("Loyer", 500, DateTime.Now, MethodePayement.Virement, TagOperation.Habitation, true));
BindingContext = echeancier;
} }

@ -2,7 +2,8 @@
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="IHM.Desktop.MainPage" x:Class="IHM.Desktop.MainPage"
Title="MainPage_Windows"> Title="MainPage_Windows"
>
<StackLayout BackgroundColor="{StaticResource Secondary}"> <StackLayout BackgroundColor="{StaticResource Secondary}">
@ -24,7 +25,7 @@
<Border Style="{StaticResource bordureBlanche}" Padding="7"> <Border Style="{StaticResource bordureBlanche}" Padding="7">
<Entry Style="{StaticResource zoneDeTexte}" <Entry Style="{StaticResource zoneDeTexte}"
Placeholder="Addresse mail" Placeholder="Adresse mail"
x:Name="EntryMail"/> x:Name="EntryMail"/>
</Border> </Border>

@ -12,7 +12,7 @@ public partial class MainPage : ContentPage
BindingContext = this; BindingContext = this;
} }
public void ConnectionOnClicked(object sender, EventArgs e) public async void ConnectionOnClicked(object sender, EventArgs e)
{ {
if (EntryMail.Text == null || EntryPassworld.Text == null) if (EntryMail.Text == null || EntryPassworld.Text == null)
{ {
@ -20,12 +20,14 @@ public partial class MainPage : ContentPage
} }
else else
{ {
/*if (Mgr.existEmail(EntryMail.Text)) if (await Mgr.Pers.EmailDisponible(EntryMail.Text))
{ {
if (Mgr.isEqualHash(Mgr.recupMdpBdd(EntryMail.Text), EntryPassworld.Text)) if (Mgr.CompareHash(await Mgr.getPassword(EntryMail.Text), EntryPassworld.Text))
{ {
Mgr.createUser(EntryMail.Text); Mgr.createUser(EntryMail.Text);
ConnexionValide();
await Navigation.PushAsync(new Dashboard());
//Mgr.LoadAll();
} }
else else
{ {
@ -35,15 +37,11 @@ public partial class MainPage : ContentPage
else else
{ {
AffichError("Compte inexistant", "Email ou mot de passe invalide", "OK"); AffichError("Compte inexistant", "Email ou mot de passe invalide", "OK");
}*/ }
} }
} }
private async void ConnexionValide()
{
Navigation.PushAsync(new Dashboard());
//await Navigation.PopModalAsync();
}
private async void AffichError(string s, string s1, string s2) private async void AffichError(string s, string s1, string s2)
{ {

@ -4,52 +4,56 @@
x:Class="IHM.Desktop.Operations"> x:Class="IHM.Desktop.Operations">
<Grid> <Border Stroke="{StaticResource Yellow100Accent}" StrokeThickness="4" Margin="10" StrokeShape="RoundRectangle 45,5,5,45">
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/> <Grid BackgroundColor="{StaticResource Tertiary}">
<RowDefinition Height="0.7*"/> <Grid.RowDefinitions>
<RowDefinition Height="5*"/> <RowDefinition Height="0.5*"/>
<RowDefinition Height="1*"/> <RowDefinition Height="0.75*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions> <RowDefinition Height="5*"/>
<Grid.ColumnDefinitions> <RowDefinition Height="0.7*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/> </Grid.RowDefinitions>
<ColumnDefinition Width="1*"/> <Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> <ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<StackLayout Grid.Row="0" Grid.ColumnSpan="4"> <ColumnDefinition Width="1*"/>
<Label </Grid.ColumnDefinitions>
<Label
Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="4"
Style="{StaticResource TitreWindows}" Style="{StaticResource TitreWindows}"
Text="OPERATIONS" Text="OPERATIONS"
VerticalOptions="Center"
HorizontalOptions="Center"/> HorizontalOptions="Center"/>
</StackLayout>
<Button
<Button
Clicked="AddCredit_Clicked" Clicked="AddCredit_Clicked"
Grid.Column="0" Grid.Row="1" Grid.Column="0" Grid.Row="1"
x:Name="AddCredit" x:Name="AddCredit"
Text="Effectuer un crédit" Text="Effectuer un crédit"
Style="{StaticResource WindowsButton}"/> Style="{StaticResource WindowsButton}"/>
<Button <Button
Clicked="RetireOperation_Clicked" Clicked="RetireOperation_Clicked"
Grid.Column="1" Grid.Row="1" Grid.Column="1" Grid.Row="1"
x:Name="RetireOperation" x:Name="RetireOperation"
Text="Retirer une opération" Text="Retirer une opération"
Style="{StaticResource WindowsButton}"/> Style="{StaticResource WindowsButton}"/>
<Button <Button
Clicked="AddDebit_Clicked" Clicked="AddDebit_Clicked"
Grid.Column="2" Grid.Row="1" Grid.Column="2" Grid.Row="1"
x:Name="AddDebit" x:Name="AddDebit"
Text="Effectuer un débit" Text="Effectuer un débit"
Style="{StaticResource WindowsButton}"/> Style="{StaticResource WindowsButton}"/>
<Button <Button
Clicked="DelOperation_Clicked" Clicked="DelOperation_Clicked"
Grid.Column="3" Grid.Row="1" Grid.Column="3" Grid.Row="1"
x:Name="DelOperation" x:Name="DelOperation"
@ -59,66 +63,103 @@
<ContentView BackgroundColor="{StaticResource Yellow300Accent}" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="4" Grid.RowSpan="2" x:Name="windowAjout"> <Border Stroke="{StaticResource Secondary}" Margin="10,0,10,0" Padding="3" StrokeThickness="4" StrokeShape="RoundRectangle 45,5,5,45" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="4">
<Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Label Text="Nom" Grid.Column="0" TextColor="{StaticResource Secondary}" HorizontalOptions="Center" FontSize="Micro" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="Date" Grid.Column="1" TextColor="{StaticResource Secondary}" HorizontalOptions="Center" FontSize="Micro" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="Moyen de Paiement" Grid.Column="2" TextColor="{StaticResource Secondary}" HorizontalOptions="Center" FontSize="Micro" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="Tag" Grid.Column="3" TextColor="{StaticResource Secondary}" HorizontalOptions="Center" FontSize="Micro" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="Montant" Grid.Column="4" TextColor="{StaticResource Secondary}" HorizontalOptions="Center" FontSize="Micro" FontAttributes="Bold" VerticalOptions="Center"></Label>
</Grid>
</Border>
<CollectionView ItemsSource="{Binding}" Grid.Row="2" Grid.ColumnSpan="4" Grid.RowSpan="2"> <ContentView Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="4" Grid.RowSpan="1" Margin="10,0,10,0" >
<CollectionView.ItemTemplate> <CollectionView ItemsSource="{Binding SelectedCompte.LesOpe}" Grid.Row="3" Grid.ColumnSpan="4" Grid.RowSpan="2">
<DataTemplate> <CollectionView.ItemTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions> <DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="{Binding IntituleOperation}"
<Label Grid.Column="0" Text="{Binding Nom}"
TextColor="{StaticResource Secondary}" TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
<Label Grid.Column="1" Text="{Binding DateOperation}" <Label Grid.Column="1" Text="{Binding DateOperation, StringFormat='{0:d}'}"
TextColor="{StaticResource Secondary}" TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
<Label Grid.Column="2" Text="{Binding ModePayement}" <Label Grid.Column="2" Text="{Binding ModePayement}"
TextColor="{StaticResource Secondary}" TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
<Label Grid.Column="3" Text="{Binding Tag}" <Label Grid.Column="3" Text="{Binding Tag}"
TextColor="{StaticResource Secondary}" TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
<Label Grid.Column="4" Text="{Binding Montant}" <Label Grid.Column="4" Text="{Binding Montant}"
TextColor="{StaticResource Secondary}" TextColor="{StaticResource Secondary}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
</Grid> </Grid>
</DataTemplate> </DataTemplate>
</CollectionView.ItemTemplate> </CollectionView.ItemTemplate>
</CollectionView> </CollectionView>
</ContentView>
<ContentView Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="4" Grid.RowSpan="5" x:Name="windowAjout">
</ContentView>
</ContentView> <Border Stroke="{StaticResource Secondary}" BackgroundColor="{StaticResource Yellow100Accent}" Margin="10,10,10,10" Padding="3" StrokeThickness="4" StrokeShape="RoundRectangle 45,5,5,45" Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="4">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="6*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Label Text="TOTAL" Grid.Column="0" Grid.ColumnSpan="2" HorizontalOptions="Center" TextColor="{StaticResource Secondary}" FontSize="Medium" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="{Binding SelectedCompte.Solde}" Grid.Column="1" Grid.ColumnSpan="2" HorizontalOptions="Center" TextColor="{StaticResource Secondary}" FontSize="Medium" FontAttributes="Bold" VerticalOptions="Center"></Label>
<Label Text="€" Grid.Column="1" Grid.ColumnSpan="2" HorizontalOptions="End" Margin="0,0,50,0" TextColor="{StaticResource Secondary}" FontSize="Medium" FontAttributes="Bold" VerticalOptions="Center"></Label>
</Grid>
</Border>
</Grid> </Grid>
</Border>
</ContentView> </ContentView>

@ -5,38 +5,15 @@ namespace IHM.Desktop;
public partial class Operations : ContentView public partial class Operations : ContentView
{ {
public Manager Mgr => (App.Current as App).Manager;
List<Operation> operations;
public Operations() public Operations()
{ {
InitializeComponent(); InitializeComponent();
// Temporaire pour établir le binding de la vue Mgr.LoadBanque();
operations = new List<Operation>(); Mgr.LoadCompte();
operations.Add(new("op", 33.44, DateTime.Now, MethodePayement.CB, TagOperation.Divers, false));
operations.Add(new("course", 45.20, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true)); BindingContext = Mgr;
operations.Add(new("Orange", 50, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
operations.Add(new("EDF", 55.80, DateTime.Now, MethodePayement.Virement, TagOperation.Energie, true));
operations.Add(new("op", 33.44, DateTime.Now, MethodePayement.CB, TagOperation.Divers, false));
operations.Add(new("course", 45.20, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
operations.Add(new("Orange", 50, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
operations.Add(new("EDF", 55.80, DateTime.Now, MethodePayement.Virement, TagOperation.Energie, true));
operations.Add(new("op", 33.44, DateTime.Now, MethodePayement.CB, TagOperation.Divers, false));
operations.Add(new("course", 45.20, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
operations.Add(new("Orange", 50, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
operations.Add(new("EDF", 55.80, DateTime.Now, MethodePayement.Virement, TagOperation.Energie, true));
operations.Add(new("op", 33.44, DateTime.Now, MethodePayement.CB, TagOperation.Divers, false));
operations.Add(new("course", 45.20, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
operations.Add(new("Orange", 50, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
operations.Add(new("EDF", 55.80, DateTime.Now, MethodePayement.Virement, TagOperation.Energie, true));
operations.Add(new("op", 33.44, DateTime.Now, MethodePayement.CB, TagOperation.Divers, false));
operations.Add(new("course", 45.20, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
operations.Add(new("Orange", 50, DateTime.Now, MethodePayement.CB, TagOperation.Divers, true));
operations.Add(new("EDF", 55.80, DateTime.Now, MethodePayement.Virement, TagOperation.Energie, true));
BindingContext = operations;
} }
private void AddCredit_Clicked(object sender, EventArgs e) private void AddCredit_Clicked(object sender, EventArgs e)

@ -48,12 +48,24 @@
<MauiImage Include="Resources\Images\GestionBanques\reload_banks.png"> <MauiImage Include="Resources\Images\GestionBanques\reload_banks.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</MauiImage> </MauiImage>
<MauiImage Include="Resources\Images\NavBar\banque_black.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</MauiImage>
<MauiImage Include="Resources\Images\NavBar\cb_black.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</MauiImage>
<MauiImage Include="Resources\Images\NavBar\date_black.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</MauiImage>
<MauiImage Include="Resources\Images\NavBar\dollar_black.png"> <MauiImage Include="Resources\Images\NavBar\dollar_black.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</MauiImage> </MauiImage>
<MauiImage Include="Resources\Images\NavBar\settings_black.png"> <MauiImage Include="Resources\Images\NavBar\settings_black.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</MauiImage> </MauiImage>
<MauiImage Include="Resources\Images\NavBar\stats_black.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</MauiImage>
<Resource Include="Resources\Images\NavBar\home_black.png" /> <Resource Include="Resources\Images\NavBar\home_black.png" />
<!-- Splash Screen --> <!-- Splash Screen -->
@ -61,6 +73,15 @@
<!-- Images --> <!-- Images -->
<MauiImage Include="Resources\Images\*" /> <MauiImage Include="Resources\Images\*" />
<MauiImage Update="Resources\Images\background1.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</MauiImage>
<MauiImage Update="Resources\Images\background2.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</MauiImage>
<MauiImage Update="Resources\Images\background3.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</MauiImage>
<MauiImage Update="Resources\Images\dotnet_bot.svg" BaseSize="168,208" /> <MauiImage Update="Resources\Images\dotnet_bot.svg" BaseSize="168,208" />
<MauiImage Update="Resources\Images\logo_sans_fond.png"> <MauiImage Update="Resources\Images\logo_sans_fond.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
@ -87,6 +108,10 @@
<None Remove="Resources\Images\DashBoard\account_banks.png" /> <None Remove="Resources\Images\DashBoard\account_banks.png" />
<None Remove="Resources\Images\GestionBanques\add_banks.png" /> <None Remove="Resources\Images\GestionBanques\add_banks.png" />
<None Remove="Resources\Images\GestionBanques\reload_banks.png" /> <None Remove="Resources\Images\GestionBanques\reload_banks.png" />
<None Remove="Resources\Images\NavBar\banque_black.png" />
<None Remove="Resources\Images\NavBar\cb_black.png" />
<None Remove="Resources\Images\NavBar\date_black.png" />
<None Remove="Resources\Images\NavBar\stats_black.png" />
<None Remove="Resources\Images\refresh.png" /> <None Remove="Resources\Images\refresh.png" />
</ItemGroup> </ItemGroup>
@ -104,6 +129,9 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="Syncfusion.Maui.Charts" Version="20.4.43" />
<PackageReference Include="Syncfusion.Maui.Inputs" Version="20.4.43" />
<PackageReference Include="Syncfusion.Maui.ListView" Version="20.4.43" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

@ -1,4 +1,16 @@
namespace IHM using Syncfusion.Maui.Core.Hosting;
using Microsoft.Maui;
using Microsoft.Maui.Hosting;
using Microsoft.Maui.Controls.Compatibility;
using Microsoft.Maui.Controls.Hosting;
using Microsoft.Maui.Controls.Xaml;
using Syncfusion.Maui.Core.Hosting;
namespace IHM
{ {
public static class MauiProgram public static class MauiProgram
{ {
@ -7,6 +19,8 @@
var builder = MauiApp.CreateBuilder(); var builder = MauiApp.CreateBuilder();
builder builder
.UseMauiApp<App>() .UseMauiApp<App>()
.ConfigureSyncfusionCore()
.ConfigureFonts(fonts => .ConfigureFonts(fonts =>
{ {
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");

@ -11,7 +11,7 @@ public partial class AjoutBanques : ContentPage
{ {
InitializeComponent(); InitializeComponent();
BindingContext = Mgr; BindingContext = Mgr;
Mgr.LoadBanques(); Mgr.LoadBanqueDispo();
if (OperatingSystem.IsIOS()) if (OperatingSystem.IsIOS())
{ {
boutonRetour.IsVisible = true; boutonRetour.IsVisible = true;
@ -71,7 +71,7 @@ public partial class AjoutBanques : ContentPage
} }
} }
Mgr.User.LesBanques = await Mgr.Pers.RecupererBanques(Mgr.User); //Mgr.User.LesBanques = await Mgr.Pers.RecupererBanques(Mgr.User);
await Navigation.PopModalAsync(); await Navigation.PopModalAsync();
} }
} }

@ -6,8 +6,9 @@
<Grid> <Grid>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="0.25*"/> <RowDefinition Height="0.25*"/>
<RowDefinition Height="0.15*"/> <RowDefinition Height="0.15*"/>
<RowDefinition Height="1.40*"/> <RowDefinition Height="0.15*"/>
<RowDefinition Height="1.30*"/>
<RowDefinition Height="0.15*"/> <RowDefinition Height="0.15*"/>
<RowDefinition/> <RowDefinition/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
@ -38,86 +39,97 @@
Clicked="Banques_Clicked"/> Clicked="Banques_Clicked"/>
<HorizontalStackLayout Grid.Row="1" Grid.ColumnSpan="2" HorizontalOptions="Center" >
<Picker Title="Choisir une Banque"
ItemsSource="{Binding ListeDesBanques}"
ItemDisplayBinding="{Binding Name}"
SelectedItem="{Binding SelectedBanque}"
Margin="0,0,30,0"/>
<Picker Title="Choisir un Compte"
ItemsSource="{Binding ListeDesComptes}"
ItemDisplayBinding="{Binding Nom}"
SelectedItem="{Binding SelectedCompte}"
Margin="30,0,0,0"/>
</HorizontalStackLayout>
<Label Grid.Row="2" Grid.ColumnSpan="2" Text="Liste des Dernières Opérations : " FontAttributes="Bold" FontSize="Body" Padding="20,5,0,0"/>
<CollectionView ItemsSource="{Binding SelectedCompte.LesOpe}" Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2">
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid Margin="0,7,0,7" >
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<!--<ColumnDefinition/>-->
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<!--<ImageButton Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
Source="{Binding ImageSrc}"
CornerRadius="10"/>-->
<Label Grid.Row="0" Grid.Column="0"
Text="{Binding Nom}"
FontAttributes="Bold"
FontSize="Body"
Margin="50,0,0,0"/>
<Label Grid.Row="1" Grid.Column="0"
Text="{Binding Tag}"
Margin="50,0,0,0"
FontAttributes="Italic"/>
<Label Grid.Row="0" Grid.Column="2"
Text="{Binding DateOperation, StringFormat='{0:d}'}"/>
<Label Grid.Row="1" Grid.Column="2"
Text="{Binding Montant}"
FontAttributes="Bold"
TextColor="OrangeRed"/>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
<Label Grid.Row="1" Grid.ColumnSpan="2" Text="Liste des Dernières Opérations : " FontAttributes="Bold" FontSize="Body" Padding="20,5,0,0"/>
<Label Grid.Row="4" Grid.ColumnSpan="2" Text="Liste des Banques favoris :" FontAttributes="Bold" FontSize="Body" Padding="20,0,0,0"/>
<CollectionView Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="2" ItemsSource="{Binding ListeDesBanques}">
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.75*"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<CollectionView Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" ItemsSource="{Binding LesOpe}"> <Label Grid.Column="0" Text="{Binding Name}"
<CollectionView.ItemTemplate> FontAttributes="Bold" FontSize="Body"
<DataTemplate> HorizontalOptions="Center"
<Grid Padding="10"> VerticalOptions="Center"/>
<Grid.RowDefinitions> <ImageButton Grid.Column="2" Source="reload_banks.png"
<RowDefinition/> Padding="10" Margin="5"
<RowDefinition/> CornerRadius="10" HeightRequest="65"
</Grid.RowDefinitions> BackgroundColor="{StaticResource Primary}"/>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<ImageButton Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" </Grid>
Source="{Binding ImageSrc}"
CornerRadius="10"/>
<Label Grid.Row="0" Grid.Column="1"
Text="{Binding NomOpe}" </DataTemplate>
FontAttributes="Bold" /> </CollectionView.ItemTemplate>
<Label Grid.Row="1" Grid.Column="1" </CollectionView>
Text="{Binding DetailTypeOpe}"
FontAttributes="Italic"/>
<Label Grid.Row="0" Grid.Column="2"
Text="{Binding DateOpe}"/>
<Label Grid.Row="0" Grid.Column="3" Grid.ColumnSpan="2" </Grid>
Text="{Binding MontantOpe}"
FontAttributes="Bold"/>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
<Label Grid.Row="3" Grid.ColumnSpan="2" Text="Liste des Comptes favoris :" FontAttributes="Bold" FontSize="Body" Padding="20,0,0,0"/>
<CollectionView Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" ItemsSource="{Binding ComptesFav}" ItemsLayout="HorizontalList">
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid Padding="10">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
Text="{Binding Banque}"
FontAttributes="Bold"/>
<Label Grid.Row="0" Grid.Column="1"
Text="{Binding Type}"
FontAttributes="Italic"/>
<Label Grid.Row="1" Grid.Column="1"
Text="{Binding Solde}"
FontAttributes="Bold"/>
<Label Grid.Row="0" Grid.Column="2"
Text="{Binding DateMaJ}"/>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</Grid>
</ScrollView> </ScrollView>
</ContentPage> </ContentPage>

@ -6,10 +6,13 @@ namespace IHM.Mobile;
public partial class DashBoard : ContentPage public partial class DashBoard : ContentPage
{ {
public Manager Mgr => (App.Current as App).Manager; public Manager Mgr => (App.Current as App).Manager;
public DashBoard() public DashBoard()
{ {
InitializeComponent(); InitializeComponent();
//Routing.RegisterRoute(nameof(DashBoard), typeof(DashBoard)); Mgr.LoadBanque();
BindingContext = Mgr; BindingContext = Mgr;
if (Mgr.User == null) if (Mgr.User == null)
@ -18,12 +21,15 @@ public partial class DashBoard : ContentPage
} }
/*if (!Mgr.Pers.TestConnexion()) /*if (!Mgr.Pers.TestConnexion())
{ {
loadPage(new ErrorPage()); loadPage(new ErrorPage());
Debug.WriteLine("cc"); Debug.WriteLine("cc");
}*/ }*/
} }
public async void loadPage(Page p) public async void loadPage(Page p)

@ -32,7 +32,7 @@
<Label Grid.Row="1" Grid.ColumnSpan="3" Text="Liste de vos banques : " FontAttributes="Bold" FontSize="Body" Padding="20,10,0,0"/> <Label Grid.Row="1" Grid.ColumnSpan="3" Text="Liste de vos banques : " FontAttributes="Bold" FontSize="Body" Padding="20,10,0,0"/>
<CollectionView Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" ItemsSource="{Binding User.LesBanques}"> <CollectionView Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" ItemsSource="{Binding ListeDesBanques}">
<CollectionView.ItemTemplate> <CollectionView.ItemTemplate>
<DataTemplate> <DataTemplate>
<Grid> <Grid>
@ -41,7 +41,7 @@
<ColumnDefinition/> <ColumnDefinition/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="{Binding Nom}" <Label Grid.Column="0" Text="{Binding Name}"
FontAttributes="Bold" FontSize="Body" FontAttributes="Bold" FontSize="Body"
HorizontalOptions="Center" HorizontalOptions="Center"
VerticalOptions="Center"/> VerticalOptions="Center"/>
@ -59,6 +59,5 @@
</CollectionView> </CollectionView>
</Grid> </Grid>
</ContentPage> </ContentPage>

@ -11,7 +11,7 @@ public partial class GestionBanques : ContentPage
{ {
InitializeComponent(); InitializeComponent();
BindingContext= Mgr; BindingContext= Mgr;
Mgr.LoadBanques(); Mgr.LoadBanque();
if (OperatingSystem.IsIOS()) if (OperatingSystem.IsIOS())
{ {
boutonRetour.IsVisible = true; boutonRetour.IsVisible = true;

@ -24,7 +24,7 @@
TextColor="{StaticResource Black}" TextColor="{StaticResource Black}"
VerticalTextAlignment="Center" VerticalTextAlignment="Center"
FontSize="15" FontSize="15"
Placeholder="Addresse mail" Placeholder="Adresse mail"
x:Name="EntryMail"/> x:Name="EntryMail"/>
</Border> </Border>

@ -26,7 +26,10 @@ namespace IHM.Mobile
if (Mgr.CompareHash(await Mgr.getPassword(EntryMail.Text), EntryPassworld.Text)) if (Mgr.CompareHash(await Mgr.getPassword(EntryMail.Text), EntryPassworld.Text))
{ {
Mgr.createUser(EntryMail.Text); Mgr.createUser(EntryMail.Text);
await Navigation.PopModalAsync(); await Navigation.PopModalAsync();
Mgr.LoadAll();
} }
else else
{ {

@ -2,11 +2,14 @@
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="IHM.Mobile.Operations"> x:Class="IHM.Mobile.Operations">
<ScrollView>
<VerticalStackLayout> <VerticalStackLayout>
<ListView Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" ItemsSource="{Binding User.LesBanques[0].ListeDesComptes[0].LesOpe}"> <Label Text="Mes Opérations :" FontAttributes="Bold" Margin="10,10,0,20" FontSize="20"/>
<ListView.ItemTemplate> <CollectionView Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" ItemsSource="{Binding SelectedCompte.LesOpe}">
<!--User.LesBanques[0].ListeDesComptes[0].LesOpe}-->
<CollectionView.ItemTemplate>
<DataTemplate> <DataTemplate>
<Grid Padding="10" > <Grid Margin="0,7,0,7">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition/> <RowDefinition/>
<RowDefinition/> <RowDefinition/>
@ -21,20 +24,25 @@
<!--<ImageButton Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" <!--<ImageButton Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
Source="{Binding ImageSrc}" Source="{Binding ImageSrc}"
CornerRadius="10"/>--> CornerRadius="10"/>-->
<Label Grid.Row="0" Grid.Column="1" <Label Grid.Row="0" Grid.Column="0"
Text="{Binding IntituleOperation}" Text="{Binding Nom}"
FontAttributes="Bold" TextColor="Brown" /> FontAttributes="Bold"
<Label Grid.Row="1" Grid.Column="1" FontSize="Body"
Text="{Binding DetailTypeOpe}" Margin="50,0,0,0"/>
FontAttributes="Italic"/> <Label Grid.Row="1" Grid.Column="0"
Text="{Binding Tag}"
FontAttributes="Italic"
Margin="50,0,0,0"/>
<Label Grid.Row="0" Grid.Column="2" <Label Grid.Row="0" Grid.Column="2"
Text="{Binding DateOperation}"/> Text="{Binding DateOperation, StringFormat='{0:d}'}"/>
<Label Grid.Row="0" Grid.Column="3" Grid.ColumnSpan="2" <Label Grid.Row="1" Grid.Column="2"
Text="{Binding Montant}" Text="{Binding Montant}"
FontAttributes="Bold"/> FontAttributes="Bold"
TextColor="OrangeRed"/>
</Grid> </Grid>
</DataTemplate> </DataTemplate>
</ListView.ItemTemplate> </CollectionView.ItemTemplate>
</ListView> </CollectionView>
</VerticalStackLayout> </VerticalStackLayout>
</ScrollView>
</ContentPage> </ContentPage>

@ -6,9 +6,12 @@ namespace IHM.Mobile;
public partial class Operations : ContentPage public partial class Operations : ContentPage
{ {
public Manager Mgr => (App.Current as App).Manager; public Manager Mgr => (App.Current as App).Manager;
public Operations()
public Operations()
{ {
InitializeComponent(); InitializeComponent();
BindingContext = Mgr; BindingContext = Mgr;
Mgr.LoadCompte();
} }
} }

@ -2,134 +2,48 @@
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:IHM.Composant" xmlns:local="clr-namespace:IHM.Composant"
x:Class="IHM.Mobile.Planification" x:Class="IHM.Mobile.Planification">
BackgroundColor="#A00EE8"> <ScrollView>
<ScrollView VerticalOptions="FillAndExpand">
<VerticalStackLayout> <VerticalStackLayout>
<StackLayout Orientation="Horizontal"> <Label Text="Mes Echeances du mois :" FontAttributes="Bold" Margin="10,10,0,20" FontSize="20"/>
<Label <CollectionView ItemsSource="{Binding SelectedCompte.LesEch}">
Text="Bienvenue" <!--User.LesBanques[0].ListeDesComptes[0].LesOpe}-->
VerticalOptions="Center"
HorizontalOptions="Start"
Margin="10,10,10,20"
FontSize="25"
/>
<Label
FontAttributes="Bold"
Margin="0,10,0,0"
Text="{Binding User.Prenom}"
FontSize="25"
/>
</StackLayout>
<Button
BackgroundColor="Red"
x:Name="Bouton"
WidthRequest="50"
HeightRequest="50"
HorizontalOptions="End"
Margin="0,0,40,0"
Clicked="OnClickedGestionBanque"
/>
<Button
IsVisible="False"
IsEnabled="False"
WidthRequest="175"
HeightRequest="50"
Margin="0,-50,0,0"
x:Name="ImgBanqueActuelle"
BackgroundColor="AliceBlue"
Text="{Binding selectedBanque}"
/>
<Button
IsVisible="false"
BackgroundColor="Black"
x:Name="BoutonRetour"
WidthRequest="50"
HeightRequest="50"
HorizontalOptions="End"
Margin="0,-50,40,0"
Clicked="OnClickedRetour"
/>
<StackLayout IsVisible="false" x:Name="stackpannel">
<CollectionView x:Name="listeBanque" ItemsSource="{Binding User.LesBanques}" ItemsUpdatingScrollMode="KeepScrollOffset" Margin="22,0,22,0" ItemsLayout="HorizontalList">
<CollectionView.ItemTemplate> <CollectionView.ItemTemplate>
<DataTemplate> <DataTemplate>
<StackLayout Margin="0,35,0,0"> <Grid Margin="0,7,0,7">
<Button Clicked="OnClickedBanque" Text="{Binding Nom}"/> <Grid.RowDefinitions>
</StackLayout> <RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<!--<ColumnDefinition/>-->
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<!--<ImageButton Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
Source="{Binding ImageSrc}"
CornerRadius="10"/>-->
<Label Grid.Row="0" Grid.Column="0"
Text="{Binding Nom}"
FontAttributes="Bold"
FontSize="Body"
Margin="50,0,0,0"/>
<Label Grid.Row="1" Grid.Column="0"
Text="{Binding Tag}"
FontAttributes="Italic"
Margin="50,0,0,0"/>
<Label Grid.Row="0" Grid.Column="2"
Text="{Binding DateOperation, StringFormat='{0:d}'}"/>
<Label Grid.Row="1" Grid.Column="2"
Text="{Binding Montant}"
FontAttributes="Bold"
TextColor="OrangeRed"/>
</Grid>
</DataTemplate> </DataTemplate>
</CollectionView.ItemTemplate> </CollectionView.ItemTemplate>
</CollectionView> </CollectionView>
</StackLayout> </VerticalStackLayout>
<StackLayout Margin="0,20,0,0" Orientation="Horizontal">
<Label Margin="20,0,0,0" FontSize="25">Solde total :</Label>
<Label FontSize="25" Margin="8,0,0,0" x:Name="soldetotal">0</Label>
</StackLayout>
<Border Stroke="Black" StrokeThickness="5" Margin="0,70,0,0">
<StackLayout BackgroundColor="Cyan" Padding="0,0,0,20">
<Label HorizontalTextAlignment="Center" FontSize="20">Listes des dernières opérations</Label>
<StackLayout Orientation="Vertical">
<StackLayout Orientation="Horizontal">
<Label>Nom de l'opération</Label>
<Label>Date de l'opération</Label>
<Label>Type d'opération</Label>
</StackLayout>
<StackLayout Orientation="Horizontal">
<Label>Nom de l'opération</Label>
<Label>Date de l'opération</Label>
<Label>Type d'opération</Label>
</StackLayout>
<StackLayout Orientation="Horizontal">
<Label>Nom de l'opération</Label>
<Label>Date de l'opération</Label>
<Label>Type d'opération</Label>
</StackLayout>
<StackLayout Orientation="Horizontal">
<Label>Nom de l'opération</Label>
<Label>Date de l'opération</Label>
<Label>Type d'opération</Label>
</StackLayout>
<StackLayout Orientation="Horizontal">
<Label>Nom de l'opération</Label>
<Label>Date de l'opération</Label>
<Label>Type d'opération</Label>
</StackLayout>
<StackLayout Orientation="Horizontal">
<Label>Nom de l'opération</Label>
<Label>Date de l'opération</Label>
<Label>Type d'opération</Label>
</StackLayout>
<StackLayout Orientation="Horizontal">
<Label>Nom de l'opération</Label>
<Label>Date de l'opération</Label>
<Label>Type d'opération</Label>
</StackLayout>
<StackLayout Orientation="Horizontal">
<Label>Nom de l'opération</Label>
<Label>Date de l'opération</Label>
<Label>Type d'opération</Label>
</StackLayout>
<StackLayout Orientation="Horizontal">
<Label>Nom de l'opération</Label>
<Label>Date de l'opération</Label>
<Label>Type d'opération</Label>
</StackLayout>
<StackLayout Orientation="Horizontal">
<Label>Nom de l'opération</Label>
<Label>Date de l'opération</Label>
<Label>Type d'opération</Label>
</StackLayout>
</StackLayout>
</StackLayout>
</Border>
<Border Stroke="Black" StrokeThickness="5" Margin="0,70,0,30">
<StackLayout Margin="0,10,0,0">
<Label HorizontalTextAlignment="Center" FontSize="20">Pour vous</Label>
<StackLayout BackgroundColor="RosyBrown" Margin="0,0,0,20" HeightRequest="200" WidthRequest="310">
<Label HorizontalOptions="Center" FontSize="20">Aide à la gestion personnalisée</Label>
</StackLayout>
</StackLayout>
</Border>
</VerticalStackLayout>
</ScrollView> </ScrollView>
</ContentPage> </ContentPage>

@ -9,43 +9,9 @@ public partial class Planification : ContentPage
{ {
InitializeComponent(); InitializeComponent();
BindingContext = Mgr; BindingContext = Mgr;
//Routing.RegisterRoute(nameof(DashBoard), typeof(DashBoard)); Mgr.LoadCompte();
} }
void OnClickedBanque(object sender, EventArgs args)
{
Button btn = (Button)sender;
ImgBanqueActuelle.Text = btn.Text;
}
async void OnClickedGestionBanque(object sender, EventArgs args)
{
Bouton.BackgroundColor = Color.FromRgb(192, 192, 192);
await Bouton.TranslateTo(-130, 35, 50);
await Bouton.ScaleXTo(7.5, 50);
await Bouton.ScaleYTo(3, 50);
stackpannel.IsVisible = true;
BoutonRetour.IsVisible = true;
ImgBanqueActuelle.IsVisible = true;
//await Navigation.PushModalAsync(new GestionBanque());
}
async void OnClickedRetour(object sender, EventArgs args)
{
await Bouton.ScaleXTo(1, 50);
await Bouton.ScaleYTo(1, 50);
ImgBanqueActuelle.IsVisible = false;
stackpannel.IsVisible = false;
await Bouton.TranslateTo(0, 0, 50);
BoutonRetour.IsVisible = false;
}
public async void loadInscription()
{
await Navigation.PushModalAsync(new MainPage());
BindingContext = Mgr;
}
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 963 B

After

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 744 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

@ -4,6 +4,7 @@
xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
<Color x:Key="Corail">#DF775C</Color>
<Color x:Key="Primary">#7FB196</Color> <Color x:Key="Primary">#7FB196</Color>
<Color x:Key="Secondary">#3C425A</Color> <Color x:Key="Secondary">#3C425A</Color>
<Color x:Key="Tertiary">#F3EFDB</Color> <Color x:Key="Tertiary">#F3EFDB</Color>
@ -42,9 +43,11 @@
<Color x:Key="Blue300Accent">#A7CBF6</Color> <Color x:Key="Blue300Accent">#A7CBF6</Color>
<LinearGradientBrush x:Key="TestColor" StartPoint="0,0" EndPoint="1,1"> <LinearGradientBrush x:Key="TestColor" StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="RosyBrown" Offset="0" /> <GradientStop Color="{StaticResource Gray600}" Offset="0" />
<GradientStop Color="{StaticResource Tertiary}" Offset="0.5" /> <GradientStop Color="{StaticResource Tertiary}" Offset="0.5" />
<GradientStop Color="RosyBrown" Offset="1" /> <GradientStop Color="{StaticResource Gray600}" Offset="1" />
</LinearGradientBrush> </LinearGradientBrush>
</ResourceDictionary> </ResourceDictionary>

@ -403,7 +403,7 @@
<Setter Property="FontFamily" Value="Comic sans MS"/> <Setter Property="FontFamily" Value="Comic sans MS"/>
<Setter Property="FontSize" Value="30"/> <Setter Property="FontSize" Value="30"/>
<Setter Property="HorizontalOptions" Value="Center"/> <Setter Property="HorizontalOptions" Value="Center"/>
<Setter Property="TextColor" Value="{StaticResource Yellow300Accent}"/> <Setter Property="TextColor" Value="{StaticResource Secondary}"/>
</Style> </Style>
<Style TargetType="Button" x:Key="WindowsButton"> <Style TargetType="Button" x:Key="WindowsButton">
@ -413,7 +413,17 @@
<Setter Property="BorderWidth" Value="1"/> <Setter Property="BorderWidth" Value="1"/>
<Setter Property="BorderColor" Value="Black"/> <Setter Property="BorderColor" Value="Black"/>
<Setter Property="FontFamily" Value="Comic sans MS"/> <Setter Property="FontFamily" Value="Comic sans MS"/>
<Setter Property="Background" Value="{StaticResource TestColor}"/> <Setter Property="Background" Value="{StaticResource Primary}"/>
</Style>
<Style TargetType="Button" x:Key="WindowsButton2">
<Setter Property="TextColor" Value="Black"/>
<Setter Property="Margin" Value="10"/>
<Setter Property="CornerRadius" Value="20"/>
<Setter Property="BorderWidth" Value="1"/>
<Setter Property="BorderColor" Value="Black"/>
<Setter Property="FontFamily" Value="Comic sans MS"/>
<Setter Property="Background" Value="{StaticResource Corail}"/>
</Style> </Style>
<Style TargetType="Border" x:Key="TotalButton"> <Style TargetType="Border" x:Key="TotalButton">

@ -11,6 +11,7 @@ namespace Model
public class Banque : INotifyPropertyChanged public class Banque : INotifyPropertyChanged
{ {
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler PropertyChanged;
public string Nom { get; private set; } public string Nom { get; private set; }
/// <summary> /// <summary>
@ -49,6 +50,10 @@ namespace Model
ListeDesComptes = lescomptes; ListeDesComptes = lescomptes;
} }
/* public Banque()
{
}
*/
void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
public void AjouterCompte(Compte compte) public void AjouterCompte(Compte compte)
{ {

@ -0,0 +1,32 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Model
{
public class BanqueInscrit : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public string Name { get; set; }
public int Id { get; set; }
[JsonConstructor]
public BanqueInscrit(int id, string nomBanque)
{
Id = id;
Name = nomBanque;
}
void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
public override string ToString()
{
return Name + " " + Id;
}
}
}

@ -10,7 +10,7 @@ namespace Model
public string Nom { get; set; } public string Nom { get; set; }
public double Solde { get; set; } public double Solde { get; set; }
public DateTime DerniereModification { get; set; } public DateTime DerniereModification { get; set; }
public List<Operation> LesOpe public IList<Operation> LesOpe
{ {
get => lesOpe; get => lesOpe;
set set
@ -22,9 +22,23 @@ namespace Model
} }
} }
} }
private List<Operation> lesOpe = new List<Operation>(); private IList<Operation> lesOpe = new List<Operation>();
public List<Planification> LesPla { get; set; } = new List<Planification>(); public IList<Planification> LesPla { get; set; } = new List<Planification>();
public List<Echeance> LesEch { get; set; } = new List<Echeance>();
public IList<Echeance> LesEch
{
get => lesEch;
set
{
if (lesEch != value)
{
lesEch = value;
OnPropertyChanged(nameof(LesEch));
}
}
}
private IList<Echeance> lesEch = new List<Echeance>();
//public IList<Echeance> LesEch { get; set; } = new List<Echeance>();
[JsonConstructor] [JsonConstructor]
public Compte(string id, string nom) public Compte(string id, string nom)
@ -36,7 +50,9 @@ namespace Model
} }
public Compte(string id,string nom, double solde) : base() public Compte(string id,string nom, double solde) : base()
{ {
Nom = nom;
Solde = solde; Solde = solde;
} }
public Compte(string id, string nom, double solde, List<Operation> lesOpe) public Compte(string id, string nom, double solde, List<Operation> lesOpe)
{ {

@ -11,7 +11,7 @@ namespace Model
public class Echeance public class Echeance
{ {
public string IntituleOperation { get; private set; } public string Nom { get; private set; }
public double Montant { get; private set; } public double Montant { get; private set; }
@ -23,19 +23,19 @@ namespace Model
public TagOperation Tag { get; private set; } public TagOperation Tag { get; private set; }
[JsonConstructor] [JsonConstructor]
public Echeance(string intituleOperation, double montant, DateTime dateOperation, MethodePayement modePayement, TagOperation tag, bool isDebit = true) public Echeance(string nom, double montant, DateTime dateO, MethodePayement methodePayement, TagOperation tag, bool isDebit = true)
{ {
IntituleOperation = intituleOperation; Nom = nom;
Montant = montant; Montant = montant;
DateOperation = dateOperation; DateOperation = dateO;
ModePayement = modePayement; ModePayement = methodePayement;
IsDebit = isDebit; IsDebit = isDebit;
Tag = tag; Tag = tag;
} }
public override string ToString() public override string ToString()
{ {
return IntituleOperation + " " + DateOperation + " " + Montant + " " + ModePayement + " " + IsDebit + " " + Tag; return Nom + " - " + DateOperation.ToShortDateString() + " - " + Montant + " €";
} }
} }

@ -22,14 +22,14 @@ namespace Model
//actions sur les banques //actions sur les banques
Task<bool> AjouterBanque(Banque banque, Inscrit inscrit); Task<bool> AjouterBanque(Banque banque, Inscrit inscrit);
Task<bool> SupprimerBanque(Banque banque, Inscrit inscrit); Task<bool> SupprimerBanque(Banque banque, Inscrit inscrit);
Task<IList<Banque>> RecupererBanques(Inscrit inscrit); Task<IList<BanqueInscrit>> RecupererBanques(Inscrit inscrit);
Task<IList<Banque>> RecupererBanquesDisponible(); Task<IList<Banque>> RecupererBanquesDisponible();
//actions sur les comptes //actions sur les comptes
Task<bool> AjouterCompte(Compte compte, Inscrit inscrit); Task<bool> AjouterCompte(Compte compte, Inscrit inscrit);
Task<bool> SupprimerCompte(Compte compte, Inscrit inscrit); Task<bool> SupprimerCompte(Compte compte, Inscrit inscrit);
Task<IList<Compte>> RecupererCompte(Banque banque, Inscrit inscrit); Task<IList<Compte>> RecupererCompte(BanqueInscrit banque);
//actions sur les Opérations //actions sur les Opérations

@ -13,7 +13,7 @@ namespace Model
public IPersistanceManager Pers { get; private set; } public IPersistanceManager Pers { get; private set; }
private Inscrit user;
public Inscrit User public Inscrit User
{ {
get get
@ -26,11 +26,14 @@ namespace Model
{ {
user = value; user = value;
OnPropertyChanged(nameof(User)); OnPropertyChanged(nameof(User));
//LoadBanque();
LoadAll();
} }
} }
} }
private Inscrit user;
public Banque SelectedBanque public BanqueInscrit SelectedBanque
{ {
get => selectedBanque; get => selectedBanque;
set set
@ -39,10 +42,11 @@ namespace Model
{ {
selectedBanque = value; selectedBanque = value;
OnPropertyChanged(nameof(SelectedBanque)); OnPropertyChanged(nameof(SelectedBanque));
//LoadCompte();
} }
} }
} }
private Banque selectedBanque; private BanqueInscrit selectedBanque;
public IList<Banque> BanquesDisponibleInApp public IList<Banque> BanquesDisponibleInApp
{ {
get => banquesDisponibleInApp; get => banquesDisponibleInApp;
@ -57,11 +61,155 @@ namespace Model
} }
private IList<Banque> banquesDisponibleInApp; private IList<Banque> banquesDisponibleInApp;
public Compte SelectedCompte
{
get => selectedCompte;
set
{
if(selectedCompte != value)
{
selectedCompte = value;
OnPropertyChanged(nameof(SelectedCompte));
}
}
}
private Compte selectedCompte;
public IList<BanqueInscrit> ListeDesBanques
{
get => listeDesBanques;
set
{
if (listeDesBanques != value)
{
listeDesBanques = value;
OnPropertyChanged(nameof(ListeDesBanques));
}
}
}
private IList<BanqueInscrit> listeDesBanques = new List<BanqueInscrit>();
//private IList<BanqueInscrit> listeDesBanques = new List<BanqueInscrit>();
public ReadOnlyCollection<BanqueInscrit> AllBanque { get; private set; }
public List<Compte> ListeDesComptes
{
get => listeDesComptes;
set
{
if (listeDesComptes != value)
{
listeDesComptes = value;
OnPropertyChanged(nameof(ListeDesComptes));
}
}
}
private List<Compte> listeDesComptes = new List<Compte>();
public ReadOnlyCollection<Compte> AllCompte { get; private set; }
public Manager(IPersistanceManager persistance) public Manager(IPersistanceManager persistance)
{ {
AllBanque = new ReadOnlyCollection<BanqueInscrit>(ListeDesBanques);
AllCompte = new ReadOnlyCollection<Compte>(ListeDesComptes);
Pers = persistance; Pers = persistance;
} }
public async void LoadCompte()
{
ListeDesComptes.Clear();
if(SelectedBanque == null)
{
throw new ArgumentNullException("Vous n'avez pas de banque disponible");
}
try
{
IList<Compte> comptes = await Pers.RecupererCompte(SelectedBanque);
ListeDesComptes.AddRange(comptes);
foreach (Compte compte in ListeDesComptes)
{
compte.LesPla = await Pers.RecupererPlanification(compte);
compte.LesOpe = await Pers.RecupererOperation(compte);
compte.LesEch = await Pers.RecupererEcheance(compte);
}
SelectedCompte = ListeDesComptes.FirstOrDefault();
}
catch(Exception exception)
{
Debug.WriteLine(exception.Message);
}
}
public async void LoadBanque()
{
try
{
ListeDesBanques = await Pers.RecupererBanques(User);
SelectedBanque = ListeDesBanques.FirstOrDefault();
}
catch (Exception exception)
{
Debug.WriteLine(exception.Message);
}
}
public async void LoadAll()
{
try
{
ListeDesBanques = await Pers.RecupererBanques(User);
ListeDesComptes.AddRange(await Pers.RecupererCompte(ListeDesBanques.FirstOrDefault()));
foreach (Compte compte in ListeDesComptes)
{
compte.LesPla = await Pers.RecupererPlanification(compte);
compte.LesOpe = await Pers.RecupererOperation(compte);
compte.LesEch = await Pers.RecupererEcheance(compte);
}
SelectedBanque = ListeDesBanques.FirstOrDefault();
SelectedCompte = ListeDesComptes.FirstOrDefault();
}
catch (Exception exception)
{
Debug.WriteLine(exception.Message);
}
}
public async void LoadBanqueDispo()
{
try
{
BanquesDisponibleInApp = await Pers.RecupererBanquesDisponible();
}catch(Exception exception)
{
Debug.WriteLine(exception.Message);
}
}
void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
@ -75,11 +223,11 @@ namespace Model
User = null; User = null;
} }
public async void LoadBanques() /*public async void LoadBanques()
{ {
User.LesBanques = await Pers.RecupererBanques(User); User.LesBanques = await Pers.RecupererBanques(User);
BanquesDisponibleInApp = await Pers.RecupererBanquesDisponible(); BanquesDisponibleInApp = await Pers.RecupererBanquesDisponible();
} }*/
public async Task<string> getPassword(string email) public async Task<string> getPassword(string email)
{ {
@ -91,6 +239,46 @@ namespace Model
{ {
User = await Pers.RecupererInscrit(mail); User = await Pers.RecupererInscrit(mail);
} }
// Intégralité des méthodes (Débit, Crédit, planification echeance)
//Operation
public void effectuerOperation(Compte compte, Operation operation)
{
Pers.AjouterOperation(compte, operation);
}
public void supprimerOperation(Compte compte, Operation operation)
{
Pers.SupprimerOperation(compte, operation);
}
//Echeance
public void supprimerEcheance(Compte compte, Echeance echeance)
{
Pers.SupprimerEcheance(compte, echeance);
}
public void ajouterEcheance(Compte compte, Echeance echeance)
{
Pers.AjouterEcheance(compte, echeance);
}
// Planification
public void ajouterPlanification(Compte compte, Planification planification)
{
Pers.AjouterPlanification(compte, planification);
}
public void supprimerPlanification(Compte compte, Planification planification)
{
Pers.SupprimerPlanification(compte, planification);
}
} }
} }

@ -19,6 +19,9 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="Syncfusion.Maui.Charts" Version="20.4.43" />
<PackageReference Include="Syncfusion.Maui.Inputs" Version="20.4.43" />
<PackageReference Include="Syncfusion.Maui.ListView" Version="20.4.43" />
</ItemGroup> </ItemGroup>
</Project> </Project>

@ -11,19 +11,19 @@ namespace Model
public class Operation : INotifyPropertyChanged public class Operation : INotifyPropertyChanged
{ {
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler PropertyChanged;
public string IntituleOperation public string Nom
{ {
get => intituleOperation; get => nom;
set set
{ {
if (intituleOperation != value) if (nom != value)
{ {
intituleOperation = value; nom = value;
OnPropertyChanged(nameof(IntituleOperation)); OnPropertyChanged(nameof(Nom));
} }
} }
} }
private string intituleOperation; private string nom;
public double Montant { get; private set; } public double Montant { get; private set; }
@ -38,12 +38,12 @@ namespace Model
public bool FromBanque { get; private set; } public bool FromBanque { get; private set; }
[JsonConstructor] [JsonConstructor]
public Operation(string intituleOperation, double montant, DateTime dateOperation, MethodePayement modePayement, TagOperation tag, bool fromBanque, bool isDebit=true) public Operation(string nom, double montant, DateTime dateO, MethodePayement methodePayement, TagOperation tag, bool fromBanque, bool isDebit=true)
{ {
IntituleOperation = intituleOperation; Nom = nom;
Montant = montant; Montant = montant;
DateOperation = dateOperation; DateOperation = dateO;
ModePayement = modePayement; ModePayement = methodePayement;
IsDebit = isDebit; IsDebit = isDebit;
Tag = tag; Tag = tag;
FromBanque = fromBanque; FromBanque = fromBanque;
@ -53,7 +53,11 @@ namespace Model
public override string ToString() public override string ToString()
{ {
return IntituleOperation + " " + DateOperation + " " + Montant + " " + ModePayement + " " + IsDebit + " " + FromBanque + " " + Tag; return Nom + " " + DateOperation + " " + Montant + " " + ModePayement + " " + IsDebit + " " + FromBanque + " " + Tag;
} }
} }
} }

@ -12,7 +12,7 @@ namespace Model
public class Planification public class Planification
{ {
public string IntituleOperation { get; private set; } public string Nom { get; private set; }
public double Montant { get; private set; } public double Montant { get; private set; }
@ -24,19 +24,19 @@ namespace Model
public TagOperation Tag { get; private set; } public TagOperation Tag { get; private set; }
[JsonConstructor] [JsonConstructor]
public Planification(string intituleOperation, double montant, DateTime dateOperation, MethodePayement modePayement, TagOperation tag, bool isDebit = true) public Planification(string nom, double montant, DateTime dateO, MethodePayement methodePayement, TagOperation tag, bool isDebit = true)
{ {
IntituleOperation = intituleOperation; Nom = nom;
Montant = montant; Montant = montant;
DateOperation = dateOperation; DateOperation = dateO;
ModePayement = modePayement; ModePayement = methodePayement;
IsDebit = isDebit; IsDebit = isDebit;
Tag = tag; Tag = tag;
} }
public override string ToString() public override string ToString()
{ {
return IntituleOperation + " " + DateOperation + " " + Montant + " " + ModePayement + " " + IsDebit + " " + Tag; return Nom + " " + DateOperation + " " + Montant + " " + ModePayement + " " + IsDebit + " " + Tag;
} }
} }
} }

@ -21,4 +21,6 @@ namespace Model
Transaction, Transaction,
Santé Santé
} }
} }

@ -2,6 +2,7 @@
using Model; using Model;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using Syncfusion.Maui.DataSource.Extensions;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using System.Security.Principal; using System.Security.Principal;
using System.Xml.Linq; using System.Xml.Linq;
@ -87,8 +88,8 @@ foreach (Banque b in banques)
Console.WriteLine("\n--------\n"); Console.WriteLine("\n--------\n");
IList<Banque> banquesId1 = ClientAPI.GetBanqueAsync("1").GetAwaiter().GetResult(); IList<BanqueInscrit> banquesId1 = ClientAPI.GetBanqueAsync("1").GetAwaiter().GetResult();
foreach (Banque b in banquesId1) foreach (BanqueInscrit b in banquesId1)
{ {
Console.WriteLine(b); Console.WriteLine(b);
} }
@ -101,7 +102,7 @@ Console.WriteLine("Add banque for user : " + rrrr + "\n");
Console.WriteLine("\n----Verif----\n"); Console.WriteLine("\n----Verif----\n");
banquesId1 = ClientAPI.GetBanqueAsync("1").GetAwaiter().GetResult(); banquesId1 = ClientAPI.GetBanqueAsync("1").GetAwaiter().GetResult();
foreach (Banque b in banquesId1) foreach (BanqueInscrit b in banquesId1)
{ {
Console.WriteLine(b); Console.WriteLine(b);
} }
@ -114,7 +115,7 @@ Console.WriteLine("Del banque for user : " + rrrrrr + "\n");
Console.WriteLine("\n----Verif----\n"); Console.WriteLine("\n----Verif----\n");
banquesId1 = ClientAPI.GetBanqueAsync("1").GetAwaiter().GetResult(); banquesId1 = ClientAPI.GetBanqueAsync("1").GetAwaiter().GetResult();
foreach (Banque b in banquesId1) foreach (BanqueInscrit b in banquesId1)
{ {
Console.WriteLine(b); Console.WriteLine(b);
} }
@ -246,3 +247,14 @@ foreach (Echeance e in echeances)
{ {
Console.WriteLine(e); Console.WriteLine(e);
} }
Console.WriteLine("errr");
// test pers API
IPersistanceManager Pers = new PersAPI();
IList<Compte> bla = Pers.RecupererCompte(new BanqueInscrit(34,"BANQUE POSTALE")).GetAwaiter().GetResult();
bla.ForEach(c=> Console.WriteLine(c));

@ -9,6 +9,9 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="Syncfusion.Maui.Charts" Version="20.4.43" />
<PackageReference Include="Syncfusion.Maui.Inputs" Version="20.4.43" />
<PackageReference Include="Syncfusion.Maui.ListView" Version="20.4.43" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

@ -11,6 +11,9 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="Syncfusion.Maui.Charts" Version="20.4.43" />
<PackageReference Include="Syncfusion.Maui.Inputs" Version="20.4.43" />
<PackageReference Include="Syncfusion.Maui.ListView" Version="20.4.43" />
<PackageReference Include="xunit" Version="2.4.1" /> <PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3"> <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

Loading…
Cancel
Save