public void Generate_Return_Success() { Guid id = Guid.NewGuid(); var dto = new GarmentSewingOutDto(new GarmentSewingOut(id, "sewingOutNo", new BuyerId(1), "BuyerCode", "BuyerName", new UnitDepartmentId(1), "unitToCode", "unitToName", "SewingTo", DateTimeOffset.Now, "RoNo", "Article", new UnitDepartmentId(1), "unitCode", "unitName", new GarmentComodityId(1), "comodityCode", "ComodityName", false)); var garmentSewingOutItem = new GarmentSewingOutItem(id, id, id, id, new ProductId(1), "productCode", "productName", "designColor", new SizeId(1), "sizeName", 1, new UomId(1), "uomUnit", "Color", 1, 1, 1); var items = new List <GarmentSewingOutItemDto>() { new GarmentSewingOutItemDto(garmentSewingOutItem) }; dto.GetType().GetProperty("Items").SetValue(dto, items); var result = GarmentSewingOutPDFTemplate.Generate(dto, "Buyer"); Assert.NotNull(result); }
public async Task Get_StateUnderTest_ExpectedBehavior() { // Arrange var unitUnderTest = CreateGarmentSewingOutController(); _mockGarmentSewingOutRepository .Setup(s => s.Read(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .Returns(new List <GarmentSewingOutReadModel>().AsQueryable()); Guid sewingOutGuid = Guid.NewGuid(); _mockGarmentSewingOutRepository .Setup(s => s.Find(It.IsAny <IQueryable <GarmentSewingOutReadModel> >())) .Returns(new List <GarmentSewingOut>() { new GarmentSewingOut(sewingOutGuid, null, new BuyerId(1), null, null, new UnitDepartmentId(1), null, null, "Finishing", DateTimeOffset.Now, "RONo", null, new UnitDepartmentId(1), null, null, new GarmentComodityId(1), null, null, true) }); Guid sewingInItemGuid = Guid.NewGuid(); Guid sewingInGuid = Guid.NewGuid(); Guid sewingOutItemGuid = Guid.NewGuid(); GarmentSewingOutItem garmentSewingOutItem = new GarmentSewingOutItem(sewingOutItemGuid, sewingOutGuid, sewingInGuid, sewingInItemGuid, new ProductId(1), null, null, null, new SizeId(1), null, 1, new UomId(1), null, null, 1, 1, 1); _mockGarmentSewingOutItemRepository .Setup(s => s.Query) .Returns(new List <GarmentSewingOutItemReadModel>() { garmentSewingOutItem.GetReadModel() }.AsQueryable()); GarmentSewingOutDetail garmentSewingOutDetail = new GarmentSewingOutDetail(Guid.NewGuid(), sewingOutItemGuid, new SizeId(1), null, 1, new UomId(1), null); _mockGarmentSewingOutDetailRepository .Setup(s => s.Query) .Returns(new List <GarmentSewingOutDetailReadModel>() { garmentSewingOutDetail.GetReadModel() }.AsQueryable()); // Act var result = await unitUnderTest.Get(); // Assert Assert.Equal((int)HttpStatusCode.OK, GetStatusCode(result)); }
public GarmentSewingOutItemDto(GarmentSewingOutItem garmentSewingOutItem) { Id = garmentSewingOutItem.Identity; SewingOutId = garmentSewingOutItem.SewingOutId; SewingInId = garmentSewingOutItem.SewingInId; SewingInItemId = garmentSewingOutItem.SewingInItemId; Product = new Product(garmentSewingOutItem.ProductId.Value, garmentSewingOutItem.ProductCode, garmentSewingOutItem.ProductName); Size = new SizeValueObject(garmentSewingOutItem.SizeId.Value, garmentSewingOutItem.SizeName); DesignColor = garmentSewingOutItem.DesignColor; Quantity = garmentSewingOutItem.Quantity; Uom = new Uom(garmentSewingOutItem.UomId.Value, garmentSewingOutItem.UomUnit); Color = garmentSewingOutItem.Color; RemainingQuantity = garmentSewingOutItem.RemainingQuantity; BasicPrice = garmentSewingOutItem.BasicPrice; Price = garmentSewingOutItem.Price; Details = new List <GarmentSewingOutDetailDto>(); }
public async Task GetComplete_Return_Success() { var unitUnderTest = CreateGarmentSewingOutController(); Guid id = Guid.NewGuid(); _mockGarmentSewingOutRepository .Setup(s => s.Read(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .Returns(new List <GarmentSewingOutReadModel>().AsQueryable()); _mockGarmentSewingOutRepository .Setup(s => s.Find(It.IsAny <IQueryable <GarmentSewingOutReadModel> >())) .Returns(new List <GarmentSewingOut>() { new GarmentSewingOut(id, null, new BuyerId(1), null, null, new UnitDepartmentId(1), null, null, "Finishing", DateTimeOffset.Now, "RONo", null, new UnitDepartmentId(1), null, null, new GarmentComodityId(1), null, null, true) }); GarmentSewingOutItem garmentSewingOutItem = new GarmentSewingOutItem(id, id, id, id, new ProductId(1), null, null, null, new SizeId(1), null, 1, new UomId(1), null, null, 1, 1, 1); _mockGarmentSewingOutItemRepository .Setup(s => s.Query) .Returns(new List <GarmentSewingOutItemReadModel>() { garmentSewingOutItem.GetReadModel() }.AsQueryable()); _mockGarmentSewingOutItemRepository .Setup(s => s.Find(It.IsAny <IQueryable <GarmentSewingOutItemReadModel> >())) .Returns(new List <GarmentSewingOutItem>() { new GarmentSewingOutItem(id, id, id, id, new ProductId(1), "productCode", "productName", "designColor", new SizeId(1), "sizeName", 1, new UomId(1), "uomUnit", "color", 1, 1, 1) }); GarmentSewingOutDetail garmentSewingOutDetail = new GarmentSewingOutDetail(id, id, new SizeId(1), "sizeName", 1, new UomId(1), "uomUnit"); _mockGarmentSewingOutDetailRepository .Setup(s => s.Query) .Returns(new List <GarmentSewingOutDetailReadModel>() { garmentSewingOutDetail.GetReadModel() }.AsQueryable()); _mockGarmentSewingOutDetailRepository .Setup(s => s.Find(It.IsAny <IQueryable <GarmentSewingOutDetailReadModel> >())) .Returns(new List <GarmentSewingOutDetail>() { new GarmentSewingOutDetail(id, id, new SizeId(1), "sizeName", 1, new UomId(1), "uomUnit") }); // Act var orderData = new { article = "desc", }; string order = JsonConvert.SerializeObject(orderData); var result = await unitUnderTest.GetComplete(1, 25, order, new List <string>(), "", "{}"); // Assert GetStatusCode(result).Should().Equals((int)HttpStatusCode.OK); }
public async Task <GarmentSewingOut> Handle(PlaceGarmentSewingOutCommand request, CancellationToken cancellationToken) { request.Items = request.Items.Where(item => item.IsSave == true).ToList(); Guid sewingOutId = Guid.NewGuid(); string sewingOutNo = GenerateSewOutNo(request); GarmentSewingOut garmentSewingOut = new GarmentSewingOut( sewingOutId, sewingOutNo, new BuyerId(request.Buyer.Id), request.Buyer.Code, request.Buyer.Name, new UnitDepartmentId(request.UnitTo.Id), request.UnitTo.Code, request.UnitTo.Name, request.SewingTo, request.SewingOutDate.GetValueOrDefault(), request.RONo, request.Article, new UnitDepartmentId(request.Unit.Id), request.Unit.Code, request.Unit.Name, new GarmentComodityId(request.Comodity.Id), request.Comodity.Code, request.Comodity.Name, request.IsDifferentSize ); Dictionary <Guid, double> sewingInItemToBeUpdated = new Dictionary <Guid, double>(); foreach (var item in request.Items) { if (item.IsSave) { GarmentSewingOutItem garmentSewingOutItem = new GarmentSewingOutItem( Guid.NewGuid(), garmentSewingOut.Identity, item.SewingInId, item.SewingInItemId, new ProductId(item.Product.Id), item.Product.Code, item.Product.Name, item.DesignColor, new SizeId(item.Size.Id), item.Size.Size, request.IsDifferentSize? item.TotalQuantity : item.Quantity, new UomId(item.Uom.Id), item.Uom.Unit, item.Color, request.IsDifferentSize ? item.TotalQuantity : item.Quantity, item.BasicPrice, item.Price ); item.Id = garmentSewingOutItem.Identity; if (request.IsDifferentSize) { foreach (var detail in item.Details) { GarmentSewingOutDetail garmentSewingOutDetail = new GarmentSewingOutDetail( Guid.NewGuid(), garmentSewingOutItem.Identity, new SizeId(detail.Size.Id), detail.Size.Size, detail.Quantity, new UomId(detail.Uom.Id), detail.Uom.Unit ); detail.Id = garmentSewingOutDetail.Identity; if (sewingInItemToBeUpdated.ContainsKey(item.SewingInItemId)) { sewingInItemToBeUpdated[item.SewingInItemId] += detail.Quantity; } else { sewingInItemToBeUpdated.Add(item.SewingInItemId, detail.Quantity); } await _garmentSewingOutDetailRepository.Update(garmentSewingOutDetail); } } else { if (sewingInItemToBeUpdated.ContainsKey(item.SewingInItemId)) { sewingInItemToBeUpdated[item.SewingInItemId] += item.Quantity; } else { sewingInItemToBeUpdated.Add(item.SewingInItemId, item.Quantity); } } await _garmentSewingOutItemRepository.Update(garmentSewingOutItem); } } foreach (var sewInItem in sewingInItemToBeUpdated) { var garmentSewingInItem = _garmentSewingInItemRepository.Query.Where(x => x.Identity == sewInItem.Key).Select(s => new GarmentSewingInItem(s)).Single(); garmentSewingInItem.SetRemainingQuantity(garmentSewingInItem.RemainingQuantity - sewInItem.Value); garmentSewingInItem.Modify(); await _garmentSewingInItemRepository.Update(garmentSewingInItem); } await _garmentSewingOutRepository.Update(garmentSewingOut); #region CreateCuttingIn if (request.SewingTo == "CUTTING") { GarmentComodityPrice garmentComodityPrice = _garmentComodityPriceRepository.Query.Where(a => a.IsValid == true && a.UnitId == request.Unit.Id && a.ComodityId == request.Comodity.Id).Select(s => new GarmentComodityPrice(s)).Single(); var now = DateTime.Now; var year = now.ToString("yy"); var month = now.ToString("MM"); var prefix = $"DC{request.UnitTo.Code.Trim()}{year}{month}"; var lastCutInNo = _garmentCuttingInRepository.Query.Where(w => w.CutInNo.StartsWith(prefix)) .OrderByDescending(o => o.CutInNo) .Select(s => int.Parse(s.CutInNo.Replace(prefix, ""))) .FirstOrDefault(); var CutInNo = $"{prefix}{(lastCutInNo + 1).ToString("D4")}"; GarmentCuttingIn garmentCuttingIn = new GarmentCuttingIn( Guid.NewGuid(), CutInNo, null, "SEWING", request.RONo, request.Article, new UnitDepartmentId(request.UnitTo.Id), request.UnitTo.Code, request.UnitTo.Name, request.SewingOutDate.GetValueOrDefault(), 0 ); foreach (var item in request.Items) { if (item.IsSave) { GarmentCuttingInItem garmentCuttingInItem = new GarmentCuttingInItem( Guid.NewGuid(), garmentCuttingIn.Identity, Guid.Empty, 0, null, sewingOutId, sewingOutNo ); if (request.IsDifferentSize) { foreach (var detail in item.Details) { GarmentCuttingInDetail garmentCuttingInDetail = new GarmentCuttingInDetail( Guid.NewGuid(), garmentCuttingInItem.Identity, Guid.Empty, item.Id, detail.Id, new ProductId(item.Product.Id), item.Product.Code, item.Product.Name, item.DesignColor, null, 0, new UomId(0), null, Convert.ToInt32(detail.Quantity), new UomId(detail.Uom.Id), detail.Uom.Unit, detail.Quantity, item.BasicPrice, (item.BasicPrice + ((double)garmentComodityPrice.Price * 25 / 100)) * detail.Quantity, 0, item.Color ); await _garmentCuttingInDetailRepository.Update(garmentCuttingInDetail); } } else { GarmentCuttingInDetail garmentCuttingInDetail = new GarmentCuttingInDetail( Guid.NewGuid(), garmentCuttingInItem.Identity, Guid.Empty, item.Id, Guid.Empty, new ProductId(item.Product.Id), item.Product.Code, item.Product.Name, item.DesignColor, null, 0, new UomId(0), null, Convert.ToInt32(item.Quantity), new UomId(item.Uom.Id), item.Uom.Unit, item.Quantity, item.BasicPrice, (item.BasicPrice + ((double)garmentComodityPrice.Price * 25 / 100)) * item.Quantity, 0, item.Color ); await _garmentCuttingInDetailRepository.Update(garmentCuttingInDetail); } await _garmentCuttingInItemRepository.Update(garmentCuttingInItem); } } await _garmentCuttingInRepository.Update(garmentCuttingIn); } #endregion _storage.Save(); return(garmentSewingOut); }