Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions build/groups.json
Original file line number Diff line number Diff line change
Expand Up @@ -9717,6 +9717,26 @@
}
]
},
{
"name": "Expense Withholding Tax",
"groups": [
{
"name": "AllExtensions"
},
{
"name": "Financials"
},
{
"name": "FinancialsExtensions"
},
{
"name": "OnPrem"
},
{
"name": "OnPremExtensions"
}
]
},
{
"name": "Excise Taxes",
"groups": [
Expand Down
30 changes: 30 additions & 0 deletions build/projects.json
Original file line number Diff line number Diff line change
Expand Up @@ -7177,6 +7177,36 @@
"ruleSetPath": "$ENV:INETROOT\\App\\Rulesets\\app.ruleset.json",
"ruleSetPathMinorRelease": "$ENV:INETROOT\\App\\Rulesets\\MinorRelease\\app.ruleset.json"
},
"Expense Withholding Tax": {
"projectPath": "$env:INETROOT\\App\\Apps\\W1\\ExpenseWithholdingTax\\app",
"hasTranslations": true,
"supportedCountries": [
"AT",
"BE",
"CA",
"CH",
"CZ",
"DE",
"DK",
"ES",
"FI",
"FR",
"GB",
"IS",
"MX",
"NL",
"NO",
"RU",
"SE",
"US",
"W1"
],
"installOnEnvironmentUpdate": true,
"runStaticCodeAnalysis": true,
"logLevel": "warning",
"ruleSetPath": "$ENV:INETROOT\\App\\BCApps\\src\\rulesets\\base.ruleset.json",
"ruleSetPathMinorRelease": "$ENV:INETROOT\\App\\Rulesets\\MinorRelease\\app.ruleset.json"
Comment thread
ViditGupta1277 marked this conversation as resolved.
},
"Payment Management FR": {
"projectPath": "$env:INETROOT\\App\\Apps\\FR\\PaymentManagementFR\\app",
"dvdFolder": "Applications\\PaymentManagementFR\\Source",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps AT/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseAgent/demo data",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps BE/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
"../../../src/Apps/W1/ExcelReports/App",
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps CA/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseAgent/demo data",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps CH/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
"../../../src/Apps/W1/ExcelReports/App",
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps CZ/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@
"../../../src/Apps/W1/ExcelReports/App",
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps DE/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseAgent/demo data",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps DK/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseAgent/demo data",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps ES/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseAgent/demo data",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps FI/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
"../../../src/Apps/W1/ExcelReports/App",
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps FR/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseAgent/demo data",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps GB/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseAgent/demo data",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps IS/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
"../../../src/Apps/W1/ExcelReports/App",
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps MX/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
"../../../src/Apps/W1/ExcelReports/App",
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps NL/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
"../../../src/Apps/W1/ExcelReports/App",
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps NO/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
"../../../src/Apps/W1/ExcelReports/App",
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps RU/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
"../../../src/Apps/W1/ExcelReports/App",
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps SE/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
"../../../src/Apps/W1/ExcelReports/App",
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps US/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseAgent/demo data",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
1 change: 1 addition & 0 deletions build/projects/Apps W1/.AL-Go/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
"../../../src/Apps/W1/ExcelReports/App",
"../../../src/Apps/W1/ExciseTaxes/app",
"../../../src/Apps/W1/ExpenseAgent/app",
"../../../src/Apps/W1/ExpenseWithholdingTax/app",
"../../../src/Apps/W1/External File Storage - Azure Blob Service Connector/App",
"../../../src/Apps/W1/External File Storage - Azure File Service Connector/App",
"../../../src/Apps/W1/External File Storage - SFTP Connector/App",
Expand Down
5 changes: 5 additions & 0 deletions src/Apps/W1/ExpenseAgent/app/app.json
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,11 @@
"id": "b299c435-af71-4b42-b15b-f1cdddd1a561",
"name": "Expense Agent (Preview) (GB)",
"publisher": "Microsoft"
},
{
"id": "4cb44e6c-9a37-4d4e-b45f-1b3054ddc59a",
"name": "Expense Withholding Tax",
"publisher": "Microsoft"
}
],
"screenshots": [],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@ codeunit 6987 "Expense Report-Post"

InsertExpenseLedgerEntry(GlobalExpenseLedgerEntry);

OnAfterProcessExpenseReportLine(ExpenseReportHeader, ExpenseReportLine, PostedExpenseReportLine, PostedExpenseReportHeader);
Comment thread
ViditGupta1277 marked this conversation as resolved.
until ExpenseReportLine.Next() = 0;

if not PreviewMode then
Expand Down Expand Up @@ -655,7 +656,10 @@ codeunit 6987 "Expense Report-Post"

SetupSourceCodeAndDimensions(GenJournalLine, ExpenseReportHeader."Dimension Set ID");
GenJournalLine."System-Created Entry" := true;

OnBeforePostEmployeeEntry(GenJournalLine, ExpenseReportHeader, PostedExpenseReportHeader);
GenJnlPostLine.RunWithCheck(GenJournalLine);
OnAfterPostEmployeeEntry(GenJournalLine, ExpenseReportHeader, PostedExpenseReportHeader);
end;

local procedure UpdateLastPostingNos(var ExpenseReportHeader: Record "Expense Report Header")
Expand Down Expand Up @@ -1253,4 +1257,19 @@ codeunit 6987 "Expense Report-Post"
// Delete the source aggregate rows now that they are safely in the posted table.
ExpenseReportLineVATSpec.DeleteAll();
end;

[IntegrationEvent(false, false)]
Comment thread
ViditGupta1277 marked this conversation as resolved.
local procedure OnAfterProcessExpenseReportLine(ExpenseReportHeader: Record "Expense Report Header"; ExpenseReportLine: Record "Expense Report Line"; PostedExpenseReportLine: Record "Posted Expense Report Line"; PostedExpenseReportHeader: Record "Posted Expense Report Header")
begin
end;

[IntegrationEvent(false, false)]
local procedure OnBeforePostEmployeeEntry(var GenJournalLine: Record "Gen. Journal Line"; ExpenseReportHeader: Record "Expense Report Header"; PostedExpenseReportHeader: Record "Posted Expense Report Header")
begin
end;

[IntegrationEvent(false, false)]
local procedure OnAfterPostEmployeeEntry(GenJournalLine: Record "Gen. Journal Line"; ExpenseReportHeader: Record "Expense Report Header"; PostedExpenseReportHeader: Record "Posted Expense Report Header")
begin
end;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.ExpenseTaxIntegration;

permissionset 7058 "Exp. Withholding Tax"
{
Assignable = true;
Caption = 'Expense Withholding Tax';

Permissions =

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

$\textbf{🔴\ Critical\ Severity\ —\ AppSource}$

The new assignable permission set "Exp. Withholding Tax" grants only the buffer table and two internal codeunits, but the app's setup and normal usage paths also depend on the Expense Category Card, Withholding Tax Posting Setup, and the extended General Journal page/fields. Without execute/tabledata coverage for those objects (or an equivalent included permission set), an assigned user cannot configure or use this feature without SUPER.

Knowledge:

👍 useful · ❤️ especially valuable · 👎 wrong - reply with why · AL review agent v1.32.4

tabledata "WHT Exp. Report Buffer" = RIMD,
Comment thread
ViditGupta1277 marked this conversation as resolved.
table "WHT Exp. Report Buffer" = X,
codeunit "WHT Expense Category Mgt." = X,
codeunit "WHT Exp. Report Post Handler" = X;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.ExpenseTaxIntegration;

using Microsoft.WithholdingTax;

table 7059 "WHT Exp. Report Buffer"
Comment thread
ViditGupta1277 marked this conversation as resolved.
{
Caption = 'Expense Report Withholding Tax Buffer';
Access = Internal;

fields
{
field(1; "Document No."; Code[20])
Comment thread
ViditGupta1277 marked this conversation as resolved.
{
Caption = 'Document No.';
DataClassification = SystemMetadata;
}
field(2; "Line No."; Integer)
{
Caption = 'Line No.';
DataClassification = SystemMetadata;
}
field(10; "Wthldg. Tax Bus. Post. Group"; Code[20])
{
Caption = 'Withholding Tax Bus. Posting Group';
TableRelation = "Wthldg. Tax Bus. Post. Group";
DataClassification = SystemMetadata;
}
field(11; "Wthldg. Tax Prod. Post. Group"; Code[20])
{
Caption = 'Withholding Tax Prod. Posting Group';
TableRelation = "Wthldg. Tax Prod. Post. Group";
DataClassification = SystemMetadata;
}
field(12; "Expense Category"; Code[20])
{
Caption = 'Expense Category';
DataClassification = SystemMetadata;
}
field(20; "WHT Base Amount (LCY)"; Decimal)
{
Caption = 'Withholding Tax Base Amount (LCY)';
DataClassification = SystemMetadata;
}
field(21; "WHT Amount (LCY)"; Decimal)
{
Caption = 'Withholding Tax Amount (LCY)';
DataClassification = SystemMetadata;
}
}

keys
{
key(PK; "Document No.", "Line No.")
{
Clustered = true;
}
}
}
Comment thread
ViditGupta1277 marked this conversation as resolved.
Loading
Loading