Exemple #1
0
        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);
        }
Exemple #2
0
        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;
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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;
        }