diff --git a/src/Banquale/Banquale/Stub/Stub.cs b/src/Banquale/Banquale/Stub/Stub.cs
index f82d7a8..501412a 100644
--- a/src/Banquale/Banquale/Stub/Stub.cs
+++ b/src/Banquale/Banquale/Stub/Stub.cs
@@ -25,11 +25,11 @@ namespace Banquale.Stub
Account Account2 = new Account(9510, "Despoints", "FR7647858569691441525263003");
Account Account3 = new Account(3519, "Perotte", "FR7663522541416969585847002");
- Transaction Transaction1 = new Transaction(true, 55, Account2, 1, new DateTime(2023, 6, 21, 15, 29, 20));
- Transaction Transaction12 = new Transaction(true, 105, Account2, 2, new DateTime(2023, 8, 17, 18, 54, 35));
- Transaction Transaction13 = new Transaction(true, 187, Account3, 3, new DateTime(2023, 5, 3, 8, 39, 49));
- Transaction Transaction2 = new Transaction(false, 54.99, Account2, 4, new DateTime(2022, 8, 15));
- Transaction Transaction3 = new Transaction(true, 1000, Account3, 5, new DateTime(2020, 9, 1, 20, 00, 00));
+ Transaction Transaction1 = new Transaction(true, 55, Account2, new DateTime(2023, 6, 21, 15, 29, 20));
+ Transaction Transaction12 = new Transaction(true, 105, Account2, new DateTime(2023, 8, 17, 18, 54, 35));
+ Transaction Transaction13 = new Transaction(true, 187, Account3, new DateTime(2023, 5, 3, 8, 39, 49));
+ Transaction Transaction2 = new Transaction(false, 54.99, Account2, new DateTime(2022, 8, 15));
+ Transaction Transaction3 = new Transaction(true, 1000, Account3, new DateTime(2020, 9, 1, 20, 00, 00));
Debug.WriteLine(Customer1.Name, Customer1.Password);
@@ -46,11 +46,11 @@ namespace Banquale.Stub
//Account2.TransactionsList.Add(Transaction2);
- Account1.DoTransactions(Account2, 55, true, 1);
- Account1.DoTransactions(Account2, 105, true, 2);
- Account1.DoTransactions(Account3, 187, true, 3);
- Account1.DoTransactions(Account2, 54.99, false, 4);
- Account1.DoTransactions(Account3, 1000, false, 5);
+ Account1.DoTransactions(Account2, 55, true);
+ Account1.DoTransactions(Account2, 105, true);
+ Account1.DoTransactions(Account3, 187, true);
+ Account1.DoTransactions(Account2, 54.99, false);
+ Account1.DoTransactions(Account3, 1000, false);
Customer1.AccountsList.Add(Account1);
diff --git a/src/Banquale/Banquale/Views/TransactionsPage.xaml.cs b/src/Banquale/Banquale/Views/TransactionsPage.xaml.cs
index 25e29df..d20ab97 100644
--- a/src/Banquale/Banquale/Views/TransactionsPage.xaml.cs
+++ b/src/Banquale/Banquale/Views/TransactionsPage.xaml.cs
@@ -22,6 +22,7 @@ public partial class TransactionsPage : ContentPage
async void Objection_Clicked(System.Object sender, System.EventArgs e)
{
+ Mgr.SelectedTransaction.IsOpposition = true;
await Shell.Current.Navigation.PopAsync();
}
diff --git a/src/Banquale/Banquale/Views/Transfer/RequestPage.xaml b/src/Banquale/Banquale/Views/Transfer/RequestPage.xaml
index 7a3709a..8f20e5a 100644
--- a/src/Banquale/Banquale/Views/Transfer/RequestPage.xaml
+++ b/src/Banquale/Banquale/Views/Transfer/RequestPage.xaml
@@ -26,7 +26,7 @@
Padding="3">
+ MaximumWidthRequest="400"
+ Clicked="Send_Clicked"/>
diff --git a/src/Banquale/Banquale/Views/Transfer/RequestPage.xaml.cs b/src/Banquale/Banquale/Views/Transfer/RequestPage.xaml.cs
index c41832d..00ac895 100644
--- a/src/Banquale/Banquale/Views/Transfer/RequestPage.xaml.cs
+++ b/src/Banquale/Banquale/Views/Transfer/RequestPage.xaml.cs
@@ -14,7 +14,34 @@ public partial class RequestPage : ContentPage
public async void Send_Clicked(Object sender, EventArgs e)
{
- //Account.DoRequest(Name.Text, IBAN.Text, Sum.Text);
- await Shell.Current.GoToAsync("//balance");
+
+ if (string.IsNullOrEmpty(Name.Text) || string.IsNullOrEmpty(IBAN.Text) || string.IsNullOrEmpty(Sum.Text))
+ {
+ await DisplayAlert("Erreur", "Tout les champs doivent être complétés", "OK");
+ return;
+ }
+ if (Name.Text == Mgr.SelectedAccount.Name && IBAN.Text == Mgr.SelectedAccount.IBAN)
+ {
+ await DisplayAlert("Erreur", "Vous ne pouvez vous faire de demande à vous même", "OK");
+ return;
+ }
+ foreach (var cust in Mgr.CustomersList)
+ {
+ foreach (var acc in cust.AccountsList)
+ {
+ if (acc.Name == Name.Text && acc.IBAN == IBAN.Text)
+ {
+ if (acc.Balance - Convert.ToDouble(Sum.Text) < 0)
+ {
+ await DisplayAlert("Erreur", "Le compte ne possède assez d'argent sur son compte pour aboutir à la transaction", "OK");
+ return;
+ }
+ acc.DoTransactions(acc, Convert.ToDouble(Sum.Text), true); // Type true car c'est un virement que le SelectedAccount reçoit
+ await Shell.Current.Navigation.PopAsync();
+ return;
+ }
+ }
+ }
+ await DisplayAlert("Erreur", "Le compte n'existe pas", "OK");
}
}
diff --git a/src/Banquale/Banquale/Views/Transfer/TransferPage.xaml.cs b/src/Banquale/Banquale/Views/Transfer/TransferPage.xaml.cs
index ac48216..4e8abbe 100644
--- a/src/Banquale/Banquale/Views/Transfer/TransferPage.xaml.cs
+++ b/src/Banquale/Banquale/Views/Transfer/TransferPage.xaml.cs
@@ -12,7 +12,6 @@ public partial class TransferPage : ContentPage
public async void Send_Clicked(Object sender, EventArgs e)
{
- int count = Mgr.SelectedAccount.TransactionsList.Count;
if (string.IsNullOrEmpty(Name.Text) || string.IsNullOrEmpty(IBAN.Text) || string.IsNullOrEmpty(Sum.Text))
{
@@ -35,7 +34,7 @@ public partial class TransferPage : ContentPage
await DisplayAlert("Erreur", "Vous ne possèdez pas assez d'argent sur ce compte pour aboutir à la transaction", "OK");
return;
}
- Mgr.SelectedAccount.DoTransactions(acc, Convert.ToDouble(Sum.Text), true, count+1); // Type true car c'est un virement
+ Mgr.SelectedAccount.DoTransactions(acc, Convert.ToDouble(Sum.Text), true); // Type true car c'est un virement
await Shell.Current.Navigation.PopAsync();
return;
}
diff --git a/src/Banquale/Model/Account.cs b/src/Banquale/Model/Account.cs
index 3ab60ef..92c9175 100644
--- a/src/Banquale/Model/Account.cs
+++ b/src/Banquale/Model/Account.cs
@@ -127,19 +127,18 @@ namespace Model
/// Compte tiers impliqué dans la transaction.
/// Somme de la transaction.
/// Type de transaction (débit ou crédit).
- /// Numéro de la transaction.
- public void DoTransactions(Account involvedAccount, double sum, bool type, int nb)
+ public void DoTransactions(Account involvedAccount, double sum, bool type)
{
if (type) // si le type est True => c'est un débit, on doit donc ajouter la transaction pour l'autre compte
{
- Transaction transaction = new Transaction(type, sum, involvedAccount, nb, DateTime.Now);
+ Transaction transaction = new Transaction(type, sum, involvedAccount, DateTime.Now);
TransactionsList.Add(transaction);
Balance = Balance - sum;
- involvedAccount.DoTransactions(this, sum, !type, nb + 1);
+ involvedAccount.DoTransactions(this, sum, !type);
}
else // Sinon, c'est un crédit, on a juste à l'ajouter à notre liste de transactions
{
- TransactionsList.Add(new Transaction(type, sum, involvedAccount, nb, DateTime.Now));
+ TransactionsList.Add(new Transaction(type, sum, involvedAccount, DateTime.Now));
Balance = Balance + sum;
}
}
diff --git a/src/Banquale/Model/Transaction.cs b/src/Banquale/Model/Transaction.cs
index 27d1ff6..28a708f 100644
--- a/src/Banquale/Model/Transaction.cs
+++ b/src/Banquale/Model/Transaction.cs
@@ -19,16 +19,10 @@ namespace Model
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
- ///
- /// Gets the unique identifier of the transaction.
- ///
- [DataMember(Order = 1)]
- public int Id { get; private set; }
-
///
/// Gets or sets the type of the transaction (debit or credit).
///
- [DataMember(Order = 2)]
+ [DataMember(Order = 1)]
public bool Type
{
get => type;
@@ -46,7 +40,7 @@ namespace Model
///
/// Gets or sets the sum of the transaction.
///
- [DataMember(Order = 3)]
+ [DataMember(Order = 2)]
public double Sum
{
get => sum;
@@ -64,7 +58,7 @@ namespace Model
///
/// Gets or sets the account(s) involved in the transaction.
///
- [DataMember(Order = 4)]
+ [DataMember(Order = 3)]
public Account? InvolvedAccounts
{
get => involvedAccounts;
@@ -82,7 +76,7 @@ namespace Model
///
/// Gets or sets the category of the transaction.
///
- [DataMember(Order = 5)]
+ [DataMember(Order = 4)]
public string? Category
{
get => category;
@@ -100,7 +94,7 @@ namespace Model
///
/// Gets or sets the date of the transaction.
///
- [DataMember(Order = 6)]
+ [DataMember(Order = 5)]
public DateTime Date
{
get => date;
@@ -115,6 +109,11 @@ namespace Model
[DataMember]
private DateTime date;
+
+ [DataMember(Order = 6)]
+ public bool IsOpposition { get; set; }
+
+
///
/// Initializes a new instance of the class.
///
@@ -123,14 +122,14 @@ namespace Model
/// The account(s) involved in the transaction.
/// The unique identifier of the transaction.
/// The date of the transaction.
- public Transaction(bool type, double sum, Account involvedAccounts, int id, DateTime date)
+ public Transaction(bool type, double sum, Account involvedAccounts, DateTime date)
{
Category = null;
Type = type;
Sum = sum;
- Id = id;
InvolvedAccounts = involvedAccounts;
Date = date;
+ IsOpposition = false;
}
public void ChangeCategory(string newCateg)