public async Task <IActionResult> RunCustTransaction(CustomerTransactionModel model) { try { Response response = new Response(); if (model.customer == null) { string msg = "customer info is required to save cc info."; return(BadRequest(msg)); } // test salesOrder object SalesOrder salesOrder = new SalesOrder(); salesOrder.CustomerId = "409"; salesOrder.Amount = 20; salesOrder.SalesOrderNumber = "so89899865"; model.salesOrder = salesOrder; // test invoice object Invoice invoice = new Invoice(); invoice.AmountDue = 200; invoice.CustomerId = "409"; invoice.InvoiceNumber = "1286"; model.invoice = invoice; TransactionDetail details = new TransactionDetail(); details.Amount = 2; details.Description = "Example QuickSale"; model.isOrder = false; details.Invoice = "1286"; details.OrderID = "so89899865"; model.customerTransaction.Details = details; model.customerTransaction.Software = ".NetApi"; model.customerTransaction.CustReceipt = true; model.customerTransaction.CustReceiptName = "Aaadam Smith"; model.customerTransaction.Command = "AuthOnly"; model.customerTransaction.Software = model.customer?.SoftwareId; // test PaymentMethodProfile object PaymentMethodProfile payMethod = new PaymentMethodProfile(); payMethod.CardExpiration = "0922"; payMethod.CardNumber = "4000100511112229"; payMethod.AvsStreet = "123 Main st."; payMethod.AvsZip = "90046"; payMethod.CardCode = "999"; payMethod.MethodName = "My Visa"; model.paymentMethodProfile = payMethod; response = await new TransactionManager().SaveCustTransaction(model); return(Ok(response)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <ActionResult> GetStatementAsync(long id) { try { var Customer = await _customerRepo.GetById(id).ConfigureAwait(false) ?? throw new CustomerNotFoundException(); var CustomerName = Customer.FullName; var vm = new List <CustomerTransactionModel>(); var Transactions = await _transactionRepo.GetAllTransactionOfCustomer(id); foreach (var t in Transactions) { var tt = new CustomerTransactionModel() { TransactionDate = t.TransactionDate, Amount = t.Amount, AmountType = t.AmountType, TransactionId = t.Id, Type = t.Type, BalanceAmount = 0, BalanceType = "" }; vm.Add(tt); } var CustomerStatementModelsWithBalance = new List <CustomerTransactionModel>(); for (int i = 0; i < vm.Count; i++) { var CurrentData = vm[i]; var CurrentIndex = i; int PreviousIndex = CurrentIndex - 1; decimal PreviousBalance = 0; var StatementModel = new CustomerTransactionModel() { TransactionId = CurrentData.TransactionId, Amount = CurrentData.Amount, TransactionDate = CurrentData.TransactionDate, Type = CurrentData.Type, AmountType = CurrentData.AmountType }; if (i > 0) { PreviousBalance = CustomerStatementModelsWithBalance[PreviousIndex].BalanceAmount; } var BalanceAmount = StatementModel.AmountType == CustomerTransaction.TypeDebit ? PreviousBalance + StatementModel.Amount : PreviousBalance - StatementModel.Amount; StatementModel.BalanceType = BalanceAmount < 0 ? "" : "(Due)"; StatementModel.BalanceAmount = Math.Abs(BalanceAmount); CustomerStatementModelsWithBalance.Add(StatementModel); } vm = CustomerStatementModelsWithBalance; return(Ok(vm)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <IActionResult> Index(long customerId = 0) { CustomerTransactionViewModel vm = new CustomerTransactionViewModel { CustomerId = customerId, customers = await _customerRepo.GetAllAsync() }; if (customerId > 0) { var Customer = await _customerRepo.GetById(customerId).ConfigureAwait(false); vm.CustomerName = Customer.FullName; var Transactions = await _transactionRepo.GetAllTransactionOfCustomer(customerId).ConfigureAwait(false); foreach (var t in Transactions) { var tt = new CustomerTransactionModel() { TransactionDate = t.TransactionDate, Amount = t.Amount, AmountType = t.AmountType, TransactionId = t.Id, Type = t.Type, BalanceAmount = 0, BalanceType = "" }; vm.Transactions.Add(tt); } var CustomerStatementModelsWithBalance = new List <CustomerTransactionModel>(); for (int i = 0; i < vm.Transactions.Count; i++) { var CurrentData = vm.Transactions[i]; var CurrentIndex = i; int PreviousIndex = CurrentIndex - 1; decimal PreviousBalance = 0; var StatementModel = new CustomerTransactionModel() { TransactionId = CurrentData.TransactionId, Amount = CurrentData.Amount, TransactionDate = CurrentData.TransactionDate, Type = CurrentData.Type, AmountType = CurrentData.AmountType }; if (i > 0) { PreviousBalance = CustomerStatementModelsWithBalance[PreviousIndex].BalanceAmount; } var BalanceAmount = StatementModel.AmountType == CustomerTransaction.TypeDebit ? PreviousBalance + StatementModel.Amount : PreviousBalance - StatementModel.Amount; StatementModel.BalanceType = BalanceAmount < 0 ? "" : "(Due)"; StatementModel.BalanceAmount = Math.Abs(BalanceAmount); CustomerStatementModelsWithBalance.Add(StatementModel); } vm.Transactions = CustomerStatementModelsWithBalance; } return(View(vm)); }