Skip to content

Commit

Permalink
Showing 44 changed files with 233 additions and 183 deletions.
Original file line number Diff line number Diff line change
@@ -31,7 +31,7 @@ class KommuneKostraMain(
"100", "110", "120", "121", "130",
"170", "171", "172", "173", "180",
"201", "202", "211", "213", "215", "221", "222", "223", "231", "232", "233", "234", "241", "242", "243", "244",
"251", "252", "253", "254", "256", "261", "265", "273", "275", "276", "281", "283", "285", "290",
"251", "252", "253", "254", "256", "261", "265", "273", "275", "276", "281", "283", "285",
"301", "302", "303", "315", "320", "321", "322", "325", "329", "330", "332", "335", "338", "339", "340", "345",
"350", "353", "354", "355", "360", "365", "370", "373", "375", "377", "380", "381", "383", "385", "386", "390", "392", "393"
// @formatter:on
@@ -40,7 +40,7 @@ class KommuneKostraMain(
private val fylkeskommunaleFunksjoner = listOf(
// @formatter:off
"400", "410", "420", "421", "430",
"460", "465", "470", "471", "472", "473", "480",
"460", "470", "471", "472", "473", "480",
"510", "515", "520", "521", "522", "523", "524", "525", "526", "527", "528", "529", "530", "531", "532", "533", "534", "535", "536", "537",
"554", "559", "561", "562", "570", "581", "590",
"660",
@@ -55,11 +55,11 @@ class KommuneKostraMain(
)

private val kommuneFinansielleFunksjoner = listOf(
"800", "840", "841", "850", "860", "870", "880", "899"
"290", "800", "840", "841", "850", "860", "870", "880", "899"
)

private val fylkeFinansielleFunksjoner = listOf(
"800", "840", "841", "860", "870", "880", "899"
"465", "800", "840", "841", "860", "870", "880", "899"
)

private val fylkeskommunaleSbdrOgLaanefondFinansielleFunksjoner = listOf(
@@ -163,7 +163,7 @@ class KommuneKostraMain(
"500", "501", "509", "510", "511", "512", "520", "521", "522", "529", "530", "540", "550", "570", "589", "590",
"600", "620", "629", "630", "640", "650", "660", "670",
"700", "710", "729", "730", "750", "770", "780",
"800", "810", "830", "850", "870", "880", "890",
"800", "810", "830", "850", "870", "877", "880", "890",
"900", "901", "905", "909", "910", "911", "912", "920", "921", "922", "929", "940", "950", "970", "980", "989", "990"
// @formatter:on
)
@@ -173,11 +173,7 @@ class KommuneKostraMain(
)

private val kommunaleArter = listOf(
"871", "872", "873", "875", "876", "877"
)

private val fylkeskommunaleArter = listOf(
"877"
"871", "872", "873", "875", "876"
)

override val artList: List<String> = if (arguments.skjema in listOf("0A", "0C", "0I", "0K", "0M", "0P")) {
@@ -190,10 +186,6 @@ class KommuneKostraMain(
addAll(osloArter)
}
}

in listOf("0C", "0P") -> {
addAll(fylkeskommunaleArter)
}
}
}.sorted()
} else emptyList()
@@ -234,7 +226,7 @@ class KommuneKostraMain(
"240",
"509", "570", "590",
"600", "629", "630", "640",
"800", "870", "874", "875", "877",
"800", "870", "871", "872", "873", "875", "876", "877",
"909", "990"
// @formatter:on
)
Original file line number Diff line number Diff line change
@@ -14,5 +14,6 @@ class Rule003Skjema : AbstractRule<List<KostraRecord>>("Kontroll 003 : Skjema",
messageText = "Fant ugyldig skjema '${kostraRecord[FIELD_SKJEMA]}'. Korrigér skjema til '${arguments.skjema}'",
lineNumbers = listOf(kostraRecord.lineNumber)
)
}.ifEmpty { null }
}
.ifEmpty { null }
}
Original file line number Diff line number Diff line change
@@ -15,5 +15,6 @@ class Rule004Aargang : AbstractRule<List<KostraRecord>>("Kontroll 004 : Årgang"
"Korrigér aargang til '${arguments.aargang}'",
lineNumbers = listOf(kostraRecord.lineNumber)
)
}.ifEmpty { null }
}
.ifEmpty { null }
}
Original file line number Diff line number Diff line change
@@ -15,5 +15,6 @@ class Rule005Kvartal : AbstractRule<List<KostraRecord>>("Kontroll 005 : Kvartal"
"Korrigér kvartal til '${arguments.kvartal}'",
lineNumbers = listOf(kostraRecord.lineNumber)
)
}.ifEmpty { null }
}
.ifEmpty { null }
}
Original file line number Diff line number Diff line change
@@ -15,5 +15,6 @@ class Rule006Region : AbstractRule<List<KostraRecord>>("Kontroll 006 : Region",
"Korrigér region til '${arguments.region}'",
lineNumbers = listOf(kostraRecord.lineNumber)
)
}.ifEmpty { null }
}
.ifEmpty { null }
}
Original file line number Diff line number Diff line change
@@ -16,5 +16,6 @@ class Rule007Organisasjonsnummer :
"Korrigér orgnr til en av '${arguments.orgnr.split(",")}'",
lineNumbers = listOf(kostraRecord.lineNumber)
)
}.ifEmpty { null }
}
.ifEmpty { null }
}
Original file line number Diff line number Diff line change
@@ -15,5 +15,6 @@ class Rule008Foretaksnummer : AbstractRule<List<KostraRecord>>("Kontroll 008 : F
"Korrigér skjema til '${arguments.foretaknr}'",
lineNumbers = listOf(kostraRecord.lineNumber)
)
}.ifEmpty { null }
}
.ifEmpty { null }
}
Original file line number Diff line number Diff line change
@@ -16,5 +16,6 @@ class Rule009Kontoklasse(
"Korrigér kontoklasse til en av '${kontoklasseList.joinToString(", ")}'".trimMargin(),
lineNumbers = listOf(kostraRecord.lineNumber)
)
}.ifEmpty { null }
}
.ifEmpty { null }
}
Original file line number Diff line number Diff line change
@@ -18,5 +18,6 @@ class Rule010Funksjon(
Korrigér funksjon til en av '${funksjonList.joinToString(", ")}'""".trimMargin(),
lineNumbers = listOf(kostraRecord.lineNumber)
)
}.ifEmpty { null }
}
.ifEmpty { null }
}
Original file line number Diff line number Diff line change
@@ -18,5 +18,6 @@ class Rule011Kapittel(
Korrigér kapittel til en av '${kapittelList.joinToString(", ")}'""".trimMargin(),
lineNumbers = listOf(kostraRecord.lineNumber)
)
}.ifEmpty { null }
}
.ifEmpty { null }
}
Original file line number Diff line number Diff line change
@@ -18,5 +18,6 @@ class Rule012Art(
Korrigér art til en av '${artList.joinToString(", ")}'""".trimMargin(),
lineNumbers = listOf(kostraRecord.lineNumber)
)
}.ifEmpty { null }
}
.ifEmpty { null }
}
Original file line number Diff line number Diff line change
@@ -18,5 +18,6 @@ class Rule013Sektor(
Korrigér sektor til en av '${sektorList.joinToString(", ")}'""".trimMargin(),
lineNumbers = listOf(kostraRecord.lineNumber)
)
}.ifEmpty { null }
}
.ifEmpty { null }
}
Original file line number Diff line number Diff line change
@@ -6,14 +6,17 @@ import no.ssb.kostra.validation.report.Severity
import no.ssb.kostra.validation.rule.AbstractNoArgsRule

class Rule014Belop : AbstractNoArgsRule<List<KostraRecord>>("Kontroll 014 : Beløp", Severity.ERROR) {
override fun validate(context: List<KostraRecord>) = context.filter { kostraRecord ->
with(kostraRecord[FIELD_BELOP]) {
contains("\t") || !matches("^\\s*?-?\\d+$".toRegex())
override fun validate(context: List<KostraRecord>) = context
.filter { kostraRecord ->
with(kostraRecord[FIELD_BELOP]) {
contains("\t") || !matches("^\\s*?-?\\d+$".toRegex())
}
}
}.map { kostraRecord ->
createValidationReportEntry(
messageText = "Fant ugyldig beløp '${kostraRecord[FIELD_BELOP]}'. Korrigér beløp",
lineNumbers = listOf(kostraRecord.lineNumber)
)
}.ifEmpty { null }
.map { kostraRecord ->
createValidationReportEntry(
messageText = "Fant ugyldig beløp '${kostraRecord[FIELD_BELOP]}'. Korrigér beløp",
lineNumbers = listOf(kostraRecord.lineNumber)
)
}
.ifEmpty { null }
}
Original file line number Diff line number Diff line change
@@ -16,8 +16,8 @@ class Rule510Art320(
override fun validate(context: List<KostraRecord>) = context
.filter {
it.isResultatRegnskap()
&& it[FIELD_ART] == "320"
&& validFunksjonList.none { validFunksjon -> validFunksjon.trim() == it[FIELD_FUNKSJON].trim() }
&& it[FIELD_ART] == "320"
&& validFunksjonList.none { validFunksjon -> validFunksjon.trim() == it[FIELD_FUNKSJON].trim() }
}
.map { kostraRecord ->
createValidationReportEntry(
Original file line number Diff line number Diff line change
@@ -24,14 +24,16 @@ class Rule143Avskrivninger : AbstractNoArgsRule<List<KostraRecord>>(
driftPosteringer
.filter { it[FIELD_ART] == "990" }
.sumOf { it.fieldAsIntOrDefault(FIELD_BELOP) }
).takeUnless { (avskrivninger, motpostAvskrivninger) ->
(avskrivninger + motpostAvskrivninger) in -30..30
}?.let { (avskrivninger, motpostAvskrivninger) ->
createSingleReportEntryList(
messageText = "Korrigér i fila slik at differansen (${avskrivninger.plus(motpostAvskrivninger)}) " +
"mellom art 590 ($avskrivninger) stemmer overens med art " +
"990 ($motpostAvskrivninger) (margin på +/- 30')"
)
}
)
}
?.takeUnless { (avskrivninger, motpostAvskrivninger) ->
(avskrivninger + motpostAvskrivninger) in -30..30
}
?.let { (avskrivninger, motpostAvskrivninger) ->
createSingleReportEntryList(
messageText = "Korrigér i fila slik at differansen (${avskrivninger.plus(motpostAvskrivninger)}) " +
"mellom art 590 ($avskrivninger) stemmer overens med art " +
"990 ($motpostAvskrivninger) (margin på +/- 30')"
)
}
}
Original file line number Diff line number Diff line change
@@ -13,8 +13,7 @@ class Rule210InterneOverforingerKjopOgSalg : AbstractNoArgsRule<List<KostraRecor
Severity.ERROR
) {
override fun validate(context: List<KostraRecord>) = context
.filter { it.isBevilgningRegnskap() }
.filter { it.fieldAsIntOrDefault(FIELD_FUNKSJON) in 41..45 }
.filter { it.isBevilgningRegnskap() && it.fieldAsIntOrDefault(FIELD_FUNKSJON) in 41..45 }
.takeIf { it.any() }
?.filter { it[FIELD_ART] in listOf("380", "780") }
?.partition { it[FIELD_ART] == "380" }
Original file line number Diff line number Diff line change
@@ -13,8 +13,7 @@ class Rule215InterneOverforingerKalkulatoriskeUtgifterOgInntekter : AbstractNoAr
Severity.ERROR
) {
override fun validate(context: List<KostraRecord>) = context
.filter { it.isBevilgningRegnskap() }
.filter { it.fieldAsIntOrDefault(FIELD_FUNKSJON) in 41..45 }
.filter { it.isBevilgningRegnskap() && it.fieldAsIntOrDefault(FIELD_FUNKSJON) in 41..45 }
.takeIf { it.any() }
?.filter { it[FIELD_ART] in listOf("390", "790") }
?.partition { it[FIELD_ART] == "390" }
@@ -23,9 +22,11 @@ class Rule215InterneOverforingerKalkulatoriskeUtgifterOgInntekter : AbstractNoAr
utgifterPosteringer.sumOf { it.fieldAsIntOrDefault(FIELD_BELOP) },
inntekterPosteringer.sumOf { it.fieldAsIntOrDefault(FIELD_BELOP) }
)
}?.takeUnless { (kalkulatoriskeUtgifter, kalkulatoriskeInntekter) ->
}
?.takeUnless { (kalkulatoriskeUtgifter, kalkulatoriskeInntekter) ->
(kalkulatoriskeUtgifter + kalkulatoriskeInntekter) in -30..30
}?.let { (kalkulatoriskeUtgifter, kalkulatoriskeInntekter) ->
}
?.let { (kalkulatoriskeUtgifter, kalkulatoriskeInntekter) ->
val kalkulatoriskeDifferanse = kalkulatoriskeUtgifter + kalkulatoriskeInntekter
createSingleReportEntryList(
messageText = "Korrigér i fila slik at differansen ($kalkulatoriskeDifferanse) mellom " +
Original file line number Diff line number Diff line change
@@ -23,9 +23,11 @@ class Rule220InterneOverforingerMidler : AbstractNoArgsRule<List<KostraRecord>>(
overforingerPosteringer.sumOf { it.fieldAsIntOrDefault(FIELD_BELOP) },
innsamledeMidlerPosteringer.sumOf { it.fieldAsIntOrDefault(FIELD_BELOP) }
)
}?.takeUnless { (overforinger, innsamledeMidler) ->
}
?.takeUnless { (overforinger, innsamledeMidler) ->
(overforinger + innsamledeMidler) in -30..30
}?.let { (overforinger, innsamledeMidler) ->
}
?.let { (overforinger, innsamledeMidler) ->
createSingleReportEntryList(
messageText = "Korrigér i fila slik at differansen (${overforinger.plus(innsamledeMidler)}) " +
"mellom overføringer av midler ($overforinger) og innsamlede midler ($innsamledeMidler) " +
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@ import no.ssb.kostra.program.KostraRecord
import no.ssb.kostra.validation.report.Severity
import no.ssb.kostra.validation.rule.AbstractNoArgsRule
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isBevilgningInvesteringRegnskap
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isOsloBydel
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isNotOsloBydel
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isRegional
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isUtgift

@@ -14,8 +14,7 @@ class Rule085SummeringInvesteringUtgiftsposteringer : AbstractNoArgsRule<List<Ko
Severity.ERROR
) {
override fun validate(context: List<KostraRecord>) = context
.filterNot { it.isOsloBydel() }
.filter { it.isRegional() && it.isBevilgningInvesteringRegnskap() }
.filter { it.isNotOsloBydel() && it.isRegional() && it.isBevilgningInvesteringRegnskap() }
.takeIf { it.any() }
?.filter { it.isUtgift() }
?.sumOf { it.fieldAsIntOrDefault(FIELD_BELOP) }
Original file line number Diff line number Diff line change
@@ -6,16 +6,15 @@ import no.ssb.kostra.validation.report.Severity
import no.ssb.kostra.validation.rule.AbstractNoArgsRule
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isBevilgningInvesteringRegnskap
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isInntekt
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isOsloBydel
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isNotOsloBydel
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isRegional

class Rule090SummeringInvesteringInntektsposteringer : AbstractNoArgsRule<List<KostraRecord>>(
"Kontroll 090 : Summeringskontroller investeringsregnskapet, inntektsposteringer i investeringsregnskapet",
Severity.ERROR
) {
override fun validate(context: List<KostraRecord>) = context
.filterNot { it.isOsloBydel() }
.filter { it.isRegional() && it.isBevilgningInvesteringRegnskap() }
.filter { it.isNotOsloBydel() && it.isRegional() && it.isBevilgningInvesteringRegnskap() }
.takeIf { it.any() }
?.filter { it.isInntekt() }
?.sumOf { it.fieldAsIntOrDefault(FIELD_BELOP) }
Original file line number Diff line number Diff line change
@@ -5,16 +5,15 @@ import no.ssb.kostra.program.KostraRecord
import no.ssb.kostra.validation.report.Severity
import no.ssb.kostra.validation.rule.AbstractNoArgsRule
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isBevilgningInvesteringRegnskap
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isOsloBydel
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isNotOsloBydel
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isUtgift

class Rule095SummeringInvesteringDifferanse : AbstractNoArgsRule<List<KostraRecord>>(
"Kontroll 095 : Summeringskontroller investeringsregnskapet, differanse i investeringsregnskapet",
Severity.ERROR
) {
override fun validate(context: List<KostraRecord>) = context
.filter { !it.isOsloBydel() }
.filter { it.isBevilgningInvesteringRegnskap() }
.filter { it.isNotOsloBydel() && it.isBevilgningInvesteringRegnskap() }
.takeIf { it.any() }
?.partition { it.isUtgift() }
?.let { (investeringUtgifterPosteringer, investeringInntekterPosteringer) ->
Original file line number Diff line number Diff line change
@@ -5,15 +5,15 @@ import no.ssb.kostra.program.KostraRecord
import no.ssb.kostra.validation.report.Severity
import no.ssb.kostra.validation.rule.AbstractNoArgsRule
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isBevilgningDriftRegnskap
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isOsloBydel
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isNotOsloBydel
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isUtgift

class Rule100SummeringDriftUtgiftsposteringer : AbstractNoArgsRule<List<KostraRecord>>(
"Kontroll 100 : Summeringskontroller driftsregnskapet, utgiftsposteringer i driftsregnskapet",
Severity.ERROR
) {
override fun validate(context: List<KostraRecord>) = context
.filter { !it.isOsloBydel() && it.isBevilgningDriftRegnskap() }
.filter { it.isNotOsloBydel() && it.isBevilgningDriftRegnskap() }
.takeIf { it.any() }
?.filter { it.isUtgift() }
?.sumOf { it.fieldAsIntOrDefault(FIELD_BELOP) }
Original file line number Diff line number Diff line change
@@ -6,17 +6,15 @@ import no.ssb.kostra.validation.report.Severity
import no.ssb.kostra.validation.rule.AbstractNoArgsRule
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isBevilgningDriftRegnskap
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isInntekt
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isOsloBydel
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isNotOsloBydel
import no.ssb.kostra.validation.rule.regnskap.kostra.extensions.isRegional

class Rule105SummeringDriftInntektsposteringer : AbstractNoArgsRule<List<KostraRecord>>(
"Kontroll 105 : Summeringskontroller driftsregnskapet, inntektsposteringer i driftsregnskapet",
Severity.ERROR
) {
override fun validate(context: List<KostraRecord>) = context
.filterNot { it.isOsloBydel() }
.filter { it.isRegional() }
.filter { it.isBevilgningDriftRegnskap() }
.filter { it.isNotOsloBydel() && it.isRegional() && it.isBevilgningDriftRegnskap() }
.takeIf { it.any() }
?.filter { it.isInntekt() }
?.sumOf { it.fieldAsIntOrDefault(FIELD_BELOP) }
Loading

0 comments on commit cae2839

Please sign in to comment.