Added request transaction

pull/69/head
Titouan LOUVET 2 years ago
parent 61e4ae7f77
commit 1b4882ab51

@ -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);

@ -91,7 +91,7 @@
<Button
Text="Faire opposition"
Margin="0, 50, 0, 0"
Clicked="Objection_Clicked"/>
Clicked="Objection_Clicked" x:Name="oppose"/>
</VerticalStackLayout>

@ -26,7 +26,7 @@
Padding="3">
<Entry
Text="FR "
Text="FR"
Placeholder="IBAN (FR)"
HorizontalOptions="Center"
WidthRequest="280"
@ -54,7 +54,8 @@
Margin="0, 75, 0, 0"
MinimumHeightRequest="80"
WidthRequest="300"
MaximumWidthRequest="400"/>
MaximumWidthRequest="400"
Clicked="Send_Clicked"/>
</VerticalStackLayout>

@ -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");
}
}

@ -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;
}

@ -127,19 +127,18 @@ namespace Model
/// <param name="involvedAccount">Compte tiers impliqué dans la transaction.</param>
/// <param name="sum">Somme de la transaction.</param>
/// <param name="type">Type de transaction (débit ou crédit).</param>
/// <param name="nb">Numéro de la transaction.</param>
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;
}
}

@ -19,16 +19,10 @@ namespace Model
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
/// <summary>
/// Gets the unique identifier of the transaction.
/// </summary>
[DataMember(Order = 1)]
public int Id { get; private set; }
/// <summary>
/// Gets or sets the type of the transaction (debit or credit).
/// </summary>
[DataMember(Order = 2)]
[DataMember(Order = 1)]
public bool Type
{
get => type;
@ -46,7 +40,7 @@ namespace Model
/// <summary>
/// Gets or sets the sum of the transaction.
/// </summary>
[DataMember(Order = 3)]
[DataMember(Order = 2)]
public double Sum
{
get => sum;
@ -64,7 +58,7 @@ namespace Model
/// <summary>
/// Gets or sets the account(s) involved in the transaction.
/// </summary>
[DataMember(Order = 4)]
[DataMember(Order = 3)]
public Account? InvolvedAccounts
{
get => involvedAccounts;
@ -82,7 +76,7 @@ namespace Model
/// <summary>
/// Gets or sets the category of the transaction.
/// </summary>
[DataMember(Order = 5)]
[DataMember(Order = 4)]
public string? Category
{
get => category;
@ -100,7 +94,7 @@ namespace Model
/// <summary>
/// Gets or sets the date of the transaction.
/// </summary>
[DataMember(Order = 6)]
[DataMember(Order = 5)]
public DateTime Date
{
get => date;
@ -116,7 +110,7 @@ namespace Model
private DateTime date;
[DataMember(Order = 7)]
[DataMember(Order = 6)]
public bool IsOpposition { get; set; }
@ -128,12 +122,11 @@ namespace Model
/// <param name="involvedAccounts">The account(s) involved in the transaction.</param>
/// <param name="id">The unique identifier of the transaction.</param>
/// <param name="date">The date of the transaction.</param>
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;

Loading…
Cancel
Save