public IActionResult ClientDailyRecord([FromBody] DailyRecordDto model) { try { if (model.userType == 1) { model.ClientId = null; } else { model.DriverId = null; } var result = _orderService.DailyRecord(model); return(Ok(result)); } catch (Exception e) { return(BadRequest(e.Message)); } }
public CompanyRevenueWithHeadersForCompany DailyRecord(DailyRecordDto model) { Configuration configuration = _db.Configurations.FirstOrDefault(); long currentUserId = _principalService.GetUserId(); long employeeId = _db.Employees.FirstOrDefault(x => x.UserId == currentUserId).Id; CompanyRevenueWithHeadersForCompany companyRevenueWithHeadersForCompany = new CompanyRevenueWithHeadersForCompany(); List <OrderResponseWithRevenue> orderList = _db.Orders .Where(x => (!model.ClientId.HasValue || x.ClientId == model.ClientId) && (!model.DriverId.HasValue || x.Record.DriverId == model.DriverId) && (x.OrderDate.Value.Date >= model.OrdersDateFrom.Date) && (x.OrderDate.Value.Date <= model.OrdersDateTo.Date) ) .Include(x => x.Record) .ThenInclude(x => x.Driver) .Include(x => x.Client) .Include(x => x.Area) .ThenInclude(x => x.City) .Include(x => x.CreatedBy) .Include(x => x.OrderStatus) .OrderByDescending(x => x.Area.City) .ThenBy(x => x.Area) .ToList() .Select(e => new OrderResponseWithRevenue { Address = e.Address, AreaId = e.AreaId, AreaName = e.Area.City.CityName + " - " + e.Area.AreaName, ClientId = e.ClientId, ClientName = e.Client.ClientFullName, CreatedBy = e.CreatedBy.FullNameAr, DriverId = e.Record.DriverId, OrderId = e.OrderNumber, DriverName = e.Record.Driver != null ? e.Record.Driver.DriverFullName : "", DriverPhoneNumber = e.Record.Driver != null ? e.Record.Driver.MobileNumber : "", OrderDate = e.OrderDate, OrderTotalPrice = e.OrderTotalPrice, CompanyRevenue = e.CoompanyRevenue, AddedPrice = e.AddedPrice, DriverRevenue = e.DriverRevenue, OrderStatusName = e.OrderStatus.StatusName, PolicyNumber = e.PolicyNumber, DeliveryNumber = e.DeliveryPhoneNumber, OrderStatusId = e.OrderStatusId, DeliveryCost = e.CoompanyRevenue + e.DriverRevenue }) .ToList(); //companyRevenueWithHeadersForCompany.TotalClientRevenue = orderList.Sum(x => x.client); companyRevenueWithHeadersForCompany.TotalDriverRevenue = orderList.Sum(x => x.DriverRevenue); companyRevenueWithHeadersForCompany.TotalOrderPrices = orderList.Sum(x => x.OrderTotalPrice) - companyRevenueWithHeadersForCompany.TotalCompanyRevenue - companyRevenueWithHeadersForCompany.TotalDriverRevenue; int totalCount = orderList.Count(); List <OrderResponseWithRevenue> result = orderList; companyRevenueWithHeadersForCompany.OrderListWithRevenue = new MainResponse <List <OrderResponseWithRevenue> >(result, totalCount); return(companyRevenueWithHeadersForCompany); }