To implement this hotfix, you must have a developer license.
You do not have to have rights to the data stores unless you have to perform data repair.
...
GetLocation(WhseShptLine."Location Code");
KitQtyBase := 999999999999999.0;
// Delete the following lines.
WITH KitSalesLine DO BEGIN
SETRANGE("Document Type",WhseShptLine."Source Subtype");
SETRANGE("Document No.",WhseShptLine."Source No.");
SETRANGE("Document Line No.",WhseShptLine."Source Line No.");
SETRANGE(Type,Type::Item);
SETFILTER("Quantity per (Base)",'>0');
IF FINDSET THEN
REPEAT
MaxPickQtyBase := "Extended Quantity (Base)" - ("Qty. Picked (Base)" + "Pick Qty. (Base)");
SetWhseKitShipment(KitSalesLine);
AvailQtyBase := CalcAvailableQty("No.","Variant Code");
IF MaxPickQtyBase > AvailQtyBase THEN
MaxPickQtyBase := AvailQtyBase;
MaxPickQtyBase := MaxPickQtyBase / "Quantity per (Base)"; // for the kit
IF MaxPickQtyBase < KitQtyBase THEN
KitQtyBase := MaxPickQtyBase;
UNTIL NEXT = 0;
END;
// End of the lines.
KitQtyBase := ROUND(KitQtyBase,1,'<');
...
...
GetLocation(WhseShptLine."Location Code");
KitQtyBase := 999999999999999.0;
// Add the following lines.
IF NOT Location."Always Create Pick Line" THEN BEGIN
WITH KitSalesLine DO BEGIN
SETRANGE("Document Type",WhseShptLine."Source Subtype");
SETRANGE("Document No.",WhseShptLine."Source No.");
SETRANGE("Document Line No.",WhseShptLine."Source Line No.");
SETRANGE(Type,Type::Item);
SETFILTER("Quantity per (Base)",'>0');
IF FINDSET THEN
REPEAT
MaxPickQtyBase := "Extended Quantity (Base)" - ("Qty. Picked (Base)" + "Pick Qty. (Base)");
SetWhseKitShipment(KitSalesLine);
AvailQtyBase := CalcAvailableQty("No.","Variant Code");
IF MaxPickQtyBase > AvailQtyBase THEN
MaxPickQtyBase := AvailQtyBase;
MaxPickQtyBase := MaxPickQtyBase / "Quantity per (Base)"; // for the kit
IF MaxPickQtyBase < KitQtyBase THEN
KitQtyBase := MaxPickQtyBase;
UNTIL NEXT = 0;
END;
END;
// End of the lines.
KitQtyBase := ROUND(KitQtyBase,1,'<');
...