Files
Christoph Schwörer f045b99a25 Codebasis als Dateien ins Arbeitsrepo statt als Gitlink
QuellCode/CentronERP war nur als Gitlink (Submodul-Referenz auf 79c1142)
getrackt, ohne .gitmodules und ohne erreichbares Remote. Der
Untersuchungsgegenstand der Versuchsreihe war damit nicht reproduzierbar
gesichert: Ein Klon haette ein leeres Verzeichnis erhalten, und die Belege
der 3.287 Anforderungen waeren nicht ueberpruefbar gewesen.

Umstellung:
- Historie nach c:\DEV\CentronERP_git_snapshot_79c1142 ausgelagert
  (vollstaendig lesbar, enthaelt 79c1142 und Vorgaenger 89ccfd6)
- Gitlink aus dem Index entfernt
- Dateiinhalt aufgenommen: 24.557 Dateien, rund 333 MB

Die verschachtelte .gitignore der Codebasis gilt weiter, Build-Artefakte
bleiben ausgeschlossen. Details in Versuche/Versuch_01/_Codebasis-Nachweis.md
2026-08-26 07:43:51 +02:00

624 lines
27 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using Centron.BusinessLogic;
using Centron.BusinessLogic.EmployeeArea;
using Centron.BusinessLogic.Sales.Receipts.ArticleSearch;
using Centron.BusinessLogic.Sales.Receipts.DataAndResults;
using Centron.BusinessLogic.WebServices.Accounts.Campaigns;
using Centron.BusinessLogic.WebServices.Accounts.ExtendedFilters;
using Centron.BusinessLogic.WebServices.Administration.HourlySurchargeRates;
using Centron.BusinessLogic.WebServices.Sales.Receipts;
using Centron.BusinessLogic.WebServices.Sales.Receipts.ArticleSearch;
using Centron.BusinessLogic.WebServices.Sales.Receipts.ReceiptSearch;
using Centron.Core.Extensions;
using Centron.DAO;
using Centron.Data.Entities.Administration.Logins;
using Centron.Data.Entities.Sales.Receipts.SupplierInvoices;
using Centron.Data.WebServices.Sales.Receipts;
using Centron.Data.WebServices.Sales.Receipts.Articles;
using Centron.Data.WebServices.Sales.Receipts.DeliveryLists;
using Centron.Data.WebServices.Sales.Receipts.Invoices;
using Centron.Data.WebServices.Sales.Receipts.Offers;
using Centron.Data.WebServices.Sales.Receipts.ReceiptSearch;
using Centron.Interfaces;
using Centron.Interfaces.Accounts.Campaigns;
using Centron.Interfaces.Accounts.ExtendedFilters;
using Centron.Interfaces.Administration.Environment;
using Centron.Interfaces.BL;
using Centron.Interfaces.Sales.Receipts;
using Centron.Interfaces.Sales.Receipts.ReceiptSearch;
using Centron.Tests.EndToEnd.Infrastructure;
using CentronSoftware.Centron.WebServices.Entities.Accounts.Campaigns;
using CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedFilters;
using CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch;
using CentronSoftware.Centron.WebServices.Entities.Accounts.ExtendedSearch.Parts;
using CentronSoftware.Centron.WebServices.Entities.Administration.HourlySurchargeRates;
using CentronSoftware.Centron.WebServices.Entities.Sales.Receipts;
using CentronSoftware.Centron.WebServices.Entities.Sales.Receipts.SupplierInvoices;
using Xunit;
using Xunit.Abstractions;
namespace Centron.Tests.EndToEnd.Tests.ReceiptFreightArticle
{
public class ReceiptFreightArticleTest : EndToEndTest
{
public ReceiptFreightArticleTest(ITestOutputHelper testOutputHelper)
: base(testOutputHelper)
{
this.Verifier.Settings.IgnoreProperty<ReceiptBaseDTO>(f => f.ChangedAt);
this.Verifier.Settings.IgnoreProperty<ReceiptBaseDTO>(f => f.CreatedAt);
this.Verifier.Settings.IgnoreProperty<AccountCustomFilterDTO>(f => f.CreatedDate);
//we are using the same articles for 3 receipts, so we ignore the changing amount
this.Verifier.Settings.IgnoreProperty<SearchedArticleDTO>(f => f.Quantity);
this.Verifier.Settings.IgnoreProperty<SearchedArticleDTO>(f => f.QuantityAvailable);
this.Verifier.Settings.IgnoreProperty<SearchedArticleWarehouseQuantityDTO>(f => f.Quantity);
this.Verifier.Settings.IgnoreProperty<SearchedArticleWarehouseQuantityDTO>(f => f.QuantityAvailable);
this.Verifier.Settings.IgnoreProperty<AccountCustomFilterDTO>(f => f.CreatedDate);
this.Verifier.Settings.IgnoreProperty<AccountCustomFilterDTO>(f => f.CreatedVersion);
this.Verifier.Settings.IgnoreProperty<AccountCustomFilterDTO>(f => f.ChangedDate);
this.Verifier.Settings.IgnoreProperty<AccountCustomFilterDTO>(f => f.ChangedVersion);
}
public override void Execute()
{
this.AddExtendedSearch();
var offer = this.AddOffer();
var deliveryList = this.AddDeliveryList();
var supplierInvoice = this.AddSupplierInvoice();
this.AddFreightSettings();
this.AddOffer(afterSettingsChange:true);
this.AddDeliveryList(afterSettingsChange:true);
this.AddSupplierInvoice(afterSettingsChange:true);
}
private void AddFreightSettings()
{
using (var session = new BLSession())
{
//global settings
var user = session.GetBL<AppUserBL>().GetAppUser(f => f.I3D == 11);
var settings = session.GetBL<ReceiptWebServiceBL>().GetReceiptSettings(user);
//dontInsert -> 0;
//aksForInsert -> 1;
//insertAlways -> 2;
settings.InsertFreightArticleIntoOrder = 2;
settings.FreightArticleArticlecode = "FRACHT";
settings.FreightArticleCostMinimum = (double) 1;
settings.FreightArticleCostLimit = (double) 100;
settings.FreightArticlePercentage = (double) 5;
settings.FreightArticlePurchasePriceCalculationKind = 1;
session.GetBL<ReceiptWebServiceBL>().UpdateReceiptSettings(settings, user);
var allFiltersResult = session.GetBL<AccountCustomFilterWebServiceBL>().GetCustomFilters(new LoggedInUser(user), new AccountExtendedSearchFilter());
//durch verfifier ersetzten ? sollte eigentlich durch den Verifier beim erstellen abgedeckt sein
if (allFiltersResult.Status != ResultStatus.Success)
throw new Exception("error loading the custom filters for the freight article test");
if (allFiltersResult.Data.Count < 3)
throw new Exception("couldn't load all custom filters for the freight article test");
#region Setting Search 0
var settingSearch0 = new FreightArticleSettingDTO()
{
Kind = FreightArticleSettingKind.ExtendedSearch,
ExtendedAccountSearchI3D = allFiltersResult.Data[0].I3D,
IsActive = true,
PurchasePricePercentage = 54.12,
PurchasePriceMaxCost = 500,
PurchasePriceMinCost = 25.42,
PurchasePriceUsePercentage = true,
SalePricePercentage = 87.35,
SalePriceMaxCost = 50,
SalePriceMinCost = 42,
SalePriceUsePercentage = true,
SalesPriceCanBeChangedManually = false,
SetSalesPriceToZero = false
};
#endregion
#region Setting Search 1
var settingSearch1 = new FreightArticleSettingDTO()
{
Kind = FreightArticleSettingKind.ExtendedSearch,
ExtendedAccountSearchI3D = allFiltersResult.Data[1].I3D,
IsActive = true,
PurchasePricePercentage = 23,
PurchasePriceMaxCost = 2021,
PurchasePriceMinCost = 07,
PurchasePriceUsePercentage = false,
SalePricePercentage = 42,
SalePriceMaxCost = 1553,
SalePriceMinCost = 07,
SalePriceUsePercentage = false,
SalesPriceCanBeChangedManually = false,
SetSalesPriceToZero = true
};
#endregion
#region Setting Search 2
var settingSearch2 = new FreightArticleSettingDTO()
{
Kind = FreightArticleSettingKind.ExtendedSearch,
ExtendedAccountSearchI3D = allFiltersResult.Data[2].I3D,
IsActive = true,
PurchasePricePercentage = 99.99,
PurchasePriceMaxCost = Double.MaxValue,
PurchasePriceMinCost = Double.Epsilon,
PurchasePriceUsePercentage = true,
SalePricePercentage = 45.54,
SalePriceMaxCost = 4554,
SalePriceMinCost = 4455,
SalePriceUsePercentage = true,
SalesPriceCanBeChangedManually = false,
SetSalesPriceToZero = false,
};
#endregion
#region Setting Customer 0
var settingCustomer0 = new FreightArticleSettingDTO()
{
Kind = FreightArticleSettingKind.Customer,
CustomerI3D = 10023,
IsActive = true,
PurchasePricePercentage = 54.12,
PurchasePriceMaxCost = 500,
PurchasePriceMinCost = 25.42,
PurchasePriceUsePercentage = true,
SalePricePercentage = 87.35,
SalePriceMaxCost = 50,
SalePriceMinCost = 42,
SalePriceUsePercentage = true,
SalesPriceCanBeChangedManually = false,
SetSalesPriceToZero = false
};
#endregion
#region Setting Customer 1
var settingCustomer1 = new FreightArticleSettingDTO()
{
Kind = FreightArticleSettingKind.Customer,
CustomerI3D = 10022,
IsActive = true,
PurchasePricePercentage = 23,
PurchasePriceMaxCost = 2021,
PurchasePriceMinCost = 07,
PurchasePriceUsePercentage = false,
SalePricePercentage = 42,
SalePriceMaxCost = 1553,
SalePriceMinCost = 07,
SalePriceUsePercentage = false,
SalesPriceCanBeChangedManually = false,
SetSalesPriceToZero = true
};
#endregion
#region Setting Customer 2
var settingCustomer2 = new FreightArticleSettingDTO()
{
Kind = FreightArticleSettingKind.Customer,
CustomerI3D = 10024,
IsActive = true,
PurchasePricePercentage = 99.99,
PurchasePriceMaxCost = Double.MaxValue,
PurchasePriceMinCost = Double.Epsilon,
PurchasePriceUsePercentage = true,
SalePricePercentage = 45.54,
SalePriceMaxCost = 4554,
SalePriceMinCost = 4455,
SalePriceUsePercentage = true,
SalesPriceCanBeChangedManually = false,
SetSalesPriceToZero = false,
};
#endregion
session.GetBL<FreightArticleSettingWebServiceBL>().SaveOrUpdateFreightArticleSetting(settingSearch0);
session.GetBL<FreightArticleSettingWebServiceBL>().SaveOrUpdateFreightArticleSetting(settingSearch1);
session.GetBL<FreightArticleSettingWebServiceBL>().SaveOrUpdateFreightArticleSetting(settingSearch2);
session.GetBL<FreightArticleSettingWebServiceBL>().SaveOrUpdateFreightArticleSetting(settingCustomer0);
session.GetBL<FreightArticleSettingWebServiceBL>().SaveOrUpdateFreightArticleSetting(settingCustomer1);
session.GetBL<FreightArticleSettingWebServiceBL>().SaveOrUpdateFreightArticleSetting(settingCustomer2);
var allFreightArticleSettings = session.GetBL<FreightArticleSettingWebServiceBL>().GetFreightArticleSettingByFilter(new FreightArticleSettingFilter());
this.Verifier.Verify("AllExtendedFreightArticleSettings", allFreightArticleSettings);
}
}
private void AddExtendedSearch()
{
#region Search 0
ExtendedFilterAddressZipNode addressZipNode0 = new ExtendedFilterAddressZipNode()
{
From = 09249,
To = 89249
};
ExtendedFilterNode filterNode0 = new ExtendedFilterAndNode()
{
Nodes = new List<ExtendedFilterNode>() {addressZipNode0}
};
AccountSearchExtendedFilter extendedFilter0 = new AccountSearchExtendedFilter()
{
AccountCustomFilterI3D = null,
HasMailing1 = null,
HasMailing2 = null,
IncludeOnlyAccountsWithNoAdvertisement = false,
OnlyDefaultAddress = true,
OnlyDefaultAddressContact = true,
SearchSubstitute = false,
FilterNode = filterNode0
};
AccountCustomFilterDTO customFilter0 = new AccountCustomFilterDTO()
{
Caption = "Sollte Fly Tech nicht finden",
ChangedByI3D = 0,
ChangedDate = DateTime.Now,
ChangedVersion = null,
CreatedByI3D = 0,
CreatedDate = DateTime.Now,
CreatedVersion = null,
ExtendedFilter = null,
I3D = 0,
IsPublic = true,
IsStatic = false,
ObjectI3D = null,
ObjectKind = null,
OnlySearchResult = false
};
#endregion Search 0
#region Search 1
ExtendedFilterAddressZipNode addressZipNode1 = new ExtendedFilterAddressZipNode()
{
From = 89249,
To = 89251
};
ExtendedFilterNode filterNode1 = new ExtendedFilterAndNode()
{
Nodes = new List<ExtendedFilterNode>() {addressZipNode1}
};
AccountSearchExtendedFilter extendedFilter1 = new AccountSearchExtendedFilter()
{
AccountCustomFilterI3D = null,
HasMailing1 = null,
HasMailing2 = null,
IncludeOnlyAccountsWithNoAdvertisement = false,
OnlyDefaultAddress = true,
OnlyDefaultAddressContact = true,
SearchSubstitute = false,
FilterNode = filterNode1
};
AccountCustomFilterDTO customFilter1 = new AccountCustomFilterDTO()
{
Caption = "Sollte Fly Tech finden",
ChangedByI3D = 0,
ChangedDate = DateTime.Now,
ChangedVersion = null,
CreatedByI3D = 0,
CreatedDate = DateTime.Now,
CreatedVersion = null,
ExtendedFilter = null,
I3D = 0,
IsPublic = true,
IsStatic = false,
ObjectI3D = null,
ObjectKind = null,
OnlySearchResult = false
};
#endregion Search 1
#region Search 2
ExtendedFilterAddressZipNode addressZipNode2 = new ExtendedFilterAddressZipNode()
{
From = 12345,
To = 89251
};
ExtendedFilterNode filterNode2 = new ExtendedFilterAndNode()
{
Nodes = new List<ExtendedFilterNode>() {addressZipNode2}
};
AccountSearchExtendedFilter extendedFilter2 = new AccountSearchExtendedFilter()
{
AccountCustomFilterI3D = null,
HasMailing1 = null,
HasMailing2 = null,
IncludeOnlyAccountsWithNoAdvertisement = false,
OnlyDefaultAddress = true,
OnlyDefaultAddressContact = true,
SearchSubstitute = false,
FilterNode = filterNode2
};
AccountCustomFilterDTO customFilter2 = new AccountCustomFilterDTO()
{
Caption = "Sollte Fly Tech mit vielen anderen finden",
ChangedByI3D = 0,
ChangedDate = DateTime.Now,
ChangedVersion = null,
CreatedByI3D = 0,
CreatedDate = DateTime.Now,
CreatedVersion = null,
ExtendedFilter = null,
I3D = 0,
IsPublic = true,
IsStatic = false,
ObjectI3D = null,
ObjectKind = null,
OnlySearchResult = false
};
#endregion Search 2
using (var session = new BLSession())
{
var user = session.GetBL<AppUserBL>().GetAppUser(f => f.I3D == 11);
session.GetBL<AccountCustomFilterWebServiceBL>().SaveCustomFilter(new LoggedInUser(user), customFilter0, extendedFilter0);
session.GetBL<AccountCustomFilterWebServiceBL>().SaveCustomFilter(new LoggedInUser(user), customFilter1, extendedFilter1);
session.GetBL<AccountCustomFilterWebServiceBL>().SaveCustomFilter(new LoggedInUser(user), customFilter2, extendedFilter2);
var allSearches = session.GetBL<AccountCustomFilterWebServiceBL>().GetCustomFilters(new LoggedInUser(user), new AccountExtendedSearchFilter());
this.Verifier.Verify("SavedCustomFilter", allSearches);
}
}
private ReceiptOfferDTO AddOffer(bool afterSettingsChange = false)
{
var offer = this.CreateNewOffer(afterSettingsChange);
var articles = this.SearchArticles();
this.AddPositionsOrder(offer, articles);
return this.SaveOffer(offer,afterSettingsChange);
}
private ReceiptSupplierInvoiceDTO AddSupplierInvoice(bool afterSettingsChange = false)
{
var supplierInvoice = this.CreateNewSupplierInvoice(afterSettingsChange);
var articles = this.SearchArticles();
this.AddPositionsSupplierInvoice(supplierInvoice, articles, afterSettingsChange);
return this.SaveSupplierInvoice(supplierInvoice, afterSettingsChange);
}
private ReceiptDeliveryListDTO AddDeliveryList(bool afterSettingsChange = false)
{
var deliveryList = CreateNewDeliveryList(afterSettingsChange);
var articles = this.SearchArticles();
this.AddPositionsDeliveryList(deliveryList, articles, afterSettingsChange);
return this.SaveDeliveryList(deliveryList,afterSettingsChange);
}
private IList<SearchedArticleDTO> SearchArticles()
{
using (var session = new BLSession())
{
var user = session.GetBL<AppUserBL>().GetAppUser(f => f.I3D == 11);
var result1 = session.GetBL<ArticleSearchWebServiceBL>().SearchArticles("L:Eigene UG086E", true, new OverriddenArticleSearchFilter {ExternalArticleSearches = new ExternalSearchedArticleKind[0]}, 10022, CentronObjectKindNumeric.OfferClass, null, new LoggedInUser(user));
var result2 = session.GetBL<ArticleSearchWebServiceBL>().SearchArticles("L:Eigene U6493PE", true, new OverriddenArticleSearchFilter {ExternalArticleSearches = new ExternalSearchedArticleKind[0]}, 10022, CentronObjectKindNumeric.OfferClass, null, new LoggedInUser(user));
return result1.Data.Articles.Concat(new[] {result2.Data.Articles[0]}).ToList();
}
}
#region Offer
private ReceiptOfferDTO CreateNewOffer(bool afterSettingsChange)
{
using (var session = new BLSession())
{
var user = session.GetBL<AppUserBL>().GetAppUser(f => f.I3D == 11);
var result = session.GetBL<ReceiptWebServiceBL>().CreateNewReceipt(CentronObjectKindNumeric.OfferClass, new LoggedInUser(user), 10023, new CreateReceiptData(), null, null, true, false, true);
return (ReceiptOfferDTO) result.Data.Receipt;
}
}
private void AddPositionsOrder(ReceiptOfferDTO receipt, IList<SearchedArticleDTO> articles)
{
using (var session = new BLSession())
{
var user = session.GetBL<AppUserBL>().GetAppUser(f => f.I3D == 11);
foreach (var article in articles)
{
var receiptItemsResult = session.GetBL<ReceiptItemWebServiceBL>().CreateArticleReceiptItems(
receipt,
article.IsExternalArticle,
article.I3D,
article.ExternalArticleKind,
article.ExternalArticleId,
-1,
new Data.Entities.Administration.Logins.LoggedInUser(user));
receipt.Items.AddRange(receiptItemsResult.Data.ReceiptItems.Cast<ReceiptOfferItemDTO>());
}
}
}
private ReceiptOfferDTO SaveOffer(ReceiptOfferDTO receipt, bool afterSettingsChange = false)
{
using (var session = new BLSession())
{
var user = session.GetBL<AppUserBL>().GetAppUser(f => f.I3D == 11);
var watch = Stopwatch.StartNew();
var saveResult = session.GetBL<ReceiptWebServiceBL>().SaveReceipt(receipt, user, new SaveReceiptData
{
IgnoreCallbacks = true,
InsertFreightArticle = afterSettingsChange
}, false, CreatedThroughApplication.CentronNet, null);
watch.Stop();
this.TestOutputHelper.WriteLine($"Saving the offer took {watch.Elapsed}");
if(afterSettingsChange)
this.Verifier.Verify("SaveOfferResultAfterSettings", saveResult);
else
this.Verifier.Verify("SaveOfferResult", saveResult);
return (ReceiptOfferDTO) saveResult.Data.Receipt;
}
}
#endregion
#region DeliveryList
private ReceiptDeliveryListDTO CreateNewDeliveryList(bool afterSettingsChange)
{
using (var session = new BLSession())
{
var user = session.GetBL<AppUserBL>().GetAppUser(f => f.I3D == 11);
var result = session.GetBL<ReceiptWebServiceBL>().CreateNewReceipt(CentronObjectKindNumeric.DeliveryListClass, new LoggedInUser(user), 10023, new CreateReceiptData(), null, null, true, false, true);
return (ReceiptDeliveryListDTO) result.Data.Receipt;
}
}
private void AddPositionsDeliveryList(ReceiptDeliveryListDTO receipt, IList<SearchedArticleDTO> articles, bool afterSettingsChange)
{
using (var session = new BLSession())
{
var user = session.GetBL<AppUserBL>().GetAppUser(f => f.I3D == 11);
foreach (var article in articles)
{
var receiptItemsResult = session.GetBL<ReceiptItemWebServiceBL>().CreateArticleReceiptItems(
receipt,
article.IsExternalArticle,
article.I3D,
article.ExternalArticleKind,
article.ExternalArticleId,
-1,
new Data.Entities.Administration.Logins.LoggedInUser(user));
if(!afterSettingsChange)
this.Verifier.Verify($"ReceiptDeliveryListItemsResultFor{article.I3D}", receiptItemsResult);
receipt.Items.AddRange(receiptItemsResult.Data.ReceiptItems.Cast<ReceiptDeliveryListItemDTO>());
}
}
}
private ReceiptDeliveryListDTO SaveDeliveryList(ReceiptDeliveryListDTO receipt, bool afterSettingsChange = false)
{
using (var session = new BLSession())
{
var user = session.GetBL<AppUserBL>().GetAppUser(f => f.I3D == 11);
var watch = Stopwatch.StartNew();
var saveResult = session.GetBL<ReceiptWebServiceBL>().SaveReceipt(receipt, user, new SaveReceiptData
{
IgnoreCallbacks = true,
InsertFreightArticle = afterSettingsChange
}, false, CreatedThroughApplication.CentronNet, null);
watch.Stop();
this.TestOutputHelper.WriteLine($"Saving the DeliveryList took {watch.Elapsed}");
if(afterSettingsChange)
this.Verifier.Verify("SaveDeliveryListResultAfterSettingsChange", saveResult);
else
this.Verifier.Verify("SaveDeliveryListResult", saveResult);
return (ReceiptDeliveryListDTO) saveResult.Data.Receipt;
}
}
#endregion
#region SupplierInvoice
private ReceiptSupplierInvoiceDTO CreateNewSupplierInvoice(bool afterSettingsChange)
{
using (var session = new BLSession())
{
var user = session.GetBL<AppUserBL>().GetAppUser(f => f.I3D == 11);
var result = session.GetBL<ReceiptWebServiceBL>().CreateNewReceipt(CentronObjectKindNumeric.SupplierInvoice, new LoggedInUser(user), 70003, new CreateReceiptData(), null, null, true, false, true);
return (ReceiptSupplierInvoiceDTO) result.Data.Receipt;
}
}
private void AddPositionsSupplierInvoice(ReceiptSupplierInvoiceDTO receipt, IList<SearchedArticleDTO> articles, bool afterSettingsChange)
{
using (var session = new BLSession())
{
var user = session.GetBL<AppUserBL>().GetAppUser(f => f.I3D == 11);
foreach (var article in articles)
{
var receiptItemsResult = session.GetBL<ReceiptItemWebServiceBL>().CreateArticleReceiptItems(
receipt,
article.IsExternalArticle,
article.I3D,
article.ExternalArticleKind,
article.ExternalArticleId,
-1,
new Data.Entities.Administration.Logins.LoggedInUser(user));
receipt.Items.AddRange(receiptItemsResult.Data.ReceiptItems.Cast<ReceiptSupplierInvoiceItemDTO>());
}
//hijack this test to check a new property for Ticket 137714
receipt.ReceiptLink = "How does The Rock pee? He Dwaynes his Johnson";
}
}
private ReceiptSupplierInvoiceDTO SaveSupplierInvoice(ReceiptSupplierInvoiceDTO receipt, bool afterSettingsChange)
{
using (var session = new BLSession())
{
var user = session.GetBL<AppUserBL>().GetAppUser(f => f.I3D == 11);
var watch = Stopwatch.StartNew();
var saveResult = session.GetBL<ReceiptWebServiceBL>().SaveReceipt(receipt, user, new SaveReceiptData
{
IgnoreCallbacks = true,
InsertFreightArticle = afterSettingsChange
}, false, CreatedThroughApplication.CentronNet, null);
watch.Stop();
this.TestOutputHelper.WriteLine($"Saving the SupplierInvoice took {watch.Elapsed}");
if (afterSettingsChange)
{
this.Verifier.Verify("SaveSupplierInvoiceResultAfterSettingsChange", saveResult);
}
else
this.Verifier.Verify("SaveSupplierInvoiceResult", saveResult);
return (ReceiptSupplierInvoiceDTO) saveResult.Data.Receipt;
}
}
#endregion
}
}