чепуха какая-то но пусть пока будет так
This commit is contained in:
parent
1c67a1004f
commit
ce1fd40875
@ -3,6 +3,8 @@ using HardwareShopContracts.BusinessLogicsContracts;
|
|||||||
using HardwareShopContracts.SearchModels;
|
using HardwareShopContracts.SearchModels;
|
||||||
using HardwareShopContracts.StoragesContracts;
|
using HardwareShopContracts.StoragesContracts;
|
||||||
using HardwareShopContracts.ViewModels;
|
using HardwareShopContracts.ViewModels;
|
||||||
|
using HardwareShopDatabaseImplement.Models.Worker;
|
||||||
|
using HardwareShopDataModels.Models;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace HardwareShopBusinessLogic.BusinessLogics.Storekeeper
|
namespace HardwareShopBusinessLogic.BusinessLogics.Storekeeper
|
||||||
@ -12,16 +14,19 @@ namespace HardwareShopBusinessLogic.BusinessLogics.Storekeeper
|
|||||||
private readonly IComponentStorage _componentStorage;
|
private readonly IComponentStorage _componentStorage;
|
||||||
private readonly IGoodStorage _goodStorage;
|
private readonly IGoodStorage _goodStorage;
|
||||||
private readonly IPurchaseStorage _purchaseStorage;
|
private readonly IPurchaseStorage _purchaseStorage;
|
||||||
|
private readonly IBuildStorage _buildStorage;
|
||||||
|
|
||||||
public ReportStorekeeperLogic(IComponentStorage componentStorage, IGoodStorage goodStorage, IPurchaseStorage purchaseStorage)
|
public ReportStorekeeperLogic(IComponentStorage componentStorage, IGoodStorage goodStorage, IPurchaseStorage purchaseStorage, IBuildStorage buildStorage)
|
||||||
{
|
{
|
||||||
_componentStorage = componentStorage;
|
_componentStorage = componentStorage;
|
||||||
_goodStorage = goodStorage;
|
_goodStorage = goodStorage;
|
||||||
_purchaseStorage = purchaseStorage;
|
_purchaseStorage = purchaseStorage;
|
||||||
|
_buildStorage = buildStorage;
|
||||||
}
|
}
|
||||||
public List<ReportBuildGoodViewModel> GetBuildGood(List<GoodViewModel> goods)
|
public List<ReportBuildGoodViewModel> GetBuildGood(List<GoodViewModel> goods)
|
||||||
{
|
{
|
||||||
var list = new List<ReportBuildGoodViewModel>();
|
var list = new List<ReportBuildGoodViewModel>();
|
||||||
|
var builds = _buildStorage.GetFullList();
|
||||||
|
|
||||||
foreach (var good in goods)
|
foreach (var good in goods)
|
||||||
{
|
{
|
||||||
@ -30,6 +35,15 @@ namespace HardwareShopBusinessLogic.BusinessLogics.Storekeeper
|
|||||||
GoodName = good.GoodName,
|
GoodName = good.GoodName,
|
||||||
Builds = new()
|
Builds = new()
|
||||||
};
|
};
|
||||||
|
var components = good.GoodsComponents;
|
||||||
|
foreach (var build in builds)
|
||||||
|
{
|
||||||
|
// сработает ли такая проверка?
|
||||||
|
if (build.BuildComponents == good.GoodsComponents)
|
||||||
|
{
|
||||||
|
builds.Add(build);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
@ -37,6 +51,54 @@ namespace HardwareShopBusinessLogic.BusinessLogics.Storekeeper
|
|||||||
public List<ReportComponentsViewModel> GetComponents(ReportBindingModel model)
|
public List<ReportComponentsViewModel> GetComponents(ReportBindingModel model)
|
||||||
{
|
{
|
||||||
var list = new List<ReportComponentsViewModel>();
|
var list = new List<ReportComponentsViewModel>();
|
||||||
|
var purchases = _purchaseStorage
|
||||||
|
.GetFilteredList(new PurchaseSearchModel
|
||||||
|
{
|
||||||
|
DateFrom = model.DateFrom,
|
||||||
|
DateTo = model.DateTo
|
||||||
|
});
|
||||||
|
var components = _componentStorage.GetFullList();
|
||||||
|
foreach (var component in components)
|
||||||
|
{
|
||||||
|
var record = new ReportComponentsViewModel
|
||||||
|
{
|
||||||
|
ComponentName = component.ComponentName,
|
||||||
|
TotalCount = 0,
|
||||||
|
GoodOrBuilds = new List<(string GoodOrBuild, int Count)>()
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (var purchase in purchases)
|
||||||
|
{
|
||||||
|
int sum = 0;
|
||||||
|
foreach (var build in purchase.PurchaseBuilds)
|
||||||
|
{
|
||||||
|
int countBuildsInPurchase = build.Value.Item2;
|
||||||
|
if (build.Value.Item1.BuildComponents.ContainsKey(component.Id))
|
||||||
|
{
|
||||||
|
int countComponentsInBuild = build.Value.Item1
|
||||||
|
.BuildComponents.First(x => x.Key == component.Id)
|
||||||
|
.Value.Item2;
|
||||||
|
sum += countComponentsInBuild * countBuildsInPurchase;
|
||||||
|
|
||||||
|
record.GoodOrBuilds.Add((build.Value.Item1.BuildName, countComponentsInBuild));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach (var good in purchase.PurchaseGoods)
|
||||||
|
{
|
||||||
|
int countGoodsInPurchase = good.Value.Item2;
|
||||||
|
if (good.Value.Item1.GoodsComponents.ContainsKey(component.Id))
|
||||||
|
{
|
||||||
|
int countComponentsInGood = good.Value.Item1
|
||||||
|
.GoodsComponents.First(x => x.Key == component.Id)
|
||||||
|
.Value.Item2;
|
||||||
|
sum += countComponentsInGood * countGoodsInPurchase;
|
||||||
|
|
||||||
|
record.GoodOrBuilds.Add((good.Value.Item1.GoodName, countComponentsInGood));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
record.TotalCount = sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user