Compare commits
2 Commits
8e0cbf292b
...
fa374edd58
Author | SHA1 | Date | |
---|---|---|---|
fa374edd58 | |||
001688a3a0 |
@ -89,34 +89,43 @@ namespace GarmentFactoryFileImplement.Implements
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int remainingSpace = source.Shops.Select(x => x.Textiles.ContainsKey(model.TextileId.Value) ? x.Textiles[model.TextileId.Value] : 0).Sum();
|
|
||||||
|
|
||||||
if (remainingSpace < model.Count)
|
//магазины по степени наполненности (от самого наполненного) с этим текстилем
|
||||||
|
var shopsWithThisTextile = source.Shops.Where(x => x.Textiles.ContainsKey(model.TextileId.Value)).OrderByDescending(x => x.Textiles[model.TextileId.Value]).ToList();
|
||||||
|
|
||||||
|
int thisTextileInShops = shopsWithThisTextile.Select(x => x.Textiles[model.TextileId.Value]).Sum();
|
||||||
|
|
||||||
|
if (thisTextileInShops < model.Count)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var shops = source.Shops.Where(x => x.Textiles.ContainsKey(model.TextileId.Value)).OrderByDescending(x => x.Textiles[model.TextileId.Value]).ToList();
|
foreach (var shop in shopsWithThisTextile)
|
||||||
|
|
||||||
foreach (var shop in shops)
|
|
||||||
{
|
{
|
||||||
int residue = model.Count.Value - shop.Textiles[model.TextileId.Value];
|
//кол-во необходимых текстилей после возможной продажи всех текстилей
|
||||||
if (residue > 0)
|
int thisTextileNeed = model.Count.Value - shop.Textiles[model.TextileId.Value];
|
||||||
|
|
||||||
|
//Если текстиль ещё нужен будет
|
||||||
|
if (thisTextileNeed > 0)
|
||||||
{
|
{
|
||||||
|
//удаление всех текстилей в этом магазине
|
||||||
shop.Textiles.Remove(model.TextileId.Value);
|
shop.Textiles.Remove(model.TextileId.Value);
|
||||||
shop.TextilesUpdate();
|
shop.TextilesUpdate();
|
||||||
model.Count = residue;
|
model.Count = thisTextileNeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (residue == 0)
|
//Если ровно хватает
|
||||||
|
if (thisTextileNeed == 0)
|
||||||
{
|
{
|
||||||
shop.Textiles.Remove(model.TextileId.Value);
|
shop.Textiles.Remove(model.TextileId.Value);
|
||||||
}
|
}
|
||||||
|
//Если нужно меньше, чем есть в магазине
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
shop.Textiles[model.TextileId.Value] = -residue;
|
//уменьшение кол-ва
|
||||||
|
shop.Textiles[model.TextileId.Value] = -thisTextileNeed;
|
||||||
}
|
}
|
||||||
shop.TextilesUpdate();
|
shop.TextilesUpdate();
|
||||||
source.SaveShops();
|
source.SaveShops();
|
||||||
|
Loading…
Reference in New Issue
Block a user