public void should_success_instantiate() { Guid id = Guid.NewGuid(); GarmentCuttingIn item = new GarmentCuttingIn(new GarmentCuttingInReadModel(id)); item.SetFC(2); item.Modify(); Assert.NotNull(item); }
public GarmentCuttingInListDto(GarmentCuttingIn garmentCuttingIn) { Id = garmentCuttingIn.Identity; CutInNo = garmentCuttingIn.CutInNo; CuttingType = garmentCuttingIn.CuttingType; RONo = garmentCuttingIn.RONo; Article = garmentCuttingIn.Article; Unit = new UnitDepartment(garmentCuttingIn.UnitId.Value, garmentCuttingIn.UnitCode, garmentCuttingIn.UnitName); CuttingInDate = garmentCuttingIn.CuttingInDate; FC = garmentCuttingIn.FC; CuttingFrom = garmentCuttingIn.CuttingFrom; CreatedBy = garmentCuttingIn.AuditTrail.CreatedBy; }
public GarmentCuttingInDto(GarmentCuttingIn garmentCuttingIn) { Id = garmentCuttingIn.Identity; CutInNo = garmentCuttingIn.CutInNo; CuttingType = garmentCuttingIn.CuttingType; RONo = garmentCuttingIn.RONo; Article = garmentCuttingIn.Article; Unit = new UnitDepartment(garmentCuttingIn.UnitId.Value, garmentCuttingIn.UnitCode, garmentCuttingIn.UnitName); CuttingInDate = garmentCuttingIn.CuttingInDate; FC = garmentCuttingIn.FC; CuttingFrom = garmentCuttingIn.CuttingFrom; Items = new List <GarmentCuttingInItemDto>(); }
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); }