Skip to content

KVSADVClCrMemoEntryCreateSales#

Events#

OnBeforeCreateClCMEntryFromDocumentLine(Record Cust. Ledger Entry, Record Sales Line, Decimal, Boolean) :#

[IntegrationEvent(false, false)]
local procedure OnBeforeCreateClCMEntryFromDocumentLine(AdvInvCVLedgEntry: Record "Cust. Ledger Entry"; DocumentLine: Record "Sales Line"; DocHeaderCurrFactor: Decimal; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSADVClCrMemoEntryCreateSales", 'OnBeforeCreateClCMEntryFromDocumentLine', '', false, false)]
local procedure DoSomethingOnBeforeCreateClCMEntryFromDocumentLine(AdvInvCVLedgEntry: Record "Cust. Ledger Entry"; DocumentLine: Record "Sales Line"; DocHeaderCurrFactor: Decimal; var IsHandled: Boolean)
begin
end;

OnAfterCreateClCMEntryFromDocumentLine(Record Cust. Ledger Entry, Record Sales Line, Decimal, Record KVSADVAdvClosingCredMemoEntry) :#

[IntegrationEvent(false, false)]
local procedure OnAfterCreateClCMEntryFromDocumentLine(AdvInvCVLedgEntry: Record "Cust. Ledger Entry"; DocumentLine: Record "Sales Line"; DocHeaderCurrFactor: Decimal; var AdvClCredMemoEntry: Record "KVSADVAdvClosingCredMemoEntry"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSADVClCrMemoEntryCreateSales", 'OnAfterCreateClCMEntryFromDocumentLine', '', false, false)]
local procedure DoSomethingOnAfterCreateClCMEntryFromDocumentLine(AdvInvCVLedgEntry: Record "Cust. Ledger Entry"; DocumentLine: Record "Sales Line"; DocHeaderCurrFactor: Decimal; var AdvClCredMemoEntry: Record "KVSADVAdvClosingCredMemoEntry")
begin
end;

OnBeforeUpdateClCMEntryFromDocumentLine(Record Cust. Ledger Entry, Record Sales Line, Record Sales Header) :#

[IntegrationEvent(false, false)]
local procedure OnBeforeUpdateClCMEntryFromDocumentLine(var AdvInvCVLedgEntry: Record "Cust. Ledger Entry"; var DocumentLine: Record "Sales Line"; var DocumentHeader: Record "Sales Header"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSADVClCrMemoEntryCreateSales", 'OnBeforeUpdateClCMEntryFromDocumentLine', '', false, false)]
local procedure DoSomethingOnBeforeUpdateClCMEntryFromDocumentLine(var AdvInvCVLedgEntry: Record "Cust. Ledger Entry"; var DocumentLine: Record "Sales Line"; var DocumentHeader: Record "Sales Header")
begin
end;

OnAfterUpdateClosCrMemoEntriesWhilePostDocument(Record Sales Line, Record KVSADVAdvClosingCredMemoEntry) :#

[IntegrationEvent(false, false)]
local procedure OnAfterUpdateClosCrMemoEntriesWhilePostDocument(ClCMDocumentLine: Record "Sales Line"; var ExistingAdvClCredMemoEntry: Record "KVSADVAdvClosingCredMemoEntry"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSADVClCrMemoEntryCreateSales", 'OnAfterUpdateClosCrMemoEntriesWhilePostDocument', '', false, false)]
local procedure DoSomethingOnAfterUpdateClosCrMemoEntriesWhilePostDocument(ClCMDocumentLine: Record "Sales Line"; var ExistingAdvClCredMemoEntry: Record "KVSADVAdvClosingCredMemoEntry")
begin
end;

OnBeforeInsertClosingCMEntriesForDocumentPosting(Record Sales Header, Record Sales Line, Boolean) :#

[IntegrationEvent(false, false)]
local procedure OnBeforeInsertClosingCMEntriesForDocumentPosting(DocumentHeader: Record "Sales Header"; DocumentLine: Record "Sales Line"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSADVClCrMemoEntryCreateSales", 'OnBeforeInsertClosingCMEntriesForDocumentPosting', '', false, false)]
local procedure DoSomethingOnBeforeInsertClosingCMEntriesForDocumentPosting(DocumentHeader: Record "Sales Header"; DocumentLine: Record "Sales Line"; var IsHandled: Boolean)
begin
end;

OnAfterCreatePostedClosingCMEntryFromDocumentPosting(Record Sales Header, Record Sales Line, Record KVSADVPostedAdvClosCrMemoEntry) :#

[IntegrationEvent(false, false)]
local procedure OnAfterCreatePostedClosingCMEntryFromDocumentPosting(DocumentHeader: Record "Sales Header"; DocumentLine: Record "Sales Line"; var PostedClosingCMEntry: Record "KVSADVPostedAdvClosCrMemoEntry"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSADVClCrMemoEntryCreateSales", 'OnAfterCreatePostedClosingCMEntryFromDocumentPosting', '', false, false)]
local procedure DoSomethingOnAfterCreatePostedClosingCMEntryFromDocumentPosting(DocumentHeader: Record "Sales Header"; DocumentLine: Record "Sales Line"; var PostedClosingCMEntry: Record "KVSADVPostedAdvClosCrMemoEntry")
begin
end;

OnUpdateClCMEntryFromDocumentLineOnBeforeCheckAmounts(Record Sales Line, Record Sales Line, Decimal, Decimal, Record Cust. Ledger Entry, Boolean) :#

Summary: When creating a closing credit memo, there is a check that the amount of the credit memo is not higher than the amount of the advance invoice. If you have invoice discount, this will not work - because the amount of the lines will be higher, if the invoice discount is not respected if you set SkipCheck, the error will not occur. Best would be to change the actual amount (deduct the invoice amount)

[IntegrationEvent(false, false)]
local procedure OnUpdateClCMEntryFromDocumentLineOnBeforeCheckAmounts(var ActualDocumentLine: Record "Sales Line"; var FilteredDocumentLine: Record "Sales Line"; var ActualAmount: Decimal; CompareAmount: Decimal; var AdvInvCVLedgEntry: Record "Cust. Ledger Entry"; var SkipCheck: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSADVClCrMemoEntryCreateSales", 'OnUpdateClCMEntryFromDocumentLineOnBeforeCheckAmounts', '', false, false)]
local procedure DoSomethingOnUpdateClCMEntryFromDocumentLineOnBeforeCheckAmounts(var ActualDocumentLine: Record "Sales Line"; var FilteredDocumentLine: Record "Sales Line"; var ActualAmount: Decimal; CompareAmount: Decimal; var AdvInvCVLedgEntry: Record "Cust. Ledger Entry"; var SkipCheck: Boolean)
begin
end;

Parameters:

  • ActualDocumentLine: The actual document line
  • FilteredDocumentLine: Other document lines for the same advance invoice
  • ActualAmount: The actual amount of all lines
  • CompareAmount: The maximum amount from the advance invoice
  • AdvInvCVLedgEntry: The entry with the (open) calculated amount
  • SkipCheck: Set to true to skip the amount check