public PurchaseOrderWithSernosInfo BuildPurchaseOrderWithSernosInfo(PurchaseOrder purchaseOrder) { var detailsWithSernosInfo = new List <PurchaseOrderDetailWithSernosInfo>(); PurchaseOrderWithSernosInfo purchaseOrderWithSernosInfo = new PurchaseOrderWithSernosInfo { OrderAddress = purchaseOrder.OrderAddress, OrderAddressId = purchaseOrder.OrderAddressId, OrderNumber = purchaseOrder.OrderNumber, DocumentType = purchaseOrder.DocumentType, DateOfOrder = purchaseOrder.DateOfOrder, Remarks = purchaseOrder.Remarks, }; foreach (var detail in purchaseOrder.Details) { var sernosGroup = this.sernosBuiltRepository.FilterBy(s => s.ArticleNumber == detail.PartNumber) .ToList().FirstOrDefault()?.SernosGroup; var orderNumber = detail.OrderNumber; var part = detail.PartNumber; var detailWithSernosInfo = new PurchaseOrderDetailWithSernosInfo(detail) { NumberOfSernos = this.sernosPack.GetNumberOfSernos(part) }; var sernos = this.sernosIssuedRepository.FilterBy( s => PurchaseOrderDocTypes.Contains(s.DocumentType) && s.DocumentNumber == purchaseOrder.OrderNumber); var firstSernos = sernos.Any() ? sernos.Min(s => s.SernosNumber) : (int?)null; var lastSernos = sernos.Any() ? sernos.Max(s => s.SernosNumber) : (int?)null; detailWithSernosInfo.SernosIssued = this.sernosIssuedRepository.FilterBy( s => PurchaseOrderDocTypes.Contains(s.DocumentType) && s.DocumentNumber == orderNumber) .Count(); detailWithSernosInfo.QuantityReceived = this.purchasedOrdersReceived .FilterBy(p => p.OrderNumber == orderNumber && p.OrderLine == detail.OrderLine).ToList().FirstOrDefault() ?.QuantityNetReceived; detailWithSernosInfo.SernosBuilt = this.sernosBuiltRepository.FilterBy( s => s.SernosGroup == sernosGroup && s.SernosNumber >= firstSernos && s.SernosNumber <= lastSernos && s.ArticleNumber == part).Count(); detailWithSernosInfo.FirstSernos = firstSernos; detailWithSernosInfo.LastSernos = lastSernos; detailsWithSernosInfo.Add(detailWithSernosInfo); } purchaseOrderWithSernosInfo.DetaisWithSernosInfo = detailsWithSernosInfo; return(purchaseOrderWithSernosInfo); }
public void SetUp() { var detail = new PurchaseOrderDetail { Part = new Part() }; var l = new PurchaseOrderWithSernosInfo { OrderNumber = 1, OrderAddress = new Address { Country = new Country { CountryCode = "C" } }, DetaisWithSernosInfo = new List <PurchaseOrderDetailWithSernosInfo> { new PurchaseOrderDetailWithSernosInfo(detail) } }; this.FacadeService.GetPurchaseOrderWithSernosInfo(Arg.Any <int>()).Returns(new SuccessResult <PurchaseOrderWithSernosInfo>(l)); this.Response = this.Browser.Get( "/production/resources/purchase-orders/1", with => { with.Header("Accept", "application/json"); }).Result; }
public void SetUp() { this.order = new PurchaseOrder { Details = new List <PurchaseOrderDetail> { new PurchaseOrderDetail() } }; this.SernosBuiltRepository.FilterBy(Arg.Any <Expression <Func <SernosBuilt, bool> > >()).Returns( new List <SernosBuilt> { new SernosBuilt { SernosGroup = "GROUP" }, new SernosBuilt { SernosGroup = "GROUP" } }.AsQueryable()); this.SernosIssuedRepository.FilterBy(Arg.Any <Expression <Func <SernosIssued, bool> > >()).Returns( new List <SernosIssued> { new SernosIssued { SernosGroup = "GROUP", SernosNumber = 1 }, new SernosIssued { SernosGroup = "GROUP", SernosNumber = 2 } }.AsQueryable()); this.PurchaseOrdersReceivedRepository.FilterBy(Arg.Any <Expression <Func <PurchaseOrdersReceived, bool> > >()) .Returns(new List <PurchaseOrdersReceived> { new PurchaseOrdersReceived { QuantityNetReceived = 1 } }.AsQueryable()); this.result = this.Sut.BuildPurchaseOrderWithSernosInfo(this.order); }
public void SetUp() { var a = new PurchaseOrder { OrderNumber = 1, OrderAddress = new Address { Country = new Country() }, Details = new List <PurchaseOrderDetail>() }; var result = new PurchaseOrderWithSernosInfo { OrderNumber = 1, OrderAddress = new Address { Country = new Country() }, DetaisWithSernosInfo = new List <PurchaseOrderDetailWithSernosInfo>() }; this.requestResource = new PurchaseOrderResource() { OrderNumber = 1, }; this.FacadeService.Update(1, Arg.Any <PurchaseOrderResource>()).Returns(new SuccessResult <PurchaseOrder>(a)); this.FacadeService.GetPurchaseOrderWithSernosInfo(Arg.Any <int>()) .Returns(new SuccessResult <PurchaseOrderWithSernosInfo>(result)); this.Response = this.Browser.Put( "/production/resources/purchase-orders/1", with => { with.Header("Accept", "application/json"); with.JsonBody(this.requestResource); }).Result; }