nas-denar/Docs/Obdelava PRS.txt
2017-09-14 21:13:49 +02:00

51 lines
1.8 KiB
Plaintext

Obdelava PRS registra
=====================
Včasih se zgodi, da imamo podvojene vnose - dve matični in ena davčna. Poiščeš jih tako:
select davcna, count(*) pojavitve from prs where davcna is not null group by davcna having count(*) > 1 order by 2 desc;
Uvoz novih podatkov
===================
Podatke najprej uvozimo v začasno tabelo "prs_old" in potem spravimo od tam v tabelo "prs".
Postopek:
---------
Pridobimo podatke:
wget http://www.ajpes.si/doc/Registri/PRS/Ponovna_uporaba/Prs.zip
Podatke razpakiramo:
unzip Prs.zip
Odstranimo znake za novo vrstico iz datoteke:
tr -d '\n' < Prs.xml > Prs1.xml
XML spremenimo v CSV:
java -jar XML2CSV.jar -a -xXV1 -s "|" -i Prs1.xml -o ./
Podatke vstavimo v pomožno tabelo, ki jo prej izpraznimo (ukaz TRUNCATE)
psql supervizor -c "copy prs_old FROM '/export/home/matjaz/postgres/ajpes/Prs1.csv' DELIMITER '|' CSV HEADER quote E'\b';"
Uvoz podatkov iz začasne lokacije v končno izvedemo tako, da stare podatke posodobimo s podatki iz nove datoteke oz. če podatkov ni, jih dodamo:
insert into prs
(ma, popolnoime, oblika, organ, po, hs, dodatek, upravnaenota, regija, obcina, posta, naselje, ulica, davcna, zadnjaomemba)
select
ma, popolnoime, oblika, organ, po, hs, dodatek, upravnaenota, regija, obcina, posta, naselje, ulica, null, '2017-06-30'
FROM prs_old
ON CONFLICT ("ma") DO UPDATE
SET
popolnoime=excluded.popolnoime,
oblika=excluded.oblika,
organ=excluded.organ,
po=excluded.po,
hs=excluded.hs,
dodatek=excluded.dodatek,
upravnaenota=excluded.upravnaenota,
regija=excluded.regija,
obcina=excluded.obcina,
posta=excluded.posta,
naselje=excluded.naselje,
ulica=excluded.ulica,
zadnjaomemba='2017-06-30';
Nastavimo še status subjektov:
update prs set status='izbrisano';
update prs set status = 'aktivno' where zadnjaomemba = '2017-06-30';