private static CreditCardHistoricalTransaction RetrieveCreditCardHistoricalTransactions(string creditCardNo, string statementDate) { CreditCardHistoricalTransaction transaction = new CreditCardHistoricalTransaction(); try { Params param = new Params() { Parameter = new Dictionary <string, string>() }; param.RequestTransType = "GetHistoryCreditCardTransactionOnStateDate"; param.Parameter.Add("cardNo", creditCardNo); param.Parameter.Add("stateDate", statementDate); param.WSDL = "CCBillingStatementByStatementDate"; ESBData data = EAI.RetrieveESBData(param); if (data.Result.Count > 1) { int counter = 0; if (data.Result.Count > 0) { // The first record contains the keys "nbrDetail","length","appCode","card" int.TryParse(data.Result[0]["nbrDetail"], out counter); } for (int i = 1; i <= counter; i++) { StringDictionary eachTransaction = data.Result[i]; //if ("INTEREST".Equals(eachTransaction["desc"]) && Formatter.GetParsedDouble(eachTransaction["amount"], false) == 0.00) // continue; transaction.Transactions.Add(new CreditCardTransaction() { CreditCardNo = creditCardNo, TransactionDate = Formatter.ParseExact(eachTransaction["postDate"], "JY"), Description = eachTransaction["desc"], TransactionCode = eachTransaction["txnCode"], ReferenceNumber = string.IsNullOrEmpty(eachTransaction["refNmbr"]) ? string.Empty : eachTransaction["refNmbr"].PadLeft(11, '0'), Amount = Formatter.GetParsedDouble(eachTransaction["amount"], false), PreviousBalance = Formatter.GetParsedDouble(eachTransaction["prevBal"], false), }); } } } catch (Exception e) { } return(transaction); }
public ActionResult Inquiry() { string getVal = Request["_val"]; string getTrxType = Request["_trxType"]; Params param = new Params() { Parameter = new Dictionary <string, string>() }; if (getVal.Length == 16) { param.Parameter.Add("cardNo", getVal); } else { param.Parameter.Add("custNo", getVal); } if ("outstanding".Equals(getTrxType)) { CreditCardOutstandingTransaction model = CCTransaction.OutstandingTransactions(param); model.getTotalNominal(); model.Sampling(); var outstandingData = new { CustomerNo = model.CustomerNo, Total = model.TotalAmount, grid = model.TransactionData }; return(Json(outstandingData, JsonRequestBehavior.AllowGet)); } if ("current".Equals(getTrxType)) { CreditCardCurrentTransaction model = CCTransaction.CurrentTransactions(param); model.getTotalAmount(); model.Sampling(); var currentData = new { CustomerNo = model.CustomerNo, Total = model.TotalAmount, grid = model.TransactionData }; return(Json(currentData, JsonRequestBehavior.AllowGet)); } if ("history".Equals(getTrxType)) { CreditCardRetrieveMultipleStatementDate st = CreditCardService.RetrieveCreditCardStatementDates(param); string julianformat = string.Empty; param.Parameter.Add("statementDate", st.Statements.Count > 0 ? st.Statements.First().StatementDateInJulianFormat : ""); CreditCardHistoricalTransaction model = CCTransaction.HistoryTransactions(param); model.CompletingInformation(st); var historicalData = new { Information = model.Information, StatementDates = st.Statements, grid = model.TransactionData }; return(Json(historicalData, JsonRequestBehavior.AllowGet)); } return(Json("", JsonRequestBehavior.AllowGet)); }
public static CreditCardHistoricalTransaction HistoryTransactions(Params request) { CreditCardHistoricalTransaction transaction = new CreditCardHistoricalTransaction(); string StatementDate = request.Parameter["statementDate"]; try { if (request != null) { AllRelatedCreditCardInformation allRelatedCreditCardInformation = null; if (request.Parameter.ContainsKey("custNo")) { transaction.Information.CustomerNo = request.Parameter["custNo"]; } allRelatedCreditCardInformation = CreditCardService.RetrieveAllRelatedCreditCards(request); foreach (CreditCardInformation entry in allRelatedCreditCardInformation.RelatedCreditCards) { CreditCardInformation information = CreditCardService.RetrieveCreditCardDetail(entry.CreditCardNo, entry.CardType); transaction.Information.CustomerNo = information.CustomerNo; transaction.CreditCards.Add(information); CreditCardHistoricalTransaction historyTrx = RetrieveCreditCardHistoricalTransactions(entry.CreditCardNo, StatementDate); foreach (CreditCardTransaction trx in historyTrx.Transactions) { transaction.Transactions.Add(trx); } } transaction.Information.OldBalance = ( from creditCardTransaction in transaction.Transactions select creditCardTransaction.PreviousBalance).Sum(); transaction.Information.Credit = ( from creditCardTransaction in transaction.Transactions where HistoricalTransactionCodesForNegativeAmount.Contains(creditCardTransaction.TransactionCode) select creditCardTransaction.Amount).Sum(); transaction.Information.AccountDate = Formatter.ParseExact(StatementDate, "JY"); if (transaction.Information.AccountDate.HasValue) { transaction.Information.MaturityDate = transaction.Information.AccountDate.Value.AddDays(14); } } } catch (Exception e) { } return(transaction); }
public ActionResult TransactionsByStatement() { string getNo = Request["_no"]; string getStatementDate = Request["_statementDate"]; Params param = new Params() { Parameter = new Dictionary <string, string>() }; if (getNo.Length == 16) { param.Parameter.Add("cardNo", getNo); } else { param.Parameter.Add("custNo", getNo); } param.Parameter.Add("statementDate", getStatementDate); CreditCardHistoricalTransaction model = CCTransaction.HistoryTransactions(param); double newBalance = 0; double newBill = 0; foreach (CreditCardInformation entry in model.CreditCards) { IEnumerable <CreditCardTransaction> creditCardTransactions = from transaction in model.Transactions where transaction.CreditCardNo == entry.CreditCardNo select transaction; double?negativeAmount = (from creditCardTransaction in creditCardTransactions where CCTransaction.HistoricalTransactionCodesForNegativeAmount.Contains(creditCardTransaction.TransactionCode) select creditCardTransaction.Amount).Sum(); double?positiveAmount = (from creditCardTransaction in creditCardTransactions where !CCTransaction.HistoricalTransactionCodesForNegativeAmount.Contains(creditCardTransaction.TransactionCode) select creditCardTransaction.Amount).Sum(); double?previousBalance = (from creditCardTransaction in creditCardTransactions select creditCardTransaction.PreviousBalance).Sum(); double?subTotal = positiveAmount - negativeAmount + previousBalance; if (subTotal.HasValue) { newBalance += subTotal.Value; newBill = newBalance - ((double)model.Information.OldBalance) + ((double)model.Information.Credit); } entry.PrevBalance = previousBalance; entry.SubTotal = subTotal; } model.Information.NewBalance = newBalance; model.Information.NewBill = newBill; model.Sampling(); var historicalData = new { Information = model.Information, grid = model.TransactionData }; return(Json(historicalData, JsonRequestBehavior.AllowGet)); }