Ejemplo n.º 1
0
        void AddPaymentToGrid(Backend.Objects.Payment payment)
        {
            //Fill Grid [ PaymentsGrid ] With Rows
            PaymentReportModel paymentReportModel = new PaymentReportModel
            {
                Payment  = payment,
                Currency = Store.CurrencySign,
            };

            //Add To Grid
            PaymentsGrid.Controls.Add(paymentReportModel);
        }
        public ActionResult PaymentReport()
        {
            if (CurrentShop == null)
            {
                return(Content("Shop not found. Please register"));
            }
            ViewBag.MessageRed    = TempData["MessageRed"];
            ViewBag.MessageYellow = TempData["MessageYellow"];
            ViewBag.MessageGreen  = TempData["MessageGreen"];

            var model = new PaymentReportModel();

            return(View(model));
        }
Ejemplo n.º 3
0
        public HttpResponseMessage Report()
        {
            try
            {
                string tempPath = ConfigurationManager.AppSettings["TempPath"];
                long   ticks    = DateTime.Now.Ticks;
                string fileName = $"PaymentsReport-{ticks}.xls";
                string fullName = $"{tempPath}\\" + fileName;
                List <PaymentViewModel> allAsync = service.GetAll();
                string headerValue = "Payment Report \n Printed " + DateTime.Now.ToString("dd-MM-yyyy");
                List <PaymentReportModel> reportdata = allAsync.Select(x => new PaymentReportModel {
                    Date = x.Created, Supplier = x.Supplier.Name, Memo = x.Memo, Amount = x.Amount, PayBy = x.PayBy, Modified = x.Modified
                }).ToList();
                PaymentReportModel item = new PaymentReportModel
                {
                    Supplier = "Total",
                    Amount   = reportdata.Sum(x => x.Amount),
                    Modified = DateTime.Now,
                    Date     = DateTime.Now
                };

                reportdata.Add(item);
                GenericReportGenerator <PaymentReportModel> .WriteExcel(reportdata, headerValue, fullName);

                HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
                var stream = new FileStream(fullName, FileMode.Open);
                result.Content = new StreamContent(stream);
                result.Content.Headers.ContentType        = new MediaTypeHeaderValue("application/octet-stream");
                result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                {
                    FileName = fileName
                };
                return(result);
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex));
            }
        }
Ejemplo n.º 4
0
 public IActionResult Index(PaymentReportModel input)
 {
     try
     {
         var listParam = new List <KeyValuePair <string, string> >();
         listParam.Add(new KeyValuePair <string, string>("fromDate", Convert.ToString(input.FromDate.ToString("yyyyMMdd"))));
         listParam.Add(new KeyValuePair <string, string>("toDate", Convert.ToString(input.ToDate.ToString("yyyyMMdd"))));
         listParam.Add(new KeyValuePair <string, string>("customerId", Convert.ToString(new SessionUtility().GetLoginSession().customerId)));
         string errorMessage = string.Empty;
         var    response     = new CallService().GetResponse <List <PaymentReportRes> >("getLoadDetailsByCustomer", listParam, ref errorMessage);
         if (string.IsNullOrEmpty(errorMessage))
         {
             ViewBag.PaymentReport = response;
         }
         else
         {
             ViewData["ErrorMessage"] = errorMessage;
         }
     }
     catch (Exception)
     {
     }
     return(View());
 }
        public ActionResult _AjaxPaymentReport([DataSourceRequest] DataSourceRequest request)
        {
            if (CurrentShop == null)
            {
                return(Json(new {}));
            }
            //kendo reset manual sort to default =(
            if (request.Sorts.Count == 0)
            {
                request.Sorts.Add(new SortDescriptor("ID",
                                                     System.ComponentModel.ListSortDirection.Descending));
            }
            Expression <Func <Order, bool> > predicate = x => x.ShopID == CurrentShop.ID
                                                         //  && x.OrderStatus != OrderStatus.New
                                                         // && x.OrderStatus != OrderStatus.Canceled
                                                         //  && x.OrderStatus != OrderStatus.Rejected
            ;
            var items = _db.Orders.Where(predicate)
                        .Select(x => new PaymentReportItemModel()
            {
                ID            = x.ID,
                ShopID        = x.ShopID,
                IsPaidUp      = x.IsPaidUp,
                OrderID       = x.ID,
                Date          = x.CreateOn,
                PaymentMethod = x.PaymentMethod,
                Total         = x.Total,
            });

            DataSourceResult result = items.ToDataSourceResult(request);

            foreach (var item in (IEnumerable <PaymentReportItemModel>)result.Data)
            {
                item.Total            = item.Cash + item.Card;
                item.TotalStr         = ShoppingService.FormatPrice(item.Total);
                item.PayedTo          = item.PaymentMethod == PaymentMethod.Credit ? PayedToType.ToAdmin : PayedToType.ToShop;
                item.PayedToStr       = RP.T("Enums." + item.PayedTo.ToString()).ToString();
                item.PaymentMethodStr = RP.T("Enums." + item.PaymentMethod.ToString()).ToString();
                item.DateStr          = item.Date.HasValue ? item.Date.Value.ToString("dd/MM HH:mm") : "";
            }

            //prepare report model
            var model = new PaymentReportModel();

            //prepare filters, get from kendo grid filter
            if (request.Filters != null)
            {
                predicate = GetPredicate(predicate, request.Filters);
            }
            model.TotalShop = _db.Orders.Where(predicate).Where(x => x.PaymentMethod == PaymentMethod.CreditShopOwner && !x.LessFee)
                              .Select(x => x.Total).DefaultIfEmpty(0).Sum();
            model.TotalShop += _db.Orders.Where(predicate).Where(x => !x.LessFee).Select(x => x.Total).DefaultIfEmpty(0).Sum();
            var totalSpecial = _db.Orders.Where(predicate).Where(x => x.PaymentMethod == PaymentMethod.CreditShopOwner && x.LessFee)
                               .Select(x => x.Total).DefaultIfEmpty(0).Sum();

            totalSpecial += _db.Orders.Where(predicate).Where(x => x.LessFee).Select(x => x.Total).DefaultIfEmpty(0).Sum();


            model.TotalAdmin = _db.Orders.Where(predicate).Where(x => x.PaymentMethod == PaymentMethod.Credit)
                               .Select(x => x.Total).DefaultIfEmpty(0).Sum();

            var     date1     = items.Where(x => x.Date.HasValue).Select(x => x.Date.Value).DefaultIfEmpty(DateTime.Now).Max();
            var     date2     = items.Where(x => x.Date.HasValue).Select(x => x.Date.Value).DefaultIfEmpty(DateTime.Now).Min();
            int     mouthes   = ((date1.Year - date2.Year) * 12) + date1.Month - date2.Month;
            decimal mounthFee = CurrentShop.MounthlyFee * mouthes;

            model.TotalFee   = (model.TotalShop * CurrentShop.PercentFee / 100) - model.TotalAdmin + mounthFee;
            model.TotalFee  += (totalSpecial * CurrentShop.SpecialPercentFee / 100);
            model.TotalShop += totalSpecial;
            // if (model.TotalFee < 0) { model.TotalFee = 0; }

            model.TotalAdminStr = ShoppingService.FormatPrice(model.TotalAdmin);
            model.TotalShopStr  = ShoppingService.FormatPrice(model.TotalShop);
            model.TotalFeeStr   = ShoppingService.FormatPrice(model.TotalFee);


            return(Json(new { result.Data, result.AggregateResults, result.Errors, result.Total, model }));
        }
        public ActionResult PaymentReport()
        {
            var model = new PaymentReportModel();

            return(View(model));
        }