Skip to content

Commit be0941b

Browse files
committed
Förtydliga diverse texter
1 parent 516cc9e commit be0941b

File tree

7 files changed

+117
-24
lines changed

7 files changed

+117
-24
lines changed

cypress/e2e/finalize.cy.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,13 +117,17 @@ describe("finalize wizard", () => {
117117
).should("have.text", " Datering: 2025-01-04");
118118
cy.get(
119119
'[data-testid="finalize-reminder-redovisningsinformation-list"] li:nth-child(2)',
120-
).should("have.text", " Underskrift, Karl Karlsson: 2025-01-04");
120+
).should("have.text", " Underskrift, Karl Karlsson: 2025-01-04");
121121
cy.get(
122122
'[data-testid="finalize-reminder-redovisningsinformation-list"] li:nth-child(3)',
123-
).should("have.text", " Underskrift, Karin Olsson: 2025-01-04");
123+
).should("have.text", " Underskrift, Karin Olsson: 2025-01-04");
124124
cy.get('[data-testid="finalize-reminder-mismatching-values-list"]').should(
125125
"not.exist",
126126
);
127+
cy.get('[data-testid="finalize-reminder-latest-signature-date"]').should(
128+
"have.text",
129+
" Årsstämman får därmed hållas tidigast 2025-01-04. ",
130+
);
127131
cy.get('[data-testid="wizard-next-button"]').click();
128132

129133
// Steg 2 - OK att köra kontroller hos Bolagsverket
@@ -213,13 +217,17 @@ describe("finalize wizard", () => {
213217
);
214218
cy.get(
215219
'[data-testid="finalize-reminder-redovisningsinformation-list"] li:nth-child(1)',
216-
).should("have.text", " Datering: 2025-01-04");
220+
).should("have.text", " Datering: 2025-01-03");
217221
cy.get(
218222
'[data-testid="finalize-reminder-redovisningsinformation-list"] li:nth-child(2)',
219-
).should("have.text", " Underskrift, Karl Karlsson: 2025-01-03");
223+
).should("have.text", " Underskrift, Karl Karlsson: 2025-01-03");
220224
cy.get(
221225
'[data-testid="finalize-reminder-redovisningsinformation-list"] li:nth-child(3)',
222-
).should("have.text", " Underskrift, Karin Olsson: 2025-01-04");
226+
).should("have.text", " Underskrift, Karin Olsson: 2025-01-04");
227+
cy.get('[data-testid="finalize-reminder-latest-signature-date"]').should(
228+
"have.text",
229+
" Årsstämman får därmed hållas tidigast 2025-01-04. ",
230+
);
223231
cy.get('[data-testid="finalize-reminder-mismatching-values-list"]').should(
224232
"not.exist",
225233
);

cypress/fixtures/input/gredor/TestfilB.gredorfardig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -812,7 +812,7 @@
812812
}
813813
],
814814
"redovisningsinformation": {
815-
"datering": "2025-01-04",
815+
"datering": "2025-01-03",
816816
"undertecknandeOrt": "Halmstad",
817817
"avgivande": {
818818
"namn": "Styrelsen och verkställande direktören",

src/components/edit/sections/EditUnderskrifter.vue

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,19 @@ function removeUnderskrift(index: number) {
6161
</div>
6262
<div class="input-section">
6363
<label class="form-label" for="datering"
64-
>Datum då årsredovisningen var färdig för undertecknande:</label
64+
>Datum då årsredovisningen var upprättad (redo att skrivas
65+
under):</label
6566
>
6667
<input
6768
id="datering"
6869
v-model.trim="arsredovisning.redovisningsinformation.datering"
6970
class="form-control"
7071
type="date"
7172
/>
73+
<div class="form-text muted">
74+
Får <strong>inte</strong> vara senare än datumet för tidigaste
75+
underskriften nedan.
76+
</div>
7277
</div>
7378
</CommonAccordionItem>
7479

@@ -89,7 +94,7 @@ function removeUnderskrift(index: number) {
8994
v-for="(underskrift, index) in arsredovisning.redovisningsinformation
9095
.underskrifter"
9196
:key="index"
92-
class="mb-2 p-2 col-12 col-sm-6 col-lg-4"
97+
class="mb-2 p-2 col-12 col-sm-6"
9398
>
9499
<div class="card p-3">
95100
<div class="input-section">
@@ -127,14 +132,23 @@ function removeUnderskrift(index: number) {
127132
</div>
128133
<div class="input-section">
129134
<label :for="'datum' + index" class="form-label"
130-
>Undertecknandedatum:</label
135+
>Underskriftsdatum:</label
131136
>
132137
<input
133138
:id="'datum' + index"
134139
v-model.trim="underskrift.datum"
135140
class="form-control"
136141
type="date"
137142
/>
143+
<div class="alert alert-primary d-flex gap-2 mt-2" role="alert">
144+
<i class="bi bi-info-circle-fill"></i>
145+
<span class="small">
146+
<strong>OBS!</strong> Detta är inte samma sak som datum för
147+
årsstämma eller fastställelseintyg. Årsstämman ska hållas
148+
efter att årsredovisningen skrivits under, dvs den får
149+
<strong>inte</strong> hållas tidigare än detta datum.
150+
</span>
151+
</div>
138152
</div>
139153
<button
140154
class="btn btn-danger mt-2"

src/components/tools/finish/finalize/steps/FinalizeReminder.vue

Lines changed: 77 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import type { ComponentExposed } from "vue-component-type-helpers";
2828
import RenderMain from "@/components/render/RenderMain.vue";
2929
import { XMLParser } from "fast-xml-parser";
3030
import { convertiXBRLToXBRL } from "@/util/convertiXBRLToXBRL.ts";
31+
import type { Underskrift } from "@/model/arsredovisning/Underskrift.ts";
3132
3233
const props = defineProps<
3334
CommonStepProps & {
@@ -66,6 +67,47 @@ onBeforeUnmount(() => {
6667
}
6768
});
6869
70+
// Kolla att nödvändiga fält är ifyllda
71+
const namesAndDatesAreFilled = computed(() => {
72+
return (
73+
props.arsredovisning.redovisningsinformation.datering &&
74+
props.arsredovisning.redovisningsinformation.underskrifter.length > 0 &&
75+
props.arsredovisning.redovisningsinformation.underskrifter.every(
76+
(signature) =>
77+
signature.tilltalsnamn && signature.efternamn && signature.datum,
78+
)
79+
);
80+
});
81+
82+
// Räkna ut senaste underskriftsdatum
83+
const latestSignatureDate = computed(() => {
84+
const signatures = props.arsredovisning.redovisningsinformation.underskrifter;
85+
if (!signatures || signatures.length === 0) {
86+
return null;
87+
}
88+
89+
const result = signatures.reduce(
90+
(
91+
{
92+
maxDate,
93+
maxDateSignature,
94+
}: { maxDate: Date; maxDateSignature: Underskrift | null },
95+
signature: Underskrift,
96+
) => {
97+
if (!signature.datum.match(/^\d{4}-\d{2}-\d{2}$/)) {
98+
return { maxDate, maxDateSignature };
99+
}
100+
const signatureDate = new Date(signature.datum);
101+
return signatureDate > maxDate
102+
? { maxDate: signatureDate, maxDateSignature: signature }
103+
: { maxDate, maxDateSignature };
104+
},
105+
{ maxDate: new Date(0), maxDateSignature: null },
106+
);
107+
108+
return result.maxDateSignature?.datum || null;
109+
});
110+
69111
// Räkna ut notkopplingar
70112
const forvaltningsberattelseTaxonomyManager = await getTaxonomyManager(
71113
TaxonomyRootName.FORVALTNINGSBERATTELSE,
@@ -310,22 +352,42 @@ const mismatchingValueBelopprader = computed(() => {
310352
<ul data-testid="finalize-reminder-redovisningsinformation-list">
311353
<li>
312354
Datering:
313-
{{
314-
arsredovisning.redovisningsinformation.datering ||
315-
"inget ifyllt"
316-
}}
355+
<template v-if="arsredovisning.redovisningsinformation.datering">
356+
{{ arsredovisning.redovisningsinformation.datering }}
357+
</template>
358+
<strong v-else>Inget ifyllt!</strong>
317359
</li>
318360
<li
319361
v-for="(underskrift, i) in props.arsredovisning
320362
.redovisningsinformation.underskrifter"
321363
:key="i"
322364
>
323365
Underskrift,
324-
{{ underskrift.tilltalsnamn || "< tilltalsnamn saknas >" }}
325-
{{ underskrift.efternamn || "< efternamn saknas >" }}:
326-
{{ underskrift.datum || "inget ifyllt" }}
366+
367+
<template v-if="underskrift.tilltalsnamn">
368+
{{ underskrift.tilltalsnamn }}
369+
</template>
370+
<strong v-else>&lt;tilltalsnamn saknas!&gt;</strong>
371+
{{ " " }}
372+
<template v-if="underskrift.efternamn">
373+
{{ underskrift.efternamn }}:
374+
</template>
375+
<strong v-else>&lt;efternamn saknas!&gt;:</strong>
376+
{{ " " }}
377+
<template v-if="underskrift.datum">
378+
{{ underskrift.datum }}
379+
</template>
380+
<strong v-else>&lt;datum saknas!&gt;</strong>
327381
</li>
328382
</ul>
383+
<div
384+
v-if="latestSignatureDate"
385+
data-testid="finalize-reminder-latest-signature-date"
386+
>
387+
Årsstämman får därmed hållas
388+
<strong>tidigast {{ latestSignatureDate }}</strong
389+
>.
390+
</div>
329391
</li>
330392
<li v-if="mismatchingValueBelopprader.length > 0">
331393
…beloppen för följande fält; det förekommer olika värden på olika
@@ -346,8 +408,14 @@ const mismatchingValueBelopprader = computed(() => {
346408
</div>
347409

348410
<CommonWizardButtons
349-
:next-button-disabled="!ixbrl"
350-
:next-button-text="ixbrl ? 'Nästa' : 'Vänta – arbetar i bakgrunden…'"
411+
:next-button-disabled="!ixbrl || !namesAndDatesAreFilled"
412+
:next-button-text="
413+
ixbrl
414+
? namesAndDatesAreFilled
415+
? 'Nästa'
416+
: 'Nödvändiga uppgifter saknas!'
417+
: 'Vänta – arbetar i bakgrunden…'
418+
"
351419
:previous-button-hidden="currentStepNumber === 1"
352420
@go-to-previous-step="emit('goToPreviousStep')"
353421
@go-to-next-step="emit('goToNextStep')"

src/components/tools/finish/send/steps/SendGredorAgreement.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ const userAgreed = ref<boolean>(false);
2929
<p>
3030
Gredor är ett gratisverktyg. I slutet av flödet kommer din
3131
årsredovisning att laddas upp till Bolagsverket i iXBRL-format, ett
32-
speciellt format som används för bland annat årsredovisningar och bör
32+
speciellt format som används för bland annat årsredovisningar och ska
3333
motsvara det som har visats i förhandsgranskningen tidigare i flödet. Vi
34-
som utvecklar Gredor har testat vektyget noggrannt för att minimera
35-
risken för att något ska bli fel då, men
36-
<strong>tänk på att vi inte lämnar några garantier.</strong>
34+
som utvecklar Gredor har testat verktyget noggrant för att minimera
35+
risken för att något ska bli fel då, men tänk på att vi inte lämnar
36+
några garantier.
3737
</p>
3838

3939
<p>Genom att kryssa i rutan nedan godtar du detta.</p>

src/components/tools/finish/send/steps/SendRequestFiles.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ async function handleArsredovisningFile(file: File) {
6262
data-testid="send-wizard-gredor-file-input"
6363
@file-picked="handleArsredovisningFile"
6464
/>
65+
66+
Filen ska du ha laddat ner i samband med att du färdigställde din
67+
årsredovisning inför årsstämman.
6568
</div>
6669

6770
<CommonWizardButtons

src/templates/exampleArsredovisning.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export const exampleArsredovisning: Arsredovisning = {
2525
tilltalsnamn: "Karl",
2626
efternamn: "Karlsson",
2727
roll: "",
28-
datum: "2026-03-12",
28+
datum: "2026-03-11",
2929
},
3030
{
3131
tilltalsnamn: "Karin",
@@ -35,7 +35,7 @@ export const exampleArsredovisning: Arsredovisning = {
3535
},
3636
],
3737
undertecknandeOrt: "Halmstad",
38-
datering: "2026-03-12",
38+
datering: "2026-03-11",
3939
},
4040
installningar: {
4141
flerarsoversiktBeloppFormat: BeloppFormat.TUSENTAL,

0 commit comments

Comments
 (0)