Esempio n. 1
0
        public void should_success_instantiate()
        {
            Guid id = Guid.NewGuid();
            GarmentLoadingItem item = new GarmentLoadingItem(new GarmentLoadingItemReadModel(id));

            item.SetQuantity(1);
            item.Modify();
            Assert.NotNull(item);
        }
 public GarmentLoadingItemDto(GarmentLoadingItem garmentLoadingItem)
 {
     Id                = garmentLoadingItem.Identity;
     Product           = new Product(garmentLoadingItem.ProductId.Value, garmentLoadingItem.ProductCode, garmentLoadingItem.ProductName);
     DesignColor       = garmentLoadingItem.DesignColor;
     Size              = new SizeValueObject(garmentLoadingItem.SizeId.Value, garmentLoadingItem.SizeName);
     Quantity          = garmentLoadingItem.Quantity;
     Uom               = new Uom(garmentLoadingItem.UomId.Value, garmentLoadingItem.UomUnit);
     Color             = garmentLoadingItem.Color;
     RemainingQuantity = garmentLoadingItem.RemainingQuantity;
     BasicPrice        = garmentLoadingItem.BasicPrice;
     SewingDOItemId    = garmentLoadingItem.SewingDOItemId;
     LoadingId         = garmentLoadingItem.LoadingId;
     Price             = garmentLoadingItem.Price;
 }
Esempio n. 3
0
        public async Task <GarmentLoading> Handle(PlaceGarmentLoadingCommand request, CancellationToken cancellationToken)
        {
            request.Items = request.Items.ToList();

            GarmentLoading garmentLoading = new GarmentLoading(
                Guid.NewGuid(),
                GenerateLoadingNo(request),
                request.SewingDOId,
                request.SewingDONo,
                new UnitDepartmentId(request.UnitFrom.Id),
                request.UnitFrom.Code,
                request.UnitFrom.Name,
                request.RONo,
                request.Article,
                new UnitDepartmentId(request.Unit.Id),
                request.Unit.Code,
                request.Unit.Name,
                request.LoadingDate,
                new GarmentComodityId(request.Comodity.Id),
                request.Comodity.Code,
                request.Comodity.Name
                );

            Dictionary <Guid, double> sewingDOItemToBeUpdated = new Dictionary <Guid, double>();

            foreach (var item in request.Items)
            {
                if (item.IsSave)
                {
                    GarmentLoadingItem garmentLoadingItem = new GarmentLoadingItem(
                        Guid.NewGuid(),
                        garmentLoading.Identity,
                        item.SewingDOItemId,
                        new SizeId(item.Size.Id),
                        item.Size.Size,
                        new ProductId(item.Product.Id),
                        item.Product.Code,
                        item.Product.Name,
                        item.DesignColor,
                        item.Quantity,
                        item.RemainingQuantity,
                        item.BasicPrice,
                        new UomId(item.Uom.Id),
                        item.Uom.Unit,
                        item.Color,
                        item.Price
                        );

                    if (sewingDOItemToBeUpdated.ContainsKey(item.SewingDOItemId))
                    {
                        sewingDOItemToBeUpdated[item.SewingDOItemId] += item.Quantity;
                    }
                    else
                    {
                        sewingDOItemToBeUpdated.Add(item.SewingDOItemId, item.Quantity);
                    }

                    await _garmentLoadingItemRepository.Update(garmentLoadingItem);
                }
            }

            foreach (var sewingDOItem in sewingDOItemToBeUpdated)
            {
                var garmentSewingDOItem = _garmentSewingDOItemRepository.Query.Where(x => x.Identity == sewingDOItem.Key).Select(s => new GarmentSewingDOItem(s)).Single();
                garmentSewingDOItem.setRemainingQuantity(garmentSewingDOItem.RemainingQuantity - sewingDOItem.Value);
                garmentSewingDOItem.Modify();

                await _garmentSewingDOItemRepository.Update(garmentSewingDOItem);
            }

            await _garmentLoadingRepository.Update(garmentLoading);

            _storage.Save();

            return(garmentLoading);
        }