Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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();
        }
Ejemplo n.º 10
0
        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);
            }
        }
Ejemplo n.º 11
0
        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();
        }
Ejemplo n.º 12
0
        public void Delete(RemainNomenclature item)
        {
            var itemForRemove = _table.Find(n => n == item);

            _table.Remove(itemForRemove);
        }
Ejemplo n.º 13
0
 public void Create(RemainNomenclature item)
 {
     _table.Add(item);
 }