private void CalculateRevenueForOrder(Order order) { OrderStatus orderStatus = _db.OrderStatuses.FirstOrDefault(x => x.Id == order.OrderStatusId); if (orderStatus != null) { if (orderStatus.IsPaid) { double driverPrice = order.Area.DriverPrice; AreaGroupClientPrices clientPriceObj = _db.AreaGroupClientPrices.FirstOrDefault(x => x.ClientId == order.ClientId && x.AreaId == order.AreaId); double clientPrice = clientPriceObj != null ? clientPriceObj.Price : 0; double companyRevenue = clientPrice - driverPrice; double driverRevenue = driverPrice; double clientRevenue = order.OrderTotalPrice - companyRevenue - driverRevenue - order.AddedPrice; order.CoompanyRevenue = companyRevenue; order.DriverRevenue = driverRevenue; order.ClientRevenue = clientRevenue; } else { order.CoompanyRevenue = 0; order.DriverRevenue = 0; order.ClientRevenue = 0; } } }
public IActionResult UpdateClientAreaGroupPrice(ClientAreaGroupPriceDto clientAreaGroupPriceDto) { AreaGroupClientPrices clientAreaGroupPrice = _db.AreaGroupClientPrices.Where(x => x.Id == clientAreaGroupPriceDto.PriceId && x.AreaId == clientAreaGroupPriceDto.AreaId).FirstOrDefault(); if (clientAreaGroupPrice != null) { clientAreaGroupPrice.Price = (double)clientAreaGroupPriceDto.Price; _db.SaveChanges(); return(new OkObjectResult(true)); } else { AreaGroupClientPrices newClientAreaGroupPrice = new AreaGroupClientPrices { AreaId = (int)clientAreaGroupPriceDto.AreaId, ClientId = (int)clientAreaGroupPriceDto.ClientId, Price = (double)clientAreaGroupPriceDto.Price }; _db.AreaGroupClientPrices.Add(newClientAreaGroupPrice); _db.SaveChanges(); return(new OkObjectResult(true)); } }
public bool AddAreaGroupPriceForClientId(long Id) { List <Area> areas = _db.Areas.ToList(); Client clients = _db.Clients.FirstOrDefault(x => x.Id == Id); List <AreaGroupClientPrices> groupPrices = new List <AreaGroupClientPrices>(); foreach (Area area in areas) { double price = 0; switch (area.CityId) { case 22: price = 2; break; case 23: price = 3; break; case 24: price = 3; break; case 25: price = 3; break; case 26: price = 3; break; case 27: price = 3; break; case 28: price = 6; break; case 29: price = 3; break; case 30: price = 3; break; case 31: price = 3.5; break; case 32: price = 3.5; break; case 33: price = 3.5; break; case 34: price = 3.5; break; case 35: price = 3.5; break; case 36: price = 3; break; case 37: price = 3; break; case 38: price = 5; break; case 39: price = 5; break; case 41: price = 5; break; case 42: price = 5; break; } switch (area.Id) { case 58: price = 3; break; case 63: price = 3; break; case 403: price = 2.5; break; case 90: price = 3; break; case 96: price = 3; break; case 95: price = 2.5; break; case 97: price = 2.5; break; case 93: price = 2.5; break; case 104: price = 2.5; break; case 146: price = 3; break; case 152: price = 3; break; case 113: price = 2.5; break; case 371: price = 2.5; break; case 112: price = 2.5; break; case 306: price = 5; break; case 304: price = 5; break; case 305: price = 5; break; } AreaGroupClientPrices prices = new AreaGroupClientPrices { AreaId = area.Id, ClientId = clients.Id, Price = price, Id = 0 }; groupPrices.Add(prices); } _db.AreaGroupClientPrices.AddRange(groupPrices); _db.SaveChanges(); return(true); }