IO format fixes and implemented res payment

This is a small commit to include the feature for paying for a
reservation, specifically only the 60-day-in-advance reservation type as
the others are paid for at specific periods. Other fixes include just
some formatting for reports.
This commit is contained in:
雲華
2022-04-16 13:59:27 -04:00
parent f75a384d0a
commit 989a4dd65c
5 changed files with 146 additions and 15 deletions

View File

@@ -67,6 +67,12 @@ namespace Ophelias.Models
{
using SQLiteCommand cmd = Manager.con.CreateCommand();
cmd.CommandText = QueryBuilder.UpdateGuest(Id, FirstName, LastName, Email, CreditCard, Expiration, CCV);
cmd.Parameters.AddWithValue("@Fname", FirstName);
cmd.Parameters.AddWithValue("@Lname", LastName);
cmd.Parameters.AddWithValue("@Email", Email);
cmd.Parameters.AddWithValue("@CreditCard", CreditCard);
cmd.Parameters.AddWithValue("@Expiry", Expiration);
cmd.Parameters.AddWithValue("@CCV", CCV);
cmd.ExecuteNonQuery();
}
if (FirstName != null)

View File

@@ -107,11 +107,19 @@ namespace Ophelias.Models
cmd.Parameters.AddWithValue("@PayBy", this.PayBy.ToString("yyyy-MM-dd"));
cmd.ExecuteNonQuery();
}
internal void Pay(double Amount)
internal PaymentStatus Pay(double Amount, string cc)
{
if (string.IsNullOrEmpty(cc))
{
return PaymentStatus.MissingCreditCard;
}
if (Amount >= Owed)
{
return PaymentStatus.AlreadyPaid;
}
if (Amount <= 0)
{
return;
return PaymentStatus.AmountCannotZero;
}
LastPaid = DateTime.Now;
@@ -144,6 +152,7 @@ namespace Ophelias.Models
throw new Exception();
cmd.Parameters.AddWithValue("@PaidOn", PaidOn.Value.ToString("yyyy-MM-dd"));
cmd.ExecuteNonQuery();
return PaymentStatus.SuccessfulPayment;
}
internal void Refund()
{
@@ -200,13 +209,12 @@ namespace Ophelias.Models
}
internal class TransactionList
internal enum PaymentStatus
{
internal List<Transaction> Transactions;
internal TransactionList()
{
Transactions = new();
}
SuccessfulPayment,
AlreadyPaid,
FailedPayment,
AmountCannotZero,
MissingCreditCard
}
}