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 }));
        }
Exemplo n.º 2
0
        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 }));
        }