/*
         * Create PurchaseOrder with both Serialized & NonSerialized PurchaseOrder Items
         */
        public static PurchaseOrder CreatePurchaseOrderWithBothItems(this Organisation @this, Faker faker)
        {
            var serializedPart = new UnifiedGoodBuilder(@this.Session()).WithSerialisedDefaults(@this).Build();
            var serializedItem = new SerialisedItemBuilder(@this.Session()).WithDefaults(@this).Build();

            serializedPart.AddSerialisedItem(serializedItem);

            var nonSerializedPart = new NonUnifiedPartBuilder(@this.Session()).WithNonSerialisedDefaults(@this).Build();

            var purchaseOrder = new PurchaseOrderBuilder(@this.Session()).WithDefaults(@this).Build();

            new SupplierOfferingBuilder(@this.Session())
            .WithPart(nonSerializedPart)
            .WithSupplier(purchaseOrder.TakenViaSupplier)
            .WithFromDate(@this.Session().Now().AddMinutes(-1))
            .WithUnitOfMeasure(new UnitsOfMeasure(@this.Session()).Piece)
            .WithPrice(faker.Random.Decimal(0, 10))
            .Build();

            var nonSerializedPartItem = new PurchaseOrderItemBuilder(@this.Session()).WithNonSerializedPartDefaults(nonSerializedPart).Build();
            var serializedPartItem    = new PurchaseOrderItemBuilder(@this.Session()).WithSerializedPartDefaults(serializedPart, serializedItem).Build();

            purchaseOrder.AddPurchaseOrderItem(nonSerializedPartItem);
            purchaseOrder.AddPurchaseOrderItem(serializedPartItem);

            return(purchaseOrder);
        }
Exemplo n.º 2
0
        public void GivenSerializedItem_WhenDerived_ThenSuppliedByPartyNameIsSetFromSupplierOffering()
        {
            var supplier = this.InternalOrganisation.ActiveSuppliers.First;

            var unifiedGood = new UnifiedGoodBuilder(this.Session).WithSerialisedDefaults(this.InternalOrganisation).Build();

            this.Session.Derive();


            new SupplierOfferingBuilder(this.Session)
            .WithSupplier(supplier)
            .WithPart(unifiedGood)
            .WithUnitOfMeasure(new UnitsOfMeasure(this.Session).Piece)
            .WithPrice(1)
            .Build();

            this.Session.Derive();

            var newItem = new SerialisedItemBuilder(this.Session).WithForSaleDefaults(this.InternalOrganisation).Build();

            unifiedGood.AddSerialisedItem(newItem);

            this.Session.Derive();

            Assert.Equal(supplier.PartyName, newItem.SuppliedByPartyName);
        }
        /*
         * Create PurchaseOrder with Serialized PurchaseOrderItem
         */
        public static PurchaseOrder CreatePurchaseOrderWithSerializedItem(this Organisation @this)
        {
            var serializedPart = new UnifiedGoodBuilder(@this.Session()).WithSerialisedDefaults(@this).Build();
            var serializedItem = new SerialisedItemBuilder(@this.Session()).WithDefaults(@this).Build();

            serializedPart.AddSerialisedItem(serializedItem);

            var purchaseOrder = new PurchaseOrderBuilder(@this.Session()).WithDefaults(@this).Build();

            var item = new PurchaseOrderItemBuilder(@this.Session()).WithSerializedPartDefaults(serializedPart, serializedItem).Build();

            purchaseOrder.AddPurchaseOrderItem(item);

            return(purchaseOrder);
        }
Exemplo n.º 4
0
        public void GivenSerializedItem_WhenAddingWithSameSerialNumber_ThenError()
        {
            var good         = new UnifiedGoodBuilder(this.Session).WithSerialisedDefaults(this.InternalOrganisation).Build();
            var serialNumber = good.SerialisedItems.First.SerialNumber;

            var newItem = new SerialisedItemBuilder(this.Session).WithSerialNumber(serialNumber).Build();

            good.AddSerialisedItem(newItem);

            var expectedErrorMessage = ErrorMessages.SameSerialNumber;

            var errors = new List <string>(this.Session.Derive(false).Errors.Select(v => v.Message));

            Assert.Contains(expectedErrorMessage, errors);
        }
        public static UnifiedGood CreateUnifiedWithGoodInventoryAvailableForSale(this Organisation @this, Faker faker)
        {
            var unifiedGood    = new UnifiedGoodBuilder(@this.Session()).WithSerialisedDefaults(@this).Build();
            var serialisedItem = new SerialisedItemBuilder(@this.Session()).WithForSaleDefaults(@this).Build();

            unifiedGood.AddSerialisedItem(serialisedItem);

            new InventoryItemTransactionBuilder(@this.Session())
            .WithSerialisedItem(serialisedItem)
            .WithFacility(@this.FacilitiesWhereOwner.First)
            .WithQuantity(1)
            .WithReason(new InventoryTransactionReasons(@this.Session()).IncomingShipment)
            .WithSerialisedInventoryItemState(new SerialisedInventoryItemStates(@this.Session()).Good)
            .Build();

            return(unifiedGood);
        }