public void Write(Assemblage assemblage) { var select = assemblage.ListOfNomenc.GroupBy(i => i.Nomenclature).Select(g => new LineItem() { Nomenclature = g.Key, Quantity = g.Sum(i => i.Quantity), Sum = g.Sum(i => i.Sum) }); foreach (var item in select) { var recordNomenclature = new RemainNomenclature { Nomenclature = item.Nomenclature, RecordType = RecordType.Expose, Quantity = item.Quantity, }; var recordCostPrice = new RemainCostPrice { Nomenclature = item.Nomenclature, RecordType = RecordType.Expose, Amount = item.Quantity, }; recordNomenclature.Warehouse = assemblage.Warehouse; _remainNomenclature.Create(recordNomenclature); _remainCostPrice.Create(recordCostPrice); } _repository.Create(assemblage); _remainNomenclature.RecalcBalances(); _remainCostPrice.RecalcBalances(); }
public void Update(RemainNomenclature item) { var itemForRemove = _table.Find(n => n.Id == item.Id); var index = _table.IndexOf(itemForRemove); _table.RemoveAt(index); _table.Insert(index, item); }
public void TestRemainNomenclatureDbFindById_WithRemainNomenclatureId_ShouldFindTheRemainNomenclatureInDbById() { var repository = new RemainNomenclatureRegisterRepository(_db); var remainNomenclature = new RemainNomenclature(); repository.Create(remainNomenclature); var remainNomenclatureById = repository.GetById(remainNomenclature.Id); Assert.Equal(remainNomenclature.Id, remainNomenclatureById.Id); }
private void AddRemainNomenclatureToDbFromIncoming(LineItem lineItem, Incoming incoming) { var remain = new RemainNomenclature(); remain.Nomenclature = lineItem.Nomenclature; remain.Warehouse = incoming.Warehouse; remain.Date = incoming.Date; remain.Quantity = lineItem.Quantity; remain.RecordType = RecordType.Expose; _db.GetTable <RemainNomenclature>().Add(remain); }
private void AddRemainNomenclatureToDbFromConsumption(LineItem lineItem, Consumption consumption) { var remain = new RemainNomenclature(); remain.Nomenclature = lineItem.Nomenclature; remain.Warehouse = consumption.Warehouse; remain.Date = consumption.Date; remain.Quantity = lineItem.Quantity; remain.RecordType = RecordType.Expose; _db.GetTable <RemainNomenclature>().Add(remain); }
public void TestRemainNomenclatureDbAdd_WithNewRemainNomenclature_ShouldAddTheRemainNomenclatureToDb() { var repository = new RemainNomenclatureRegisterRepository(_db); var remainNomenclature = new RemainNomenclature(); var remainNomenclatureById = repository.GetById(remainNomenclature.Id); Assert.Null(remainNomenclatureById); repository.Create(remainNomenclature); remainNomenclatureById = repository.GetById(remainNomenclature.Id); Assert.NotNull(remainNomenclatureById); }
public void TestRemainNomenclatureDbDelete_WithRemainNomenclature_ShouldDeleteTheRemainNomenclatureFromDb() { var repository = new RemainNomenclatureRegisterRepository(_db); var remainNomenclature = new RemainNomenclature(); repository.Create(remainNomenclature); var remainNomenclatureById = repository.GetById(remainNomenclature.Id); Assert.NotNull(remainNomenclatureById); repository.Delete(remainNomenclature); remainNomenclatureById = repository.GetById(remainNomenclature.Id); Assert.Null(remainNomenclatureById); }
public void TestRemainNomenclatureDbUbdate_WithNewRemainNomenclature_ShouldUpdateTheRemainNomenclatureToDb() { var repository = new RemainNomenclatureRegisterRepository(_db); var remainNomenclature = new RemainNomenclature(); repository.Create(remainNomenclature); var remainNomenclatureById = repository.GetById(remainNomenclature.Id); Assert.Null(remainNomenclatureById.Warehouse); var warehouse = new Warehouse("warehouse name"); remainNomenclature.Warehouse = warehouse; repository.Update(remainNomenclature); Assert.Equal("warehouse name", remainNomenclatureById.Warehouse.Description); }
public void Write(Consumption consumption) { var select = consumption.ListOfNomenc.GroupBy(i => i.Nomenclature).Select(g => new LineItem() { Nomenclature = g.Key, Quantity = g.Sum(i => i.Quantity), Sum = g.Sum(i => i.Sum) }); foreach (var item in select) { var availableQuantity = _table .Where(t => t.Nomenclature.Id == item.Nomenclature.Id) .Select(q => q.Quantity) .ToList(); if (availableQuantity[0] < item.Quantity) { throw new System.ArgumentException("Not enough goods in warehouse"); } var recordNomenclature = new RemainNomenclature { Nomenclature = item.Nomenclature, RecordType = RecordType.Expose, Quantity = item.Quantity, Warehouse = consumption.Warehouse }; var recordCostPrice = new RemainCostPrice { Nomenclature = item.Nomenclature, Amount = item.Quantity, Sum = item.Sum, RecordType = RecordType.Expose, }; _remainNomenclature.Create(recordNomenclature); _remainCostPrice.Create(recordCostPrice); } _repository.Create(consumption); _remainNomenclature.RecalcBalances(); _remainCostPrice.RecalcBalances(); }
private void RecalcRemainNomenclature() { RemainNomenclatureBalance.Clear(); foreach (var item in RemainNomenclature.Where(p => p.RecordType == RecordType.Expose)) { if (item.Quantity > 0) { item.Quantity = -item.Quantity; } } var remainNomenclatureBalanceItem = RemainNomenclature.GroupBy(t => new { t.Nomenclature, t.Warehouse }).Select(g => new RemainNomenclatureBalance { Date = DateTime.Now, Warehouse = g.Key.Warehouse, Nomenclature = g.Key.Nomenclature, Quantity = g.Sum(s => s.Quantity) }).ToList(); foreach (var item in remainNomenclatureBalanceItem) { RemainNomenclatureBalance.Add(item); } }
public void Write(Incoming incoming) { var select = incoming.ListOfNomenc.GroupBy(i => i.Nomenclature).Select(g => new LineItem() { Nomenclature = g.Key, Quantity = g.Sum(i => i.Quantity), Sum = g.Sum(i => i.Sum) }); foreach (var item in select) { var recordNomenclature = new RemainNomenclature { Nomenclature = item.Nomenclature, RecordType = RecordType.Receipt, Quantity = item.Quantity, Warehouse = incoming.Warehouse }; var recordCostPrice = new RemainCostPrice { Nomenclature = item.Nomenclature, Incoming = incoming, Amount = item.Quantity, Sum = item.Sum, RecordType = RecordType.Receipt }; _remainNomenclature.Create(recordNomenclature); _remainCostPrice.Create(recordCostPrice); } _repository.Create(incoming); _remainNomenclature.RecalcBalances(); _remainCostPrice.RecalcBalances(); }
public void Delete(RemainNomenclature item) { var itemForRemove = _table.Find(n => n == item); _table.Remove(itemForRemove); }
public void Create(RemainNomenclature item) { _table.Add(item); }