20.564
Bearbeitungen
(getArgs) |
(Adresse() subobject optimiert) |
||
| (5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
local p = {} | local p = {} | ||
local dev = require("Modul:Development") | local dev = require("Modul:Development") | ||
local str = require("Modul:String") | local str = require("Modul:String") | ||
local smw = require("Modul:SMW") | |||
local geo = require("Modul:Geo") | local geo = require("Modul:Geo") | ||
local wik = require("Modul:Wiki") | local wik = require("Modul:Wiki") | ||
local kal = require("Modul:Kalender") | |||
function p.Adresse(frame) | function p.Adresse(frame) | ||
| Zeile 12: | Zeile 13: | ||
-- =p.Adresse{pargs={["Adressart"]="Wohnung", ["Straße"]="Schwabacher Straße", ["Hausnummer"]="12",["AdresseVon"]="2020-03-04", ["AdresseBis"]="2021-05-06", ["Kommentar"]="f"}} | -- =p.Adresse{pargs={["Adressart"]="Wohnung", ["Straße"]="Schwabacher Straße", ["Hausnummer"]="12",["AdresseVon"]="2020-03-04", ["AdresseBis"]="2021-05-06", ["Kommentar"]="f"}} | ||
-- =p.Adresse{pargs={["Adressart"]="Wohnung", ["Straße"]="Fichtenstraße", ["Hausnummer"]="44",["AdresseVon"]="2020-03-04", ["AdresseBis"]="2021-05-06", ["Kommentar"]="f"}} | -- =p.Adresse{pargs={["Adressart"]="Wohnung", ["Straße"]="Fichtenstraße", ["Hausnummer"]="44",["AdresseVon"]="2020-03-04", ["AdresseBis"]="2021-05-06", ["Kommentar"]="f"}} | ||
-- =p.Adresse{pargs={["Adressart"]="Geschäftsanschrift",["AdresseVon"]="1961",["AdresseBis"]="2024/07/01",["Straße"]="Würzburger Straße",["Hausnummer"]="454"}} | |||
local t = "" | local t = "" | ||
local fail = false | local fail = false | ||
| Zeile 20: | Zeile 22: | ||
fail = true | fail = true | ||
else | else | ||
-- subobject-Name | -- subobject-Name | ||
local subobject = {} | local subobject = {"Adresse"} | ||
table.insert(subobject, attr["Adressart"]) | table.insert(subobject, attr["Adressart"]) | ||
table.insert(subobject, attr["Straße"]) | table.insert(subobject, attr["Straße"]) | ||
table.insert(subobject, attr["Hausnummer"]) | table.insert(subobject, attr["Hausnummer"]) | ||
table.insert(subobject, attr["Kommentar"]) | |||
subobject = table.concat(subobject, " ") | subobject = table.concat(subobject, " ") | ||
subobject = smw.subobjectIdCleaner(subobject) | |||
if subobject == "" then -- subobject-Name fehlerhaft? | if subobject == "" then -- subobject-Name fehlerhaft? | ||
fail = true | fail = true | ||
| Zeile 32: | Zeile 35: | ||
-- SubObjektTyp setzen | -- SubObjektTyp setzen | ||
attr["SubObjektTyp"] = "Adresse" | attr["SubObjektTyp"] = "Adresse" | ||
-- Straße/Hausnummer auswerten | -- Straße/Hausnummer auswerten | ||
if attr["Straße"] ~= nil then | if attr["Straße"] ~= nil then | ||
| Zeile 43: | Zeile 45: | ||
fail = true -- Fehler Hausnummer ohne Straße | fail = true -- Fehler Hausnummer ohne Straße | ||
end | end | ||
-- Postleitzahl ermitteln | -- Postleitzahl ermitteln | ||
if attr["Straße"] ~= nil then | if attr["Straße"] ~= nil then | ||
| Zeile 51: | Zeile 52: | ||
end | end | ||
end | end | ||
-- VonObjekt erstellen | -- VonObjekt erstellen | ||
if attr["StraßeHnr"] ~= nil then | if attr["StraßeHnr"] ~= nil then | ||
| Zeile 64: | Zeile 64: | ||
end | end | ||
end | end | ||
-- subobject setzen | -- subobject setzen | ||
mw.smw.subobject(attr, subobject) | mw.smw.subobject(attr, subobject) | ||
-- Plausibilitätsprüfung von/bis | -- Plausibilitätsprüfung von/bis | ||
if attr["AdresseVon"] ~= nil and attr["AdresseBis"] ~= nil and | if attr["AdresseVon"] ~= nil and attr["AdresseBis"] ~= nil and | ||
p. | p.formDate2CompareIndex(attr["AdresseVon"], "von") > p.formDate2CompareIndex(attr["AdresseBis"], "bis") then | ||
fail = true | fail = true | ||
end | end | ||
end -- Ende if subobject-Name fehlerhaft? | end -- Ende if subobject-Name fehlerhaft? | ||
end -- Ende if not attr_empty | end -- Ende if not attr_empty | ||
-- Wartungsmeldung Adresse fehlerhaft | |||
-- | |||
if fail then | if fail then | ||
mw.smw.set{["Wartungsmeldung"]="Adresse fehlerhaft"} | |||
end | end | ||
-- mw.logObject(t, "t") | -- mw.logObject(t, "t") | ||
return t | return t | ||
end | end | ||
function p. | function p.formDate2CompareIndex(date, vonbis) | ||
-- mw.log(" | -- mw.log("formDate2CompareIndex(" .. date .. ")") | ||
-- Datum in Index wandeln | -- Datum in Index wandeln | ||
-- Bsp.: 23 | -- Bsp.: 23 April 1989 => 19890423 | ||
-- Konsolenzeile zum Debuggen: | -- Konsolenzeile zum Debuggen: | ||
-- =p. | -- =p.formDate2CompareIndex("2000","von") | ||
-- =p. | -- =p.formDate2CompareIndex("2000","bis") | ||
-- =p. | -- =p.formDate2CompareIndex("Februar 2000","von") | ||
-- =p. | -- =p.formDate2CompareIndex("Februar 2000","bis") | ||
-- =p. | -- =p.formDate2CompareIndex("2000/02/03","von") | ||
-- =p. | -- =p.formDate2CompareIndex("2000/02/03","bis") | ||
local index = "" | local index = "" | ||
local date=str.split2(date, " ") | local date = str.split2(date, "/") | ||
if #date == 1 then | if #date == 3 then -- komplettes Datum vorhanden | ||
index = tostring(date[1]) .. tostring(date[2]) .. tostring(date[3]) | |||
else | |||
date = str.split2(date[1], " ") | |||
if #date == 1 then -- nur Jahr vorhanden | |||
index = tostring(date[1]) | |||
if vonbis == "von" then | |||
index = index .. "0101" | |||
else | |||
index = index .. "1231" | |||
end | |||
elseif #date == 2 then -- nur Monat + Jahr vorhanden | |||
index = tostring(date[2]) .. string.format("%02d", kal.month_numbers[date[1]]) | |||
if vonbis == "von" then | |||
index = index .. "01" | |||
else | |||
index = index .. "31" | |||
end | |||
end | end | ||
end | end | ||
index = tonumber(index) or 0 | index = tonumber(index) or 0 | ||