Skip to content

Commit

Permalink
Implement first event type
Browse files Browse the repository at this point in the history
  • Loading branch information
StefanMaron committed Jan 10, 2024
1 parent 814ffa4 commit 6665aaa
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,8 @@ namespace StefanMaron.Ntfy;

codeunit 71179876 EmptyEventNTSTM implements INtfyEventNTSTM
{
procedure SetFilters()
procedure SetFilters(NtfyEntry: Record NtfyEntryNTSTM);
begin

end;

procedure ApplyFilters()
begin

end;

}
6 changes: 5 additions & 1 deletion MSDyn365BC.Ntfy/src/foundation/EventTypes/EventType.Enum.al
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,9 @@ enum 71179875 EventTypeNTSTM implements INtfyEventNTSTM
}

value(1; SalesDocumentReopened) { }
value(2; SalesDocumentReleased) { }
value(2; SalesDocumentReleased)
{
Caption = 'Sales document released';
Implementation = INtfyEventNTSTM = SalesDocumentReleasedNTSTM;
}
}
3 changes: 1 addition & 2 deletions MSDyn365BC.Ntfy/src/foundation/EventTypes/INtfyEvent.al
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ namespace StefanMaron.Ntfy;

interface INtfyEventNTSTM
{
procedure SetFilters()
procedure ApplyFilters()
procedure SetFilters(NtfyEntry: Record NtfyEntryNTSTM)

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
namespace StefanMaron.Ntfy;
using Microsoft.Sales.Document;
using System.RestClient;

codeunit 71179877 SalesDocumentReleasedNTSTM implements INtfyEventNTSTM
{

procedure SetFilters(NtfyEntry: Record NtfyEntryNTSTM)
var
FilterPageBuilder: FilterPageBuilder;
begin
FilterPageBuilder.AddTable('Sales Header', Database::"Sales Header");
if FilterPageBuilder.RunModal() then begin
NtfyEntry.Validate(FilterText, FilterPageBuilder.GetView('Sales Header'));
NtfyEntry.Modify(true);
end;
end;

[EventSubscriber(ObjectType::Codeunit, Codeunit::"Release Sales Document", OnAfterReleaseSalesDoc, '', false, false)]
local procedure SentNtfyOnAfterReleaseSalesDoc(var SalesHeader: Record "Sales Header")
var
FilterSalesHeader: Record "Sales Header";
NtfyEntry: Record NtfyEntryNTSTM;
RestClient: Codeunit "Rest Client";
Body: Codeunit "Http Content";
DoCall: Boolean;
begin
NtfyEntry.SetRange(EventType, NtfyEntry.EventType::SalesDocumentReleased);
NtfyEntry.SetFilter(NtfyTopic, '<>%1', '');
if NtfyEntry.FindSet() then
repeat
Clear(Body);
Clear(RestClient);
Clear(FilterSalesHeader);
DoCall := false;

if NtfyEntry.FilterText <> '' then begin
FilterSalesHeader.SetView(NtfyEntry.FilterText);
FilterSalesHeader.FilterGroup(2);
FilterSalesHeader.SetRange(SystemId, SalesHeader."SystemId");
DoCall := not FilterSalesHeader.IsEmpty();
end;

if DoCall then begin
Body.Create(StrSubstNo('Sales %1 - %2 - has been released', SalesHeader."Document Type", SalesHeader."No."));
RestClient.Post(StrSubstNo('https://ntfy.sh/%1', NtfyEntry.NtfyTopic), Body).GetContent().AsText();
end;
until NtfyEntry.Next() = 0;

end;

}
5 changes: 5 additions & 0 deletions MSDyn365BC.Ntfy/src/foundation/NtfyEntry.Table.al
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@ table 71179875 NtfyEntryNTSTM
{
Caption = 'Event Type';
}
field(4; FilterText; Text[2048])
{
AllowInCustomizations = Never;
Caption = 'Filter Text';
}
}

keys
Expand Down

0 comments on commit 6665aaa

Please sign in to comment.