/* * 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); }
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); }
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); }