-
Notifications
You must be signed in to change notification settings - Fork 308
Description
Describe the issue
Why do you need this change?
In order to document the Contract Deferrals release for customer and vendor with additional data in G/L Entriess, we require certain events and additional parameters in a function.
Expected behavior
Describe the request
We need a new parameter in the following functions with the Service partner
local procedure InsertTempGenJournalLine(DocumentNo: Code[20]; ContractNo: Code[20]; DeferralEntryNo: Integer; DimSetID: Integer; AccountNo: Code[20]; BalAccountNo: Code[20]; GenBusPostingGroup: Code[20]; GenProdPostingGroup: Code[20]; PostingAmount: Decimal;Partner: Enum ΓÇÿService PartnerΓÇÖ)
and
local procedure InsertTempGenJournalLine(DocumentNo: Code[20]; ContractNo: Code[20]; DeferralEntryNo: Integer; DimSetID: Integer; AccountNo: Code[20]; BalAccountNo: Code[20]; PostingAmount: Decimal; GenBusPostingGroup: Code[20]; GenProdPostingGroup: Code[20];Partner: Enum ΓÇÿService PartnerΓÇÖ)
And change the next procedures for send this prameter
internal procedure ReleaseCustomerContractDeferralAndInsertTempGenJournalLine(var CustomerContractDeferral: Record "Cust. Sub. Contract Deferral")
...
ReleaseContractDeferral(Enum::"Service Partner"::Customer, CustomerContractDeferral."Entry No.");
InsertTempGenJournalLine(
CustomerContractDeferral."Document No.",
CustomerContractDeferral."Subscription Contract No.",
CustomerContractDeferral."Entry No.",
CustomerContractDeferral."Dimension Set ID",
GenPostingSetup."Cust. Sub. Contract Account",
GenPostingSetup."Cust. Sub. Contr. Def Account",
GenBusPostingGroup,
GenProdPostingGroup,
GetPostingAmount(CustomerContractDeferral.Amount, CustomerContractDeferral."Discount Amount"),**_Enum::"Service Partner"::Customer_**);
internal procedure ReleaseVendorContractDeferralsAndInsertTempGenJournalLines(var VendorContractDeferral: Record "Vend. Sub. Contract Deferral")
ReleaseContractDeferral(Enum::"Service Partner"::Vendor, VendorContractDeferral."Entry No.");
InsertTempGenJournalLine(
VendorContractDeferral."Document No.",
VendorContractDeferral."Subscription Contract No.",
VendorContractDeferral."Entry No.",
VendorContractDeferral."Dimension Set ID",
GenPostingSetup."Vend. Sub. Contract Account",
GenPostingSetup."Vend. Sub. Contr. Def. Account",
GenBusPostingGroup,
GenProdPostingGroup,
GetPostingAmount(VendorContractDeferral.Amount, VendorContractDeferral."Discount Amount"),Enum::"Service Partner"::Vendor);
We need an integration event at the procedure
local procedure InsertTempGenJournalLine(DocumentNo: Code[20]; ContractNo: Code[20]; DeferralEntryNo: Integer; DimSetID: Integer; AccountNo: Code[20]; BalAccountNo: Code[20]; PostingAmount: Decimal; GenBusPostingGroup: Code[20]; GenProdPostingGroup: Code[20];Partner: Enum ΓÇÿService PartnerΓÇÖ)
begin
LineNo += 1;
TempGenJournalLine."Account No." := AccountNo;
TempGenJournalLine."Bal. Account No." := BalAccountNo;
TempGenJournalLine."Document No." := DocumentNo;
TempGenJournalLine."Subscription Contract No." := ContractNo;
TempGenJournalLine."Gen. Bus. Posting Group" := GenBusPostingGroup;
TempGenJournalLine."Gen. Prod. Posting Group" := GenProdPostingGroup;
TempGenJournalLine."Dimension Set ID" := DimSetID;
TempGenJournalLine.Amount := PostingAmount;
TempGenJournalLine."Line No." := LineNo;
TempGenJournalLine."Deferral Line No." := DeferralEntryNo;
OnBeforeInsertTemGenJournalLine(TempGenJournalLine,Partner)
TempGenJournalLine.Insert(false);
end;
where TempGenJournalLine may be var
[IntegrationEvent(false, false)]
Local procedure OnBeforeInsertTemGenJournalLine(var TempGenJournalLine: Record "Gen. Journal Line";Partner: Enum ΓÇÿService PartnerΓÇÖ)
And need event at next procedure for transfer the data in TempGenJournalLine to GenJnlLine before post the data
procedure PostGenJnlLine(var TempGenJournalLine: Record "Gen. Journal Line" temporary; PostingDate: Date; SourceCodeSetupContractDeferralsRelease: Code[10])
var
GenJnlLine: Record "Gen. Journal Line";
begin
GenJnlLine.Init();
GenJnlLine."Journal Template Name" := ServiceContractSetup."Def. Rel. Jnl. Template Name";
GenJnlLine."Journal Batch Name" := ServiceContractSetup."Def. Rel. Jnl. Batch Name";
GenJnlLine."Document No." := TempGenJournalLine."Document No.";
GenJnlLine."Account Type" := GenJnlLine."Account Type"::"G/L Account";
GenJnlLine."VAT Posting" := GenJnlLine."VAT Posting"::"Manual VAT Entry";
GenJnlLine.Validate("Account No.", TempGenJournalLine."Account No.");
GenJnlLine."Posting Date" := PostingDate;
GenJnlLine.Description := StrSubstNo(ReleasingOfContractNoTxt, Format(GenJnlLine."Posting Date", 0, ' '));
GenJnlLine."Subscription Contract No." := TempGenJournalLine."Subscription Contract No.";
GenJnlLine.Validate(Amount, TempGenJournalLine.Amount);
GenJnlLine.Validate("Dimension Set ID", TempGenJournalLine."Dimension Set ID");
GenJnlLine."Source Code" := SourceCodeSetupContractDeferralsRelease;
GenJnlLine."System-Created Entry" := true;
GenJnlLine."Gen. Posting Type" := GenJnlLine."Gen. Posting Type"::" ";
GenJnlLine."Gen. Bus. Posting Group" := '';
GenJnlLine."Gen. Prod. Posting Group" := '';
GenJnlLine."VAT Bus. Posting Group" := '';
GenJnlLine."VAT Prod. Posting Group" := '';
OnBeforePostGenJnlLint(TempGenJournalLine,GenJnlLine);
GenJnlPostLine.RunWithCheck(GenJnlLine);
GenJnlLine.Validate("Account No.", TempGenJournalLine."Bal. Account No.");
GenJnlLine.Validate("Dimension Set ID", TempGenJournalLine."Dimension Set ID");
GenJnlLine.Validate(Amount, -TempGenJournalLine.Amount);
GenJnlLine."Gen. Posting Type" := GenJnlLine."Gen. Posting Type"::" ";
GenJnlLine."Gen. Bus. Posting Group" := '';
GenJnlLine."Gen. Prod. Posting Group" := '';
GenJnlLine."VAT Bus. Posting Group" := '';
GenJnlLine."VAT Prod. Posting Group" := '';
**OnBeforePostGenJnlLine(TempGenJournalLine,GenJnlLine);**
GenJnlLine.Description := StrSubstNo(ReleasingOfContractNoTxt, Format(GenJnlLine."Posting Date", 0, '<Month Text> <Year4>'));
GenJnlPostLine.RunWithCheck(GenJnlLine);
end;
[IntegrationEvent(false, false)]
Local procedure OnBeforePostGenJnlLint(TempGenJournalLine: Record "Gen. Journal Line";var GenJournalLine: Record "Gen. Journal Line"ΓÇÖ)
Steps to reproduce
No action is required to reproduce the issue. It involves creating new subscription events to improve functionality.
Additional context
No response