Skip to content

Report 8051 "Contract Deferrals Release" #7896

@NekaneBachillerMayoral

Description

@NekaneBachillerMayoral

Describe the issue

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

e 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

I will provide a fix for a bug

  • I will provide a fix for a bug

Metadata

Metadata

Labels

ApprovedThe issue is approvedFinanceGitHub request for Finance area

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions