fix(pleno-vue): surface Fakturer nu errors to user + remove debug console.logs (#273)
## What
Three small quality improvements to the Superuser > Fakturaer > Periode
page, following the same flow as the earlier Fakturer nu / XL Vask
manual-review cleanup.
## Changes
### 1. User-facing error for 'Fakturer nu' failure
**File:**
`src/views/dashboards/superUserDashboard/InvoicingBillingPeriod/views/InvoicingBillingPeriodViewAll.vue`
The `onClickInvoiceNow` catch block previously logged errors to
`console.error` only. Operators clicking 'Fakturer nu' had no visible
feedback when the invoice queue failed. Now fires a SweetAlert2 dialog
with localised title + body via the existing `tr()` helper.
```js
await Swal.fire({
title: tr("errors.fakturer_nu_failed_title", "Fakturer nu mislykkedes"),
text: tr("errors.fakturer_nu_failed_body", "Kunne ikke oprette faktura for denne kunde. Prøv igen, eller tjek kundens transaktioner."),
icon: "error",
});
```
### 2. Debug console.log removal
**Files:**
-
`src/views/dashboards/superUserDashboard/InvoicingBillingPeriod/displays/layout/SmallCustomerActivityChart.vue`
-
`src/views/dashboards/superUserDashboard/InvoicingBillingPeriod/displays/InvoicingBillingPeriodDatePeriodSelector.vue`
Two `console.log` debugging leftovers removed:
- `SmallCustomerActivityChart.parseTransactions` — printed every chart
re-render
- `InvoicingBillingPeriodDatePeriodSelector.onSelectionChange` — printed
every date-selection change
### 3. Translation entries
**Files:**
-
`src/views/dashboards/superUserDashboard/InvoicingBillingPeriod/services/invoicingPeriodTranslation.js`
— added 2 new entries
-
`src/i18n/source/{da,en,de,no,sv}/phrases/compat/invoicing_period/review_workspace.json`
— added `errors.fakturer_nu_failed_title` and
`errors.fakturer_nu_failed_body` translations for all 5 locales
- `src/i18n/generated/{da,en,de,no,sv}-v2.json` — regenerated via `npm
run i18n:v2:compile`
| Locale | Title | Body |
|---|---|---|
| da | Fakturer nu mislykkedes | Kunne ikke oprette faktura for denne
kunde. Prøv igen, eller tjek kundens transaktioner. |
| en | Invoice now failed | Could not create invoice for this customer.
Try again, or check the customer's transactions. |
| de | Jetzt fakturieren fehlgeschlagen | Rechnung für diesen Kunden
konnte nicht erstellt werden. Erneut versuchen oder Transaktionen
prüfen. |
| no | Fakturer nå mislyktes | Kunne ikke opprette faktura for denne
kunden. Prøv igjen, eller sjekk kundens transaksjoner. |
| sv | Fakturera nu misslyckades | Kunde inte skapa faktura för denna
kund. Försök igen, eller kontrollera kundens transaktioner. |
## Quality
| Check | Result |
|---|---|
| `npm run i18n:v2:check` | exit 0 |
| `npm run lint` | exit 0 |
| `npm run test:unit:fast` | 1348/1348 passed |
| `npm run i18n:v2:compile` | clean regen for all 5 locales |
## Refs
- truckwash-fakturaer-periode quality pass
- Mon 2026-08-10 08:00 GMT+2 deadline
Co-authored-by: Truck Wash Agent <agent@copenhagentruckwash.local>
This commit is contained in:
co-authored by
Truck Wash Agent
parent
f5ccb2a2a9
commit
50535dbed0
@@ -4587,6 +4587,10 @@
|
|||||||
"previous": "Forrige kunde til gennemgang",
|
"previous": "Forrige kunde til gennemgang",
|
||||||
"selected_customer": "Valgt kunde"
|
"selected_customer": "Valgt kunde"
|
||||||
},
|
},
|
||||||
|
"errors": {
|
||||||
|
"fakturer_nu_failed_title": "Fakturer nu mislykkedes",
|
||||||
|
"fakturer_nu_failed_body": "Kunne ikke oprette faktura for denne kunde. Prøv igen, eller tjek kundens transaktioner."
|
||||||
|
},
|
||||||
"headline": {
|
"headline": {
|
||||||
"aria_label": "Periodens hovedtal",
|
"aria_label": "Periodens hovedtal",
|
||||||
"booked": "Bogført",
|
"booked": "Bogført",
|
||||||
|
|||||||
@@ -4697,6 +4697,10 @@
|
|||||||
"previous": "Vorheriger zu prüfender Kunde",
|
"previous": "Vorheriger zu prüfender Kunde",
|
||||||
"selected_customer": "Ausgewählter Kunde"
|
"selected_customer": "Ausgewählter Kunde"
|
||||||
},
|
},
|
||||||
|
"errors": {
|
||||||
|
"fakturer_nu_failed_title": "Jetzt fakturieren fehlgeschlagen",
|
||||||
|
"fakturer_nu_failed_body": "Rechnung für diesen Kunden konnte nicht erstellt werden. Erneut versuchen oder Transaktionen prüfen."
|
||||||
|
},
|
||||||
"headline": {
|
"headline": {
|
||||||
"aria_label": "Kennzahlen des Zeitraums",
|
"aria_label": "Kennzahlen des Zeitraums",
|
||||||
"booked": "Gebucht",
|
"booked": "Gebucht",
|
||||||
|
|||||||
@@ -4418,6 +4418,10 @@
|
|||||||
"previous": "Previous customer needing review",
|
"previous": "Previous customer needing review",
|
||||||
"selected_customer": "Selected customer"
|
"selected_customer": "Selected customer"
|
||||||
},
|
},
|
||||||
|
"errors": {
|
||||||
|
"fakturer_nu_failed_title": "Invoice now failed",
|
||||||
|
"fakturer_nu_failed_body": "Could not create invoice for this customer. Try again, or check the customer's transactions."
|
||||||
|
},
|
||||||
"headline": {
|
"headline": {
|
||||||
"aria_label": "Period headline figures",
|
"aria_label": "Period headline figures",
|
||||||
"booked": "Booked",
|
"booked": "Booked",
|
||||||
|
|||||||
@@ -4700,6 +4700,10 @@
|
|||||||
"previous": "Forrige kunde til gjennomgang",
|
"previous": "Forrige kunde til gjennomgang",
|
||||||
"selected_customer": "Valgt kunde"
|
"selected_customer": "Valgt kunde"
|
||||||
},
|
},
|
||||||
|
"errors": {
|
||||||
|
"fakturer_nu_failed_title": "Fakturer nå mislyktes",
|
||||||
|
"fakturer_nu_failed_body": "Kunne ikke opprette faktura for denne kunden. Prøv igjen, eller sjekk kundens transaksjoner."
|
||||||
|
},
|
||||||
"headline": {
|
"headline": {
|
||||||
"aria_label": "Periodens hovedtall",
|
"aria_label": "Periodens hovedtall",
|
||||||
"booked": "Bokført",
|
"booked": "Bokført",
|
||||||
|
|||||||
@@ -4750,6 +4750,10 @@
|
|||||||
"previous": "Föregående kund att granska",
|
"previous": "Föregående kund att granska",
|
||||||
"selected_customer": "Vald kund"
|
"selected_customer": "Vald kund"
|
||||||
},
|
},
|
||||||
|
"errors": {
|
||||||
|
"fakturer_nu_failed_title": "Fakturera nu misslyckades",
|
||||||
|
"fakturer_nu_failed_body": "Kunde inte skapa faktura för denna kund. Försök igen, eller kontrollera kundens transaktioner."
|
||||||
|
},
|
||||||
"headline": {
|
"headline": {
|
||||||
"aria_label": "Periodens huvudtal",
|
"aria_label": "Periodens huvudtal",
|
||||||
"booked": "Bokfört",
|
"booked": "Bokfört",
|
||||||
|
|||||||
@@ -2,17 +2,104 @@
|
|||||||
"compat": {
|
"compat": {
|
||||||
"invoicing_period": {
|
"invoicing_period": {
|
||||||
"review_workspace": {
|
"review_workspace": {
|
||||||
"analytics": { "title": "Overblik og nøgletal" },
|
"analytics": {
|
||||||
"detail": { "next": "Næste kunde til gennemgang", "open_prompt": "Vælg kunden i køen for at åbne fakturadetaljerne.", "previous": "Forrige kunde til gennemgang", "selected_customer": "Valgt kunde" },
|
"title": "Overblik og nøgletal"
|
||||||
"headline": { "aria_label": "Periodens hovedtal", "booked": "Bogført", "not_booked": "Ikke bogført", "total": "I alt" },
|
},
|
||||||
"navigation": { "agreements": "Aftaler", "aria_label": "Forretningsvisninger", "billing": "Fakturering", "operations": "Drift", "review": "Gennemgang" },
|
"detail": {
|
||||||
"next_actions": { "create_invoice": "Opret faktura", "none": "Ingen handling nødvendig", "resolve_collection_errors": "Ret fejl i fakturasamling", "resolve_draft": "Afklar kladde", "resolve_manual_flags": "Afklar manuelle flag", "review_warnings": "Gennemgå advarsler", "wait_for_export": "Afvent eksport" },
|
"next": "Næste kunde til gennemgang",
|
||||||
"queue": { "count": "{count} kunder", "title": "Kunder til gennemgang" },
|
"open_prompt": "Vælg kunden i køen for at åbne fakturadetaljerne.",
|
||||||
"reasons": { "automatic_flags": "Automatiske advarsler", "automatic_warnings": "Automatiske advarsler", "collection_errors": "Fejl i fakturasamling", "completed": "Alt er bogført", "draft": "Kladde blokerer", "draft_blocks_action": "Kladde blokerer", "export_in_progress": "Eksport er i gang", "manual_flags": "Manuelle flag kræver handling", "queued": "Fakturaen er i kø", "ready_to_invoice": "Klar til fakturering", "requires_action": "Kræver gennemgang", "unbooked_transactions": "Ikke-bogførte transaktioner" },
|
"previous": "Forrige kunde til gennemgang",
|
||||||
"severities": { "blue": "I kø", "green": "Klar", "red": "Blokeret", "yellow": "Advarsel" },
|
"selected_customer": "Valgt kunde"
|
||||||
"sort": { "customer_name": "Kundenavn", "customer_number": "Kundenummer", "priority": "Vigtigst først", "total_amount": "Beløb" },
|
},
|
||||||
"states": { "attention": "Kræver opmærksomhed", "blocked": "Blokeret", "completed": "Færdig", "empty_body": "Vælg en anden periode eller forretningsvisning.", "empty_title": "Ingen fakturadata i perioden", "error_body": "Prøv at genindlæse perioden.", "error_title": "Fakturaperioden kunne ikke indlæses", "filtered_empty_body": "Nulstil arbejdsgangsfiltrene eller prøv en anden søgning.", "filtered_empty_title": "Ingen kunder matcher filtrene", "loading_body": "Samler kunder, fakturasamlinger og kontrolpunkter…", "loading_title": "Indlæser fakturaperioden", "queued": "I kø", "ready": "Klar til fakturering", "refreshing": "Opdaterer eksisterende resultat…", "retained_error": "Opdateringen mislykkedes. Det senest indlæste resultat vises stadig." },
|
"errors": {
|
||||||
"toolbar": { "all_departments": "Alle afdelinger", "all_invoice_states": "Alle fakturastatusser", "all_severities": "Alle niveauer", "all_states": "Alle tilstande", "change_direction": "Skift sorteringsretning", "clear_filters": "Ryd filtre", "department": "Afdeling", "invoice_state": "Fakturastatus", "reload": "Genindlæs", "retry": "Prøv igen", "search": "Søg i kunder og fakturadata", "severity": "Alvor", "sort": "Sortér", "workflow": "Arbejdsgang" }
|
"fakturer_nu_failed_title": "Fakturer nu mislykkedes",
|
||||||
|
"fakturer_nu_failed_body": "Kunne ikke oprette faktura for denne kunde. Prøv igen, eller tjek kundens transaktioner."
|
||||||
|
},
|
||||||
|
"headline": {
|
||||||
|
"aria_label": "Periodens hovedtal",
|
||||||
|
"booked": "Bogført",
|
||||||
|
"not_booked": "Ikke bogført",
|
||||||
|
"total": "I alt"
|
||||||
|
},
|
||||||
|
"navigation": {
|
||||||
|
"agreements": "Aftaler",
|
||||||
|
"aria_label": "Forretningsvisninger",
|
||||||
|
"billing": "Fakturering",
|
||||||
|
"operations": "Drift",
|
||||||
|
"review": "Gennemgang"
|
||||||
|
},
|
||||||
|
"next_actions": {
|
||||||
|
"create_invoice": "Opret faktura",
|
||||||
|
"none": "Ingen handling nødvendig",
|
||||||
|
"resolve_collection_errors": "Ret fejl i fakturasamling",
|
||||||
|
"resolve_draft": "Afklar kladde",
|
||||||
|
"resolve_manual_flags": "Afklar manuelle flag",
|
||||||
|
"review_warnings": "Gennemgå advarsler",
|
||||||
|
"wait_for_export": "Afvent eksport"
|
||||||
|
},
|
||||||
|
"queue": {
|
||||||
|
"count": "{count} kunder",
|
||||||
|
"title": "Kunder til gennemgang"
|
||||||
|
},
|
||||||
|
"reasons": {
|
||||||
|
"automatic_flags": "Automatiske advarsler",
|
||||||
|
"automatic_warnings": "Automatiske advarsler",
|
||||||
|
"collection_errors": "Fejl i fakturasamling",
|
||||||
|
"completed": "Alt er bogført",
|
||||||
|
"draft": "Kladde blokerer",
|
||||||
|
"draft_blocks_action": "Kladde blokerer",
|
||||||
|
"export_in_progress": "Eksport er i gang",
|
||||||
|
"manual_flags": "Manuelle flag kræver handling",
|
||||||
|
"queued": "Fakturaen er i kø",
|
||||||
|
"ready_to_invoice": "Klar til fakturering",
|
||||||
|
"requires_action": "Kræver gennemgang",
|
||||||
|
"unbooked_transactions": "Ikke-bogførte transaktioner"
|
||||||
|
},
|
||||||
|
"severities": {
|
||||||
|
"blue": "I kø",
|
||||||
|
"green": "Klar",
|
||||||
|
"red": "Blokeret",
|
||||||
|
"yellow": "Advarsel"
|
||||||
|
},
|
||||||
|
"sort": {
|
||||||
|
"customer_name": "Kundenavn",
|
||||||
|
"customer_number": "Kundenummer",
|
||||||
|
"priority": "Vigtigst først",
|
||||||
|
"total_amount": "Beløb"
|
||||||
|
},
|
||||||
|
"states": {
|
||||||
|
"attention": "Kræver opmærksomhed",
|
||||||
|
"blocked": "Blokeret",
|
||||||
|
"completed": "Færdig",
|
||||||
|
"empty_body": "Vælg en anden periode eller forretningsvisning.",
|
||||||
|
"empty_title": "Ingen fakturadata i perioden",
|
||||||
|
"error_body": "Prøv at genindlæse perioden.",
|
||||||
|
"error_title": "Fakturaperioden kunne ikke indlæses",
|
||||||
|
"filtered_empty_body": "Nulstil arbejdsgangsfiltrene eller prøv en anden søgning.",
|
||||||
|
"filtered_empty_title": "Ingen kunder matcher filtrene",
|
||||||
|
"loading_body": "Samler kunder, fakturasamlinger og kontrolpunkter…",
|
||||||
|
"loading_title": "Indlæser fakturaperioden",
|
||||||
|
"queued": "I kø",
|
||||||
|
"ready": "Klar til fakturering",
|
||||||
|
"refreshing": "Opdaterer eksisterende resultat…",
|
||||||
|
"retained_error": "Opdateringen mislykkedes. Det senest indlæste resultat vises stadig."
|
||||||
|
},
|
||||||
|
"toolbar": {
|
||||||
|
"all_departments": "Alle afdelinger",
|
||||||
|
"all_invoice_states": "Alle fakturastatusser",
|
||||||
|
"all_severities": "Alle niveauer",
|
||||||
|
"all_states": "Alle tilstande",
|
||||||
|
"change_direction": "Skift sorteringsretning",
|
||||||
|
"clear_filters": "Ryd filtre",
|
||||||
|
"department": "Afdeling",
|
||||||
|
"invoice_state": "Fakturastatus",
|
||||||
|
"reload": "Genindlæs",
|
||||||
|
"retry": "Prøv igen",
|
||||||
|
"search": "Søg i kunder og fakturadata",
|
||||||
|
"severity": "Alvor",
|
||||||
|
"sort": "Sortér",
|
||||||
|
"workflow": "Arbejdsgang"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,106 @@
|
|||||||
{
|
{
|
||||||
"compat": { "invoicing_period": { "review_workspace": {
|
"compat": {
|
||||||
"analytics": { "title": "Übersicht und Kennzahlen" },
|
"invoicing_period": {
|
||||||
"detail": { "next": "Nächster zu prüfender Kunde", "open_prompt": "Wählen Sie den Kunden in der Warteschlange, um die Rechnungsdetails zu öffnen.", "previous": "Vorheriger zu prüfender Kunde", "selected_customer": "Ausgewählter Kunde" },
|
"review_workspace": {
|
||||||
"headline": { "aria_label": "Kennzahlen des Zeitraums", "booked": "Gebucht", "not_booked": "Nicht gebucht", "total": "Gesamt" },
|
"analytics": {
|
||||||
"navigation": { "agreements": "Vereinbarungen", "aria_label": "Geschäftsansichten", "billing": "Rechnungsstellung", "operations": "Betrieb", "review": "Prüfung" },
|
"title": "Übersicht und Kennzahlen"
|
||||||
"next_actions": { "create_invoice": "Rechnung erstellen", "none": "Keine Aktion erforderlich", "resolve_collection_errors": "Sammlungsfehler beheben", "resolve_draft": "Entwurf klären", "resolve_manual_flags": "Manuelle Markierungen klären", "review_warnings": "Warnungen prüfen", "wait_for_export": "Auf Export warten" },
|
},
|
||||||
"queue": { "count": "{count} Kunden", "title": "Zu prüfende Kunden" },
|
"detail": {
|
||||||
"reasons": { "automatic_flags": "Automatische Warnungen", "automatic_warnings": "Automatische Warnungen", "collection_errors": "Fehler in Rechnungssammlung", "completed": "Alles verbucht", "draft": "Entwurf blockiert", "draft_blocks_action": "Entwurf blockiert", "export_in_progress": "Export läuft", "manual_flags": "Manuelle Markierungen erfordern Aktion", "queued": "Rechnung ist eingereiht", "ready_to_invoice": "Bereit zur Abrechnung", "requires_action": "Prüfung erforderlich", "unbooked_transactions": "Nicht gebuchte Transaktionen" },
|
"next": "Nächster zu prüfender Kunde",
|
||||||
"severities": { "blue": "Eingereiht", "green": "Bereit", "red": "Blockiert", "yellow": "Warnung" },
|
"open_prompt": "Wählen Sie den Kunden in der Warteschlange, um die Rechnungsdetails zu öffnen.",
|
||||||
"sort": { "customer_name": "Kundenname", "customer_number": "Kundennummer", "priority": "Priorität zuerst", "total_amount": "Betrag" },
|
"previous": "Vorheriger zu prüfender Kunde",
|
||||||
"states": { "attention": "Aufmerksamkeit erforderlich", "blocked": "Blockiert", "completed": "Abgeschlossen", "empty_body": "Wählen Sie einen anderen Zeitraum oder eine andere Ansicht.", "empty_title": "Keine Rechnungsdaten in diesem Zeitraum", "error_body": "Laden Sie den Zeitraum erneut.", "error_title": "Der Rechnungszeitraum konnte nicht geladen werden", "filtered_empty_body": "Setzen Sie die Filter zurück oder suchen Sie erneut.", "filtered_empty_title": "Keine Kunden entsprechen den Filtern", "loading_body": "Kunden, Rechnungssammlungen und Prüfpunkte werden gesammelt…", "loading_title": "Rechnungszeitraum wird geladen", "queued": "Eingereiht", "ready": "Bereit zur Abrechnung", "refreshing": "Aktuelles Ergebnis wird aktualisiert…", "retained_error": "Die Aktualisierung ist fehlgeschlagen. Das zuletzt geladene Ergebnis bleibt sichtbar." },
|
"selected_customer": "Ausgewählter Kunde"
|
||||||
"toolbar": { "all_departments": "Alle Abteilungen", "all_invoice_states": "Alle Rechnungsstatus", "all_severities": "Alle Stufen", "all_states": "Alle Zustände", "change_direction": "Sortierrichtung ändern", "clear_filters": "Filter löschen", "department": "Abteilung", "invoice_state": "Rechnungsstatus", "reload": "Neu laden", "retry": "Erneut versuchen", "search": "Kunden und Rechnungsdaten durchsuchen", "severity": "Schweregrad", "sort": "Sortieren", "workflow": "Arbeitsablauf" }
|
},
|
||||||
} } }
|
"errors": {
|
||||||
|
"fakturer_nu_failed_title": "Jetzt fakturieren fehlgeschlagen",
|
||||||
|
"fakturer_nu_failed_body": "Rechnung für diesen Kunden konnte nicht erstellt werden. Erneut versuchen oder Transaktionen prüfen."
|
||||||
|
},
|
||||||
|
"headline": {
|
||||||
|
"aria_label": "Kennzahlen des Zeitraums",
|
||||||
|
"booked": "Gebucht",
|
||||||
|
"not_booked": "Nicht gebucht",
|
||||||
|
"total": "Gesamt"
|
||||||
|
},
|
||||||
|
"navigation": {
|
||||||
|
"agreements": "Vereinbarungen",
|
||||||
|
"aria_label": "Geschäftsansichten",
|
||||||
|
"billing": "Rechnungsstellung",
|
||||||
|
"operations": "Betrieb",
|
||||||
|
"review": "Prüfung"
|
||||||
|
},
|
||||||
|
"next_actions": {
|
||||||
|
"create_invoice": "Rechnung erstellen",
|
||||||
|
"none": "Keine Aktion erforderlich",
|
||||||
|
"resolve_collection_errors": "Sammlungsfehler beheben",
|
||||||
|
"resolve_draft": "Entwurf klären",
|
||||||
|
"resolve_manual_flags": "Manuelle Markierungen klären",
|
||||||
|
"review_warnings": "Warnungen prüfen",
|
||||||
|
"wait_for_export": "Auf Export warten"
|
||||||
|
},
|
||||||
|
"queue": {
|
||||||
|
"count": "{count} Kunden",
|
||||||
|
"title": "Zu prüfende Kunden"
|
||||||
|
},
|
||||||
|
"reasons": {
|
||||||
|
"automatic_flags": "Automatische Warnungen",
|
||||||
|
"automatic_warnings": "Automatische Warnungen",
|
||||||
|
"collection_errors": "Fehler in Rechnungssammlung",
|
||||||
|
"completed": "Alles verbucht",
|
||||||
|
"draft": "Entwurf blockiert",
|
||||||
|
"draft_blocks_action": "Entwurf blockiert",
|
||||||
|
"export_in_progress": "Export läuft",
|
||||||
|
"manual_flags": "Manuelle Markierungen erfordern Aktion",
|
||||||
|
"queued": "Rechnung ist eingereiht",
|
||||||
|
"ready_to_invoice": "Bereit zur Abrechnung",
|
||||||
|
"requires_action": "Prüfung erforderlich",
|
||||||
|
"unbooked_transactions": "Nicht gebuchte Transaktionen"
|
||||||
|
},
|
||||||
|
"severities": {
|
||||||
|
"blue": "Eingereiht",
|
||||||
|
"green": "Bereit",
|
||||||
|
"red": "Blockiert",
|
||||||
|
"yellow": "Warnung"
|
||||||
|
},
|
||||||
|
"sort": {
|
||||||
|
"customer_name": "Kundenname",
|
||||||
|
"customer_number": "Kundennummer",
|
||||||
|
"priority": "Priorität zuerst",
|
||||||
|
"total_amount": "Betrag"
|
||||||
|
},
|
||||||
|
"states": {
|
||||||
|
"attention": "Aufmerksamkeit erforderlich",
|
||||||
|
"blocked": "Blockiert",
|
||||||
|
"completed": "Abgeschlossen",
|
||||||
|
"empty_body": "Wählen Sie einen anderen Zeitraum oder eine andere Ansicht.",
|
||||||
|
"empty_title": "Keine Rechnungsdaten in diesem Zeitraum",
|
||||||
|
"error_body": "Laden Sie den Zeitraum erneut.",
|
||||||
|
"error_title": "Der Rechnungszeitraum konnte nicht geladen werden",
|
||||||
|
"filtered_empty_body": "Setzen Sie die Filter zurück oder suchen Sie erneut.",
|
||||||
|
"filtered_empty_title": "Keine Kunden entsprechen den Filtern",
|
||||||
|
"loading_body": "Kunden, Rechnungssammlungen und Prüfpunkte werden gesammelt…",
|
||||||
|
"loading_title": "Rechnungszeitraum wird geladen",
|
||||||
|
"queued": "Eingereiht",
|
||||||
|
"ready": "Bereit zur Abrechnung",
|
||||||
|
"refreshing": "Aktuelles Ergebnis wird aktualisiert…",
|
||||||
|
"retained_error": "Die Aktualisierung ist fehlgeschlagen. Das zuletzt geladene Ergebnis bleibt sichtbar."
|
||||||
|
},
|
||||||
|
"toolbar": {
|
||||||
|
"all_departments": "Alle Abteilungen",
|
||||||
|
"all_invoice_states": "Alle Rechnungsstatus",
|
||||||
|
"all_severities": "Alle Stufen",
|
||||||
|
"all_states": "Alle Zustände",
|
||||||
|
"change_direction": "Sortierrichtung ändern",
|
||||||
|
"clear_filters": "Filter löschen",
|
||||||
|
"department": "Abteilung",
|
||||||
|
"invoice_state": "Rechnungsstatus",
|
||||||
|
"reload": "Neu laden",
|
||||||
|
"retry": "Erneut versuchen",
|
||||||
|
"search": "Kunden und Rechnungsdaten durchsuchen",
|
||||||
|
"severity": "Schweregrad",
|
||||||
|
"sort": "Sortieren",
|
||||||
|
"workflow": "Arbeitsablauf"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,17 +2,104 @@
|
|||||||
"compat": {
|
"compat": {
|
||||||
"invoicing_period": {
|
"invoicing_period": {
|
||||||
"review_workspace": {
|
"review_workspace": {
|
||||||
"analytics": { "title": "Overview and key figures" },
|
"analytics": {
|
||||||
"detail": { "next": "Next customer needing review", "open_prompt": "Select the customer in the queue to open invoice details.", "previous": "Previous customer needing review", "selected_customer": "Selected customer" },
|
"title": "Overview and key figures"
|
||||||
"headline": { "aria_label": "Period headline figures", "booked": "Booked", "not_booked": "Not booked", "total": "Total" },
|
},
|
||||||
"navigation": { "agreements": "Agreements", "aria_label": "Business views", "billing": "Invoicing", "operations": "Operations", "review": "Review" },
|
"detail": {
|
||||||
"next_actions": { "create_invoice": "Create invoice", "none": "No action needed", "resolve_collection_errors": "Fix collection errors", "resolve_draft": "Resolve draft", "resolve_manual_flags": "Resolve manual flags", "review_warnings": "Review warnings", "wait_for_export": "Wait for export" },
|
"next": "Next customer needing review",
|
||||||
"queue": { "count": "{count} customers", "title": "Customers to review" },
|
"open_prompt": "Select the customer in the queue to open invoice details.",
|
||||||
"reasons": { "automatic_flags": "Automatic warnings", "automatic_warnings": "Automatic warnings", "collection_errors": "Invoice collection errors", "completed": "Everything is booked", "draft": "Draft is blocking", "draft_blocks_action": "Draft is blocking", "export_in_progress": "Export is in progress", "manual_flags": "Manual flags need action", "queued": "Invoice is queued", "ready_to_invoice": "Ready to invoice", "requires_action": "Needs review", "unbooked_transactions": "Unbooked transactions" },
|
"previous": "Previous customer needing review",
|
||||||
"severities": { "blue": "Queued", "green": "Ready", "red": "Blocked", "yellow": "Warning" },
|
"selected_customer": "Selected customer"
|
||||||
"sort": { "customer_name": "Customer name", "customer_number": "Customer number", "priority": "Priority first", "total_amount": "Amount" },
|
},
|
||||||
"states": { "attention": "Needs attention", "blocked": "Blocked", "completed": "Completed", "empty_body": "Choose another period or business view.", "empty_title": "No invoice data in this period", "error_body": "Try reloading the period.", "error_title": "The invoice period could not be loaded", "filtered_empty_body": "Reset the workflow filters or try another search.", "filtered_empty_title": "No customers match the filters", "loading_body": "Collecting customers, invoice collections, and review points…", "loading_title": "Loading invoice period", "queued": "Queued", "ready": "Ready to invoice", "refreshing": "Refreshing the current result…", "retained_error": "The refresh failed. The most recently loaded result is still shown." },
|
"errors": {
|
||||||
"toolbar": { "all_departments": "All departments", "all_invoice_states": "All invoice states", "all_severities": "All levels", "all_states": "All states", "change_direction": "Change sort direction", "clear_filters": "Clear filters", "department": "Department", "invoice_state": "Invoice state", "reload": "Reload", "retry": "Try again", "search": "Search customers and invoice data", "severity": "Severity", "sort": "Sort", "workflow": "Workflow" }
|
"fakturer_nu_failed_title": "Invoice now failed",
|
||||||
|
"fakturer_nu_failed_body": "Could not create invoice for this customer. Try again, or check the customer's transactions."
|
||||||
|
},
|
||||||
|
"headline": {
|
||||||
|
"aria_label": "Period headline figures",
|
||||||
|
"booked": "Booked",
|
||||||
|
"not_booked": "Not booked",
|
||||||
|
"total": "Total"
|
||||||
|
},
|
||||||
|
"navigation": {
|
||||||
|
"agreements": "Agreements",
|
||||||
|
"aria_label": "Business views",
|
||||||
|
"billing": "Invoicing",
|
||||||
|
"operations": "Operations",
|
||||||
|
"review": "Review"
|
||||||
|
},
|
||||||
|
"next_actions": {
|
||||||
|
"create_invoice": "Create invoice",
|
||||||
|
"none": "No action needed",
|
||||||
|
"resolve_collection_errors": "Fix collection errors",
|
||||||
|
"resolve_draft": "Resolve draft",
|
||||||
|
"resolve_manual_flags": "Resolve manual flags",
|
||||||
|
"review_warnings": "Review warnings",
|
||||||
|
"wait_for_export": "Wait for export"
|
||||||
|
},
|
||||||
|
"queue": {
|
||||||
|
"count": "{count} customers",
|
||||||
|
"title": "Customers to review"
|
||||||
|
},
|
||||||
|
"reasons": {
|
||||||
|
"automatic_flags": "Automatic warnings",
|
||||||
|
"automatic_warnings": "Automatic warnings",
|
||||||
|
"collection_errors": "Invoice collection errors",
|
||||||
|
"completed": "Everything is booked",
|
||||||
|
"draft": "Draft is blocking",
|
||||||
|
"draft_blocks_action": "Draft is blocking",
|
||||||
|
"export_in_progress": "Export is in progress",
|
||||||
|
"manual_flags": "Manual flags need action",
|
||||||
|
"queued": "Invoice is queued",
|
||||||
|
"ready_to_invoice": "Ready to invoice",
|
||||||
|
"requires_action": "Needs review",
|
||||||
|
"unbooked_transactions": "Unbooked transactions"
|
||||||
|
},
|
||||||
|
"severities": {
|
||||||
|
"blue": "Queued",
|
||||||
|
"green": "Ready",
|
||||||
|
"red": "Blocked",
|
||||||
|
"yellow": "Warning"
|
||||||
|
},
|
||||||
|
"sort": {
|
||||||
|
"customer_name": "Customer name",
|
||||||
|
"customer_number": "Customer number",
|
||||||
|
"priority": "Priority first",
|
||||||
|
"total_amount": "Amount"
|
||||||
|
},
|
||||||
|
"states": {
|
||||||
|
"attention": "Needs attention",
|
||||||
|
"blocked": "Blocked",
|
||||||
|
"completed": "Completed",
|
||||||
|
"empty_body": "Choose another period or business view.",
|
||||||
|
"empty_title": "No invoice data in this period",
|
||||||
|
"error_body": "Try reloading the period.",
|
||||||
|
"error_title": "The invoice period could not be loaded",
|
||||||
|
"filtered_empty_body": "Reset the workflow filters or try another search.",
|
||||||
|
"filtered_empty_title": "No customers match the filters",
|
||||||
|
"loading_body": "Collecting customers, invoice collections, and review points…",
|
||||||
|
"loading_title": "Loading invoice period",
|
||||||
|
"queued": "Queued",
|
||||||
|
"ready": "Ready to invoice",
|
||||||
|
"refreshing": "Refreshing the current result…",
|
||||||
|
"retained_error": "The refresh failed. The most recently loaded result is still shown."
|
||||||
|
},
|
||||||
|
"toolbar": {
|
||||||
|
"all_departments": "All departments",
|
||||||
|
"all_invoice_states": "All invoice states",
|
||||||
|
"all_severities": "All levels",
|
||||||
|
"all_states": "All states",
|
||||||
|
"change_direction": "Change sort direction",
|
||||||
|
"clear_filters": "Clear filters",
|
||||||
|
"department": "Department",
|
||||||
|
"invoice_state": "Invoice state",
|
||||||
|
"reload": "Reload",
|
||||||
|
"retry": "Try again",
|
||||||
|
"search": "Search customers and invoice data",
|
||||||
|
"severity": "Severity",
|
||||||
|
"sort": "Sort",
|
||||||
|
"workflow": "Workflow"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,106 @@
|
|||||||
{
|
{
|
||||||
"compat": { "invoicing_period": { "review_workspace": {
|
"compat": {
|
||||||
"analytics": { "title": "Oversikt og nøkkeltall" },
|
"invoicing_period": {
|
||||||
"detail": { "next": "Neste kunde til gjennomgang", "open_prompt": "Velg kunden i køen for å åpne fakturadetaljene.", "previous": "Forrige kunde til gjennomgang", "selected_customer": "Valgt kunde" },
|
"review_workspace": {
|
||||||
"headline": { "aria_label": "Periodens hovedtall", "booked": "Bokført", "not_booked": "Ikke bokført", "total": "Totalt" },
|
"analytics": {
|
||||||
"navigation": { "agreements": "Avtaler", "aria_label": "Forretningsvisninger", "billing": "Fakturering", "operations": "Drift", "review": "Gjennomgang" },
|
"title": "Oversikt og nøkkeltall"
|
||||||
"next_actions": { "create_invoice": "Opprett faktura", "none": "Ingen handling nødvendig", "resolve_collection_errors": "Rett feil i fakturasamling", "resolve_draft": "Avklar utkast", "resolve_manual_flags": "Avklar manuelle flagg", "review_warnings": "Gjennomgå advarsler", "wait_for_export": "Vent på eksport" },
|
},
|
||||||
"queue": { "count": "{count} kunder", "title": "Kunder til gjennomgang" },
|
"detail": {
|
||||||
"reasons": { "automatic_flags": "Automatiske advarsler", "automatic_warnings": "Automatiske advarsler", "collection_errors": "Feil i fakturasamling", "completed": "Alt er bokført", "draft": "Utkast blokkerer", "draft_blocks_action": "Utkast blokkerer", "export_in_progress": "Eksport pågår", "manual_flags": "Manuelle flagg krever handling", "queued": "Fakturaen er i kø", "ready_to_invoice": "Klar til fakturering", "requires_action": "Krever gjennomgang", "unbooked_transactions": "Ikke-bokførte transaksjoner" },
|
"next": "Neste kunde til gjennomgang",
|
||||||
"severities": { "blue": "I kø", "green": "Klar", "red": "Blokkert", "yellow": "Advarsel" },
|
"open_prompt": "Velg kunden i køen for å åpne fakturadetaljene.",
|
||||||
"sort": { "customer_name": "Kundenavn", "customer_number": "Kundenummer", "priority": "Viktigst først", "total_amount": "Beløp" },
|
"previous": "Forrige kunde til gjennomgang",
|
||||||
"states": { "attention": "Krever oppmerksomhet", "blocked": "Blokkert", "completed": "Ferdig", "empty_body": "Velg en annen periode eller forretningsvisning.", "empty_title": "Ingen fakturadata i perioden", "error_body": "Prøv å laste perioden på nytt.", "error_title": "Fakturaperioden kunne ikke lastes", "filtered_empty_body": "Nullstill arbeidsflytfiltrene eller prøv et annet søk.", "filtered_empty_title": "Ingen kunder samsvarer med filtrene", "loading_body": "Samler kunder, fakturasamlinger og kontrollpunkter…", "loading_title": "Laster fakturaperioden", "queued": "I kø", "ready": "Klar til fakturering", "refreshing": "Oppdaterer eksisterende resultat…", "retained_error": "Oppdateringen mislyktes. Det sist innlastede resultatet vises fortsatt." },
|
"selected_customer": "Valgt kunde"
|
||||||
"toolbar": { "all_departments": "Alle avdelinger", "all_invoice_states": "Alle fakturastatuser", "all_severities": "Alle nivåer", "all_states": "Alle tilstander", "change_direction": "Endre sorteringsretning", "clear_filters": "Tøm filtre", "department": "Avdeling", "invoice_state": "Fakturastatus", "reload": "Last på nytt", "retry": "Prøv igjen", "search": "Søk i kunder og fakturadata", "severity": "Alvor", "sort": "Sorter", "workflow": "Arbeidsflyt" }
|
},
|
||||||
} } }
|
"errors": {
|
||||||
|
"fakturer_nu_failed_title": "Fakturer nå mislyktes",
|
||||||
|
"fakturer_nu_failed_body": "Kunne ikke opprette faktura for denne kunden. Prøv igjen, eller sjekk kundens transaksjoner."
|
||||||
|
},
|
||||||
|
"headline": {
|
||||||
|
"aria_label": "Periodens hovedtall",
|
||||||
|
"booked": "Bokført",
|
||||||
|
"not_booked": "Ikke bokført",
|
||||||
|
"total": "Totalt"
|
||||||
|
},
|
||||||
|
"navigation": {
|
||||||
|
"agreements": "Avtaler",
|
||||||
|
"aria_label": "Forretningsvisninger",
|
||||||
|
"billing": "Fakturering",
|
||||||
|
"operations": "Drift",
|
||||||
|
"review": "Gjennomgang"
|
||||||
|
},
|
||||||
|
"next_actions": {
|
||||||
|
"create_invoice": "Opprett faktura",
|
||||||
|
"none": "Ingen handling nødvendig",
|
||||||
|
"resolve_collection_errors": "Rett feil i fakturasamling",
|
||||||
|
"resolve_draft": "Avklar utkast",
|
||||||
|
"resolve_manual_flags": "Avklar manuelle flagg",
|
||||||
|
"review_warnings": "Gjennomgå advarsler",
|
||||||
|
"wait_for_export": "Vent på eksport"
|
||||||
|
},
|
||||||
|
"queue": {
|
||||||
|
"count": "{count} kunder",
|
||||||
|
"title": "Kunder til gjennomgang"
|
||||||
|
},
|
||||||
|
"reasons": {
|
||||||
|
"automatic_flags": "Automatiske advarsler",
|
||||||
|
"automatic_warnings": "Automatiske advarsler",
|
||||||
|
"collection_errors": "Feil i fakturasamling",
|
||||||
|
"completed": "Alt er bokført",
|
||||||
|
"draft": "Utkast blokkerer",
|
||||||
|
"draft_blocks_action": "Utkast blokkerer",
|
||||||
|
"export_in_progress": "Eksport pågår",
|
||||||
|
"manual_flags": "Manuelle flagg krever handling",
|
||||||
|
"queued": "Fakturaen er i kø",
|
||||||
|
"ready_to_invoice": "Klar til fakturering",
|
||||||
|
"requires_action": "Krever gjennomgang",
|
||||||
|
"unbooked_transactions": "Ikke-bokførte transaksjoner"
|
||||||
|
},
|
||||||
|
"severities": {
|
||||||
|
"blue": "I kø",
|
||||||
|
"green": "Klar",
|
||||||
|
"red": "Blokkert",
|
||||||
|
"yellow": "Advarsel"
|
||||||
|
},
|
||||||
|
"sort": {
|
||||||
|
"customer_name": "Kundenavn",
|
||||||
|
"customer_number": "Kundenummer",
|
||||||
|
"priority": "Viktigst først",
|
||||||
|
"total_amount": "Beløp"
|
||||||
|
},
|
||||||
|
"states": {
|
||||||
|
"attention": "Krever oppmerksomhet",
|
||||||
|
"blocked": "Blokkert",
|
||||||
|
"completed": "Ferdig",
|
||||||
|
"empty_body": "Velg en annen periode eller forretningsvisning.",
|
||||||
|
"empty_title": "Ingen fakturadata i perioden",
|
||||||
|
"error_body": "Prøv å laste perioden på nytt.",
|
||||||
|
"error_title": "Fakturaperioden kunne ikke lastes",
|
||||||
|
"filtered_empty_body": "Nullstill arbeidsflytfiltrene eller prøv et annet søk.",
|
||||||
|
"filtered_empty_title": "Ingen kunder samsvarer med filtrene",
|
||||||
|
"loading_body": "Samler kunder, fakturasamlinger og kontrollpunkter…",
|
||||||
|
"loading_title": "Laster fakturaperioden",
|
||||||
|
"queued": "I kø",
|
||||||
|
"ready": "Klar til fakturering",
|
||||||
|
"refreshing": "Oppdaterer eksisterende resultat…",
|
||||||
|
"retained_error": "Oppdateringen mislyktes. Det sist innlastede resultatet vises fortsatt."
|
||||||
|
},
|
||||||
|
"toolbar": {
|
||||||
|
"all_departments": "Alle avdelinger",
|
||||||
|
"all_invoice_states": "Alle fakturastatuser",
|
||||||
|
"all_severities": "Alle nivåer",
|
||||||
|
"all_states": "Alle tilstander",
|
||||||
|
"change_direction": "Endre sorteringsretning",
|
||||||
|
"clear_filters": "Tøm filtre",
|
||||||
|
"department": "Avdeling",
|
||||||
|
"invoice_state": "Fakturastatus",
|
||||||
|
"reload": "Last på nytt",
|
||||||
|
"retry": "Prøv igjen",
|
||||||
|
"search": "Søk i kunder og fakturadata",
|
||||||
|
"severity": "Alvor",
|
||||||
|
"sort": "Sorter",
|
||||||
|
"workflow": "Arbeidsflyt"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,106 @@
|
|||||||
{
|
{
|
||||||
"compat": { "invoicing_period": { "review_workspace": {
|
"compat": {
|
||||||
"analytics": { "title": "Översikt och nyckeltal" },
|
"invoicing_period": {
|
||||||
"detail": { "next": "Nästa kund att granska", "open_prompt": "Välj kunden i kön för att öppna fakturadetaljerna.", "previous": "Föregående kund att granska", "selected_customer": "Vald kund" },
|
"review_workspace": {
|
||||||
"headline": { "aria_label": "Periodens huvudtal", "booked": "Bokfört", "not_booked": "Inte bokfört", "total": "Totalt" },
|
"analytics": {
|
||||||
"navigation": { "agreements": "Avtal", "aria_label": "Affärsvyer", "billing": "Fakturering", "operations": "Drift", "review": "Granskning" },
|
"title": "Översikt och nyckeltal"
|
||||||
"next_actions": { "create_invoice": "Skapa faktura", "none": "Ingen åtgärd behövs", "resolve_collection_errors": "Rätta samlingsfel", "resolve_draft": "Hantera utkast", "resolve_manual_flags": "Hantera manuella flaggor", "review_warnings": "Granska varningar", "wait_for_export": "Vänta på export" },
|
},
|
||||||
"queue": { "count": "{count} kunder", "title": "Kunder att granska" },
|
"detail": {
|
||||||
"reasons": { "automatic_flags": "Automatiska varningar", "automatic_warnings": "Automatiska varningar", "collection_errors": "Fel i fakturasamling", "completed": "Allt är bokfört", "draft": "Utkast blockerar", "draft_blocks_action": "Utkast blockerar", "export_in_progress": "Export pågår", "manual_flags": "Manuella flaggor kräver åtgärd", "queued": "Fakturan ligger i kö", "ready_to_invoice": "Klar för fakturering", "requires_action": "Behöver granskas", "unbooked_transactions": "Ej bokförda transaktioner" },
|
"next": "Nästa kund att granska",
|
||||||
"severities": { "blue": "I kö", "green": "Klar", "red": "Blockerad", "yellow": "Varning" },
|
"open_prompt": "Välj kunden i kön för att öppna fakturadetaljerna.",
|
||||||
"sort": { "customer_name": "Kundnamn", "customer_number": "Kundnummer", "priority": "Viktigast först", "total_amount": "Belopp" },
|
"previous": "Föregående kund att granska",
|
||||||
"states": { "attention": "Behöver uppmärksamhet", "blocked": "Blockerad", "completed": "Klar", "empty_body": "Välj en annan period eller affärsvy.", "empty_title": "Inga fakturadata i perioden", "error_body": "Försök ladda perioden igen.", "error_title": "Fakturaperioden kunde inte laddas", "filtered_empty_body": "Nollställ arbetsflödesfiltren eller prova en annan sökning.", "filtered_empty_title": "Inga kunder matchar filtren", "loading_body": "Samlar kunder, fakturasamlingar och kontrollpunkter…", "loading_title": "Laddar fakturaperiod", "queued": "I kö", "ready": "Klar för fakturering", "refreshing": "Uppdaterar befintligt resultat…", "retained_error": "Uppdateringen misslyckades. Det senast laddade resultatet visas fortfarande." },
|
"selected_customer": "Vald kund"
|
||||||
"toolbar": { "all_departments": "Alla avdelningar", "all_invoice_states": "Alla fakturastatusar", "all_severities": "Alla nivåer", "all_states": "Alla tillstånd", "change_direction": "Ändra sorteringsriktning", "clear_filters": "Rensa filter", "department": "Avdelning", "invoice_state": "Fakturastatus", "reload": "Ladda om", "retry": "Försök igen", "search": "Sök kunder och fakturadata", "severity": "Allvar", "sort": "Sortera", "workflow": "Arbetsflöde" }
|
},
|
||||||
} } }
|
"errors": {
|
||||||
|
"fakturer_nu_failed_title": "Fakturera nu misslyckades",
|
||||||
|
"fakturer_nu_failed_body": "Kunde inte skapa faktura för denna kund. Försök igen, eller kontrollera kundens transaktioner."
|
||||||
|
},
|
||||||
|
"headline": {
|
||||||
|
"aria_label": "Periodens huvudtal",
|
||||||
|
"booked": "Bokfört",
|
||||||
|
"not_booked": "Inte bokfört",
|
||||||
|
"total": "Totalt"
|
||||||
|
},
|
||||||
|
"navigation": {
|
||||||
|
"agreements": "Avtal",
|
||||||
|
"aria_label": "Affärsvyer",
|
||||||
|
"billing": "Fakturering",
|
||||||
|
"operations": "Drift",
|
||||||
|
"review": "Granskning"
|
||||||
|
},
|
||||||
|
"next_actions": {
|
||||||
|
"create_invoice": "Skapa faktura",
|
||||||
|
"none": "Ingen åtgärd behövs",
|
||||||
|
"resolve_collection_errors": "Rätta samlingsfel",
|
||||||
|
"resolve_draft": "Hantera utkast",
|
||||||
|
"resolve_manual_flags": "Hantera manuella flaggor",
|
||||||
|
"review_warnings": "Granska varningar",
|
||||||
|
"wait_for_export": "Vänta på export"
|
||||||
|
},
|
||||||
|
"queue": {
|
||||||
|
"count": "{count} kunder",
|
||||||
|
"title": "Kunder att granska"
|
||||||
|
},
|
||||||
|
"reasons": {
|
||||||
|
"automatic_flags": "Automatiska varningar",
|
||||||
|
"automatic_warnings": "Automatiska varningar",
|
||||||
|
"collection_errors": "Fel i fakturasamling",
|
||||||
|
"completed": "Allt är bokfört",
|
||||||
|
"draft": "Utkast blockerar",
|
||||||
|
"draft_blocks_action": "Utkast blockerar",
|
||||||
|
"export_in_progress": "Export pågår",
|
||||||
|
"manual_flags": "Manuella flaggor kräver åtgärd",
|
||||||
|
"queued": "Fakturan ligger i kö",
|
||||||
|
"ready_to_invoice": "Klar för fakturering",
|
||||||
|
"requires_action": "Behöver granskas",
|
||||||
|
"unbooked_transactions": "Ej bokförda transaktioner"
|
||||||
|
},
|
||||||
|
"severities": {
|
||||||
|
"blue": "I kö",
|
||||||
|
"green": "Klar",
|
||||||
|
"red": "Blockerad",
|
||||||
|
"yellow": "Varning"
|
||||||
|
},
|
||||||
|
"sort": {
|
||||||
|
"customer_name": "Kundnamn",
|
||||||
|
"customer_number": "Kundnummer",
|
||||||
|
"priority": "Viktigast först",
|
||||||
|
"total_amount": "Belopp"
|
||||||
|
},
|
||||||
|
"states": {
|
||||||
|
"attention": "Behöver uppmärksamhet",
|
||||||
|
"blocked": "Blockerad",
|
||||||
|
"completed": "Klar",
|
||||||
|
"empty_body": "Välj en annan period eller affärsvy.",
|
||||||
|
"empty_title": "Inga fakturadata i perioden",
|
||||||
|
"error_body": "Försök ladda perioden igen.",
|
||||||
|
"error_title": "Fakturaperioden kunde inte laddas",
|
||||||
|
"filtered_empty_body": "Nollställ arbetsflödesfiltren eller prova en annan sökning.",
|
||||||
|
"filtered_empty_title": "Inga kunder matchar filtren",
|
||||||
|
"loading_body": "Samlar kunder, fakturasamlingar och kontrollpunkter…",
|
||||||
|
"loading_title": "Laddar fakturaperiod",
|
||||||
|
"queued": "I kö",
|
||||||
|
"ready": "Klar för fakturering",
|
||||||
|
"refreshing": "Uppdaterar befintligt resultat…",
|
||||||
|
"retained_error": "Uppdateringen misslyckades. Det senast laddade resultatet visas fortfarande."
|
||||||
|
},
|
||||||
|
"toolbar": {
|
||||||
|
"all_departments": "Alla avdelningar",
|
||||||
|
"all_invoice_states": "Alla fakturastatusar",
|
||||||
|
"all_severities": "Alla nivåer",
|
||||||
|
"all_states": "Alla tillstånd",
|
||||||
|
"change_direction": "Ändra sorteringsriktning",
|
||||||
|
"clear_filters": "Rensa filter",
|
||||||
|
"department": "Avdelning",
|
||||||
|
"invoice_state": "Fakturastatus",
|
||||||
|
"reload": "Ladda om",
|
||||||
|
"retry": "Försök igen",
|
||||||
|
"search": "Sök kunder och fakturadata",
|
||||||
|
"severity": "Allvar",
|
||||||
|
"sort": "Sortera",
|
||||||
|
"workflow": "Arbetsflöde"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-1
@@ -19,7 +19,6 @@ const concreteDateShortcutIds = [
|
|||||||
"same_month_last_year",
|
"same_month_last_year",
|
||||||
];
|
];
|
||||||
const onSelectionChange = (startDate: Date, endDate: Date) => {
|
const onSelectionChange = (startDate: Date, endDate: Date) => {
|
||||||
console.log("Selection changed:", startDate, endDate);
|
|
||||||
showReloadAnimation();
|
showReloadAnimation();
|
||||||
dates.functions.setSelection(startDate, endDate);
|
dates.functions.setSelection(startDate, endDate);
|
||||||
};
|
};
|
||||||
|
|||||||
-1
@@ -32,7 +32,6 @@ import { Line } from 'vue-chartjs';
|
|||||||
ChartJS.register(Title, Tooltip, Legend, CategoryScale, LinearScale, BarElement, PointElement, LineElement, Colors);
|
ChartJS.register(Title, Tooltip, Legend, CategoryScale, LinearScale, BarElement, PointElement, LineElement, Colors);
|
||||||
|
|
||||||
const parseTransactions = () => {
|
const parseTransactions = () => {
|
||||||
console.log('Parsing transactions for chart data...', props.transactions.length, 'transactions found.');
|
|
||||||
const labels = [];
|
const labels = [];
|
||||||
const data = [];
|
const data = [];
|
||||||
props.transactions.forEach(transaction => {
|
props.transactions.forEach(transaction => {
|
||||||
|
|||||||
+4
@@ -8,6 +8,10 @@ const REVIEW_WORKSPACE_TRANSLATORS = {
|
|||||||
composer.t("invoicing_period.review_workspace.detail.previous", params),
|
composer.t("invoicing_period.review_workspace.detail.previous", params),
|
||||||
"detail.selected_customer": (composer, params) =>
|
"detail.selected_customer": (composer, params) =>
|
||||||
composer.t("invoicing_period.review_workspace.detail.selected_customer", params),
|
composer.t("invoicing_period.review_workspace.detail.selected_customer", params),
|
||||||
|
"errors.fakturer_nu_failed_title": (composer, params) =>
|
||||||
|
composer.t("invoicing_period.review_workspace.errors.fakturer_nu_failed_title", params),
|
||||||
|
"errors.fakturer_nu_failed_body": (composer, params) =>
|
||||||
|
composer.t("invoicing_period.review_workspace.errors.fakturer_nu_failed_body", params),
|
||||||
"headline.aria_label": (composer, params) =>
|
"headline.aria_label": (composer, params) =>
|
||||||
composer.t("invoicing_period.review_workspace.headline.aria_label", params),
|
composer.t("invoicing_period.review_workspace.headline.aria_label", params),
|
||||||
"headline.booked": (composer, params) =>
|
"headline.booked": (composer, params) =>
|
||||||
|
|||||||
+6
-1
@@ -38,6 +38,7 @@ import {
|
|||||||
} from "../utils/possibleDuplicateGroups.js";
|
} from "../utils/possibleDuplicateGroups.js";
|
||||||
import { deriveLegacyPeriodCustomerReview } from "../services/invoicingPeriodReview.js";
|
import { deriveLegacyPeriodCustomerReview } from "../services/invoicingPeriodReview.js";
|
||||||
import { translateInvoicingPeriodReview } from "../services/invoicingPeriodTranslation.js";
|
import { translateInvoicingPeriodReview } from "../services/invoicingPeriodTranslation.js";
|
||||||
|
import Swal from "sweetalert2";
|
||||||
|
|
||||||
const expandedDuplicateGroupKey = ref<string | null>(null);
|
const expandedDuplicateGroupKey = ref<string | null>(null);
|
||||||
const tr = (key: string, fallback: string, params: Record<string, any> = {}) =>
|
const tr = (key: string, fallback: string, params: Record<string, any> = {}) =>
|
||||||
@@ -552,7 +553,11 @@ const onClickInvoiceNow = async (customer: any, transactionIds: number[]) => {
|
|||||||
queueInvoiceCollections(invoiceCollectionIds, customer);
|
queueInvoiceCollections(invoiceCollectionIds, customer);
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
invoiceQueue.finishPeriodRefresh?.([customerNumber], []);
|
invoiceQueue.finishPeriodRefresh?.([customerNumber], []);
|
||||||
console.error("Error queueing invoice collection:", error);
|
await Swal.fire({
|
||||||
|
title: tr("errors.fakturer_nu_failed_title", "Fakturer nu mislykkedes"),
|
||||||
|
text: tr("errors.fakturer_nu_failed_body", "Kunne ikke oprette faktura for denne kunde. Prøv igen, eller tjek kundens transaktioner."),
|
||||||
|
icon: "error",
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user