public async Task <IActionResult> TaxInvoiceApi(int pageSize, int skip, Filter filter, DateTime?startdate = null, DateTime?enddate = null) { DateTime _startDate = startdate ?? new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day); DateTime _endDate = enddate ?? new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day); string _TransType = "Tax"; var salesInvoiceContext = _context.SpSalesInvoiceSel.Where(x => x.Trans_Date_Ad >= _startDate && x.Trans_Date_Ad <= _endDate && x.Trans_Type == _TransType).Include(x => x.SalesInvoiceItems).AsQueryable(); //var salesInvoiceContext = _context.SalesInvoice.Where(x => x.Trans_Date_Ad >= _startDate && x.Trans_Date_Ad <= _endDate && x.Trans_Type=="Sales").Include(x=>x.SalesInvoiceItems).OrderByDescending(x => x.Trans_Date_Ad).AsQueryable(); var queryable = _kendoGrid.Filter(salesInvoiceContext, filter); // Calculate the total number of records (needed for paging) var role = ((ClaimsIdentity)User.Identity).Claims .Where(c => c.Type == ClaimTypes.Role) .Select(c => c.Value).FirstOrDefault(); Decimal total = 0, grossAmountTotal = 0, discountTotal = 0, netTotal = 0; if (role != "CASHIER") { total = queryable.Count(); grossAmountTotal = queryable.Sum(x => x.Total_Gross_Amount); discountTotal = queryable.Sum(x => x.Total_Discount); netTotal = queryable.Sum(x => x.Total_Net_Amount); } // Sort the data // Finally page the data var salesInvoiceList = await queryable.Skip(skip).Take(pageSize).ToListAsync(); return(Json(new { data = salesInvoiceList, total = total, grossAmountTotal = grossAmountTotal, discountTotal = discountTotal, netTotal = netTotal })); }
public async Task <IActionResult> Index(int pageSize, int skip, Filter filter, IEnumerable <Sort> sort) { var items = _context.Item.AsQueryable(); // Filter the data first var queryable = _kendoGrid.Filter(items, filter); // Calculate the total number of records (needed for paging) var total = queryable.Count(); // Sort the data queryable = _kendoGrid.Sort(queryable, sort); // Finally page the data var itemList = await queryable.Skip(skip).Take(pageSize).ToListAsync(); return(Json(new { data = itemList, total = total })); }