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)); }
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)); } }
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)); }