public override void Init() { base.Init(); this.employee = new PersonBuilder(this.DatabaseSession).WithLastName("slave").Build(); this.internalOrganisation = new InternalOrganisations(this.DatabaseSession).FindBy(InternalOrganisations.Meta.Name, "internalOrganisation"); this.employment = new EmploymentBuilder(this.DatabaseSession) .WithEmployee(this.employee) .WithEmployer(this.internalOrganisation) .WithFromDate(DateTime.UtcNow) .Build(); this.DatabaseSession.Derive(true); this.DatabaseSession.Commit(); }
private void InstantiateObjects(ISession session) { this.productCategory = (ProductCategory)session.Instantiate(this.productCategory); this.parentProductCategory = (ProductCategory)session.Instantiate(this.parentProductCategory); this.ancestorProductCategory = (ProductCategory)session.Instantiate(this.ancestorProductCategory); this.part = (FinishedGood)session.Instantiate(this.part); this.good = (Good)session.Instantiate(this.good); this.feature1 = (Colour)session.Instantiate(this.feature1); this.feature2 = (Colour)session.Instantiate(this.feature2); this.internalOrganisation = (InternalOrganisation)session.Instantiate(this.internalOrganisation); this.shipToCustomer = (Organisation)session.Instantiate(this.shipToCustomer); this.billToCustomer = (Organisation)session.Instantiate(this.billToCustomer); this.supplier = (Organisation)session.Instantiate(this.supplier); this.kiev = (City)session.Instantiate(this.kiev); this.shipToContactMechanismMechelen = (PostalAddress)session.Instantiate(this.shipToContactMechanismMechelen); this.shipToContactMechanismKiev = (PostalAddress)session.Instantiate(this.shipToContactMechanismKiev); this.currentBasePriceGeoBoundary = (BasePrice)session.Instantiate(this.currentBasePriceGeoBoundary); this.currentGoodBasePrice = (BasePrice)session.Instantiate(this.currentGoodBasePrice); this.currentGood1Feature1BasePrice = (BasePrice)session.Instantiate(this.currentGood1Feature1BasePrice); this.currentFeature2BasePrice = (BasePrice)session.Instantiate(this.currentFeature2BasePrice); this.goodPurchasePrice = (ProductPurchasePrice)session.Instantiate(this.goodPurchasePrice); this.virtualGoodPurchasePrice = (ProductPurchasePrice)session.Instantiate(this.virtualGoodPurchasePrice); this.currentGoodBasePrice = (BasePrice)session.Instantiate(this.currentGoodBasePrice); this.goodSupplierOffering = (SupplierOffering)session.Instantiate(this.goodSupplierOffering); this.virtualgoodSupplierOffering = (SupplierOffering)session.Instantiate(this.virtualgoodSupplierOffering); this.order = (SalesOrder)session.Instantiate(this.order); this.vatRate21 = (VatRate)session.Instantiate(this.vatRate21); }
public override void Init() { base.Init(); var euro = new Currencies(this.DatabaseSession).FindBy(Currencies.Meta.IsoCode, "EUR"); this.internalOrganisation = new InternalOrganisations(this.DatabaseSession).FindBy(InternalOrganisations.Meta.Name, "internalOrganisation"); this.internalOrganisation.PreferredCurrency = euro; this.supplier = new OrganisationBuilder(this.DatabaseSession).WithName("supplier").Build(); this.vatRate21 = new VatRateBuilder(this.DatabaseSession).WithRate(21).Build(); var mechelen = new CityBuilder(this.DatabaseSession).WithName("Mechelen").Build(); this.kiev = new CityBuilder(this.DatabaseSession).WithName("Kiev").Build(); this.shipToContactMechanismMechelen = new PostalAddressBuilder(this.DatabaseSession).WithGeographicBoundary(mechelen).WithAddress1("Haverwerf 15").Build(); this.shipToContactMechanismKiev = new PostalAddressBuilder(this.DatabaseSession).WithGeographicBoundary(this.kiev).WithAddress1("Dnieper").Build(); this.shipToCustomer = new OrganisationBuilder(this.DatabaseSession).WithName("shipToCustomer").Build(); this.shipToCustomer.AddPartyContactMechanism(new PartyContactMechanismBuilder(this.DatabaseSession) .WithContactMechanism(this.shipToContactMechanismKiev) .WithContactPurpose(new ContactMechanismPurposes(this.DatabaseSession).ShippingAddress) .WithUseAsDefault(true) .Build()); this.billToCustomer = new OrganisationBuilder(this.DatabaseSession) .WithName("billToCustomer") .WithPreferredCurrency(euro) .Build(); this.billToCustomer.AddPartyContactMechanism(new PartyContactMechanismBuilder(this.DatabaseSession) .WithContactMechanism(this.shipToContactMechanismKiev) .WithContactPurpose(new ContactMechanismPurposes(this.DatabaseSession).BillingAddress) .WithUseAsDefault(true) .Build()); this.part = new FinishedGoodBuilder(this.DatabaseSession).WithName("part").Build(); this.ancestorProductCategory = new ProductCategoryBuilder(this.DatabaseSession).WithDescription("ancestor").Build(); this.parentProductCategory = new ProductCategoryBuilder(this.DatabaseSession).WithDescription("parent").WithParent(this.ancestorProductCategory).Build(); this.productCategory = new ProductCategoryBuilder(this.DatabaseSession).WithDescription("gizmo").Build(); this.productCategory.AddParent(this.parentProductCategory); this.good = new GoodBuilder(this.DatabaseSession) .WithSku("10101") .WithVatRate(this.vatRate21) .WithName("good") .WithProductCategory(this.productCategory) .WithFinishedGood(this.part) .WithUnitOfMeasure(new UnitsOfMeasure(this.DatabaseSession).Piece) .Build(); new SupplierRelationshipBuilder(this.DatabaseSession) .WithInternalOrganisation(this.internalOrganisation) .WithSupplier(this.supplier) .WithFromDate(DateTime.UtcNow) .Build(); new CustomerRelationshipBuilder(this.DatabaseSession) .WithCustomer(this.billToCustomer) .WithInternalOrganisation(Singleton.Instance(this.DatabaseSession).DefaultInternalOrganisation) .Build(); new CustomerRelationshipBuilder(this.DatabaseSession) .WithCustomer(this.shipToCustomer) .WithInternalOrganisation(Singleton.Instance(this.DatabaseSession).DefaultInternalOrganisation) .Build(); this.partyRevenueHistory = new PartyRevenueHistoryBuilder(this.DatabaseSession) .WithCurrency(euro) .WithInternalOrganisation(this.internalOrganisation) .WithParty(this.billToCustomer) .WithRevenue(100M) .Build(); this.productCategoryRevenueHistory = new PartyProductCategoryRevenueHistoryBuilder(this.DatabaseSession) .WithCurrency(euro) .WithInternalOrganisation(this.internalOrganisation) .WithParty(this.billToCustomer) .WithProductCategory(this.productCategory) .WithRevenue(100M) .WithQuantity(10) .Build(); this.parentProductCategoryRevenueHistory = new PartyProductCategoryRevenueHistoryBuilder(this.DatabaseSession) .WithCurrency(euro) .WithInternalOrganisation(this.internalOrganisation) .WithParty(this.billToCustomer) .WithProductCategory(this.parentProductCategory) .WithRevenue(100M) .WithQuantity(10) .Build(); this.ancestorProductCategoryRevenueHistory = new PartyProductCategoryRevenueHistoryBuilder(this.DatabaseSession) .WithCurrency(euro) .WithInternalOrganisation(this.internalOrganisation) .WithParty(this.billToCustomer) .WithProductCategory(this.ancestorProductCategory) .WithRevenue(100M) .WithQuantity(10) .Build(); this.variantGood = new GoodBuilder(this.DatabaseSession) .WithSku("v10101") .WithVatRate(this.vatRate21) .WithName("variant good") .WithUnitOfMeasure(new UnitsOfMeasure(this.DatabaseSession).Piece) .WithInventoryItemKind(new InventoryItemKinds(this.DatabaseSession).NonSerialized) .Build(); this.variantGood2 = new GoodBuilder(this.DatabaseSession) .WithSku("v10102") .WithVatRate(this.vatRate21) .WithName("variant good2") .WithUnitOfMeasure(new UnitsOfMeasure(this.DatabaseSession).Piece) .WithInventoryItemKind(new InventoryItemKinds(this.DatabaseSession).NonSerialized) .Build(); this.virtualGood = new GoodBuilder(this.DatabaseSession) .WithSku("v10103") .WithVatRate(this.vatRate21) .WithName("virtual good") .WithVariant(this.variantGood) .WithVariant(this.variantGood2) .WithUnitOfMeasure(new UnitsOfMeasure(this.DatabaseSession).Piece) .WithInventoryItemKind(new InventoryItemKinds(this.DatabaseSession).NonSerialized) .Build(); this.goodPurchasePrice = new ProductPurchasePriceBuilder(this.DatabaseSession) .WithCurrency(euro) .WithFromDate(DateTime.UtcNow) .WithPrice(7) .WithUnitOfMeasure(new UnitsOfMeasure(this.DatabaseSession).Piece) .Build(); this.goodSupplierOffering = new SupplierOfferingBuilder(this.DatabaseSession) .WithProduct(this.good) .WithSupplier(this.supplier) .WithFromDate(DateTime.UtcNow) .WithProductPurchasePrice(this.goodPurchasePrice) .Build(); this.virtualGoodPurchasePrice = new ProductPurchasePriceBuilder(this.DatabaseSession) .WithCurrency(euro) .WithFromDate(DateTime.UtcNow) .WithPrice(8) .WithUnitOfMeasure(new UnitsOfMeasure(this.DatabaseSession).Piece) .Build(); this.virtualgoodSupplierOffering = new SupplierOfferingBuilder(this.DatabaseSession) .WithProduct(this.virtualGood) .WithSupplier(this.supplier) .WithFromDate(DateTime.UtcNow) .WithProductPurchasePrice(this.virtualGoodPurchasePrice) .Build(); this.feature1 = new ColourBuilder(this.DatabaseSession) .WithName("white") .WithVatRate(this.vatRate21) .WithLocalisedName(new LocalisedTextBuilder(this.DatabaseSession) .WithText("white") .WithLocale(Singleton.Instance(this.DatabaseSession).DefaultLocale) .Build()) .Build(); this.feature2 = new ColourBuilder(this.DatabaseSession) .WithName("black") .WithLocalisedName(new LocalisedTextBuilder(this.DatabaseSession) .WithText("black") .WithLocale(Singleton.Instance(this.DatabaseSession).DefaultLocale) .Build()) .Build(); this.currentBasePriceGeoBoundary = new BasePriceBuilder(this.DatabaseSession) .WithSpecifiedFor(this.internalOrganisation) .WithDescription("current BasePriceGeoBoundary ") .WithGeographicBoundary(mechelen) .WithProduct(this.good) .WithPrice(8) .WithFromDate(DateTime.UtcNow) .Build(); // previous basePrice for good new BasePriceBuilder(this.DatabaseSession).WithDescription("previous good") .WithSpecifiedFor(this.internalOrganisation) .WithProduct(this.good) .WithPrice(8) .WithFromDate(DateTime.UtcNow.AddYears(-1)) .WithThroughDate(DateTime.UtcNow.AddDays(-1)) .Build(); // future basePrice for good new BasePriceBuilder(this.DatabaseSession).WithDescription("future good") .WithSpecifiedFor(this.internalOrganisation) .WithProduct(this.good) .WithPrice(11) .WithFromDate(DateTime.UtcNow.AddYears(1)) .Build(); this.currentGoodBasePrice = new BasePriceBuilder(this.DatabaseSession) .WithSpecifiedFor(this.internalOrganisation) .WithDescription("current good") .WithProduct(this.good) .WithPrice(10) .WithFromDate(DateTime.UtcNow) .WithThroughDate(DateTime.UtcNow.AddYears(1).AddDays(-1)) .Build(); // previous basePrice for feature1 new BasePriceBuilder(this.DatabaseSession).WithDescription("previous feature1") .WithSpecifiedFor(this.internalOrganisation) .WithProductFeature(this.feature1) .WithPrice(0.5M) .WithFromDate(DateTime.UtcNow.AddYears(-1)) .WithThroughDate(DateTime.UtcNow.AddDays(-1)) .Build(); // future basePrice for feature1 new BasePriceBuilder(this.DatabaseSession).WithDescription("future feature1") .WithSpecifiedFor(this.internalOrganisation) .WithProductFeature(this.feature1) .WithPrice(2.5M) .WithFromDate(DateTime.UtcNow.AddYears(1)) .Build(); new BasePriceBuilder(this.DatabaseSession) .WithSpecifiedFor(this.internalOrganisation) .WithDescription("current feature1") .WithProductFeature(this.feature1) .WithPrice(2) .WithFromDate(DateTime.UtcNow) .WithThroughDate(DateTime.UtcNow.AddYears(1).AddDays(-1)) .Build(); // previous basePrice for feature2 new BasePriceBuilder(this.DatabaseSession).WithDescription("previous feature2") .WithSpecifiedFor(this.internalOrganisation) .WithProductFeature(this.feature2) .WithPrice(2) .WithFromDate(DateTime.UtcNow.AddYears(-1)) .WithThroughDate(DateTime.UtcNow.AddDays(-1)) .Build(); // future basePrice for feature2 new BasePriceBuilder(this.DatabaseSession) .WithSpecifiedFor(this.internalOrganisation) .WithDescription("future feature2") .WithProductFeature(this.feature2) .WithPrice(4) .WithFromDate(DateTime.UtcNow.AddYears(1)) .Build(); this.currentFeature2BasePrice = new BasePriceBuilder(this.DatabaseSession) .WithSpecifiedFor(this.internalOrganisation) .WithDescription("current feature2") .WithProductFeature(this.feature2) .WithPrice(3) .WithFromDate(DateTime.UtcNow) .WithThroughDate(DateTime.UtcNow.AddYears(1).AddDays(-1)) .Build(); // previous basePrice for good with feature1 new BasePriceBuilder(this.DatabaseSession).WithDescription("previous good/feature1") .WithSpecifiedFor(this.internalOrganisation) .WithProduct(this.good) .WithProductFeature(this.feature1) .WithPrice(4) .WithFromDate(DateTime.UtcNow.AddYears(-1)) .WithThroughDate(DateTime.UtcNow.AddDays(-1)) .Build(); // future basePrice for good with feature1 new BasePriceBuilder(this.DatabaseSession) .WithSpecifiedFor(this.internalOrganisation) .WithDescription("future good/feature1") .WithProduct(this.good) .WithProductFeature(this.feature1) .WithPrice(6) .WithFromDate(DateTime.UtcNow.AddYears(1)) .Build(); this.currentGood1Feature1BasePrice = new BasePriceBuilder(this.DatabaseSession) .WithSpecifiedFor(this.internalOrganisation) .WithDescription("current good/feature1") .WithProduct(this.good) .WithProductFeature(this.feature1) .WithPrice(5) .WithFromDate(DateTime.UtcNow) .WithThroughDate(DateTime.UtcNow.AddYears(1).AddDays(-1)) .Build(); new BasePriceBuilder(this.DatabaseSession) .WithSpecifiedFor(this.internalOrganisation) .WithDescription("current variant good2") .WithProduct(this.variantGood2) .WithPrice(11) .WithFromDate(DateTime.UtcNow) .Build(); this.DatabaseSession.Derive(true); this.DatabaseSession.Commit(); this.order = new SalesOrderBuilder(this.DatabaseSession) .WithShipToCustomer(this.shipToCustomer) .WithBillToCustomer(this.billToCustomer) .WithTakenByInternalOrganisation(this.internalOrganisation) .Build(); this.DatabaseSession.Derive(true); this.DatabaseSession.Commit(); }
public SupplierRelationship SupplierRelationship(InternalOrganisation internalOrganisation) { var relationships = this.SupplierRelationshipsWhereSupplier; relationships.Filter.AddEquals(SupplierRelationships.Meta.InternalOrganisation, internalOrganisation); foreach (SupplierRelationship relationship in relationships) { if (relationship.FromDate <= DateTime.Now && (!relationship.ExistThroughDate || relationship.ThroughDate >= DateTime.Now)) { return relationship; } } return null; }
public DistributionChannelRelationship DistributionChannelRelationship(InternalOrganisation internalOrganisation) { var relationships = this.DistributionChannelRelationshipsWhereDistributor; relationships.Filter.AddEquals(DistributionChannelRelationships.Meta.InternalOrganisation, internalOrganisation); foreach (DistributionChannelRelationship relationship in relationships) { if (relationship.FromDate <= DateTime.Now && (!relationship.ExistThroughDate || relationship.ThroughDate >= DateTime.Now)) { return relationship; } } return null; }
private IEnumerable<PriceComponent> GetPriceComponents(InternalOrganisation internalOrganisation) { var priceComponents = new List<PriceComponent>(); if (priceComponents.Count == 0) { var extent = internalOrganisation.PriceComponentsWhereSpecifiedFor; if (this.ExistProduct) { foreach (PriceComponent priceComponent in extent) { if (priceComponent.ExistProduct && priceComponent.Product.Equals(this.Product) && !priceComponent.ExistProductFeature && priceComponent.FromDate <= this.SalesInvoiceWhereSalesInvoiceItem.InvoiceDate && (!priceComponent.ExistThroughDate || priceComponent.ThroughDate >= this.SalesInvoiceWhereSalesInvoiceItem.InvoiceDate)) { priceComponents.Add(priceComponent); } } if (priceComponents.Count == 0 && this.Product.ExistProductWhereVariant) { extent = internalOrganisation.PriceComponentsWhereSpecifiedFor; foreach (PriceComponent priceComponent in extent) { if (priceComponent.ExistProduct && priceComponent.Product.Equals(this.Product.ProductWhereVariant) && !priceComponent.ExistProductFeature && priceComponent.FromDate <= this.SalesInvoiceWhereSalesInvoiceItem.InvoiceDate && (!priceComponent.ExistThroughDate || priceComponent.ThroughDate >= this.SalesInvoiceWhereSalesInvoiceItem.InvoiceDate)) { priceComponents.Add(priceComponent); } } } } if (this.ExistProductFeature) { foreach (PriceComponent priceComponent in extent) { if (priceComponent.ExistProductFeature && priceComponent.ProductFeature.Equals(this.ProductFeature) && !priceComponent.ExistProduct && priceComponent.FromDate <= this.SalesInvoiceWhereSalesInvoiceItem.InvoiceDate && (!priceComponent.ExistThroughDate || priceComponent.ThroughDate >= this.SalesInvoiceWhereSalesInvoiceItem.InvoiceDate)) { priceComponents.Add(priceComponent); } } } // Discounts and surcharges can be specified without product or product feature, these need te be added to collection of pricecomponents extent = internalOrganisation.PriceComponentsWhereSpecifiedFor; foreach (PriceComponent priceComponent in extent) { if (!priceComponent.ExistProduct && !priceComponent.ExistProductFeature && priceComponent.FromDate <= this.SalesInvoiceWhereSalesInvoiceItem.InvoiceDate && (!priceComponent.ExistThroughDate || priceComponent.ThroughDate >= this.SalesInvoiceWhereSalesInvoiceItem.InvoiceDate)) { priceComponents.Add(priceComponent); } } } return priceComponents; }
private void InstantiateObjects(ISession session) { this.contact = (Person)session.Instantiate(this.contact); this.supplier = (Organisation)session.Instantiate(this.supplier); this.internalOrganisation = (InternalOrganisation)session.Instantiate(this.internalOrganisation); this.supplierRelationship = (SupplierRelationship)session.Instantiate(this.supplierRelationship); }
public override void Init() { base.Init(); this.contact = new PersonBuilder(this.DatabaseSession).WithLastName("contact").Build(); this.supplier = new OrganisationBuilder(this.DatabaseSession) .WithName("supplier") .WithLocale(new Locales(this.DatabaseSession).EnglishGreatBritain) .Build(); this.internalOrganisation = new InternalOrganisations(this.DatabaseSession).FindBy(InternalOrganisations.Meta.Name, "internalOrganisation"); new OrganisationContactRelationshipBuilder(this.DatabaseSession) .WithOrganisation(this.supplier) .WithContact(this.contact) .WithFromDate(DateTime.UtcNow) .Build(); this.supplierRelationship = new SupplierRelationshipBuilder(this.DatabaseSession) .WithSupplier(this.supplier) .WithInternalOrganisation(this.internalOrganisation) .WithFromDate(DateTime.UtcNow) .Build(); this.DatabaseSession.Derive(true); this.DatabaseSession.Commit(); }
private void InstantiateObjects(ISession session) { this.employee = (Person)session.Instantiate(this.employee); this.internalOrganisation = (InternalOrganisation)session.Instantiate(this.internalOrganisation); this.employment = (Employment)session.Instantiate(this.employment); }
private void InstantiateObjects(ISession session) { this.good = (Good)session.Instantiate(this.good); this.internalOrganisation = (InternalOrganisation)session.Instantiate(this.internalOrganisation); this.billToCustomer = (Organisation)session.Instantiate(this.billToCustomer); }
public override void Init() { base.Init(); var euro = new Currencies(this.DatabaseSession).FindBy(Currencies.Meta.IsoCode, "EUR"); this.internalOrganisation = new InternalOrganisations(this.DatabaseSession).FindBy(InternalOrganisations.Meta.Name, "internalOrganisation"); this.billToCustomer = new OrganisationBuilder(this.DatabaseSession).WithName("billToCustomer").WithPreferredCurrency(euro).Build(); var supplier = new OrganisationBuilder(this.DatabaseSession).WithName("supplier").WithLocale(new Locales(this.DatabaseSession).EnglishGreatBritain).Build(); new CustomerRelationshipBuilder(this.DatabaseSession).WithFromDate(DateTime.UtcNow).WithCustomer(this.billToCustomer).WithInternalOrganisation(this.internalOrganisation).Build(); this.good = new GoodBuilder(this.DatabaseSession) .WithSku("10101") .WithVatRate(new VatRateBuilder(this.DatabaseSession).WithRate(21).Build()) .WithName("good") .WithInventoryItemKind(new InventoryItemKinds(this.DatabaseSession).NonSerialized) .WithUnitOfMeasure(new UnitsOfMeasure(this.DatabaseSession).Piece) .Build(); var goodPurchasePrice = new ProductPurchasePriceBuilder(this.DatabaseSession) .WithCurrency(euro) .WithFromDate(DateTime.UtcNow) .WithPrice(7) .WithUnitOfMeasure(new UnitsOfMeasure(this.DatabaseSession).Piece) .Build(); new SupplierOfferingBuilder(this.DatabaseSession) .WithProduct(this.good) .WithSupplier(supplier) .WithFromDate(DateTime.UtcNow) .WithProductPurchasePrice(goodPurchasePrice) .Build(); new BasePriceBuilder(this.DatabaseSession) .WithSpecifiedFor(this.internalOrganisation) .WithDescription("current good") .WithProduct(this.good) .WithPrice(10) .WithFromDate(DateTime.UtcNow) .WithThroughDate(DateTime.UtcNow.AddYears(1).AddDays(-1)) .Build(); this.DatabaseSession.Derive(true); this.DatabaseSession.Commit(); }
public override void Init() { base.Init(); var euro = new Currencies(this.DatabaseSession).FindBy(Currencies.Meta.IsoCode, "EUR"); this.supplier = new OrganisationBuilder(this.DatabaseSession).WithName("supplier").WithLocale(new Locales(this.DatabaseSession).EnglishGreatBritain).Build(); this.internalOrganisation = new InternalOrganisations(this.DatabaseSession).FindBy(InternalOrganisations.Meta.Name, "internalOrganisation"); this.vatRate21 = new VatRateBuilder(this.DatabaseSession).WithRate(21).Build(); this.mechelen = new CityBuilder(this.DatabaseSession).WithName("Mechelen").Build(); this.kiev = new CityBuilder(this.DatabaseSession).WithName("Kiev").Build(); this.billToContactMechanismMechelen = new PostalAddressBuilder(this.DatabaseSession).WithAddress1("Mechelen").WithGeographicBoundary(this.mechelen).Build(); this.shipToContactMechanismKiev = new PostalAddressBuilder(this.DatabaseSession).WithAddress1("Kiev").WithGeographicBoundary(this.kiev).Build(); this.billToCustomer = new OrganisationBuilder(this.DatabaseSession).WithName("billToCustomer").WithPreferredCurrency(euro).Build(); this.shipToCustomer = new OrganisationBuilder(this.DatabaseSession).WithName("shipToCustomer").WithPreferredCurrency(euro).Build(); new CustomerRelationshipBuilder(this.DatabaseSession).WithFromDate(DateTime.UtcNow).WithCustomer(this.billToCustomer).WithInternalOrganisation(this.internalOrganisation).Build(); new CustomerRelationshipBuilder(this.DatabaseSession).WithFromDate(DateTime.UtcNow).WithCustomer(this.shipToCustomer).WithInternalOrganisation(this.internalOrganisation).Build(); this.DatabaseSession.Derive(true); this.good = new GoodBuilder(this.DatabaseSession) .WithSku("10101") .WithVatRate(this.vatRate21) .WithName("good") .WithInventoryItemKind(new InventoryItemKinds(this.DatabaseSession).NonSerialized) .WithUnitOfMeasure(new UnitsOfMeasure(this.DatabaseSession).Piece) .Build(); this.feature1 = new ColourBuilder(this.DatabaseSession) .WithName("white") .WithVatRate(this.vatRate21) .WithLocalisedName(new LocalisedTextBuilder(this.DatabaseSession) .WithText("white") .WithLocale(Singleton.Instance(this.DatabaseSession).DefaultLocale) .Build()) .Build(); this.feature2 = new ColourBuilder(this.DatabaseSession) .WithName("black") .WithLocalisedName(new LocalisedTextBuilder(this.DatabaseSession) .WithText("black") .WithLocale(Singleton.Instance(this.DatabaseSession).DefaultLocale) .Build()) .Build(); this.goodPurchasePrice = new ProductPurchasePriceBuilder(this.DatabaseSession) .WithCurrency(euro) .WithFromDate(DateTime.UtcNow.AddMinutes(-1)) .WithPrice(7) .WithUnitOfMeasure(new UnitsOfMeasure(this.DatabaseSession).Piece) .Build(); this.goodSupplierOffering = new SupplierOfferingBuilder(this.DatabaseSession) .WithProduct(this.good) .WithSupplier(this.supplier) .WithFromDate(DateTime.UtcNow.AddMinutes(-1)) .WithProductPurchasePrice(this.goodPurchasePrice) .Build(); this.currentBasePriceGeoBoundary = new BasePriceBuilder(this.DatabaseSession) .WithSpecifiedFor(this.internalOrganisation) .WithDescription("current BasePriceGeoBoundary") .WithGeographicBoundary(this.mechelen) .WithProduct(this.good) .WithPrice(8) .WithFromDate(DateTime.UtcNow.AddMinutes(-1)) .Build(); // previous basePrice for good new BasePriceBuilder(this.DatabaseSession).WithDescription("previous good") .WithSpecifiedFor(this.internalOrganisation) .WithProduct(this.good) .WithPrice(8) .WithFromDate(DateTime.UtcNow.AddYears(-1)) .WithThroughDate(DateTime.UtcNow.AddDays(-1)) .Build(); this.currentGood1BasePrice = new BasePriceBuilder(this.DatabaseSession) .WithSpecifiedFor(this.internalOrganisation) .WithDescription("current good") .WithProduct(this.good) .WithPrice(10) .WithFromDate(DateTime.UtcNow.AddMinutes(-1)) .WithThroughDate(DateTime.UtcNow.AddYears(1).AddDays(-1)) .Build(); // future basePrice for good new BasePriceBuilder(this.DatabaseSession).WithDescription("future good") .WithSpecifiedFor(this.internalOrganisation) .WithProduct(this.good) .WithPrice(11) .WithFromDate(DateTime.UtcNow.AddYears(1)) .Build(); // previous basePrice for feature1 new BasePriceBuilder(this.DatabaseSession).WithDescription("previous feature1") .WithSpecifiedFor(this.internalOrganisation) .WithProductFeature(this.feature1) .WithPrice(0.5M) .WithFromDate(DateTime.UtcNow.AddYears(-1)) .WithThroughDate(DateTime.UtcNow.AddDays(-1)) .Build(); // future basePrice for feature1 new BasePriceBuilder(this.DatabaseSession).WithDescription("future feature1") .WithSpecifiedFor(this.internalOrganisation) .WithProductFeature(this.feature1) .WithPrice(2.5M) .WithFromDate(DateTime.UtcNow.AddYears(1)) .Build(); this.currentFeature1BasePrice = new BasePriceBuilder(this.DatabaseSession) .WithSpecifiedFor(this.internalOrganisation) .WithDescription("current feature1") .WithProductFeature(this.feature1) .WithPrice(2) .WithFromDate(DateTime.UtcNow.AddMinutes(-1)) .WithThroughDate(DateTime.UtcNow.AddYears(1).AddDays(-1)) .Build(); // previous basePrice for feature2 new BasePriceBuilder(this.DatabaseSession).WithDescription("previous feature2") .WithSpecifiedFor(this.internalOrganisation) .WithProductFeature(this.feature2) .WithPrice(2) .WithFromDate(DateTime.UtcNow.AddYears(-1)) .WithThroughDate(DateTime.UtcNow.AddDays(-1)) .Build(); // future basePrice for feature2 new BasePriceBuilder(this.DatabaseSession) .WithSpecifiedFor(this.internalOrganisation) .WithDescription("future feature2") .WithProductFeature(this.feature2) .WithPrice(4) .WithFromDate(DateTime.UtcNow.AddYears(1)) .Build(); new BasePriceBuilder(this.DatabaseSession) .WithSpecifiedFor(this.internalOrganisation) .WithDescription("current feature2") .WithProductFeature(this.feature2) .WithPrice(3) .WithFromDate(DateTime.UtcNow.AddMinutes(-1)) .WithThroughDate(DateTime.UtcNow.AddYears(1).AddDays(-1)) .Build(); // previous basePrice for good with feature1 new BasePriceBuilder(this.DatabaseSession).WithDescription("previous good/feature1") .WithSpecifiedFor(this.internalOrganisation) .WithProduct(this.good) .WithProductFeature(this.feature1) .WithPrice(4) .WithFromDate(DateTime.UtcNow.AddYears(-1)) .WithThroughDate(DateTime.UtcNow.AddDays(-1)) .Build(); // future basePrice for good with feature1 new BasePriceBuilder(this.DatabaseSession) .WithSpecifiedFor(this.internalOrganisation) .WithDescription("future good/feature1") .WithProduct(this.good) .WithProductFeature(this.feature1) .WithPrice(6) .WithFromDate(DateTime.UtcNow.AddYears(1)) .Build(); this.currentGood1Feature1BasePrice = new BasePriceBuilder(this.DatabaseSession) .WithSpecifiedFor(this.internalOrganisation) .WithDescription("current good/feature1") .WithProduct(this.good) .WithProductFeature(this.feature1) .WithPrice(5) .WithFromDate(DateTime.UtcNow.AddMinutes(-1)) .WithThroughDate(DateTime.UtcNow.AddYears(1).AddDays(-1)) .Build(); this.invoice = new SalesInvoiceBuilder(this.DatabaseSession) .WithSalesInvoiceType(new SalesInvoiceTypes(this.DatabaseSession).SalesInvoice) .WithBillToContactMechanism(this.billToContactMechanismMechelen) .WithBillToCustomer(this.billToCustomer) .WithShipToAddress(this.shipToContactMechanismKiev) .WithShipToCustomer(this.shipToCustomer) .WithBilledFromInternalOrganisation(this.internalOrganisation) .Build(); this.DatabaseSession.Derive(true); this.DatabaseSession.Commit(); }
public static Dictionary<ProductCategory, PartyProductCategoryRevenueHistory> PartyProductCategoryRevenueHistoryByProductCategory(InternalOrganisation internalOrganisation, Party party) { var partyProductCategoryRevenueHistoryByProductCategory = new Dictionary<ProductCategory, PartyProductCategoryRevenueHistory>(); var partyProductCategoryRevenueHistories = party.PartyProductCategoryRevenueHistoriesWhereParty; partyProductCategoryRevenueHistories.Filter.AddEquals(PartyProductCategoryRevenueHistories.Meta.InternalOrganisation, internalOrganisation); foreach (PartyProductCategoryRevenueHistory partyProductCategoryRevenueHistory in partyProductCategoryRevenueHistories) { partyProductCategoryRevenueHistoryByProductCategory[partyProductCategoryRevenueHistory.ProductCategory] = partyProductCategoryRevenueHistory; } return partyProductCategoryRevenueHistoryByProductCategory; }
private static List<PriceComponent> GetPriceComponents(InternalOrganisation internalOrganisation, Product product, DateTime date) { var priceComponents = new List<PriceComponent>(); var extent = internalOrganisation.PriceComponentsWhereSpecifiedFor; foreach (PriceComponent priceComponent in extent) { if (priceComponent.ExistProduct && priceComponent.Product.Equals(product) && !priceComponent.ExistProductFeature && priceComponent.FromDate <= date && (!priceComponent.ExistThroughDate || priceComponent.ThroughDate >= date)) { priceComponents.Add(priceComponent); } } if (priceComponents.Count == 0 && product.ExistProductWhereVariant) { extent = internalOrganisation.PriceComponentsWhereSpecifiedFor; foreach (PriceComponent priceComponent in extent) { if (priceComponent.ExistProduct && priceComponent.Product.Equals(product.ProductWhereVariant) && !priceComponent.ExistProductFeature && priceComponent.FromDate <= date && (!priceComponent.ExistThroughDate || priceComponent.ThroughDate >= date)) { priceComponents.Add(priceComponent); } } } // Discounts and surcharges can be specified without product or product feature, these need te be added to collection of pricecomponents extent = internalOrganisation.PriceComponentsWhereSpecifiedFor; foreach (PriceComponent priceComponent in extent) { if (!priceComponent.ExistProduct && !priceComponent.ExistProductFeature && priceComponent.FromDate <= date && (!priceComponent.ExistThroughDate || priceComponent.ThroughDate >= date)) { priceComponents.Add(priceComponent); } } return priceComponents; }