microsoft / ALAppExtensions

Repository for collaboration on Microsoft AL application add-on and localization extensions for Microsoft Dynamics 365 Business Central.
MIT License
770 stars 610 forks source link

[Event Request] Codeunit 99000774 "Calculate Routing Line" - OnAfterSetCalendarEntryFiltersOnFinitelyLoadCapBack #27023

Closed 1languste closed 3 weeks ago

1languste commented 1 month ago

Describe the request

I want to set additional calendar entry filters. Therefore, I request the following event:

local procedure FinitelyLoadCapBack(TimeType: Enum "Routing Time Type"; ConstrainedCapacity: Record "Capacity Constrained Resource"; ResourceIsConstrained: Boolean; ParentWorkCenter: Record "Capacity Constrained Resource"; ParentIsConstrained: Boolean)
var
    LastProdOrderCapNeed: Record "Prod. Order Capacity Need";
    AvailTime: Decimal;
    ProdEndingDateTime: DateTime;
    ProdEndingDateTimeAddOneDay: DateTime;
    SetupTime: Decimal;
    TimetoProgram: Decimal;
    AvailCap: Decimal;
    DampTime: Decimal;
    xConCurrCap: Decimal;
    EndTime: Time;
    StartTime: Time;
    ShouldProcessLastProdOrderCapNeed: Boolean;
begin
    if (RemainNeedQty = 0) and WaitTimeOnly then
        exit;
    EndTime := ProdEndingTime;
    ProdEndingDateTime := CreateDateTime(ProdEndingDate, ProdEndingTime);
    ProdEndingDateTimeAddOneDay := CreateDateTime(ProdEndingDate + 1, ProdEndingTime);
    ConCurrCap := ProdOrderRoutingLine."Concurrent Capacities";
    xConCurrCap := 1;

    LastProdOrderCapNeed.SetCapacityFilters(ProdOrderRoutingLine.Type, ProdOrderRoutingLine."No.");

    CalendarEntry.SetCapacityFilters(ProdOrderRoutingLine.Type, ProdOrderRoutingLine."No.");
    CalendarEntry.SetFilter("Starting Date-Time", '<= %1', ProdEndingDateTime);
    CalendarEntry.SetFilter("Ending Date-Time", '<= %1', ProdEndingDateTimeAddOneDay);
    // NEW BEGIN
    OnAfterSetCalendarEntryFiltersOnFinitelyLoadCapBack(CalendarEntry);
    // NEW END
    if CalendarEntry.Find('+') then
        // ...
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetCalendarEntryFiltersOnFinitelyLoadCapBack(var CalendarEntry: Record "Calendar Entry")
begin
end;

Additional context

I want to filter the calendar entry for "Capacity (Effective)" <> 0. Internal work item: AB#544580

JesperSchulz commented 3 weeks ago

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.

Build ID: 23210.