-
Notifications
You must be signed in to change notification settings - Fork 459
[FR E-Reporting] Add payment and invoice lifecycle messages #10437
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Milica Đukić (djukicmilica)
merged 58 commits into
main
from
feature/fr-collected-refused-messages
Sep 15, 2026
Merged
Changes from all commits
Commits
Show all changes
58 commits
Select commit
Hold shift + click to select a range
08c3cc0
Add synchronous E-Document message transport
31b4bb0
Add French collected and refused messages
dc09a12
Merge branch 'main' of https://github.com/microsoft/BCApps into featu…
31387e6
new
161edf4
new changes
53b2023
tests updated
bcef50b
ai test updates
54fcc33
PR comment changes
6cff425
new comments fixes
6a85318
new
19a729b
vat changes
7a454d7
reason code upd
dc578d2
Task 647421
c55c5d4
retry
70ca478
PPF context changes
80c8837
Added Validatior, asynh
67d718e
errors compile
05f4c34
tests fix
f5b8567
Merge branch 'main' into feature/fr-collected-refused-messages
62dd4e4
compile errors
ad98e96
tests update
bb53620
tests updated
2e6e4e3
Object ID changed
e3a91c8
Fix E-Document test object ID collision
372c19e
Merge branch 'main' into feature/fr-collected-refused-messages
b7a91c6
update
82f63eb
Merge branch 'main' into feature/fr-collected-refused-messages
991a431
Fix Factur-X test variable shadowing
e9d53e8
Merge branch 'main' into feature/fr-collected-refused-messages
4b51423
Merge branch 'main' into feature/fr-collected-refused-messages
24e1a2d
Added payload and external-reference cleanup
0352707
removed msg status and retry
7482b3e
upd
492e6bc
move tooltips
c338520
ResolveFrenchService condition
1043838
Pr comments changes
69f597a
object ID changed
23fe6c7
TASK 647421
18505a5
PR commnet changes
f050e29
test fix
2f40dd8
added try function and telemetry
df2aa42
Merge branch 'feature/fr-collected-refused-messages' of https://githu…
4a91f8d
Fix E-Document analyzer warnings
5c97aa7
Merge branch 'main' into feature/fr-collected-refused-messages
676e1ba
tests update
0e167f1
accept and refuse only for fr
964dfe6
backgroundjobs
272a916
new changes
26511fe
compile err
5342a13
test
11f4ddd
DataClassificationEvalData
e279968
removed code from install and upgrade cu
f2d4900
git merge
89eb7f8
object ID fix
71299e4
Export requested receipt dates in PEPPOL orders
357036c
Apply PEPPOL requested delivery dates to sales lines
405754d
Revert "Apply PEPPOL requested delivery dates to sales lines"
f3783b8
Revert "Export requested receipt dates in PEPPOL orders"
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
27 changes: 27 additions & 0 deletions
27
src/Apps/FR/EDocument_FR/EReportingFR/app/Permissions/EReportingFRUser.PermissionSet.al
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| // ------------------------------------------------------------------------------------------------ | ||
| // Copyright (c) Microsoft Corporation. All rights reserved. | ||
| // Licensed under the MIT License. See License.txt in the project root for license information. | ||
| // ------------------------------------------------------------------------------------------------ | ||
| namespace Microsoft.eServices.EDocument.Formats; | ||
|
|
||
| using Microsoft.eServices.EDocument; | ||
|
|
||
| permissionset 10988 "E-Reporting FR User" | ||
| { | ||
| Assignable = true; | ||
| Caption = 'E-Reporting FR - User'; | ||
|
|
||
| IncludedPermissionSets = "E-Doc. Core - User"; | ||
|
|
||
| Permissions = | ||
|
djukicmilica marked this conversation as resolved.
|
||
| table "FR E-Invoice Message" = X, | ||
| tabledata "FR E-Invoice Message" = R, | ||
| table "FR E-Invoice Message VAT" = X, | ||
| tabledata "FR E-Invoice Message VAT" = R, | ||
| codeunit "FR E-Invoice Message Mgt." = X, | ||
| codeunit "FR E-Invoice Message Builder" = X, | ||
| codeunit "FR E-Invoice Profile Validator" = X, | ||
| codeunit "FR E-Invoice Message API" = X, | ||
| page "FR E-Invoice Refusal Dialog" = X, | ||
| page "FR E-Invoice Messages" = X; | ||
|
djukicmilica marked this conversation as resolved.
|
||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
191 changes: 191 additions & 0 deletions
191
src/Apps/FR/EDocument_FR/EReportingFR/app/src/Core/FREInvoiceMessage.Table.al
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,191 @@ | ||
| // ------------------------------------------------------------------------------------------------ | ||
| // Copyright (c) Microsoft Corporation. All rights reserved. | ||
| // Licensed under the MIT License. See License.txt in the project root for license information. | ||
| // ------------------------------------------------------------------------------------------------ | ||
| namespace Microsoft.eServices.EDocument.Formats; | ||
|
|
||
| using Microsoft.eServices.EDocument; | ||
|
|
||
| table 10970 "FR E-Invoice Message" | ||
| { | ||
| Access = Internal; | ||
| Caption = 'FR E-Invoice Message'; | ||
| DataClassification = CustomerContent; | ||
| InherentEntitlements = X; | ||
| InherentPermissions = X; | ||
| Permissions = tabledata "FR E-Invoice Message VAT" = d; | ||
| ReplicateData = false; | ||
|
djukicmilica marked this conversation as resolved.
|
||
|
|
||
| fields | ||
| { | ||
| field(1; "Entry No."; Integer) | ||
| { | ||
| AutoIncrement = true; | ||
| Caption = 'Entry No.'; | ||
| DataClassification = SystemMetadata; | ||
| } | ||
| field(2; "E-Document Entry No."; Integer) | ||
| { | ||
| Caption = 'E-Document Entry No.'; | ||
| DataClassification = SystemMetadata; | ||
| TableRelation = "E-Document"."Entry No"; | ||
| } | ||
| field(3; Type; Enum "FR E-Invoice Message Type") | ||
| { | ||
| Caption = 'Type'; | ||
| DataClassification = SystemMetadata; | ||
| ToolTip = 'Specifies the French lifecycle status represented by this message.'; | ||
| } | ||
| field(4; "Source Occurrence ID"; Guid) | ||
| { | ||
| Caption = 'Source Occurrence ID'; | ||
| DataClassification = SystemMetadata; | ||
| ToolTip = 'Specifies the immutable source identifier used to prevent duplicate lifecycle messages.'; | ||
| } | ||
| field(5; "Original Entry No."; Integer) | ||
| { | ||
| Caption = 'Original Entry No.'; | ||
| DataClassification = SystemMetadata; | ||
| TableRelation = "FR E-Invoice Message"."Entry No."; | ||
| ToolTip = 'Specifies the original collected message reversed by a negative collected message.'; | ||
| } | ||
| field(6; Amount; Decimal) | ||
| { | ||
| AutoFormatExpression = Rec."Currency Code"; | ||
| AutoFormatType = 1; | ||
| Caption = 'Amount'; | ||
| DataClassification = CustomerContent; | ||
| ToolTip = 'Specifies the payment amount reported by a collected or negative collected message.'; | ||
| } | ||
| field(7; "Currency Code"; Code[10]) | ||
| { | ||
| Caption = 'Currency Code'; | ||
| DataClassification = CustomerContent; | ||
| ToolTip = 'Specifies the currency of the reported payment amount.'; | ||
| } | ||
| field(8; "Event Date"; Date) | ||
| { | ||
| Caption = 'Event Date'; | ||
| DataClassification = CustomerContent; | ||
| ToolTip = 'Specifies the business date on which the lifecycle event occurred.'; | ||
| } | ||
| field(9; "Detailed Ledger Entry No."; Integer) | ||
| { | ||
| Caption = 'Detailed Ledger Entry No.'; | ||
| DataClassification = SystemMetadata; | ||
| } | ||
| field(10; "Reason Code"; Code[20]) | ||
| { | ||
| Caption = 'Reason Code'; | ||
| DataClassification = CustomerContent; | ||
| ToolTip = 'Specifies the reason code supplied for the lifecycle status.'; | ||
| } | ||
| field(11; "Reason Description"; Text[500]) | ||
| { | ||
| Caption = 'Reason Description'; | ||
| DataClassification = CustomerContent; | ||
| ToolTip = 'Specifies the reason description supplied for the lifecycle status.'; | ||
| } | ||
| field(12; "E-Document Message Entry No."; Integer) | ||
|
djukicmilica marked this conversation as resolved.
|
||
| { | ||
| Caption = 'E-Document Message Entry No.'; | ||
| DataClassification = SystemMetadata; | ||
| ToolTip = 'Specifies the related generic E-Document message entry.'; | ||
| } | ||
|
djukicmilica marked this conversation as resolved.
|
||
| field(13; "Created At"; DateTime) | ||
| { | ||
| Caption = 'Created At'; | ||
| DataClassification = SystemMetadata; | ||
| ToolTip = 'Specifies when the French lifecycle message was created.'; | ||
| } | ||
| field(14; "External Message ID"; Text[250]) | ||
| { | ||
| Caption = 'External Message ID'; | ||
| DataClassification = CustomerContent; | ||
| ToolTip = 'Specifies the identifier assigned to an incoming lifecycle message by the external service.'; | ||
| } | ||
| field(15; "Received At"; DateTime) | ||
| { | ||
| Caption = 'Received At'; | ||
| DataClassification = SystemMetadata; | ||
| ToolTip = 'Specifies when the incoming lifecycle message was received.'; | ||
| } | ||
| field(16; "Sender Platform ID"; Text[50]) | ||
| { | ||
| Caption = 'Sender Platform ID'; | ||
| DataClassification = OrganizationIdentifiableInformation; | ||
| ToolTip = 'Specifies the frozen identifier of the sender platform.'; | ||
| } | ||
| field(17; "Sender Platform Scheme"; Code[4]) | ||
| { | ||
| Caption = 'Sender Platform Scheme'; | ||
| DataClassification = SystemMetadata; | ||
| ToolTip = 'Specifies the frozen identifier scheme of the sender platform.'; | ||
| } | ||
| field(18; "Sender Platform Name"; Text[100]) | ||
| { | ||
| Caption = 'Sender Platform Name'; | ||
| DataClassification = OrganizationIdentifiableInformation; | ||
| ToolTip = 'Specifies the frozen name of the sender platform.'; | ||
| } | ||
| field(19; "Invoice Issue Date"; Date) | ||
| { | ||
| Caption = 'Invoice Issue Date'; | ||
| DataClassification = CustomerContent; | ||
| ToolTip = 'Specifies the frozen issue date of the invoice.'; | ||
| } | ||
| field(20; "Invoice Receipt At"; DateTime) | ||
| { | ||
| Caption = 'Invoice Receipt At'; | ||
| DataClassification = CustomerContent; | ||
| ToolTip = 'Specifies the frozen date and time when the sender platform received the invoice.'; | ||
| } | ||
| field(21; "Invoice Issuer ID"; Text[50]) | ||
| { | ||
| Caption = 'Invoice Issuer ID'; | ||
| DataClassification = OrganizationIdentifiableInformation; | ||
| ToolTip = 'Specifies the frozen SIREN identifier of the invoice issuer.'; | ||
| } | ||
| field(22; "Invoice Issuer Scheme"; Code[4]) | ||
| { | ||
| Caption = 'Invoice Issuer Scheme'; | ||
| DataClassification = SystemMetadata; | ||
| ToolTip = 'Specifies the frozen identifier scheme of the invoice issuer.'; | ||
| } | ||
| field(23; "Invoice Issuer Name"; Text[100]) | ||
| { | ||
| Caption = 'Invoice Issuer Name'; | ||
| DataClassification = OrganizationIdentifiableInformation; | ||
| ToolTip = 'Specifies the frozen name of the invoice issuer.'; | ||
| } | ||
| } | ||
|
|
||
| keys | ||
| { | ||
| key(PK; "Entry No.") | ||
| { | ||
| Clustered = true; | ||
| } | ||
| key(Occurrence; "E-Document Entry No.", "Source Occurrence ID", Type) | ||
|
djukicmilica marked this conversation as resolved.
|
||
| { | ||
| Unique = true; | ||
| } | ||
| key(EDocumentType; "E-Document Entry No.", Type) | ||
| { | ||
| } | ||
| key(DetailedLedgerEntry; Type, "Detailed Ledger Entry No.") | ||
| { | ||
| } | ||
| key(EDocumentMessage; "E-Document Message Entry No.") | ||
| { | ||
| } | ||
| } | ||
|
|
||
| trigger OnDelete() | ||
| var | ||
| FREInvoiceMessageVAT: Record "FR E-Invoice Message VAT"; | ||
| begin | ||
| FREInvoiceMessageVAT.SetRange("Message Entry No.", Rec."Entry No."); | ||
| FREInvoiceMessageVAT.DeleteAll(false); | ||
| end; | ||
| } | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.