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
This commit is contained in:
Christoph Schwörer
2026-08-26 07:43:51 +02:00
parent 18edae75b6
commit f045b99a25
24664 changed files with 5846716 additions and 1 deletions
@@ -0,0 +1,33 @@
[
{
I3D: '49',
KundenI3D: '10026',
ArtikelI3D: null,
Artikelcode: null,
Artikelbeschreibung: null,
WarengruppeI3D: '310',
Warengruppebezeichnung: 'Drucker',
GiltVon: null,
GiltBis: null,
Aufschlag: '3,5',
Basis: '0',
ErstellerI3D: '22',
Kommentar: null,
UnterwarengruppeI3D: null,
ProjektpreisI3D: null,
ProjektpreisText: null,
AnlageDialogNichtZeigen: null,
VKMenge1: null,
VKPreis1: null,
VKMenge2: null,
VKPreis2: null,
VKMenge3: null,
VKPreis3: null,
VKMenge4: null,
VKPreis4: null,
VKMenge5: null,
VKPreis5: null,
ObjektArt: '5000012',
ObjektI3D: '10026'
}
]
@@ -0,0 +1,8 @@
[
{
CustomerName: 'sembusoft',
CustomerNumber: 10026,
Message: 'Die Sonderpreise wurden erfolgreich zu diesem Kunden kopiert.',
Success: true
}
]
@@ -0,0 +1,54 @@
using Centron.BusinessLogic;
using Centron.BusinessLogic.WebServices.Accounts;
using Centron.BusinessLogic.WebServices.Accounts.SpecialPrices;
using Centron.Interfaces.Accounts;
using Centron.Interfaces.BL;
using Centron.Tests.EndToEnd.Infrastructure;
using Xunit.Abstractions;
namespace Centron.Tests.EndToEnd.Tests.AccountArticleSpecialPrices.CopyToChildCompanyGroups;
public class CopyToChildCompanyGroupTests : EndToEndTest
{
public CopyToChildCompanyGroupTests(ITestOutputHelper testOutputHelper)
: base(testOutputHelper)
{
this.Verifier.Settings.IgnoreColumn("Erstelldatum");
}
private const int ParentAccountI3D = 19;
private const int ParentCustomerNumber = 10020;
private const int ChildAccountI3D = 1025;
private const int ChildCustomerNumber = 10026;
public override void Execute()
{
this.PrepareDatabase();
this.CopySpecialPrices();
}
private void PrepareDatabase()
{
var filter = new AccountFilter()
{
AccountI3D = ChildAccountI3D
};
var account = this.WithSession(f => f.GetBL<AccountWebServiceBL>().GetAccount(this.GetLoggedInUser(), filter, mixMode: false)).ThrowIfError();
account.CompanyGroupI3D = ParentAccountI3D;
this.WithSession(f => f.GetBL<AccountWebServiceBL>().SaveAccount(this.GetLoggedInUser(), account, mixMode: false, isDataImport: false)).ThrowIfError();
}
private void CopySpecialPrices()
{
using var session = new BLSession();
var copyResult = session.GetBL<AccountSpecialPriceWebServiceBL>().CopyAccountSpecialPricesToCompanyGroupChilds(ParentCustomerNumber, this.GetLoggedInUser());
this.Verifier.Verify("CopyResult", copyResult);
this.Verifier.VerifySql("ParentSpecialPrices", $"SELECT * FROM KundenSonderpreise WHERE KundenI3D = {ParentCustomerNumber}");
this.Verifier.VerifySql("ChildSpecialPrices", $"SELECT * FROM KundenSonderpreise WHERE KundenI3D = {ChildCustomerNumber}");
}
}
@@ -0,0 +1,64 @@
[
{
I3D: '25',
KundenI3D: '10020',
ArtikelI3D: '121',
Artikelcode: '14',
Artikelbeschreibung: 'Testartikel iSeminar',
WarengruppeI3D: null,
Warengruppebezeichnung: null,
GiltVon: null,
GiltBis: '10.07.2010 00:00:00',
Aufschlag: '5',
Basis: '3',
ErstellerI3D: '35',
Kommentar: null,
UnterwarengruppeI3D: null,
ProjektpreisI3D: null,
ProjektpreisText: null,
AnlageDialogNichtZeigen: null,
VKMenge1: null,
VKPreis1: null,
VKMenge2: null,
VKPreis2: null,
VKMenge3: null,
VKPreis3: null,
VKMenge4: null,
VKPreis4: null,
VKMenge5: null,
VKPreis5: null,
ObjektArt: '5000012',
ObjektI3D: '10020'
},
{
I3D: '26',
KundenI3D: '10020',
ArtikelI3D: null,
Artikelcode: null,
Artikelbeschreibung: null,
WarengruppeI3D: '310',
Warengruppebezeichnung: 'Drucker',
GiltVon: null,
GiltBis: null,
Aufschlag: '3,5',
Basis: '0',
ErstellerI3D: '35',
Kommentar: null,
UnterwarengruppeI3D: null,
ProjektpreisI3D: null,
ProjektpreisText: null,
AnlageDialogNichtZeigen: null,
VKMenge1: null,
VKPreis1: null,
VKMenge2: null,
VKPreis2: null,
VKMenge3: null,
VKPreis3: null,
VKMenge4: null,
VKPreis4: null,
VKMenge5: null,
VKPreis5: null,
ObjektArt: '5000012',
ObjektI3D: '10020'
}
]
@@ -0,0 +1,20 @@
{
Articlecode: null,
ArticleDescription: null,
ArticleI3D: 1010,
Comment: null,
CreatedByI3D: 22,
CreatedDate: DateTime,
I3D: 49,
MaterialGroupI3D: null,
ObjectI3D: 10017,
ObjectKind: 5000012,
SpecialAgreementCaption: null,
SpecialAgreementI3D: null,
SubMaterialGroupI3D: null,
ValidFrom: null,
ValidTo: DateTime,
Value: 0.0,
ValueKind: 0,
WarehouseCaption: null
}
@@ -0,0 +1,20 @@
{
Articlecode: null,
ArticleDescription: null,
ArticleI3D: 1010,
Comment: null,
CreatedByI3D: 22,
CreatedDate: DateTime,
I3D: 49,
MaterialGroupI3D: null,
ObjectI3D: 10017,
ObjectKind: 5000012,
SpecialAgreementCaption: null,
SpecialAgreementI3D: null,
SubMaterialGroupI3D: null,
ValidFrom: null,
ValidTo: DateTime,
Value: 0.0,
ValueKind: 0,
WarehouseCaption: null
}
@@ -0,0 +1,33 @@
[
{
I3D: '49',
KundenI3D: '10017',
ArtikelI3D: '1010',
Artikelcode: null,
Artikelbeschreibung: null,
WarengruppeI3D: null,
Warengruppebezeichnung: null,
GiltVon: null,
GiltBis: '01.01.2022 00:00:00',
Aufschlag: '0',
Basis: '0',
ErstellerI3D: '22',
Kommentar: null,
UnterwarengruppeI3D: null,
ProjektpreisI3D: null,
ProjektpreisText: null,
AnlageDialogNichtZeigen: null,
VKMenge1: null,
VKPreis1: null,
VKMenge2: null,
VKPreis2: null,
VKMenge3: null,
VKPreis3: null,
VKMenge4: null,
VKPreis4: null,
VKMenge5: null,
VKPreis5: null,
ObjektArt: '5000012',
ObjektI3D: '10017'
}
]
@@ -0,0 +1,33 @@
[
{
I3D: '49',
KundenI3D: '10017',
ArtikelI3D: '1010',
Artikelcode: null,
Artikelbeschreibung: null,
WarengruppeI3D: null,
Warengruppebezeichnung: null,
GiltVon: null,
GiltBis: '01.01.2022 00:00:00',
Aufschlag: '0',
Basis: '0',
ErstellerI3D: '22',
Kommentar: null,
UnterwarengruppeI3D: null,
ProjektpreisI3D: null,
ProjektpreisText: null,
AnlageDialogNichtZeigen: null,
VKMenge1: null,
VKPreis1: null,
VKMenge2: null,
VKPreis2: null,
VKMenge3: null,
VKPreis3: null,
VKMenge4: null,
VKPreis4: null,
VKMenge5: null,
VKPreis5: null,
ObjektArt: '5000012',
ObjektI3D: '10017'
}
]
@@ -0,0 +1,64 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Centron.BusinessLogic;
using Centron.BusinessLogic.WebServices.Accounts.SpecialPrices;
using Centron.Core.Extensions;
using Centron.Interfaces;
using Centron.Interfaces.Accounts.SpecialPrices;
using Centron.Tests.EndToEnd.Infrastructure;
using Centron.Tests.EndToEnd.Infrastructure.Verifier;
using CentronSoftware.Centron.WebServices.Entities.Accounts.SpecialPrices;
using DevExpress.Spreadsheet;
using Xunit.Abstractions;
namespace Centron.Tests.EndToEnd.Tests.AccountArticleSpecialPrices.SpecialPriceImport;
public class SpecialPriceImportTest : EndToEndTest
{
public SpecialPriceImportTest(ITestOutputHelper testOutputHelper) : base(testOutputHelper)
{
}
public override void Execute()
{
this.SaveSpecialPriceArticle();
}
private void SaveSpecialPriceArticle()
{
var newSpecialPrice = new AccountSpecialPriceDTO
{
ArticleI3D = 1010,
ObjectKind = CentronObjectKindNumeric.CustomerClass,
ObjectI3D = 10017,
ValidTo = new DateTime(2022, 1, 1, 0, 0, 0)
};
var saveResult = this.WithSession(f =>
f.GetBL<AccountSpecialPriceWebServiceBL>()
.SaveAccountSpecialPrice(this.GetLoggedInUser().User, newSpecialPrice));
var settings = new CentronVerifierSettings();
settings.IgnoreColumn("Erstelldatum"); //dbo.KundenSonderpreise
this.Verifier.Verify("SaveSpecialPriceBefore", saveResult.Data);
this.Verifier.VerifyTable("SpecialPriceBefore", "dbo.KundenSonderpreise", where: $"I3D = {saveResult.Data.I3D}", settings);
var existingSpecialPriceI3D = new List<int> { saveResult.Data.ArticleI3D.Value };
var getSavedSpecialPrice = this.WithSession(f =>
f.GetBL<AccountSpecialPriceWebServiceBL>()
.GetAccountSpecialPrices(this.GetLoggedInUser().User, new AccountSpecialPriceFilter{ ArticleI3DList = existingSpecialPriceI3D} ));
var saveResultAfter = this.WithSession(f =>
f.GetBL<AccountSpecialPriceWebServiceBL>()
.SaveAccountSpecialPrice(this.GetLoggedInUser().User, getSavedSpecialPrice.Data.First()));
this.Verifier.Verify("SaveSpecialPriceAfter", saveResultAfter.Data);
this.Verifier.VerifyTable("SpecialPriceAfter", "dbo.KundenSonderpreise", where: $"I3D = {saveResult.Data.I3D}", settings);
}
}