diff --git a/Controllers/API/ReportingAPI.cs b/Controllers/API/ReportingAPI.cs index 403d3d5..140f958 100644 --- a/Controllers/API/ReportingAPI.cs +++ b/Controllers/API/ReportingAPI.cs @@ -155,7 +155,20 @@ namespace PSTW_CentralSystem.Controllers.API } } DateTime parsedDate = DateTime.Parse(FormDate); - var thisMonthMovements = await _centralDbContext.ItemMovements + + var thisMonthMovementIn = await _centralDbContext.ItemMovements + .Include(m => m.Item) + .Include(m => m.Item!.Product) + .Include(m => m.Item!.Department) + .Where(m => m.Date.Month == parsedDate.Month && m.Date.Year == parsedDate.Year && m.Item!.Department!.DepartmentCode == DeptId && (m.Action == "Stock In" || m.Action == "Register")) + .Select(m => new + { + ProductName = m.Item!.Product!.ProductName, + QuantityOut = m.Quantity??0, + }) + .ToListAsync(); + + var thisMonthMovementOut = await _centralDbContext.ItemMovements .Include(m => m.Item) .Include(m => m.Item!.Product) .Include(m => m.Item!.Department) @@ -166,13 +179,19 @@ namespace PSTW_CentralSystem.Controllers.API QuantityOut = m.Quantity??0, }) .ToListAsync(); - //value from currentProductBalance - value from thisMonthMovements + + //value from currentProductBalance - value from thisMonthMovementOut + value from thisMonthMovementIn foreach (var item in currentProductBalance) { - var movement = thisMonthMovements.FirstOrDefault(m => m.ProductName == item.ProductName); - if (movement != null && item.Quantity > 0) + var movementIn = thisMonthMovementIn.FirstOrDefault(m => m.ProductName == item.ProductName); + if (movementIn != null && item.Quantity > 0) { - item.Quantity -= movement.QuantityOut; + item.Quantity += movementIn.QuantityOut; + } + var movementOut = thisMonthMovementOut.FirstOrDefault(m => m.ProductName == item.ProductName); + if (movementOut != null && item.Quantity > 0) + { + item.Quantity -= movementOut.QuantityOut; } } return Json(currentProductBalance);