local p = {}
-- Extrait un identifiant de type dd-500xxxx (prioritaire), sinon dd-ddddddd
function p.extraireNoDeDecision(frame)
local texte = frame.args[1] or ""
local identifiant = string.match(texte, "(%d%d%-500%d%d%d%d)")
if identifiant then
return identifiant
end
identifiant = string.match(texte, "(%d%d%-%d%d%d%d%d%d%d)")
return identifiant or ""
end
-- Si un dd-500xxxx est présent, retourne les identifiants secondaires :
-- dd-ddddddd, dd-ddddddd-ddd, ddd-ddd, dddd-ddd
function p.extraireNoDeDossier(frame)
local texte = frame.args[1] or ""
local decision = string.match(texte, "(%d%d%-500%d%d%d%d)")
local deja = {}
local identifiants = {}
if decision then
deja[decision] = true
-- 1. dd-ddddddd
for id in string.gmatch(texte, "(%d%d%-%d%d%d%d%d%d%d)") do
if not deja[id] then
deja[id] = true
table.insert(identifiants, id)
end
end
-- 2. dd-ddddddd-ddd
for id in string.gmatch(texte, "(%d%d%-%d%d%d%d%d%d%d%-%d%d%d)") do
if not deja[id] then
deja[id] = true
table.insert(identifiants, id)
end
end
-- 3. ddd-ddd
for id in string.gmatch(texte, "(%f[%d]%d%d%d%-%d%d%d%f[%D])") do
if not deja[id] then
deja[id] = true
table.insert(identifiants, id)
end
end
-- 4. dddd-ddd
for id in string.gmatch(texte, "(%f[%d]%d%d%d%d%-%d%d%d%f[%D])") do
if not deja[id] then
deja[id] = true
table.insert(identifiants, id)
end
end
end
return table.concat(identifiants, ", ")
end
return p