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,60 @@
[
{
BCC: [],
Body: {
InlineImages: [],
Text: '{\rtf1\deff0 \stshfdbch3\stshfloch2\stshfhich2\stshfbi1{\fonttbl{\f0 Calibri;}{\fbiminor\f1 Times New Roman;}{\fhiminor\f2 Calibri;}{\fdbminor\f3 Times New Roman;}{\f4 Tahoma;}{\f5 Cambria Math;}}{\colortbl ;\red0\green0\blue0 ;\red0\green0\blue255 ;}{\*\defchp \fcs1\f1\fcs1\f1\hich\af2\loch\af2\dbch\af3\cgrid1\fs22}{\*\defpap \widctlpar}{\stylesheet {\ql\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Normal;}{\*\cs1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Default Paragraph Font;}{\*\cs2\sbasedon1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Line Number;}{\*\cs3\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ul\cf2 Hyperlink;}{\*\ts4\tsrowd\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\tscellpaddfl3\tscellpaddl108\tscellpaddfb3\tscellpaddfr3\tscellpaddr108\tscellpaddft3\tsvertalt\cltxlrtb Normal Table;}{\*\ts5\tsrowd\sbasedon4\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10\trbrdrh\brdrs\brdrw10\trbrdrv\brdrs\brdrw10\tscellpaddfl3\tscellpaddl108\tscellpaddfr3\tscellpaddr108\tsvertalt\cltxlrtb Table Simple 1;}}{\*\listoverridetable}{\info{\version1}}{\mmathPr\mbrkBin0\mbrkBinSub0\mdefJc1\minterSp0\mintLim1\mintraSp0\mmathFont5\mnaryLim1\mpostSp0\mpreSp0\mrMargin0\msmallFrac0\mwrapIndent0\mwrapRight0}\nouicompat\htmautsp\splytwnine\alntblind\expshrtn\spltpgpar\nogrowautofit\utinl\nobrkwrptbl\ftnlytwnine\notcvasp\dntblnsbdb\newtblstyruls\pgbrdrhead\pgbrdrfoot\formshade\sectd\endnhere\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Sehr geehrte Damen und Herren,}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 der Warenkorb "}{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Test-Cart}{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 " wurde gepr\u252\\'fcft und ist jetzt bereit zum Bestellen.}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Mit freundlichen Gr\u252\\'fc\u223\\'dfen!}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par}',
Type: 1
},
CC: [],
From: {
EMail: 'noreply@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
},
I3D: 0,
MailAttachments: [],
MailSignature: null,
Subject: 'Warenkorb "Test-Cart" geprüft',
To: [
{
EMail: 'ff@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
}
]
},
{
BCC: [],
Body: {
InlineImages: [],
Text: '{\rtf1\deff0 \stshfdbch3\stshfloch2\stshfhich2\stshfbi1{\fonttbl{\f0 Calibri;}{\fbiminor\f1 Times New Roman;}{\fhiminor\f2 Calibri;}{\fdbminor\f3 Times New Roman;}{\f4 Tahoma;}{\f5 Cambria Math;}}{\colortbl ;\red0\green0\blue0 ;\red0\green0\blue255 ;}{\*\defchp \fcs1\f1\fcs1\f1\hich\af2\loch\af2\dbch\af3\cgrid1\fs22}{\*\defpap \widctlpar}{\stylesheet {\ql\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Normal;}{\*\cs1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Default Paragraph Font;}{\*\cs2\sbasedon1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Line Number;}{\*\cs3\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ul\cf2 Hyperlink;}{\*\ts4\tsrowd\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\tscellpaddfl3\tscellpaddl108\tscellpaddfb3\tscellpaddfr3\tscellpaddr108\tscellpaddft3\tsvertalt\cltxlrtb Normal Table;}{\*\ts5\tsrowd\sbasedon4\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10\trbrdrh\brdrs\brdrw10\trbrdrv\brdrs\brdrw10\tscellpaddfl3\tscellpaddl108\tscellpaddfr3\tscellpaddr108\tsvertalt\cltxlrtb Table Simple 1;}}{\*\listoverridetable}{\info{\version1}}{\mmathPr\mbrkBin0\mbrkBinSub0\mdefJc1\minterSp0\mintLim1\mintraSp0\mmathFont5\mnaryLim1\mpostSp0\mpreSp0\mrMargin0\msmallFrac0\mwrapIndent0\mwrapRight0}\nouicompat\htmautsp\splytwnine\alntblind\expshrtn\spltpgpar\nogrowautofit\utinl\nobrkwrptbl\ftnlytwnine\notcvasp\dntblnsbdb\newtblstyruls\pgbrdrhead\pgbrdrfoot\formshade\sectd\endnhere\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Hallo,}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 @@KdNummer@@ @@KdName@@ hat gerade eben den Warenkorb "}{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Test-Cart}{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 " gepr\u252\\'fcft.}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Eventuell wird dieser demn\u228\\'e4chst bestellt.}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Der Auftrag umfasst folgende Artikel:}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 @@Artikel@@}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Mit freundlichen Gr\u252\\'fc\u223\\'dfen!}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par}',
Type: 1
},
CC: [],
From: {
EMail: 'noreply@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
},
I3D: 0,
MailAttachments: [],
MailSignature: null,
Subject: 'Warenkorb "Test-Cart" geprüft',
To: [
{
EMail: 'vertrieb@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
}
]
}
]
@@ -0,0 +1,31 @@
[
{
BCC: [],
Body: {
InlineImages: [],
Text: '{\rtf1\deff0 \stshfdbch3\stshfloch2\stshfhich2\stshfbi1{\fonttbl{\f0 Calibri;}{\fbiminor\f1 Times New Roman;}{\fhiminor\f2 Calibri;}{\fdbminor\f3 Times New Roman;}{\f4 Tahoma;}{\f5 Cambria Math;}}{\colortbl ;\red0\green0\blue0 ;\red0\green0\blue255 ;}{\*\defchp \fcs1\f1\fcs1\f1\hich\af2\loch\af2\dbch\af3\cgrid1\fs22}{\*\defpap \widctlpar}{\stylesheet {\ql\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Normal;}{\*\cs1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Default Paragraph Font;}{\*\cs2\sbasedon1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Line Number;}{\*\cs3\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ul\cf2 Hyperlink;}{\*\ts4\tsrowd\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\tscellpaddfl3\tscellpaddl108\tscellpaddfb3\tscellpaddfr3\tscellpaddr108\tscellpaddft3\tsvertalt\cltxlrtb Normal Table;}{\*\ts5\tsrowd\sbasedon4\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10\trbrdrh\brdrs\brdrw10\trbrdrv\brdrs\brdrw10\tscellpaddfl3\tscellpaddl108\tscellpaddfr3\tscellpaddr108\tsvertalt\cltxlrtb Table Simple 1;}}{\*\listoverridetable}{\info{\version1}}{\mmathPr\mbrkBin0\mbrkBinSub0\mdefJc1\minterSp0\mintLim1\mintraSp0\mmathFont5\mnaryLim1\mpostSp0\mpreSp0\mrMargin0\msmallFrac0\mwrapIndent0\mwrapRight0}\nouicompat\htmautsp\splytwnine\alntblind\expshrtn\spltpgpar\nogrowautofit\utinl\nobrkwrptbl\ftnlytwnine\notcvasp\dntblnsbdb\newtblstyruls\pgbrdrhead\pgbrdrfoot\formshade\sectd\endnhere\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Sehr geehrte Damen und Herren,}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 }\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 der Warenkorb "}{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Test-Cart}{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 " wurde vom Pr\u252\\'fcfer abgelehnt.}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Mit freundlichen Gr\u252\\'fc\u223\\'dfen!}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par}',
Type: 1
},
CC: [],
From: {
EMail: 'noreply@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
},
I3D: 0,
MailAttachments: [],
MailSignature: null,
Subject: 'Warenkorb "Test-Cart" abgelehnt',
To: [
{
EMail: 'ff@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
}
]
}
]
@@ -0,0 +1,31 @@
[
{
BCC: [],
Body: {
InlineImages: [],
Text: '{\rtf1\deff0 \stshfdbch3\stshfloch2\stshfhich2\stshfbi1{\fonttbl{\f0 Calibri;}{\fbiminor\f1 Times New Roman;}{\fhiminor\f2 Calibri;}{\fdbminor\f3 Times New Roman;}{\f4 Tahoma;}{\f5 Cambria Math;}}{\colortbl ;\red0\green0\blue0 ;\red0\green0\blue255 ;}{\*\defchp \fcs1\f1\fcs1\f1\hich\af2\loch\af2\dbch\af3\cgrid1\fs22}{\*\defpap \widctlpar}{\stylesheet {\ql\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Normal;}{\*\cs1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Default Paragraph Font;}{\*\cs2\sbasedon1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Line Number;}{\*\cs3\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ul\cf2 Hyperlink;}{\*\ts4\tsrowd\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\tscellpaddfl3\tscellpaddl108\tscellpaddfb3\tscellpaddfr3\tscellpaddr108\tscellpaddft3\tsvertalt\cltxlrtb Normal Table;}{\*\ts5\tsrowd\sbasedon4\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10\trbrdrh\brdrs\brdrw10\trbrdrv\brdrs\brdrw10\tscellpaddfl3\tscellpaddl108\tscellpaddfr3\tscellpaddr108\tsvertalt\cltxlrtb Table Simple 1;}}{\*\listoverridetable}{\info{\version1}}{\mmathPr\mbrkBin0\mbrkBinSub0\mdefJc1\minterSp0\mintLim1\mintraSp0\mmathFont5\mnaryLim1\mpostSp0\mpreSp0\mrMargin0\msmallFrac0\mwrapIndent0\mwrapRight0}\nouicompat\htmautsp\splytwnine\alntblind\expshrtn\spltpgpar\nogrowautofit\utinl\nobrkwrptbl\ftnlytwnine\notcvasp\dntblnsbdb\newtblstyruls\pgbrdrhead\pgbrdrfoot\formshade\sectd\endnhere\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Sehr geehrte Damen und Herren,}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 der Warenkorb "}{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Test-Cart}{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 " ist jetzt bereit zur Pr\u252\\'fcfung.}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Mit freundlichen Gr\u252\\'fc\u223\\'dfen!}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par}',
Type: 1
},
CC: [],
From: {
EMail: 'noreply@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
},
I3D: 0,
MailAttachments: [],
MailSignature: null,
Subject: 'Warenkorb "Test-Cart" bereit zur Prüfung',
To: [
{
EMail: 'ff@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
}
]
}
]
@@ -0,0 +1,31 @@
[
{
BCC: [],
Body: {
InlineImages: [],
Text: '{\rtf1\deff0 \stshfdbch3\stshfloch2\stshfhich2\stshfbi1{\fonttbl{\f0 Calibri;}{\fbiminor\f1 Times New Roman;}{\fhiminor\f2 Calibri;}{\fdbminor\f3 Times New Roman;}{\f4 Tahoma;}{\f5 Cambria Math;}}{\colortbl ;\red0\green0\blue0 ;\red0\green0\blue255 ;}{\*\defchp \fcs1\f1\fcs1\f1\hich\af2\loch\af2\dbch\af3\cgrid1\fs22}{\*\defpap \widctlpar}{\stylesheet {\ql\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Normal;}{\*\cs1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Default Paragraph Font;}{\*\cs2\sbasedon1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Line Number;}{\*\cs3\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ul\cf2 Hyperlink;}{\*\ts4\tsrowd\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\tscellpaddfl3\tscellpaddl108\tscellpaddfb3\tscellpaddfr3\tscellpaddr108\tscellpaddft3\tsvertalt\cltxlrtb Normal Table;}{\*\ts5\tsrowd\sbasedon4\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10\trbrdrh\brdrs\brdrw10\trbrdrv\brdrs\brdrw10\tscellpaddfl3\tscellpaddl108\tscellpaddfr3\tscellpaddr108\tsvertalt\cltxlrtb Table Simple 1;}}{\*\listoverridetable}{\info{\version1}}{\mmathPr\mbrkBin0\mbrkBinSub0\mdefJc1\minterSp0\mintLim1\mintraSp0\mmathFont5\mnaryLim1\mpostSp0\mpreSp0\mrMargin0\msmallFrac0\mwrapIndent0\mwrapRight0}\nouicompat\htmautsp\splytwnine\alntblind\expshrtn\spltpgpar\nogrowautofit\utinl\nobrkwrptbl\ftnlytwnine\notcvasp\dntblnsbdb\newtblstyruls\pgbrdrhead\pgbrdrfoot\formshade\sectd\endnhere\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Sehr geehrte Damen und Herren,}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 der Warenkorb "}{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Test-Cart}{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 " ist jetzt bereit zur Pr\u252\\'fcfung.}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Mit freundlichen Gr\u252\\'fc\u223\\'dfen!}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par}',
Type: 1
},
CC: [],
From: {
EMail: 'noreply@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
},
I3D: 0,
MailAttachments: [],
MailSignature: null,
Subject: 'Warenkorb "Test-Cart" bereit zur Prüfung',
To: [
{
EMail: 'ff@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
}
]
}
]
@@ -0,0 +1,256 @@
{
AdditionalText: null,
AddressI3D: 1,
BranchI3D: null,
BranchOrigin: 0,
CampaignI3D: null,
ChangedAt: DateTime,
ChangedByI3D: 47,
ChangedThroughApplication: 7,
City: 'Ulm',
CommissionMailSetting: 0,
ConcurrencyControlGuid: Guid,
ContactName: 'Frau Franziska Franzen',
ContactPersonI3D: 23,
ContractI3D: null,
CostCenterI3D: null,
CostObjectI3D: null,
CountryI3D: 1,
CreatedAt: DateTime,
CreatedByI3D: 47,
CreateHelpdesks: 3,
CurrencyFactor: 1.0,
CurrencyFactorIsFixed: false,
CurrencyI3D: 1,
CurrencyString: '€',
CustomerI3D: 10000,
CustomUpdateArticlePricesAndTexts: false,
Date: DateTime,
DeliveryAddress: 'c-entron software gmbh\r\nLieferung auf das Helikopterpad bitte\r\nHerr Günther Netzer\r\nStraße\r\n12345 Stadt\r\nBelgien',
DeliveryAddressAddressI3D: 1070,
DeliveryAddressContactPersonI3D: 1091,
DeliveryAddressCustomerI3D: 10000,
DeliveryAddressInformation: null,
DeliveryConditionI3D: 21,
DeliveryConditionText: 'Die Lieferung erfolgt zur Lieferanschrift frei Haus.\r\n',
DeliveryDate: null,
DirectoryI3D: 22396,
EditorI3D: 47,
Email: 'ff@c-entron.de',
ExclusiveOfVAT: false,
Fax: '0731-140399-399',
HasPostOfficeBox: false,
I3D: 4383,
Information: '',
InvoiceAddress: null,
InvoiceAddressAddressI3D: null,
InvoiceAddressContactPersonI3D: null,
InvoiceAddressCustomerI3D: null,
InvoiceAddressInformation: null,
IsDirectDeliveryPossible: true,
IsLeasingActive: false,
IsPartialDeliveryPossible: false,
IsPurchasingBlocked: false,
IsServiceActive: false,
Items: [
{
AddAdditionalInformations: [],
ArticleCode: null,
ArticleI3D: null,
ArticlePositionKind: 51,
AttachedData: {},
BalanceID: null,
Barcodes: [],
BasePrice: null,
ChangeStock: false,
ContractI3D: null,
CostCenterI3D: null,
CostObjectI3D: null,
CustomerCostCenter: null,
DeliveryDate: null,
Discount: 0.000000000000,
DisplayPositionNumber: null,
EANCode: null,
Expanded: null,
FontColor: -16777208,
FontName: 'Verdana',
FontSize: 9,
FontStyle: 0,
GroupID: 0,
HelpdeskI3D: null,
HelpdeskTimerI3Ds: [],
I3D: 7339,
Indent: 0,
InternalNote: null,
InternalPosition: 1,
IsBillingPartList: false,
IsDirectDeliveryPossible: false,
IsLeasing: false,
IsReverseCharge: false,
IsService: false,
Kind: 2,
LicenseDate: null,
ManufacturerCode: null,
MasterDataListSerialNumberI3D: null,
OriginalPurchasePrice: null,
OriginKind: null,
OriginReceiptI3D: null,
OriginReceiptItemI3D: null,
PlannedDurationInHours: 0.0000000,
PreparationDate: null,
ProjectOfferRichText: null,
PurchaseBasePrice: null,
PurchaseInformations: null,
PurchaseOrderNumber: null,
PurchasePriceSupplierI3D: null,
QuantityComplete: 0.0000000,
QuantityOrdered: 0.0000000,
QuantityPicked: 0.0000000,
QuantityProcessed: 0.0000000,
ReasonForCustomPurchasePrice: null,
ReceiptI3D: 4383,
RevenueAccount: null,
RichText: '{\rtf1\deff0 \stshfdbch3\stshfloch2\stshfhich2\stshfbi1{\fonttbl{\f0 Calibri;}{\fbiminor\f1 Times New Roman;}{\fhiminor\f2 Calibri;}{\fdbminor\f3 Times New Roman;}{\f4 Verdana;}{\f5 Cambria Math;}}{\colortbl ;\red0\green0\blue0 ;\red0\green0\blue255 ;}{\*\defchp \fcs1\f1\fcs1\f1\hich\af2\loch\af2\dbch\af3\cgrid1\fs22}{\*\defpap \widctlpar}{\stylesheet {\ql\fcs1\af1\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs18\cf1 Normal;}{\*\cs1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Default Paragraph Font;}{\*\cs2\sbasedon1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Line Number;}{\*\cs3\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ul\cf2 Hyperlink;}{\*\ts4\tsrowd\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\tscellpaddfl3\tscellpaddl108\tscellpaddfb3\tscellpaddfr3\tscellpaddr108\tscellpaddft3\tsvertalt\cltxlrtb Normal Table;}{\*\ts5\tsrowd\sbasedon4\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10\trbrdrh\brdrs\brdrw10\trbrdrv\brdrs\brdrw10\tscellpaddfl3\tscellpaddl108\tscellpaddfr3\tscellpaddr108\tsvertalt\cltxlrtb Table Simple 1;}}{\*\listoverridetable}{\info{\version1}}{\mmathPr\mbrkBin0\mbrkBinSub0\mdefJc0\minterSp0\mintLim1\mintraSp0\mmathFont5\mnaryLim1\mpostSp0\mpreSp0\mrMargin0\msmallFrac0\mwrapIndent0\mwrapRight0}\nouicompat\htmautsp\splytwnine\alntblind\expshrtn\spltpgpar\nogrowautofit\utinl\nobrkwrptbl\ftnlytwnine\notcvasp\dntblnsbdb\newtblstyruls\pgbrdrhead\pgbrdrfoot\formshade\sectd\endnhere\pard\plain\ql\widctlpar{\fcs1\af1\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs18\cf1 Inventarnummer:}\fcs1\af1\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs18\cf1\par\pard\plain\ql\widctlpar{\fcs1\af1\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs18\cf1 W-Nummer:}\fcs1\af1\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs18\cf1\par}',
SpecialAgreementI3D: null,
Text: 'Inventarnummer:\r\nW-Nummer:',
VATI3D: null,
VATRate: 0.00,
Visible: 1,
WarehouseI3D: null,
WEEE: null
},
{
AddAdditionalInformations: [],
ArticleCode: 'KU206ET#ABD',
ArticleI3D: 80,
ArticlePositionKind: 0,
AttachedData: {},
BalanceID: null,
Barcodes: [],
BasePrice: 600.0,
ChangeStock: true,
ContractI3D: null,
CostCenterI3D: 1,
CostObjectI3D: 1,
CustomerCostCenter: null,
DeliveryDate: null,
Discount: 10.000000000000,
DisplayPositionNumber: '1',
EANCode: '0884420006091',
Expanded: null,
FontColor: -16777208,
FontName: 'Verdana',
FontSize: 9,
FontStyle: 0,
GroupID: 0,
HelpdeskI3D: null,
HelpdeskTimerI3Ds: [],
I3D: 7340,
Indent: 0,
InternalNote: null,
InternalPosition: 2,
IsBillingPartList: false,
IsDirectDeliveryPossible: false,
IsLeasing: false,
IsReverseCharge: false,
IsService: false,
Kind: 1,
LicenseDate: null,
ManufacturerCode: 'KU206ET#ABD',
MasterDataListSerialNumberI3D: null,
OriginalPurchasePrice: 599.57142857,
OriginKind: 3,
OriginReceiptI3D: 6751,
OriginReceiptItemI3D: 21320,
PlannedDurationInHours: 0.0000000,
PreparationDate: null,
ProjectOfferRichText: null,
PurchaseBasePrice: 599.57142857,
PurchaseInformations: null,
PurchaseOrderNumber: null,
PurchasePriceSupplierI3D: null,
QuantityComplete: 10.0000000,
QuantityOrdered: 0.0000000,
QuantityPicked: 0.0000000,
QuantityProcessed: 0.0000000,
ReasonForCustomPurchasePrice: null,
ReceiptI3D: 4383,
RevenueAccount: 4400,
RichText: '{\rtf1\deff0 \stshfdbch3\stshfloch2\stshfhich2\stshfbi1{\fonttbl{\f0 Calibri;}{\fbiminor\f1 Times New Roman;}{\fhiminor\f2 Calibri;}{\fdbminor\f3 Times New Roman;}{\f4 Verdana;}{\f5 Cambria Math;}}{\colortbl ;\red0\green0\blue0 ;\red0\green0\blue255 ;}{\*\defchp \fcs1\f1\fcs1\f1\hich\af2\loch\af2\dbch\af3\cgrid1\fs22}{\*\defpap \widctlpar}{\stylesheet {\ql\fcs1\af1\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs18\cf1 Normal;}{\*\cs1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Default Paragraph Font;}{\*\cs2\sbasedon1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Line Number;}{\*\cs3\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ul\cf2 Hyperlink;}{\*\ts4\tsrowd\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\tscellpaddfl3\tscellpaddl108\tscellpaddfb3\tscellpaddfr3\tscellpaddr108\tscellpaddft3\tsvertalt\cltxlrtb Normal Table;}{\*\ts5\tsrowd\sbasedon4\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10\trbrdrh\brdrs\brdrw10\trbrdrv\brdrs\brdrw10\tscellpaddfl3\tscellpaddl108\tscellpaddfr3\tscellpaddr108\tsvertalt\cltxlrtb Table Simple 1;}}{\*\listoverridetable}{\info{\version1}}{\mmathPr\mbrkBin0\mbrkBinSub0\mdefJc0\minterSp0\mintLim1\mintraSp0\mmathFont5\mnaryLim1\mpostSp0\mpreSp0\mrMargin0\msmallFrac0\mwrapIndent0\mwrapRight0}\nouicompat\htmautsp\splytwnine\alntblind\expshrtn\spltpgpar\nogrowautofit\utinl\nobrkwrptbl\ftnlytwnine\notcvasp\dntblnsbdb\newtblstyruls\pgbrdrhead\pgbrdrfoot\formshade\sectd\endnhere\pard\plain\ql\widctlpar{\fcs1\af1\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs18\cf1 Hewlett Packard}\fcs1\af1\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs18\cf1\par\pard\plain\ql\widctlpar{\fcs1\af1\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs18\cf1 TV HP Compaq 6820s Notebook PC}\fcs1\af1\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs18\cf1\par\pard\plain\ql\widctlpar{\fcs1\af1\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs18\cf1 TOPVALUE - Intel Core 2 Duo T5870 (2.00 GHz / 2 MB L2 / 800 MHz)/ 2 GB RAM (1x 2 GB)/ 17,0 "/ WXGA+ (1440 x 900 Pixel)/ ATI Mobility Radeon X1350/ 160 GB HDD/ SATA/ DVD-SuperMulti (DL)/ 56K, WLAN 802.11a/b/g, LAN 10/100, Bluetooth/ VB / XPP}\fcs1\af1\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs18\cf1\par}',
SpecialAgreementI3D: null,
Text: 'Hewlett Packard\r\nTV HP Compaq 6820s Notebook PC\r\nTOPVALUE - Intel Core 2 Duo T5870 (2.00 GHz / 2 MB L2 / 800 MHz)/ 2 GB RAM (1x 2 GB)/ 17,0 "/ WXGA+ (1440 x 900 Pixel)/ ATI Mobility Radeon X1350/ 160 GB HDD/ SATA/ DVD-SuperMulti (DL)/ 56K, WLAN 802.11a/b/g, LAN 10/100, Bluetooth/ VB / XPP',
VATI3D: 4,
VATRate: 19.00,
Visible: 1,
WarehouseI3D: -1,
WEEE: ''
}
],
LeasingFee: 0.0,
LeasingMonths: 0,
LeasingRatePercent: 0.0,
LeasingRatePerMonth: 0.0,
LicenseeAddress: null,
LicenseeAddressAddressI3D: null,
LicenseeAddressContactPersonI3D: null,
LicenseeAddressCustomerI3D: null,
LicenseeAddressInformation: null,
MandatorBankNumber: null,
Number: 20384,
OfficeStaffI3D: 34,
PaymentConditionI3D: 7,
PaymentConditionText: 'Die Rechnung ist innerhalb von 30 Tagen bis zum EinDatum rein netto = 6426,00 € fällig.\r\nEs gelten unsere AGB sowie erweiterter Eigentumsvorbehalt.',
Phone: '0731-140399-0',
PostOfficeBox: '',
PreparationDate: DateTime,
Produced: true,
ProjectNumber: 'Projektnummer',
Provision: [],
PurchaseOrderNumber: 'Besondere Bestellnummer',
ReceiptConditionI3D: 15,
ReceiptConditionText: 'Vielen Dank für Ihren Auftrag. \r\nEs gelten unsere AGB sowie erweiterter Eigentumsvorbehalt.',
ReceiptKind: 2,
ReceiptReceiver: {
AccountI3D: 1,
AdditionalAddressSupplement: '',
City: 'Ulm',
CompanyName: 'c-entron software gmbh',
ContactDepartment: '',
ContactName: 'Frau Franziska Franzen',
Country: 'Deutschland',
CountryI3D: 1,
CustomerNumber: 10000,
Department: 'sdklfnfdjskfdsöfjsadkfjödöfjdsjafsöjdkfjösdajfsjdföjfjsdjfkjsadfjskdjfkjasdköal kalsjsvkjkldsjfkldösjkl jksdljvk jklsavj kjdslk jkldsj klödsj kljasdkl jkl jsckl jklasj klasj kljsö jksj dkljsdklj klsdj öklsdj klsdj lkjkasdj klasdj klsdj kljasfkl jöl',
Email: null,
Fax: null,
FederalState: '',
FederalStateI3D: null,
HasPostOfficeBox: false,
HouseNumber: '1',
I3D: 1,
Phone: null,
PostOfficeBox: '',
ReceiverText: null,
Street: 'Liststrasse',
SupplierNumber: null,
Zip: '89079'
},
ReceiptReceiverDelivery: null,
ReceiptReceiverInvoice: null,
ReceiptReceiverLicense: null,
ReceiptUserStateI3D: null,
Receiver: 'c-entron software gmbh\r\nsdklfnfdjskfdsöfjsadkfjödöfjdsjafsöjdkfjösdajfsjdföjfjsdjfkjsadfjskdjfkjasdköal kalsjsvkjkldsjfkldösjkl jksdljvk jklsavj kjdslk jkldsj klödsj kljasdkl jkl jsckl jklasj klasj kljsö jksj dkljsdklj klsdj öklsdj klsdj lkjkasdj klasdj klsdj kljasfkl jöl\r\nFrau Franziska Franzen\r\nListstrasse 1\r\n89079 Ulm',
ReminderDate: null,
SalesRepresentativeI3D: 31,
SchemaName: null,
ServiceFee: 0.0,
ServiceMonths: 0,
ServiceRatePercent: 0.0,
ServiceRatePerMonth: 0.0,
ShowInformation: false,
State: 1,
Street: 'Liststrasse 1',
VariableDateField: null,
Version: 1,
Zip: '89079'
}
@@ -0,0 +1,7 @@
{
MailRecipients: [
'ff@c-entron.de'
],
OrderI3D: 4383,
OrderNumber: 20384
}
@@ -0,0 +1,60 @@
[
{
BCC: [],
Body: {
InlineImages: [],
Text: '{\rtf1\deff0 \stshfdbch3\stshfloch2\stshfhich2\stshfbi1{\fonttbl{\f0 Calibri;}{\fbiminor\f1 Times New Roman;}{\fhiminor\f2 Calibri;}{\fdbminor\f3 Times New Roman;}{\f4 Tahoma;}{\f5 Cambria Math;}}{\colortbl ;\red0\green0\blue0 ;\red0\green0\blue255 ;}{\*\defchp \fcs1\f1\fcs1\f1\hich\af2\loch\af2\dbch\af3\cgrid1\fs22}{\*\defpap \widctlpar}{\stylesheet {\ql\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Normal;}{\*\cs1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Default Paragraph Font;}{\*\cs2\sbasedon1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Line Number;}{\*\cs3\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ul\cf2 Hyperlink;}{\*\ts4\tsrowd\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\tscellpaddfl3\tscellpaddl108\tscellpaddfb3\tscellpaddfr3\tscellpaddr108\tscellpaddft3\tsvertalt\cltxlrtb Normal Table;}{\*\ts5\tsrowd\sbasedon4\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10\trbrdrh\brdrs\brdrw10\trbrdrv\brdrs\brdrw10\tscellpaddfl3\tscellpaddl108\tscellpaddfr3\tscellpaddr108\tsvertalt\cltxlrtb Table Simple 1;}}{\*\listoverridetable}{\info{\version1}}{\mmathPr\mbrkBin0\mbrkBinSub0\mdefJc1\minterSp0\mintLim1\mintraSp0\mmathFont5\mnaryLim1\mpostSp0\mpreSp0\mrMargin0\msmallFrac0\mwrapIndent0\mwrapRight0}\nouicompat\htmautsp\splytwnine\alntblind\expshrtn\spltpgpar\nogrowautofit\utinl\nobrkwrptbl\ftnlytwnine\notcvasp\dntblnsbdb\newtblstyruls\pgbrdrhead\pgbrdrfoot\formshade\sectd\endnhere\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Sehr geehrte Damen und Herren,}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 anbei erhalten Sie die Auftragsbest\u228\\'e4tigung f\u252\\'fcr Auftrag 20384.}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Dieser Auftrag wurde im Web-Cart aus dem Warenkorb "}{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Test-Cart}{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 " erstellt.}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Der Auftrag umfasst folgende Artikel:}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Hewlett Packard TV HP Compaq 6820s Notebook PC TOPVALUE - Intel Core 2 Duo T5870 (2.00 GHz / 2 MB L\u8230\\'85 | KU206ET#ABD | Menge: 10 | Preis: 540 \u8364\\'80 | Summe: 5400 \u8364\\'80}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Mit freundlichen Gr\u252\\'fc\u223\\'dfen!}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par}',
Type: 1
},
CC: [],
From: {
EMail: 'noreply@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
},
I3D: 0,
MailAttachments: [],
MailSignature: null,
Subject: 'Auftragsbestätigung 20384',
To: [
{
EMail: 'ff@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
}
]
},
{
BCC: [],
Body: {
InlineImages: [],
Text: '{\rtf1\deff0 \stshfdbch3\stshfloch2\stshfhich2\stshfbi1{\fonttbl{\f0 Calibri;}{\fbiminor\f1 Times New Roman;}{\fhiminor\f2 Calibri;}{\fdbminor\f3 Times New Roman;}{\f4 Tahoma;}{\f5 Cambria Math;}}{\colortbl ;\red0\green0\blue0 ;\red0\green0\blue255 ;}{\*\defchp \fcs1\f1\fcs1\f1\hich\af2\loch\af2\dbch\af3\cgrid1\fs22}{\*\defpap \widctlpar}{\stylesheet {\ql\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Normal;}{\*\cs1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Default Paragraph Font;}{\*\cs2\sbasedon1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Line Number;}{\*\cs3\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ul\cf2 Hyperlink;}{\*\ts4\tsrowd\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\tscellpaddfl3\tscellpaddl108\tscellpaddfb3\tscellpaddfr3\tscellpaddr108\tscellpaddft3\tsvertalt\cltxlrtb Normal Table;}{\*\ts5\tsrowd\sbasedon4\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10\trbrdrh\brdrs\brdrw10\trbrdrv\brdrs\brdrw10\tscellpaddfl3\tscellpaddl108\tscellpaddfr3\tscellpaddr108\tsvertalt\cltxlrtb Table Simple 1;}}{\*\listoverridetable}{\info{\version1}}{\mmathPr\mbrkBin0\mbrkBinSub0\mdefJc1\minterSp0\mintLim1\mintraSp0\mmathFont5\mnaryLim1\mpostSp0\mpreSp0\mrMargin0\msmallFrac0\mwrapIndent0\mwrapRight0}\nouicompat\htmautsp\splytwnine\alntblind\expshrtn\spltpgpar\nogrowautofit\utinl\nobrkwrptbl\ftnlytwnine\notcvasp\dntblnsbdb\newtblstyruls\pgbrdrhead\pgbrdrfoot\formshade\sectd\endnhere\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Hallo,}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 10000 c-entron software gmbh hat gerade eben den Auftrag 20384 \u252\\'fcber den Web-Cart erstellt.}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Der Auftrag umfasst folgende Artikel:}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Hewlett Packard TV HP Compaq 6820s Notebook PC TOPVALUE - Intel Core 2 Duo T5870 (2.00 GHz / 2 MB L\u8230\\'85 | KU206ET#ABD | Menge: 10 | Preis: 540 \u8364\\'80 | Summe: 5400 \u8364\\'80}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Mit freundlichen Gr\u252\\'fc\u223\\'dfen!}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par}',
Type: 1
},
CC: [],
From: {
EMail: 'noreply@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
},
I3D: 0,
MailAttachments: [],
MailSignature: null,
Subject: 'Auftrag 20384 über Web-Cart erhalten',
To: [
{
EMail: 'vertrieb@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
}
]
}
]
@@ -0,0 +1,31 @@
[
{
BCC: [],
Body: {
InlineImages: [],
Text: '{\rtf1\deff0 \stshfdbch3\stshfloch2\stshfhich2\stshfbi1{\fonttbl{\f0 Calibri;}{\fbiminor\f1 Times New Roman;}{\fhiminor\f2 Calibri;}{\fdbminor\f3 Times New Roman;}{\f4 Tahoma;}{\f5 Cambria Math;}}{\colortbl ;\red0\green0\blue0 ;\red0\green0\blue255 ;}{\*\defchp \fcs1\f1\fcs1\f1\hich\af2\loch\af2\dbch\af3\cgrid1\fs22}{\*\defpap \widctlpar}{\stylesheet {\ql\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Normal;}{\*\cs1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Default Paragraph Font;}{\*\cs2\sbasedon1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Line Number;}{\*\cs3\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ul\cf2 Hyperlink;}{\*\ts4\tsrowd\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\tscellpaddfl3\tscellpaddl108\tscellpaddfb3\tscellpaddfr3\tscellpaddr108\tscellpaddft3\tsvertalt\cltxlrtb Normal Table;}{\*\ts5\tsrowd\sbasedon4\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10\trbrdrh\brdrs\brdrw10\trbrdrv\brdrs\brdrw10\tscellpaddfl3\tscellpaddl108\tscellpaddfr3\tscellpaddr108\tsvertalt\cltxlrtb Table Simple 1;}}{\*\listoverridetable}{\info{\version1}}{\mmathPr\mbrkBin0\mbrkBinSub0\mdefJc1\minterSp0\mintLim1\mintraSp0\mmathFont5\mnaryLim1\mpostSp0\mpreSp0\mrMargin0\msmallFrac0\mwrapIndent0\mwrapRight0}\nouicompat\htmautsp\splytwnine\alntblind\expshrtn\spltpgpar\nogrowautofit\utinl\nobrkwrptbl\ftnlytwnine\notcvasp\dntblnsbdb\newtblstyruls\pgbrdrhead\pgbrdrfoot\formshade\sectd\endnhere\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Sehr geehrte Damen und Herren,}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 der Warenkorb "}{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Test-Cart}{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 " wurde vom Besteller abgelehnt.}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Mit freundlichen Gr\u252\\'fc\u223\\'dfen!}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par}',
Type: 1
},
CC: [],
From: {
EMail: 'noreply@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
},
I3D: 0,
MailAttachments: [],
MailSignature: null,
Subject: 'Warenkorb "Test-Cart" abgelehnt',
To: [
{
EMail: 'ff@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
}
]
}
]
@@ -0,0 +1,31 @@
[
{
BCC: [],
Body: {
InlineImages: [],
Text: '{\rtf1\deff0 \stshfdbch3\stshfloch2\stshfhich2\stshfbi1{\fonttbl{\f0 Calibri;}{\fbiminor\f1 Times New Roman;}{\fhiminor\f2 Calibri;}{\fdbminor\f3 Times New Roman;}{\f4 Tahoma;}{\f5 Cambria Math;}}{\colortbl ;\red0\green0\blue0 ;\red0\green0\blue255 ;}{\*\defchp \fcs1\f1\fcs1\f1\hich\af2\loch\af2\dbch\af3\cgrid1\fs22}{\*\defpap \widctlpar}{\stylesheet {\ql\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Normal;}{\*\cs1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Default Paragraph Font;}{\*\cs2\sbasedon1\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22 Line Number;}{\*\cs3\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ul\cf2 Hyperlink;}{\*\ts4\tsrowd\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\tscellpaddfl3\tscellpaddl108\tscellpaddfb3\tscellpaddfr3\tscellpaddr108\tscellpaddft3\tsvertalt\cltxlrtb Normal Table;}{\*\ts5\tsrowd\sbasedon4\fcs1\af1\ltrch\fcs0\hich\af2\dbch\af3\loch\f2\fs22\ql\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10\trbrdrh\brdrs\brdrw10\trbrdrv\brdrs\brdrw10\tscellpaddfl3\tscellpaddl108\tscellpaddfr3\tscellpaddr108\tsvertalt\cltxlrtb Table Simple 1;}}{\*\listoverridetable}{\info{\version1}}{\mmathPr\mbrkBin0\mbrkBinSub0\mdefJc1\minterSp0\mintLim1\mintraSp0\mmathFont5\mnaryLim1\mpostSp0\mpreSp0\mrMargin0\msmallFrac0\mwrapIndent0\mwrapRight0}\nouicompat\htmautsp\splytwnine\alntblind\expshrtn\spltpgpar\nogrowautofit\utinl\nobrkwrptbl\ftnlytwnine\notcvasp\dntblnsbdb\newtblstyruls\pgbrdrhead\pgbrdrfoot\formshade\sectd\endnhere\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Sehr geehrte Damen und Herren,}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 der Warenkorb "}{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Test-Cart}{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 " ist jetzt bereit zur Pr\u252\\'fcfung.}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par\pard\plain\ql\widctlpar{\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1 Mit freundlichen Gr\u252\\'fc\u223\\'dfen!}\fcs1\af4\ltrch\fcs0\hich\af4\dbch\af3\loch\f4\fs20\cf1\par}',
Type: 1
},
CC: [],
From: {
EMail: 'noreply@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
},
I3D: 0,
MailAttachments: [],
MailSignature: null,
Subject: 'Warenkorb "Test-Cart" bereit zur Prüfung',
To: [
{
EMail: 'ff@c-entron.de',
FirstName: null,
I3D: 0,
LastName: null,
Salutation: null
}
]
}
]
@@ -0,0 +1,42 @@
using System;
using Centron.BusinessLogic;
using Centron.BusinessLogic.WebServices.Sales.Receipts;
using Centron.Data.Entities.Administration.Logins;
using CentronSoftware.Centron.WebServices.Entities.Sales.Receipts;
namespace Centron.Tests.EndToEnd.Tests.ReceiptCartReleaseSystem;
// This enum is used as a little helper for the test, to make it easier to call all these different actions
public enum ReceiptCartAction
{
ReadyForCheck,
CheckerApprove,
CheckerDecline,
ImproveCheckerDeclined,
OrdererApprove,
OrdererDecline,
ImproveOrdererDeclined
}
public static class ReceiptCartActionExtensions
{
public static Func<int, LoggedInUser, OrderCartResultDTO> GetActualMethod(this ReceiptCartAction action, BLSession session)
{
return action switch
{
ReceiptCartAction.ReadyForCheck => Wrap(session.GetBL<ReceiptCartReleaseSystemWebServiceBL>().ReadyCartForCheck),
ReceiptCartAction.CheckerApprove => Wrap(session.GetBL<ReceiptCartReleaseSystemWebServiceBL>().CheckerApproveCart),
ReceiptCartAction.CheckerDecline => Wrap(session.GetBL<ReceiptCartReleaseSystemWebServiceBL>().CheckerDeclineCart),
ReceiptCartAction.ImproveCheckerDeclined => Wrap(session.GetBL<ReceiptCartReleaseSystemWebServiceBL>().ImproveDeclinedByCheckerCart),
ReceiptCartAction.OrdererApprove => session.GetBL<ReceiptCartReleaseSystemWebServiceBL>().OrdererApproveCart,
ReceiptCartAction.OrdererDecline => Wrap(session.GetBL<ReceiptCartReleaseSystemWebServiceBL>().OrdererDeclineCart),
ReceiptCartAction.ImproveOrdererDeclined => Wrap(session.GetBL<ReceiptCartReleaseSystemWebServiceBL>().ImproveDeclinedByOrdererCart),
_ => throw new ArgumentOutOfRangeException()
};
Func<int, LoggedInUser, OrderCartResultDTO> Wrap(Action<int, LoggedInUser> action)
{
return (cartI3D, currentUser) => { action(cartI3D, currentUser); return null; };
}
}
}
@@ -0,0 +1,282 @@
using System;
using System.Linq;
using Centron.BusinessLogic;
using Centron.BusinessLogic.Administration.Settings;
using Centron.BusinessLogic.Mail.Factory;
using Centron.BusinessLogic.WebServices.Accounts.SpecialPrices;
using Centron.BusinessLogic.WebServices.Administration.Logins;
using Centron.BusinessLogic.WebServices.Sales.Receipts;
using Centron.Data.WebServices.Sales.Receipts;
using Centron.Data.WebServices.Sales.Receipts.Orders;
using Centron.Interfaces;
using Centron.Interfaces.Accounts.SpecialPrices;
using Centron.Interfaces.BL;
using Centron.Interfaces.Sales.Receipts;
using Centron.Tests.EndToEnd.Infrastructure;
using CentronSoftware.Centron.WebServices.Entities.Accounts.SpecialPrices;
using CentronSoftware.Centron.WebServices.Entities.Sales.Receipts;
using CentronSoftware.Centron.WebServices.EntitiesWrongPlace.Administration.Rights;
using Xunit;
using Xunit.Abstractions;
namespace Centron.Tests.EndToEnd.Tests.ReceiptCartReleaseSystem;
public class ReceiptCartReleaseSystemTests : EndToEndTest
{
public ReceiptCartReleaseSystemTests(ITestOutputHelper testOutputHelper)
: base(testOutputHelper)
{
// Order Table
this.Verifier.Settings.IgnoreColumn("Date");
this.Verifier.Settings.IgnoreColumn("CreatedAt");
this.Verifier.Settings.IgnoreColumn("ChangedAt");
this.Verifier.Settings.IgnoreColumn("ReminderDate");
this.Verifier.Settings.IgnoreColumn("ConcurrencyControlGuid");
this.Verifier.Settings.IgnoreColumn("RichText");
this.Verifier.Settings.IgnoreColumn("PaymentConditionText");
this.Verifier.Settings.IgnoreColumn("ToDoI3D");
this.Verifier.Settings.IgnoreColumn("CreatedThroughApplicationVersion");
this.Verifier.Settings.IgnoreColumn("ChangedThroughApplicationVersion");
// AnlageLog Table
this.Verifier.Settings.IgnoreColumn("Datum");
this.Verifier.Settings.IgnoreColumn("CentronVersion");
// ReceiptLogDTO
this.Verifier.Settings.IgnoreProperty<ReceiptLogDTO>(f => f.CentronVersion);
this.Verifier.Settings.IgnoreProperty<ReceiptLogDTO>(f => f.Employee);
}
// This test checks that the release-system workflow for receipt-carts is working correctly
// See the ReceiptCartState enum for the different states, and also for more information on how the workflow is supposed to work
private const int ArticleI3D = 80;
public override void Execute()
{
this.PrepareDatabase();
// Create a cart
var cartI3D = this.CreateCart();
// Make sure the right-checks work
this.AssertRightsMissingFor(cartI3D, new []
{
ReceiptCartAction.CheckerApprove,
ReceiptCartAction.CheckerDecline,
ReceiptCartAction.OrdererApprove,
ReceiptCartAction.OrdererDecline
});
// Give us the rights to call the release-system workflow methods
this.AddRights();
// Check successful release-system workflow
// This goes through every step of the workflow
// Created -> ReadyForCheck -> DeclinedByChecker -> ReadyForCheck -> Checked -> DeclinedByOrderer -> ReadyForCheck -> Checked -> Ordered
this.AssertCartState(
cartI3D,
ReceiptCartState.Created,
possibleActions: new []{ ReceiptCartAction.ReadyForCheck });
this.ExecuteAction(cartI3D, ReceiptCartAction.ReadyForCheck);
this.AssertCartState(
cartI3D,
ReceiptCartState.ReadyForCheck,
possibleActions: new [] { ReceiptCartAction.CheckerApprove, ReceiptCartAction.CheckerDecline });
this.ExecuteAction(cartI3D, ReceiptCartAction.CheckerDecline);
this.AssertCartState(
cartI3D,
ReceiptCartState.DeclinedByChecker,
possibleActions: new [] { ReceiptCartAction.ImproveCheckerDeclined });
this.ExecuteAction(cartI3D, ReceiptCartAction.ImproveCheckerDeclined);
this.AssertCartState(
cartI3D,
ReceiptCartState.ReadyForCheck,
possibleActions: new [] { ReceiptCartAction.CheckerApprove, ReceiptCartAction.CheckerDecline });
this.ExecuteAction(cartI3D, ReceiptCartAction.CheckerApprove);
this.AssertCartState(
cartI3D,
ReceiptCartState.Checked,
possibleActions: new [] { ReceiptCartAction.OrdererApprove, ReceiptCartAction.OrdererDecline });
this.ExecuteAction(cartI3D, ReceiptCartAction.OrdererDecline);
this.AssertCartState(
cartI3D,
ReceiptCartState.DeclinedByOrderer,
possibleActions: new [] { ReceiptCartAction.ImproveOrdererDeclined });
this.ExecuteAction(cartI3D, ReceiptCartAction.ImproveOrdererDeclined);
this.AssertCartState(
cartI3D,
ReceiptCartState.ReadyForCheck,
possibleActions: new [] { ReceiptCartAction.CheckerApprove, ReceiptCartAction.CheckerDecline });
this.ExecuteAction(cartI3D, ReceiptCartAction.CheckerApprove);
// CartState already asserted above
// Check logs now, because after the orderer approves the cart, the cart will not be accessible anymore
this.VerifyReceiptLogs(cartI3D);
var orderCartResult = this.ExecuteAction(cartI3D, ReceiptCartAction.OrdererApprove);
this.AssertCartState(
cartI3D,
ReceiptCartState.Ordered,
possibleActions: new ReceiptCartAction[0]); //At this point, no actions are possible anymore
this.VerifyOrderCartResult(orderCartResult);
this.VerifyOfferState(cartI3D);
}
private void PrepareDatabase()
{
using var session = new BLSession();
// Create a special price so we can test
session.GetBL<AccountSpecialPriceWebServiceBL>().SaveAccountSpecialPrice(this.GetLoggedInUser().User, new AccountSpecialPriceDTO
{
ObjectKind = CentronObjectKindNumeric.CustomerClass,
ObjectI3D = 10000,
ValueKind = SpecialPriceKind.ReduceListPrice,
Value = 10,
ArticleI3D = ArticleI3D,
CreatedByI3D = 1,
CreatedDate = new DateTime(2022, 1, 1)
});
// Specify email settings, otherwise the release-system workflow won't send any mails
var settings = session.GetBL<ReceiptCartWebServiceBL>().GetWebCartSettings(this.GetLoggedInUser());
settings.CartOrderedEmailSender = "noreply@c-entron.de";
settings.CartOrderedInternalEmailReceiver = "vertrieb@c-entron.de";
session.GetBL<ReceiptCartWebServiceBL>().UpdateWebCartSettings(settings);
// Set a easy list-price to calculate with
this.Sql($"UPDATE dbo.ARTIK SET Listenpreis = 600 WHERE I3D = {ArticleI3D}");
// Update setting, so offers don't close automatically
this.WithSession(session =>
{
var settings = session.GetBL<AppSettingsBL>().GetSettingsForUpdate(AppSettingsConst.CloseOfferAutomatically);
settings.UpdateInt(AppSettingsConst.CloseOfferAutomatically, 1); // 1 = Never
settings.SaveSettings();
});
}
private int CreateCart()
{
var cart = this.WithSession(s => s.GetBL<ReceiptCartWebServiceBL>().CreateNewCart(this.GetLoggedInUserWebAccount(), "Test-Cart", string.Empty));
this.WithSession(s => s.GetBL<ReceiptCartWebServiceBL>().AddArticleToCart(cart.I3D, ArticleI3D, 10, this.GetLoggedInUserWebAccount()));
var updateCartInfo = new UpdateCartInfoDTO
{
AssembleArticles = true,
ProjectNumber = "Projektnummer",
PurchaseOrderNumber = "Besondere Bestellnummer",
IsPartialDeliveryPossible = false,
DeliveryAddressZip = "12345",
DeliveryAddressCity = "Stadt",
DeliveryAddressStreet = "Straße",
DeliveryAddressCountryI3D = 2,
DeliveryAddressFirstName = "Günther",
DeliveryAddressLastName = "Netzer",
DeliveryAddressDepartment = "Lieferung auf das Helikopterpad bitte",
DeliveryAddressSalutationI3D = 2,
};
this.WithSession(s => s.GetBL<ReceiptCartWebServiceBL>().UpdateCartInfo(cart.I3D, updateCartInfo, this.GetLoggedInUserWebAccount()));
return cart.I3D;
}
private void AssertRightsMissingFor(int cartI3D, ReceiptCartAction[] actions)
{
// In the beginning we don't have
foreach (var action in actions)
{
using var session = new BLSession();
var method = action.GetActualMethod(session);
var ex = Assert.Throws<ResultException>(() => method(cartI3D, this.GetLoggedInUserWebAccount()));
Assert.Equal("Sie haben nicht die benötigten Rechte für diese Operation.", ex.Message);
}
}
private void AddRights()
{
var webAccount = this.WithSession(s => s.GetBL<WebAccountWebServiceBL>().GetWebAccountByContactPersonI3D(23)).ThrowIfError();
var webRights = this.WithSession(s => s.GetBL<WebAccountWebServiceBL>().GetAllWebRights()).ThrowIfError();
webAccount.WebRights.Add(webRights.First(f => f.I3D == (int)WebAccountRightsConst.WEBRIGHT_WEBCART2_CHECK_CART));
webAccount.WebRights.Add(webRights.First(f => f.I3D == (int)WebAccountRightsConst.WEBRIGHT_WEBCART2_ORDER_CART));
this.WithSession(s => s.GetBL<WebAccountWebServiceBL>().SaveWebAccount(webAccount, this.GetLoggedInUser()));
}
private void AssertCartState(int cartI3D, ReceiptCartState cartState, ReceiptCartAction[] possibleActions)
{
// Ensure that the current cart-state is the expected one
// Also make sure, that we can NOT call any of the not-possible action
var currentCartState = Enum.Parse<ReceiptCartState>(this.Sql<string>($"SELECT O.CartState FROM dbo.Offers O WHERE O.I3D = {cartI3D}"));
Assert.Equal(cartState, currentCartState);
var notPossibleActions = Enum.GetValues<ReceiptCartAction>().Except(possibleActions);
foreach (var notPossibleAction in notPossibleActions)
{
using var session = new BLSession();
var method = notPossibleAction.GetActualMethod(session);
var ex = Assert.Throws<ResultException>(() => method(cartI3D, this.GetLoggedInUserWebAccount()));
// After the cart is ordered, we don't allow access to it anymore, and behave as it doesn't exist
var expectedMessage = cartState is ReceiptCartState.Ordered
? "Der Warenkorb wurde nicht gefunden."
: "Der Warenkorb befindet sich bereits an einem anderen Schritt des Freigabewesens.";
Assert.Equal(expectedMessage, ex.Message);
}
}
private OrderCartResultDTO ExecuteAction(int cartI3D, ReceiptCartAction action)
{
// Execute the given ReceiptCartAction, to move the cart forward into the next step of the release-system workflow
OrderCartResultDTO result = null;
var mails = TestMails.Start(() =>
{
using var session = new BLSession();
var method = action.GetActualMethod(session);
result = method(cartI3D, this.GetLoggedInUserWebAccount());
});
this.Verifier.Verify($"{action}_Mails", mails);
return result;
}
private void VerifyOrderCartResult(OrderCartResultDTO orderCartResult)
{
this.Verifier.Verify("OrderCartResult", orderCartResult);
var order = (ReceiptOrderDTO)this.WithSession(s => s.GetBL<ReceiptWebServiceBL>().GetReceiptByI3D(orderCartResult.OrderI3D, CentronObjectKindNumeric.OrderClass)).ThrowIfError();
this.Verifier.Verify($"Order", order);
}
private void VerifyOfferState(int cartI3D)
{
this.Verifier.VerifySql("OfferState", $"SELECT State FROM dbo.Offers WHERE I3D = {cartI3D}");
}
private void VerifyReceiptLogs(int cartI3D)
{
this.Verifier.VerifySql("ReceiptLogsTable", $"SELECT * FROM dbo.AnlageLog WHERE AnlageI3D = {cartI3D} AND AnlageArt = 1 ORDER BY I3D");
var logs = this.WithSession(s => s.GetBL<ReceiptCartWebServiceBL>().GetCartLogs(cartI3D, this.GetLoggedInUserWebAccount()));
this.Verifier.Verify("ReceiptLogs", logs);
}
}
@@ -0,0 +1,82 @@
[
{
ContactPersonI3D: 23,
Date: DateTime,
Description: '"Franziska Franzen" hat den Warenkorb erstellt.',
I3D: 13961,
Kind: 81,
ReceiptI3D: 6751,
ReceiptKind: 1,
ReceiptVersion: 1
},
{
ContactPersonI3D: 23,
Date: DateTime,
Description: '"Franziska Franzen" hat den Warenkorb als "bereit zur Prüfung" markiert.',
I3D: 13963,
Kind: 82,
ReceiptI3D: 6751,
ReceiptKind: 1,
ReceiptVersion: 3
},
{
ContactPersonI3D: 23,
Date: DateTime,
Description: '"Franziska Franzen" hat den Warenkorb als Prüfer abgelehnt.',
I3D: 13964,
Kind: 84,
ReceiptI3D: 6751,
ReceiptKind: 1,
ReceiptVersion: 3
},
{
ContactPersonI3D: 23,
Date: DateTime,
Description: '"Franziska Franzen" hat den Warenkorb verbessert, dieser ist nun wieder bereit zur Prüfung.',
I3D: 13965,
Kind: 85,
ReceiptI3D: 6751,
ReceiptKind: 1,
ReceiptVersion: 3
},
{
ContactPersonI3D: 23,
Date: DateTime,
Description: '"Franziska Franzen" hat den Warenkorb als Prüfer freigegeben.',
I3D: 13966,
Kind: 83,
ReceiptI3D: 6751,
ReceiptKind: 1,
ReceiptVersion: 3
},
{
ContactPersonI3D: 23,
Date: DateTime,
Description: '"Franziska Franzen" hat den Warenkorb als Besteller abgelehnt.',
I3D: 13967,
Kind: 87,
ReceiptI3D: 6751,
ReceiptKind: 1,
ReceiptVersion: 3
},
{
ContactPersonI3D: 23,
Date: DateTime,
Description: '"Franziska Franzen" hat den Warenkorb verbessert, dieser ist nun wieder bereit zur Prüfung.',
I3D: 13968,
Kind: 88,
ReceiptI3D: 6751,
ReceiptKind: 1,
ReceiptVersion: 3
},
{
ContactPersonI3D: 23,
Date: DateTime,
Description: '"Franziska Franzen" hat den Warenkorb als Prüfer freigegeben.',
I3D: 13969,
Kind: 83,
ReceiptI3D: 6751,
ReceiptKind: 1,
ReceiptVersion: 3
}
]
@@ -0,0 +1,101 @@
[
{
I3D: '13961',
AnlageArt: '1',
Art: '81',
PersonalI3D: '47',
AnlageI3D: '6751',
AnlageVersion: '1',
Beschreibung: '"Franziska Franzen" hat den Warenkorb erstellt.',
Status: null,
ContactPersonI3D: '23'
},
{
I3D: '13962',
AnlageArt: '1',
Art: '56',
PersonalI3D: '47',
AnlageI3D: '6751',
AnlageVersion: '2',
Beschreibung: 'Positionsanzahl hat sich von 0 auf 1 geändert.',
Status: null,
ContactPersonI3D: null
},
{
I3D: '13963',
AnlageArt: '1',
Art: '82',
PersonalI3D: '47',
AnlageI3D: '6751',
AnlageVersion: '3',
Beschreibung: '"Franziska Franzen" hat den Warenkorb als "bereit zur Prüfung" markiert.',
Status: null,
ContactPersonI3D: '23'
},
{
I3D: '13964',
AnlageArt: '1',
Art: '84',
PersonalI3D: '47',
AnlageI3D: '6751',
AnlageVersion: '3',
Beschreibung: '"Franziska Franzen" hat den Warenkorb als Prüfer abgelehnt.',
Status: null,
ContactPersonI3D: '23'
},
{
I3D: '13965',
AnlageArt: '1',
Art: '85',
PersonalI3D: '47',
AnlageI3D: '6751',
AnlageVersion: '3',
Beschreibung: '"Franziska Franzen" hat den Warenkorb verbessert, dieser ist nun wieder bereit zur Prüfung.',
Status: null,
ContactPersonI3D: '23'
},
{
I3D: '13966',
AnlageArt: '1',
Art: '83',
PersonalI3D: '47',
AnlageI3D: '6751',
AnlageVersion: '3',
Beschreibung: '"Franziska Franzen" hat den Warenkorb als Prüfer freigegeben.',
Status: null,
ContactPersonI3D: '23'
},
{
I3D: '13967',
AnlageArt: '1',
Art: '87',
PersonalI3D: '47',
AnlageI3D: '6751',
AnlageVersion: '3',
Beschreibung: '"Franziska Franzen" hat den Warenkorb als Besteller abgelehnt.',
Status: null,
ContactPersonI3D: '23'
},
{
I3D: '13968',
AnlageArt: '1',
Art: '88',
PersonalI3D: '47',
AnlageI3D: '6751',
AnlageVersion: '3',
Beschreibung: '"Franziska Franzen" hat den Warenkorb verbessert, dieser ist nun wieder bereit zur Prüfung.',
Status: null,
ContactPersonI3D: '23'
},
{
I3D: '13969',
AnlageArt: '1',
Art: '83',
PersonalI3D: '47',
AnlageI3D: '6751',
AnlageVersion: '3',
Beschreibung: '"Franziska Franzen" hat den Warenkorb als Prüfer freigegeben.',
Status: null,
ContactPersonI3D: '23'
}
]