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

118 lines
4.2 KiB
C#

using Centron.BusinessLogic;
using Centron.BusinessLogic.Administration.Settings;
using Centron.BusinessLogic.Sales.Receipts.DataAndResults;
using Centron.BusinessLogic.WebServices.Sales.Receipts;
using Centron.BusinessLogic.WebServices.Sales.Receipts.DataAndResults;
using Centron.Data.WebServices.Sales.Receipts.CreditVouchers;
using Centron.Interfaces;
using Centron.Interfaces.Administration.Environment;
using Centron.Interfaces.BL;
using Centron.Tests.EndToEnd.Infrastructure;
using Xunit.Abstractions;
namespace Centron.Tests.EndToEnd.TicketTests.Ticket125608;
public class Ticket125608Tests : EndToEndTest
{
public Ticket125608Tests(ITestOutputHelper testOutputHelper)
: base(testOutputHelper)
{
}
// This customer doesn't have a RevenueIdentificationNumber nor a TaxNumber
private const int FailureCustomerI3D = 10018;
private const int FailureCreditVoucherI3D = 12;
// This customer does have a TaxNumber
private const int SuccessCustomerI3D = 10003;
private const int SuccessCreditVoucherI3D = 4;
public override void Execute()
{
this.PrepareDatabase();
this.CreateNewCreditVoucher();
this.CreateNewCreditVoucherVersion();
this.SaveCreditVoucher();
}
private void CreateNewCreditVoucher()
{
Test("CreateNewCreditVoucher_Failure", FailureCustomerI3D);
Test("CreateNewCreditVoucher_Success", SuccessCustomerI3D);
void Test(string name, int customerI3D)
{
using var session = new BLSession();
var result = session.GetBL<ReceiptWebServiceBL>().CreateNewReceipt(
CentronObjectKindNumeric.CreditVoucherClass,
this.GetLoggedInUser(),
customerI3D,
new CreateReceiptData(),
addressI3D: null,
contactPersonI3D: null,
insertCustomerDiscount: true,
insertSalutationAndAgreement: true,
ignoreDefaultContract: false);
this.Verifier.Verify(name, result);
}
}
private void CreateNewCreditVoucherVersion()
{
Test("CreateNewCreditVoucherVersion_Failure", FailureCreditVoucherI3D);
Test("CreateNewCreditVoucherVersion_Success", SuccessCreditVoucherI3D);
void Test(string name, int creditVoucherI3D)
{
using var session = new BLSession();
var result = session.GetBL<ReceiptWebServiceBL>().CreateNewVersion(
CentronObjectKindNumeric.CreditVoucherClass,
creditVoucherI3D,
version: null,
newContactPersonI3D: null,
this.GetLoggedInUser().User,
new CreateNewVersionData
{
IgnoreCallbacks = true
});
this.Verifier.Verify(name, result);
}
}
private void SaveCreditVoucher()
{
Test("SaveCreditVoucher_Failure", FailureCreditVoucherI3D);
Test("SaveCreditVoucher_Success", SuccessCreditVoucherI3D);
void Test(string name, int creditVoucherI3D)
{
using var session = new BLSession();
var creditVoucher = (ReceiptCreditVoucherDTO)new BLSession().GetBL<ReceiptWebServiceBL>().GetReceiptByI3D(creditVoucherI3D, CentronObjectKindNumeric.CreditVoucherClass).ThrowIfError();
// creditVoucher.ReceiptReason
var result = session.GetBL<ReceiptWebServiceBL>().SaveReceipt(
creditVoucher,
this.GetLoggedInUser().User,
new SaveReceiptData(),
autoLockIfNewReceipt: false,
CreatedThroughApplication.CentronNet,
receiptTemplateFolderI3D: null);
this.Verifier.Verify(name, result);
}
}
private void PrepareDatabase()
{
// Activate the setting
this.Sql($"UPDATE dbo.Stammdat SET Wert = 1 WHERE I3D = {(int)AppSettingsConst.IsTaxNumberForCreditCreationMandatory}");
this.Sql($"UPDATE dbo.Stammdat SET Wert = 0 WHERE I3D = {(int)AppSettingsConst.QmMessageConfirmationPopupCreditVoucher}");
this.Sql($"UPDATE dbo.Kunden SET SteuerNr = 'Test' WHERE I3D = {SuccessCustomerI3D}");
}
}