Skip to content

[Contribution Process Bug]: #6050

@NekaneBachillerMayoral

Description

@NekaneBachillerMayoral

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Contribution-BugSomething isn't working in the contribution process

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions