чепуха какая-то но пусть пока будет так
This commit is contained in:
parent
1c67a1004f
commit
ce1fd40875
@ -3,6 +3,8 @@ using HardwareShopContracts.BusinessLogicsContracts;
|
||||
using HardwareShopContracts.SearchModels;
|
||||
using HardwareShopContracts.StoragesContracts;
|
||||
using HardwareShopContracts.ViewModels;
|
||||
using HardwareShopDatabaseImplement.Models.Worker;
|
||||
using HardwareShopDataModels.Models;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace HardwareShopBusinessLogic.BusinessLogics.Storekeeper
|
||||
@ -12,16 +14,19 @@ namespace HardwareShopBusinessLogic.BusinessLogics.Storekeeper
|
||||
private readonly IComponentStorage _componentStorage;
|
||||
private readonly IGoodStorage _goodStorage;
|
||||
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;
|
||||
_goodStorage = goodStorage;
|
||||
_purchaseStorage = purchaseStorage;
|
||||
_buildStorage = buildStorage;
|
||||
}
|
||||
public List<ReportBuildGoodViewModel> GetBuildGood(List<GoodViewModel> goods)
|
||||
{
|
||||
{
|
||||
var list = new List<ReportBuildGoodViewModel>();
|
||||
var builds = _buildStorage.GetFullList();
|
||||
|
||||
foreach (var good in goods)
|
||||
{
|
||||
@ -30,6 +35,15 @@ namespace HardwareShopBusinessLogic.BusinessLogics.Storekeeper
|
||||
GoodName = good.GoodName,
|
||||
Builds = new()
|
||||
};
|
||||
var components = good.GoodsComponents;
|
||||
foreach (var build in builds)
|
||||
{
|
||||
// сработает ли такая проверка?
|
||||
if (build.BuildComponents == good.GoodsComponents)
|
||||
{
|
||||
builds.Add(build);
|
||||
}
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
@ -37,6 +51,54 @@ namespace HardwareShopBusinessLogic.BusinessLogics.Storekeeper
|
||||
public List<ReportComponentsViewModel> GetComponents(ReportBindingModel model)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user