feat: v1.12.1.0 — prisregel via sæsonkurven, reserve til gårdens eget forbrug, paller til palleskur, fanen Lagre (idéer fra Distribution Redux)
This commit is contained in:
@@ -144,7 +144,17 @@ local function findSellQuote(adEnv, vehicle, product, sellMarkers, sellAtPercent
|
||||
end
|
||||
|
||||
local function findStoreMarker(adEnv, vehicle, product, capacity, sources, litersOverride)
|
||||
if product.isPallet or ADLoadSwap == nil or ADLoadSwap.findDumpMarker == nil then
|
||||
local isReachable = function(markerId)
|
||||
return ADWaitPool.hasRouteTo(adEnv, vehicle, markerId)
|
||||
end
|
||||
-- paller lagres i et palleskur (objektlager) — UAL læsser af dér
|
||||
if product.isPallet then
|
||||
if ADSources.findPalletStore == nil then
|
||||
return nil
|
||||
end
|
||||
return ADSources.findPalletStore(adEnv, vehicle, product.fillType, ADSources.getSourcePlaceables(sources), isReachable, ADSmartPickup.getFarmId(vehicle))
|
||||
end
|
||||
if ADLoadSwap == nil or ADLoadSwap.findDumpMarker == nil then
|
||||
return nil
|
||||
end
|
||||
local available = litersOverride or 0
|
||||
@@ -154,9 +164,6 @@ local function findStoreMarker(adEnv, vehicle, product, capacity, sources, liter
|
||||
end
|
||||
end
|
||||
local liters = math.max(1, math.min(available, capacity or available))
|
||||
local isReachable = function(markerId)
|
||||
return ADWaitPool.hasRouteTo(adEnv, vehicle, markerId)
|
||||
end
|
||||
local marker = ADLoadSwap.findDumpMarker(adEnv, vehicle, product.fillType, liters, nil, isReachable, ADSources.getSourcePlaceables(sources))
|
||||
if marker == nil then
|
||||
return nil
|
||||
@@ -210,6 +217,11 @@ function ADOutbound.buildPlanInput(adEnv, run, vehicle)
|
||||
local homeId = product.sources[1] ~= nil and product.sources[1].wayPointId or nil
|
||||
local quote, unreachableName = findSellQuote(adEnv, vehicle, product, sellMarkers, run.sellAtPercent, homeId)
|
||||
product.quote = quote
|
||||
-- gårdens eget behov (fabrikker/stalde) sælges ikke; kilderne selv tæller ikke som forbrugere
|
||||
if ADSources.getFarmDemand ~= nil then
|
||||
local demand = ADSources.getFarmDemand(adEnv, product.fillType, farmId, ADSources.getSourcePlaceables(sources))
|
||||
product.reserve, product.reservedFor = demand.liters, demand.consumers
|
||||
end
|
||||
if quote == nil and unreachableName ~= nil then
|
||||
warnOnce(adEnv, vehicle, "sell:" .. product.name, string.format("'%s' kan ikke nå salgssted '%s' for %s – tjek vejnettet", tostring(vehicle:getName()), unreachableName, product.name))
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user