RE: CurrencyFactor by Document Date
I used EventSubscription:
[EventSubscriber(ObjectType::Table, Database::"Purchase Header", 'OnAfterValidateEvent', 'Document Date', false, false)]
local procedure CallOnUpdateExchangeRate(CurrFieldNo: Integer; var Rec: Record "Purchase Header"; var xRec: Record "Purchase Header")
begin
if Rec."Currency Code" <> '' then
Rec.UpdateCurrencyFactor();
if Rec."Currency Factor" <> xRec."Currency Factor" then begin
Rec.ConfirmCurrencyFactorUpdate();
end;
end;
[EventSubscriber(ObjectType::Table, Database::"Purchase Header", 'OnUpdateCurrencyFactorOnAfterCurrencyDateSet', '', false, false)]
local procedure UpdateExchangeRate(CurrentFieldNo: Integer; var CurrencyDate: Date; var PurchaseHeader: Record "Purchase Header")
begin
CurrencyDate := PurchaseHeader."Document Date";
CurrentFieldNo := PurchaseHeader.FieldNo("Document Date");
end;