public GarmentSewingInItemDto(GarmentSewingInItem garmentSewingInItem) { Id = garmentSewingInItem.Identity; SewingInId = garmentSewingInItem.SewingInId; SewingOutItemId = garmentSewingInItem.SewingOutItemId; SewingOutDetailId = garmentSewingInItem.SewingOutDetailId; LoadingItemId = garmentSewingInItem.LoadingItemId; Product = new Product(garmentSewingInItem.ProductId.Value, garmentSewingInItem.ProductCode, garmentSewingInItem.ProductName); DesignColor = garmentSewingInItem.DesignColor; Size = new SizeValueObject(garmentSewingInItem.SizeId.Value, garmentSewingInItem.SizeName); Quantity = garmentSewingInItem.Quantity; Uom = new Uom(garmentSewingInItem.UomId.Value, garmentSewingInItem.UomUnit); Color = garmentSewingInItem.Color; RemainingQuantity = garmentSewingInItem.RemainingQuantity; BasicPrice = garmentSewingInItem.BasicPrice; Price = garmentSewingInItem.Price; }
public async Task <GarmentSewingIn> Handle(PlaceGarmentSewingInCommand request, CancellationToken cancellationToken) { request.Items = request.Items.Where(item => item.IsSave == true).ToList(); GarmentSewingIn garmentSewingIn = new GarmentSewingIn( Guid.NewGuid(), GenerateSewingInNo(request), request.SewingFrom, request.LoadingId, request.LoadingNo, new UnitDepartmentId(request.UnitFrom.Id), request.UnitFrom.Code, request.UnitFrom.Name, new UnitDepartmentId(request.Unit.Id), request.Unit.Code, request.Unit.Name, request.RONo, request.Article, new GarmentComodityId(request.Comodity.Id), request.Comodity.Code, request.Comodity.Name, request.SewingInDate.GetValueOrDefault() ); foreach (var item in request.Items) { GarmentSewingInItem garmentSewingInItem = new GarmentSewingInItem( Guid.NewGuid(), garmentSewingIn.Identity, item.SewingOutItemId, item.SewingOutDetailId, item.LoadingItemId, item.FinishingOutItemId, item.FinishingOutDetailId, new ProductId(item.Product.Id), item.Product.Code, item.Product.Name, item.DesignColor, new SizeId(item.Size.Id), item.Size.Size, item.Quantity, new UomId(item.Uom.Id), item.Uom.Unit, item.Color, item.Quantity, item.BasicPrice, item.Price ); if (request.SewingFrom == "CUTTING") { var garmentLoadingItem = _garmentLoadingItemRepository.Query.Where(o => o.Identity == item.LoadingItemId).Select(s => new GarmentLoadingItem(s)).Single(); garmentLoadingItem.SetRemainingQuantity(garmentLoadingItem.RemainingQuantity - item.Quantity); garmentLoadingItem.Modify(); await _garmentLoadingItemRepository.Update(garmentLoadingItem); } else if (request.SewingFrom == "SEWING") { var garmentSewingOutItem = _garmentSewingOutItemRepository.Query.Where(s => s.Identity == item.SewingOutItemId).Select(s => new GarmentSewingOutItem(s)).Single(); garmentSewingOutItem.SetRemainingQuantity(garmentSewingOutItem.RemainingQuantity - item.Quantity); garmentSewingOutItem.Modify(); await _garmentSewingOutItemRepository.Update(garmentSewingOutItem); } else if (request.SewingFrom == "FINISHING") { var garmentFinishingOutItem = _garmentFinishingOutItemRepository.Query.Where(s => s.Identity == item.FinishingOutItemId).Select(s => new GarmentFinishingOutItem(s)).Single(); garmentFinishingOutItem.SetRemainingQuantity(garmentFinishingOutItem.RemainingQuantity - item.Quantity); garmentFinishingOutItem.Modify(); await _garmentFinishingOutItemRepository.Update(garmentFinishingOutItem); } await _garmentSewingInItemRepository.Update(garmentSewingInItem); } await _garmentSewingInRepository.Update(garmentSewingIn); _storage.Save(); return(garmentSewingIn); }