Skip to content

Commit 3168e32

Browse files
committed
Formatera organisationsnummer automatiskt
1 parent 2778bbe commit 3168e32

File tree

3 files changed

+30
-3
lines changed

3 files changed

+30
-3
lines changed

src/components/edit/EditNewArsredovisningModal.vue

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import createClient from "openapi-fetch";
1717
import type { paths } from "@/openapi/gredor-backend-v1";
1818
import { getConfigValue } from "@/util/configUtils.ts";
1919
import type { ComponentExposed } from "vue-component-type-helpers";
20+
import { tryFormatOrgnr } from "@/util/formatUtils.ts";
2021
2122
const emit = defineEmits<{
2223
/** Triggas när användaren är färdig med flödet. */
@@ -106,7 +107,7 @@ async function fetchRecords() {
106107
// TODO: Om krav på revisionsberättelse, visa meddelande
107108
}
108109
109-
const orgnrRegex = /^\d{6}-\d{4}$/;
110+
const orgnrRegex = /^\d{6}-?\d{4}$/;
110111
</script>
111112

112113
<template>
@@ -123,14 +124,18 @@ const orgnrRegex = /^\d{6}-\d{4}$/;
123124
företagets namn och senaste räkenskapsår från Bolagsverket.
124125
</p>
125126

126-
<p>Format: XXXXXX-XXXX (10 siffror med bindestreck)</p>
127-
128127
<input
129128
v-model.trim="arsredovisning.foretagsinformation.organisationsnummer"
130129
:disabled="busy"
131130
maxlength="11"
132131
placeholder="Skriv företagets organisationsnummer här…"
133132
type="text"
133+
@input="
134+
arsredovisning.foretagsinformation.organisationsnummer =
135+
tryFormatOrgnr(
136+
arsredovisning.foretagsinformation.organisationsnummer,
137+
)
138+
"
134139
/>
135140

136141
<h5>Bokföringsimport (frivilligt)</h5>

src/components/edit/sections/EditGrunduppgifter.vue

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import { type Arsredovisning } from "@/model/arsredovisning/Arsredovisning.ts";
88
import { REDOVISNINGSVALUTOR } from "@/data/redovisningsvalutor.ts";
99
import { FORFATTARE_TYPER } from "@/data/forfattare.ts";
10+
import { tryFormatOrgnr } from "@/util/formatUtils.ts";
1011
1112
/** Årsredovisningen som innehåller grunduppgifterna. */
1213
defineModel<Arsredovisning>("arsredovisning", {
@@ -32,6 +33,12 @@ defineModel<Arsredovisning>("arsredovisning", {
3233
v-model.trim="arsredovisning.foretagsinformation.organisationsnummer"
3334
class="input-field"
3435
type="text"
36+
@input="
37+
arsredovisning.foretagsinformation.organisationsnummer =
38+
tryFormatOrgnr(
39+
arsredovisning.foretagsinformation.organisationsnummer,
40+
)
41+
"
3542
/>
3643
</div>
3744
</div>

src/util/formatUtils.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,18 @@ export function formatDateForFlerarsoversikt(balanceDateStr: string): string {
4545
// Annars, returnera år och månad
4646
return `${year}-${month.toString().padStart(2, "0")}`;
4747
}
48+
49+
/**
50+
* Formatera ett organisationsnummer om möjligt (lägg till bindestreck). Indatat
51+
* formateras endast om det är en sträng som endast innehåller tio siffror.
52+
*
53+
* @param orgnr - Organisationsnumret att försöka formatera
54+
* @returns Det formaterade organisationsnumret om det formaterades, annars det
55+
* värde som skickades in i funktionen
56+
*/
57+
export function tryFormatOrgnr(orgnr: string) {
58+
if (/^\d{10}$/.test(orgnr)) {
59+
return orgnr.substring(0, 6) + "-" + orgnr.substring(6);
60+
}
61+
return orgnr;
62+
}

0 commit comments

Comments
 (0)