Skip to content

[Bug]: Subscription Billing - OnAfterCreateAdditionalInvoiceLine - Parameter SalesLine not useable #5304

@pri-kise

Description

@pri-kise

Describe the issue

The paramter SalesLine in the event OnAfterCreateAdditionalInvoiceLine is currently not useable, since the SalesLine is not the new created additional sales line.

Expected behavior

The SalesLine in the event should be the the newly created Attached Text Sales Line.

Steps to reproduce

  • Prepare the subscription contract setup
  • Create a customer contract
  • Create a sales invoice

Additional context

    local procedure CreateAdditionalInvoiceLine(ServiceContractSetupFieldNo: Integer; SalesHeader2: Record "Sales Header"; ParentSalesLine: Record "Sales Line"; ServiceObject: Record "Subscription Header"; ServiceCommitment: Record "Subscription Line")
    var
        SalesLine: Record "Sales Line";
        DescriptionText: Text;
    begin
        DescriptionText := GetAdditionalLineText(ServiceContractSetupFieldNo, ParentSalesLine, ServiceObject, ServiceCommitment);
        if DescriptionText = '' then
            exit;
        SalesLine.InsertDescriptionSalesLine(SalesHeader2, DescriptionText, ParentSalesLine."Line No.");
        OnAfterCreateAdditionalInvoiceLine(SalesLine, ParentSalesLine);
    end;

OnAfterCreateAdditionalInvoiceLine(SalesLine, ParentSalesLine);

I'd like to InsertDescriptionSalesLine to a new procedure that uses the Rec, instead of a local sales line parameter.

// Replace
    procedure InsertDescriptionSalesLine(SourceSalesHeader: Record "Sales Header"; NewDescription: Text; AttachedToLineNo: Integer)
    var
        SalesLine: Record "Sales Line";
    begin
        SalesLine.InitFromSalesHeader(SourceSalesHeader);
        SalesLine."Attached to Line No." := AttachedToLineNo;
        SalesLine.Description := CopyStr(NewDescription, 1, MaxStrLen(SalesLine.Description));
        SalesLine.Insert(false);
    end;
// with:

    procedure CreateAttachedSalesLine(SourceSalesHeader: Record "Sales Header"; NewDescription: Text; AttachedToLineNo: Integer)
    begin
        Rec.InitFromSalesHeader(SourceSalesHeader);
        Rec."Attached to Line No." := AttachedToLineNo;
        Rec.Description := CopyStr(NewDescription, 1, MaxStrLen(SalesLine.Description));
        Rec.Insert(false);
    end;

I will provide a fix for a bug

  • I will provide a fix for a bug

Metadata

Metadata

Assignees

Labels

ApprovedThe issue is approvedFinanceGitHub request for Finance area

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions