コード例 #1
0
        public ActionResult CreditCardReconcilation(CreditCardReconcileModelFilter filter = null, int pageNumber = 1)
        {
            int totalRecords = 0;
            var model        = _financeReportingService.GetCreditCardReconcileList(pageNumber, _pageSize, filter, out totalRecords);

            if (model == null)
            {
                model = new CreditCardReconcileListModel();
            }

            model.Filter = filter;


            var currentAction          = ControllerContext.RouteData.Values["action"].ToString();
            Func <int, string> urlFunc =
                pn => Url.Action(currentAction, new { pageNumber = pn, filter.FromDate, filter.ToDate });

            model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc);

            return(View(model));
        }
コード例 #2
0
        public CreditCardReconcileListModel Create(IEnumerable <ChargeCardPayment> chargeCardPayments, IEnumerable <ChargeCard> chargeCards, IEnumerable <OrderedPair <long, long> > orderPaymentIdOrderedPairs, IEnumerable <Order> orders,
                                                   IEnumerable <OrderedPair <long, string> > customerNameIdPairs, IEnumerable <Event> events, IEnumerable <OrderedPair <long, string> > eventPods, IEnumerable <OrderedPair <long, string> > corporateAccountNameOrderedPairs)
        {
            var listModel = new CreditCardReconcileListModel();
            var array     = new CreditCardReconcileModel[chargeCardPayments.Count()];
            var index     = 0;

            foreach (var chargeCardPayment in chargeCardPayments)
            {
                var chargeCard = chargeCards.Where(c => c.Id == chargeCardPayment.ChargeCardId).SingleOrDefault();
                var orderId    =
                    orderPaymentIdOrderedPairs.Where(p => p.SecondValue == chargeCardPayment.PaymentId).Select(p => p.FirstValue).SingleOrDefault();
                var order = orders.Where(o => o.Id == orderId).SingleOrDefault();
                if (order == null)
                {
                    continue;
                }
                var customerName = customerNameIdPairs.Where(p => p.FirstValue == order.CustomerId).FirstOrDefault();

                var    eventPod = eventPods.Where(ep => ep.FirstValue == order.EventId).SingleOrDefault();
                string pods     = eventPod != null ? eventPod.SecondValue : string.Empty;
                var    theEvent = events != null && order.EventId.HasValue
                                   ? events.Where(e => e.Id == order.EventId).SingleOrDefault()
                                   : null;

                string  prepaid    = "No";
                decimal prePaidSum = 0;

                if (theEvent != null)
                {
                    prePaidSum = order.PaymentsApplied.Where(
                        pa => pa.DataRecorderMetaData.DateCreated < theEvent.EventDate).Sum(
                        p => p.Amount);
                    if (
                        order.PaymentsApplied.Where(pa => pa.DataRecorderMetaData.DateCreated < theEvent.EventDate).
                        Count() > 0 && prePaidSum < order.DiscountedTotal)
                    {
                        prepaid = "Partial Paid";
                    }
                    else if (order.DiscountedTotal == order.TotalAmountPaid &&
                             order.PaymentsApplied.Where(pa => pa.DataRecorderMetaData.DateCreated >= theEvent.EventDate)
                             .Count() < 1)
                    {
                        prepaid = "Yes";
                    }
                    else if (chargeCardPayment.DataRecorderMetaData.DataRecorderCreator.Id == customerName.FirstValue)
                    {
                        prepaid = "Yes";
                    }
                }
                else
                {
                    prepaid    = " -N/A-";
                    prePaidSum = order.PaymentsApplied.Sum(p => p.Amount);
                }

                var account = theEvent != null?corporateAccountNameOrderedPairs.FirstOrDefault(x => x.FirstValue == theEvent.Id) : null;

                var model = new CreditCardReconcileModel
                {
                    EventId          = theEvent != null ? theEvent.Id : 0,
                    Amount           = chargeCardPayment.Amount,
                    CardType         = chargeCard.TypeId.ToString(),
                    CustomerName     = customerName.SecondValue,
                    DateApproved     = chargeCardPayment.DataRecorderMetaData.DateCreated,
                    Pod              = pods,
                    ReceiptNumber    = ProcessorResponse.IsValidResponseString(chargeCardPayment.ProcessorResponse) ? new ProcessorResponse(chargeCardPayment.ProcessorResponse).TransactionCode : chargeCardPayment.ProcessorResponse,
                    IsOnline         = chargeCardPayment.DataRecorderMetaData.DataRecorderCreator.Id == customerName.FirstValue,
                    Prepaid          = prepaid,
                    CorporatePartner = account == null ? "N/A" : account.SecondValue,
                    EventType        = theEvent != null ? ((theEvent.EventType == EventType.Retail) ? EventType.Retail.ToString() : EventType.Corporate.ToString()) : "N/A"
                };

                array[index++] = model;
            }
            listModel.Collection = array;
            return(listModel);
        }