[Event Request] TAB38 - OnBeforeHasMixedDropShipment - new Parameter
Open
Beginner friendly
Nobody has claimed this yet.
Approved
event-request
ext-ready-to-implement
Team: Finance
- Dominant language
- AL
- Stars
- 683
- Forks
- 459
- Avg merge
- 3d 26m
- Merged PRs (30d)
- 633
Description
Why do you need this change?
We want to add an additional filter on the purchase line where it is okay to mix drop shipment with non-drop shipment.
Describe the request
Add new parameter by var.
Existing Source Code:
local procedure HasMixedDropShipment() Result: Boolean
var
PurchaseLine: Record "Purchase Line";
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeHasMixedDropShipment(Rec, Result, IsHandled);
if IsHandled then
exit(Result);
PurchaseLine.SetRange("Document Type", "Document Type");
PurchaseLine.SetRange("Document No.", "No.");
PurchaseLine.SetFilter("No.", '<>%1', '');
PurchaseLine.SetFilter(Type, '%1|%2', PurchaseLine.Type::Item, PurchaseLine.Type::"Fixed Asset");
PurchaseLine.SetRange("Drop Shipment", true);
if PurchaseLine.IsEmpty() then
exit(false);
PurchaseLine.SetRange("Drop Shipment", false);
if PurchaseLine.FindSet() then
repeat
if PurchaseLine.IsInventoriableItem() or (PurchaseLine.Type = PurchaseLine.Type::"Fixed Asset") then
exit(true);
until PurchaseLine.Next() = 0;
exit(false);
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeHasMixedDropShipment(var PurchaseHeader: Record "Purchase Header"; var Result: Boolean; var IsHandled: Boolean)
begin
end;
New Source Code:
local procedure HasMixedDropShipment() Result: Boolean
var
PurchaseLine: Record "Purchase Line";
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeHasMixedDropShipment(Rec, Result, IsHandled, PurchaseLine); //CHANGED (!)
if IsHandled then
exit(Result);
PurchaseLine.SetRange("Document Type", "Document Type");
PurchaseLine.SetRange("Document No.", "No.");
PurchaseLine.SetFilter("No.", '<>%1', '');
PurchaseLine.SetFilter(Type, '%1|%2', PurchaseLine.Type::Item, PurchaseLine.Type::"Fixed Asset");
PurchaseLine.SetRange("Drop Shipment", true);
if PurchaseLine.IsEmpty() then
exit(false);
PurchaseLine.SetRange("Drop Shipment", false);
if PurchaseLine.FindSet() then
repeat
if PurchaseLine.IsInventoriableItem() or (PurchaseLine.Type = PurchaseLine.Type::"Fixed Asset") then
exit(true);
until PurchaseLine.Next() = 0;
exit(false);
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeHasMixedDropShipment(var PurchaseHeader: Record "Purchase Header"; var Result: Boolean; var IsHandled: Boolean; var PurchaseLine : Record "Purchase Line")
begin
end;
Provide an implementation (optional)
- I will provide the implementation for this extensibility request
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Search the BCApps source for HasMixedDropShipment and its OnBeforeHasMixedDropShipment integration event. Review the Purchase Header and Purchase Line records involved, then update the event signature to expose PurchaseLine while preserving the existing behavior. Done means the new parameter is available to subscribers and the event still compiles with its callers.
Written by the indexing model from the issue text.
Assessment
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100