Skip to content

[Request for Extrenal] Report 8051 "Contract Deferrals Release" #29370

@NekaneBachillerMayoral

Description

@NekaneBachillerMayoral

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.

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, '<Month Text> <Year4>'));
    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"ΓÇÖ)

Internal work item: AB#612262

Metadata

Metadata

Assignees

No one assigned

    Labels

    FinanceGitHub request for Finance arearequest-for-externalRequest for exposing a function for extension development

    Type

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions