@spaceinvoices/react-ui 0.4.10 → 0.4.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -8
- package/cli/dist/index.js +89 -26
- package/package.json +6 -2
- package/registry.json +30 -31
- package/spaceinvoices.schema.json +6 -1
- package/src/common/autocomplete.tsx +41 -25
- package/src/components/activities/locales/bg.ts +21 -0
- package/src/components/activities/locales/cs.ts +21 -0
- package/src/components/activities/locales/en.ts +21 -0
- package/src/components/activities/locales/et.ts +21 -0
- package/src/components/activities/locales/fi.ts +21 -0
- package/src/components/activities/locales/is.ts +21 -0
- package/src/components/activities/locales/nb.ts +21 -0
- package/src/components/activities/locales/sk.ts +21 -0
- package/src/components/activities/locales/sv.ts +21 -0
- package/src/components/advance-invoices/advance-invoices.hooks.ts +2 -3
- package/src/components/advance-invoices/create/create-advance-invoice-form.tsx +290 -69
- package/src/components/advance-invoices/create/locales/bg.ts +48 -0
- package/src/components/advance-invoices/create/locales/cs.ts +48 -0
- package/src/components/advance-invoices/create/locales/en.ts +48 -0
- package/src/components/advance-invoices/create/locales/et.ts +48 -0
- package/src/components/advance-invoices/create/locales/fi.ts +48 -0
- package/src/components/advance-invoices/create/locales/hr.ts +17 -17
- package/src/components/advance-invoices/create/locales/is.ts +48 -0
- package/src/components/advance-invoices/create/locales/nb.ts +48 -0
- package/src/components/advance-invoices/create/locales/sk.ts +48 -0
- package/src/components/advance-invoices/create/locales/sl.ts +9 -7
- package/src/components/advance-invoices/create/locales/sv.ts +48 -0
- package/src/components/advance-invoices/create/prepare-advance-invoice-submission.ts +16 -2
- package/src/components/advance-invoices/list/list-row-actions.tsx +48 -16
- package/src/components/advance-invoices/list/list-table.tsx +33 -8
- package/src/components/advance-invoices/list/locales/bg.ts +51 -0
- package/src/components/advance-invoices/list/locales/cs.ts +51 -0
- package/src/components/advance-invoices/list/locales/en.ts +33 -2
- package/src/components/advance-invoices/list/locales/et.ts +51 -0
- package/src/components/advance-invoices/list/locales/fi.ts +51 -0
- package/src/components/advance-invoices/list/locales/hr.ts +15 -15
- package/src/components/advance-invoices/list/locales/is.ts +51 -0
- package/src/components/advance-invoices/list/locales/nb.ts +51 -0
- package/src/components/advance-invoices/list/locales/sk.ts +51 -0
- package/src/components/advance-invoices/list/locales/sv.ts +51 -0
- package/src/components/advance-invoices/list/use-advance-invoice-download.ts +3 -5
- package/src/components/common/autocomplete-locales.ts +101 -0
- package/src/components/company-registry/company-registry.hooks.ts +3 -7
- package/src/components/credit-notes/create/create-credit-note-form.tsx +211 -22
- package/src/components/credit-notes/create/locales/bg.ts +87 -0
- package/src/components/credit-notes/create/locales/cs.ts +87 -0
- package/src/components/credit-notes/create/locales/en.ts +87 -0
- package/src/components/credit-notes/create/locales/et.ts +87 -0
- package/src/components/credit-notes/create/locales/fi.ts +87 -0
- package/src/components/credit-notes/create/locales/hr.ts +24 -24
- package/src/components/credit-notes/create/locales/is.ts +87 -0
- package/src/components/credit-notes/create/locales/nb.ts +87 -0
- package/src/components/credit-notes/create/locales/sk.ts +87 -0
- package/src/components/credit-notes/create/locales/sl.ts +9 -9
- package/src/components/credit-notes/create/locales/sv.ts +87 -0
- package/src/components/credit-notes/create/prepare-credit-note-submission.ts +32 -0
- package/src/components/credit-notes/credit-notes.hooks.ts +15 -3
- package/src/components/credit-notes/list/list-row-actions.tsx +19 -7
- package/src/components/credit-notes/list/list-table.tsx +58 -7
- package/src/components/credit-notes/list/locales/bg.ts +48 -0
- package/src/components/credit-notes/list/locales/cs.ts +48 -0
- package/src/components/credit-notes/list/locales/en.ts +31 -2
- package/src/components/credit-notes/list/locales/et.ts +48 -0
- package/src/components/credit-notes/list/locales/fi.ts +48 -0
- package/src/components/credit-notes/list/locales/hr.ts +12 -12
- package/src/components/credit-notes/list/locales/is.ts +48 -0
- package/src/components/credit-notes/list/locales/nb.ts +48 -0
- package/src/components/credit-notes/list/locales/sk.ts +48 -0
- package/src/components/credit-notes/list/locales/sv.ts +48 -0
- package/src/components/credit-notes/list/use-credit-note-download.ts +3 -5
- package/src/components/customers/create-customer-form/locales/bg.ts +21 -0
- package/src/components/customers/create-customer-form/locales/cs.ts +21 -0
- package/src/components/customers/create-customer-form/locales/en.ts +21 -0
- package/src/components/customers/create-customer-form/locales/et.ts +21 -0
- package/src/components/customers/create-customer-form/locales/fi.ts +21 -0
- package/src/components/customers/create-customer-form/locales/hr.ts +11 -11
- package/src/components/customers/create-customer-form/locales/is.ts +21 -0
- package/src/components/customers/create-customer-form/locales/nb.ts +21 -0
- package/src/components/customers/create-customer-form/locales/sk.ts +21 -0
- package/src/components/customers/create-customer-form/locales/sv.ts +21 -0
- package/src/components/customers/customer-autocomplete.tsx +32 -4
- package/src/components/customers/customer-list-table/customer-list-table.tsx +8 -6
- package/src/components/customers/customer-list-table/locales/bg.ts +25 -0
- package/src/components/customers/customer-list-table/locales/cs.ts +25 -0
- package/src/components/customers/customer-list-table/locales/en.ts +17 -2
- package/src/components/customers/customer-list-table/locales/et.ts +25 -0
- package/src/components/customers/customer-list-table/locales/fi.ts +25 -0
- package/src/components/customers/customer-list-table/locales/hr.ts +11 -11
- package/src/components/customers/customer-list-table/locales/is.ts +25 -0
- package/src/components/customers/customer-list-table/locales/nb.ts +25 -0
- package/src/components/customers/customer-list-table/locales/sk.ts +25 -0
- package/src/components/customers/customer-list-table/locales/sv.ts +25 -0
- package/src/components/customers/customers.hooks.ts +14 -17
- package/src/components/customers/edit-customer-form/locales/bg.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/cs.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/en.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/et.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/fi.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/hr.ts +5 -5
- package/src/components/customers/edit-customer-form/locales/is.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/nb.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/sk.ts +13 -0
- package/src/components/customers/edit-customer-form/locales/sv.ts +13 -0
- package/src/components/dashboard/collection-rate-card/collection-rate-card.tsx +7 -6
- package/src/components/dashboard/collection-rate-card/locales/en.ts +3 -0
- package/src/components/dashboard/collection-rate-card/use-collection-rate.ts +8 -7
- package/src/components/dashboard/invoice-status-chart/invoice-status-chart.tsx +7 -4
- package/src/components/dashboard/invoice-status-chart/locales/bg.ts +5 -5
- package/src/components/dashboard/invoice-status-chart/locales/cs.ts +5 -5
- package/src/components/dashboard/invoice-status-chart/locales/de.ts +1 -1
- package/src/components/dashboard/invoice-status-chart/locales/en.ts +10 -0
- package/src/components/dashboard/invoice-status-chart/locales/es.ts +1 -1
- package/src/components/dashboard/invoice-status-chart/locales/et.ts +5 -5
- package/src/components/dashboard/invoice-status-chart/locales/fi.ts +5 -5
- package/src/components/dashboard/invoice-status-chart/locales/fr.ts +1 -1
- package/src/components/dashboard/invoice-status-chart/locales/hr.ts +5 -5
- package/src/components/dashboard/invoice-status-chart/locales/is.ts +5 -5
- package/src/components/dashboard/invoice-status-chart/locales/it.ts +1 -1
- package/src/components/dashboard/invoice-status-chart/locales/nb.ts +5 -5
- package/src/components/dashboard/invoice-status-chart/locales/nl.ts +1 -1
- package/src/components/dashboard/invoice-status-chart/locales/pl.ts +1 -1
- package/src/components/dashboard/invoice-status-chart/locales/pt.ts +1 -1
- package/src/components/dashboard/invoice-status-chart/locales/sk.ts +5 -5
- package/src/components/dashboard/invoice-status-chart/locales/sl.ts +1 -1
- package/src/components/dashboard/invoice-status-chart/locales/sv.ts +5 -5
- package/src/components/dashboard/payment-methods-chart/locales/bg.ts +5 -5
- package/src/components/dashboard/payment-methods-chart/locales/cs.ts +5 -5
- package/src/components/dashboard/payment-methods-chart/locales/en.ts +12 -0
- package/src/components/dashboard/payment-methods-chart/locales/et.ts +5 -5
- package/src/components/dashboard/payment-methods-chart/locales/fi.ts +6 -6
- package/src/components/dashboard/payment-methods-chart/locales/hr.ts +3 -3
- package/src/components/dashboard/payment-methods-chart/locales/is.ts +5 -5
- package/src/components/dashboard/payment-methods-chart/locales/nb.ts +5 -5
- package/src/components/dashboard/payment-methods-chart/locales/sk.ts +5 -5
- package/src/components/dashboard/payment-methods-chart/locales/sv.ts +5 -5
- package/src/components/dashboard/payment-methods-chart/payment-methods-chart.tsx +4 -3
- package/src/components/dashboard/payment-trend-chart/locales/bg.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/locales/cs.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/locales/en.ts +6 -0
- package/src/components/dashboard/payment-trend-chart/locales/et.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/locales/fi.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/locales/is.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/locales/nb.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/locales/sk.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/locales/sv.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/payment-trend-chart.tsx +4 -3
- package/src/components/dashboard/payment-trend-chart/use-payment-trend.ts +12 -9
- package/src/components/dashboard/revenue-card.tsx +3 -3
- package/src/components/dashboard/revenue-trend-chart/locales/bg.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/locales/cs.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/locales/en.ts +6 -0
- package/src/components/dashboard/revenue-trend-chart/locales/et.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/locales/fi.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/locales/is.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/locales/nb.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/locales/sk.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/locales/sv.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/revenue-trend-chart.tsx +4 -3
- package/src/components/dashboard/revenue-trend-chart/use-revenue-trend.ts +4 -3
- package/src/components/dashboard/shared/local-date.ts +11 -0
- package/src/components/dashboard/shared/use-revenue-data.ts +6 -5
- package/src/components/dashboard/shared/use-stats-query.ts +7 -11
- package/src/components/dashboard/stat-card.tsx +3 -3
- package/src/components/dashboard/tax-collected-card/tax-collected-card.tsx +11 -9
- package/src/components/dashboard/tax-collected-card/use-tax-collected.ts +3 -2
- package/src/components/dashboard/top-customers-chart/locales/bg.ts +2 -2
- package/src/components/dashboard/top-customers-chart/locales/cs.ts +2 -2
- package/src/components/dashboard/top-customers-chart/locales/en.ts +7 -0
- package/src/components/dashboard/top-customers-chart/locales/et.ts +2 -2
- package/src/components/dashboard/top-customers-chart/locales/fi.ts +2 -2
- package/src/components/dashboard/top-customers-chart/locales/is.ts +2 -2
- package/src/components/dashboard/top-customers-chart/locales/nb.ts +2 -2
- package/src/components/dashboard/top-customers-chart/locales/sk.ts +2 -2
- package/src/components/dashboard/top-customers-chart/locales/sv.ts +2 -2
- package/src/components/dashboard/top-customers-chart/top-customers-chart.tsx +4 -3
- package/src/components/dashboard/top-customers-chart/use-top-customers.ts +7 -20
- package/src/components/delivery-notes/create/create-delivery-note-form.tsx +61 -31
- package/src/components/delivery-notes/create/locales/bg.ts +68 -0
- package/src/components/delivery-notes/create/locales/cs.ts +68 -0
- package/src/components/delivery-notes/create/locales/en.ts +68 -0
- package/src/components/delivery-notes/create/locales/et.ts +68 -0
- package/src/components/delivery-notes/create/locales/fi.ts +68 -0
- package/src/components/delivery-notes/create/locales/hr.ts +6 -6
- package/src/components/delivery-notes/create/locales/is.ts +68 -0
- package/src/components/delivery-notes/create/locales/nb.ts +68 -0
- package/src/components/delivery-notes/create/locales/sk.ts +68 -0
- package/src/components/delivery-notes/create/locales/sl.ts +5 -5
- package/src/components/delivery-notes/create/locales/sv.ts +68 -0
- package/src/components/delivery-notes/delivery-notes.hooks.ts +20 -3
- package/src/components/delivery-notes/list/list-row-actions.tsx +62 -16
- package/src/components/delivery-notes/list/list-table.tsx +42 -9
- package/src/components/delivery-notes/list/locales/bg.ts +40 -0
- package/src/components/delivery-notes/list/locales/cs.ts +40 -0
- package/src/components/delivery-notes/list/locales/et.ts +40 -0
- package/src/components/delivery-notes/list/locales/fi.ts +40 -0
- package/src/components/delivery-notes/list/locales/is.ts +40 -0
- package/src/components/delivery-notes/list/locales/nb.ts +40 -0
- package/src/components/delivery-notes/list/locales/sk.ts +40 -0
- package/src/components/delivery-notes/list/locales/sv.ts +40 -0
- package/src/components/delivery-notes/list/use-delivery-note-download.ts +3 -5
- package/src/components/documents/create/document-add-item-form.tsx +256 -147
- package/src/components/documents/create/document-add-item-tax-rate-field.tsx +2 -1
- package/src/components/documents/create/document-details-section.tsx +30 -12
- package/src/components/documents/create/document-item-validation.ts +50 -0
- package/src/components/documents/create/document-items-section.tsx +44 -6
- package/src/components/documents/create/document-recipient-section.tsx +10 -2
- package/src/components/documents/create/linked-documents-info.tsx +4 -3
- package/src/components/documents/create/live-preview.tsx +19 -15
- package/src/components/documents/create/mark-as-paid-section.tsx +77 -20
- package/src/components/documents/create/payment-rows.ts +291 -0
- package/src/components/documents/create/prepare-document-submission.ts +24 -13
- package/src/components/documents/create/scroll-to-first-invalid-field.ts +27 -0
- package/src/components/documents/create/smart-code-insert-button.tsx +5 -53
- package/src/components/documents/create/use-document-customer-form.ts +74 -25
- package/src/components/documents/documents.hooks.ts +3 -5
- package/src/components/documents/index.ts +1 -0
- package/src/components/documents/public/index.ts +1 -0
- package/src/components/documents/public/public-document-summary.tsx +343 -0
- package/src/components/documents/shared/document-preview-display.tsx +65 -39
- package/src/components/documents/shared/index.ts +6 -1
- package/src/components/documents/shared/scaled-document-preview.tsx +33 -19
- package/src/components/documents/types.ts +24 -0
- package/src/components/documents/view/document-actions-bar.tsx +241 -62
- package/src/components/documents/view/document-activities-list.tsx +23 -11
- package/src/components/documents/view/document-details-card.tsx +7 -27
- package/src/components/documents/view/document-payments-list.tsx +114 -57
- package/src/components/documents/view/document-relations-list.tsx +26 -6
- package/src/components/documents/view/document-sidebar.tsx +25 -3
- package/src/components/documents/view/document-version-history.tsx +137 -0
- package/src/components/documents/view/index.ts +1 -0
- package/src/components/documents/view/locales/bg.ts +143 -0
- package/src/components/documents/view/locales/cs.ts +143 -0
- package/src/components/documents/view/locales/de.ts +13 -0
- package/src/components/documents/view/locales/en.ts +143 -0
- package/src/components/documents/view/locales/es.ts +13 -0
- package/src/components/documents/view/locales/et.ts +143 -0
- package/src/components/documents/view/locales/fi.ts +143 -0
- package/src/components/documents/view/locales/fr.ts +13 -0
- package/src/components/documents/view/locales/hr.ts +13 -0
- package/src/components/documents/view/locales/is.ts +143 -0
- package/src/components/documents/view/locales/it.ts +13 -0
- package/src/components/documents/view/locales/nb.ts +143 -0
- package/src/components/documents/view/locales/nl.ts +13 -0
- package/src/components/documents/view/locales/pl.ts +13 -0
- package/src/components/documents/view/locales/pt.ts +13 -0
- package/src/components/documents/view/locales/sk.ts +143 -0
- package/src/components/documents/view/locales/sl.ts +13 -0
- package/src/components/documents/view/locales/sv.ts +143 -0
- package/src/components/documents/view/use-document-download.ts +18 -17
- package/src/components/entities/create-entity-form.tsx +200 -12
- package/src/components/entities/entities.hooks.ts +15 -7
- package/src/components/entities/entity-settings-form/entity-settings-form.tsx +131 -75
- package/src/components/entities/entity-settings-form/input-with-preview.tsx +28 -4
- package/src/components/entities/entity-settings-form/locales/bg.ts +199 -0
- package/src/components/entities/entity-settings-form/locales/cs.ts +199 -0
- package/src/components/entities/entity-settings-form/locales/de.ts +18 -3
- package/src/components/entities/entity-settings-form/locales/en.ts +199 -0
- package/src/components/entities/entity-settings-form/locales/es.ts +18 -3
- package/src/components/entities/entity-settings-form/locales/et.ts +198 -0
- package/src/components/entities/entity-settings-form/locales/fi.ts +199 -0
- package/src/components/entities/entity-settings-form/locales/fr.ts +18 -3
- package/src/components/entities/entity-settings-form/locales/hr.ts +26 -11
- package/src/components/entities/entity-settings-form/locales/is.ts +199 -0
- package/src/components/entities/entity-settings-form/locales/it.ts +18 -3
- package/src/components/entities/entity-settings-form/locales/nb.ts +199 -0
- package/src/components/entities/entity-settings-form/locales/nl.ts +18 -3
- package/src/components/entities/entity-settings-form/locales/pl.ts +18 -3
- package/src/components/entities/entity-settings-form/locales/pt.ts +18 -3
- package/src/components/entities/entity-settings-form/locales/sk.ts +199 -0
- package/src/components/entities/entity-settings-form/locales/sl.ts +30 -15
- package/src/components/entities/entity-settings-form/locales/sv.ts +205 -0
- package/src/components/entities/fina-settings-form/fina-operator-required-dialog.tsx +34 -9
- package/src/components/entities/fina-settings-form/fina-settings-form.tsx +2 -0
- package/src/components/entities/fina-settings-form/fina-settings.hooks.ts +14 -45
- package/src/components/entities/fina-settings-form/locales/bg.ts +163 -0
- package/src/components/entities/fina-settings-form/locales/cs.ts +163 -0
- package/src/components/entities/fina-settings-form/locales/et.ts +163 -0
- package/src/components/entities/fina-settings-form/locales/fi.ts +163 -0
- package/src/components/entities/fina-settings-form/locales/hr.ts +11 -10
- package/src/components/entities/fina-settings-form/locales/is.ts +164 -0
- package/src/components/entities/fina-settings-form/locales/nb.ts +163 -0
- package/src/components/entities/fina-settings-form/locales/sk.ts +163 -0
- package/src/components/entities/fina-settings-form/locales/sl.ts +8 -7
- package/src/components/entities/fina-settings-form/locales/sv.ts +165 -0
- package/src/components/entities/furs-settings-form/furs-operator-required-dialog.tsx +34 -9
- package/src/components/entities/furs-settings-form/furs-settings-form.tsx +13 -1
- package/src/components/entities/furs-settings-form/furs-settings.hooks.ts +141 -42
- package/src/components/entities/furs-settings-form/locales/bg.ts +242 -0
- package/src/components/entities/furs-settings-form/locales/cs.ts +241 -0
- package/src/components/entities/furs-settings-form/locales/de.ts +42 -15
- package/src/components/entities/furs-settings-form/locales/en.ts +24 -0
- package/src/components/entities/furs-settings-form/locales/es.ts +42 -15
- package/src/components/entities/furs-settings-form/locales/et.ts +242 -0
- package/src/components/entities/furs-settings-form/locales/fi.ts +243 -0
- package/src/components/entities/furs-settings-form/locales/fr.ts +43 -15
- package/src/components/entities/furs-settings-form/locales/hr.ts +44 -19
- package/src/components/entities/furs-settings-form/locales/is.ts +242 -0
- package/src/components/entities/furs-settings-form/locales/it.ts +42 -15
- package/src/components/entities/furs-settings-form/locales/nb.ts +242 -0
- package/src/components/entities/furs-settings-form/locales/nl.ts +42 -15
- package/src/components/entities/furs-settings-form/locales/pl.ts +40 -15
- package/src/components/entities/furs-settings-form/locales/pt.ts +42 -15
- package/src/components/entities/furs-settings-form/locales/sk.ts +243 -0
- package/src/components/entities/furs-settings-form/locales/sl.ts +34 -10
- package/src/components/entities/furs-settings-form/locales/sv.ts +242 -0
- package/src/components/entities/furs-settings-form/sections/enable-fiscalization-section.tsx +11 -0
- package/src/components/entities/furs-settings-form/sections/furs-internal-act-download-card.tsx +111 -0
- package/src/components/entities/furs-settings-form/sections/general-settings-section.tsx +27 -0
- package/src/components/entities/furs-settings-form/sections/premises-management-section.tsx +23 -16
- package/src/components/entities/furs-settings-form/sections/register-premise-dialog.tsx +89 -31
- package/src/components/entities/settings/branding-settings-form.tsx +11 -30
- package/src/components/entities/settings/company-settings-form.tsx +2 -1
- package/src/components/entities/settings/defaults-settings-form.tsx +112 -9
- package/src/components/entities/settings/email-settings-form.tsx +245 -3
- package/src/components/entities/settings/eslog-settings-form.tsx +2 -1
- package/src/components/entities/settings/number-format-settings-form.tsx +2 -1
- package/src/components/entities/settings/pdf-template-selector/locales/bg.ts +20 -0
- package/src/components/entities/settings/pdf-template-selector/locales/cs.ts +20 -0
- package/src/components/entities/settings/pdf-template-selector/locales/en.ts +20 -0
- package/src/components/entities/settings/pdf-template-selector/locales/et.ts +19 -0
- package/src/components/entities/settings/pdf-template-selector/locales/fi.ts +20 -0
- package/src/components/entities/settings/pdf-template-selector/locales/is.ts +19 -0
- package/src/components/entities/settings/pdf-template-selector/locales/nb.ts +19 -0
- package/src/components/entities/settings/pdf-template-selector/locales/sk.ts +20 -0
- package/src/components/entities/settings/pdf-template-selector/locales/sv.ts +19 -0
- package/src/components/entities/settings/tax-rules-settings-form.tsx +21 -6
- package/src/components/estimates/create/create-estimate-form.tsx +70 -34
- package/src/components/estimates/create/locales/bg.ts +76 -0
- package/src/components/estimates/create/locales/cs.ts +76 -0
- package/src/components/estimates/create/locales/en.ts +76 -0
- package/src/components/estimates/create/locales/et.ts +76 -0
- package/src/components/estimates/create/locales/fi.ts +76 -0
- package/src/components/estimates/create/locales/hr.ts +8 -8
- package/src/components/estimates/create/locales/is.ts +76 -0
- package/src/components/estimates/create/locales/nb.ts +76 -0
- package/src/components/estimates/create/locales/sk.ts +76 -0
- package/src/components/estimates/create/locales/sl.ts +8 -8
- package/src/components/estimates/create/locales/sv.ts +76 -0
- package/src/components/estimates/create/prepare-estimate-submission.ts +4 -1
- package/src/components/estimates/estimates.hooks.ts +15 -3
- package/src/components/estimates/list/list-row-actions.tsx +34 -7
- package/src/components/estimates/list/list-table.tsx +78 -10
- package/src/components/estimates/list/locales/bg.ts +38 -0
- package/src/components/estimates/list/locales/cs.ts +38 -0
- package/src/components/estimates/list/locales/en.ts +27 -2
- package/src/components/estimates/list/locales/et.ts +38 -0
- package/src/components/estimates/list/locales/fi.ts +38 -0
- package/src/components/estimates/list/locales/hr.ts +2 -2
- package/src/components/estimates/list/locales/is.ts +38 -0
- package/src/components/estimates/list/locales/nb.ts +38 -0
- package/src/components/estimates/list/locales/sk.ts +38 -0
- package/src/components/estimates/list/locales/sv.ts +38 -0
- package/src/components/estimates/list/use-estimate-download.ts +3 -5
- package/src/components/export/document-export-form.tsx +72 -15
- package/src/components/export/sales-per-item-export-form.tsx +3 -2
- package/src/components/invoices/create/create-invoice-form.tsx +294 -76
- package/src/components/invoices/create/eslog-validation.ts +97 -8
- package/src/components/invoices/create/locales/bg.ts +164 -0
- package/src/components/invoices/create/locales/cs.ts +164 -0
- package/src/components/invoices/create/locales/de.ts +24 -0
- package/src/components/invoices/create/locales/en.ts +164 -0
- package/src/components/invoices/create/locales/es.ts +24 -0
- package/src/components/invoices/create/locales/et.ts +164 -0
- package/src/components/invoices/create/locales/fi.ts +164 -0
- package/src/components/invoices/create/locales/fr.ts +23 -0
- package/src/components/invoices/create/locales/hr.ts +32 -9
- package/src/components/invoices/create/locales/is.ts +164 -0
- package/src/components/invoices/create/locales/it.ts +24 -0
- package/src/components/invoices/create/locales/nb.ts +164 -0
- package/src/components/invoices/create/locales/nl.ts +23 -0
- package/src/components/invoices/create/locales/pl.ts +23 -0
- package/src/components/invoices/create/locales/pt.ts +24 -0
- package/src/components/invoices/create/locales/sk.ts +164 -0
- package/src/components/invoices/create/locales/sl.ts +32 -9
- package/src/components/invoices/create/locales/sv.ts +166 -0
- package/src/components/invoices/create/prepare-invoice-submission.ts +19 -2
- package/src/components/invoices/invoices-furs.hooks.ts +11 -8
- package/src/components/invoices/invoices.hooks.ts +27 -10
- package/src/components/invoices/list/list-row-actions.tsx +54 -21
- package/src/components/invoices/list/list-table.tsx +92 -11
- package/src/components/invoices/list/locales/bg.ts +49 -0
- package/src/components/invoices/list/locales/cs.ts +49 -0
- package/src/components/invoices/list/locales/en.ts +34 -2
- package/src/components/invoices/list/locales/et.ts +49 -0
- package/src/components/invoices/list/locales/fi.ts +49 -0
- package/src/components/invoices/list/locales/is.ts +49 -0
- package/src/components/invoices/list/locales/nb.ts +49 -0
- package/src/components/invoices/list/locales/sk.ts +49 -0
- package/src/components/invoices/list/locales/sv.ts +49 -0
- package/src/components/invoices/list/use-invoice-download.ts +3 -5
- package/src/components/invoices/send-email-dialog/locales/bg.ts +58 -0
- package/src/components/invoices/send-email-dialog/locales/cs.ts +58 -0
- package/src/components/invoices/send-email-dialog/locales/de.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/en.ts +58 -0
- package/src/components/invoices/send-email-dialog/locales/es.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/et.ts +58 -0
- package/src/components/invoices/send-email-dialog/locales/fi.ts +58 -0
- package/src/components/invoices/send-email-dialog/locales/fr.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/hr.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/is.ts +58 -0
- package/src/components/invoices/send-email-dialog/locales/it.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/nb.ts +58 -0
- package/src/components/invoices/send-email-dialog/locales/nl.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/pl.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/pt.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/sk.ts +58 -0
- package/src/components/invoices/send-email-dialog/locales/sl.ts +39 -0
- package/src/components/invoices/send-email-dialog/locales/sv.ts +58 -0
- package/src/components/invoices/send-email-dialog/send-email-dialog.tsx +188 -93
- package/src/components/invoices/view/eslog-info-display.tsx +2 -0
- package/src/components/invoices/view/fiscalization-status-card.tsx +2 -0
- package/src/components/items/create-item-form/create-item-form.tsx +29 -0
- package/src/components/items/create-item-form/locales/bg.ts +13 -0
- package/src/components/items/create-item-form/locales/cs.ts +13 -0
- package/src/components/items/create-item-form/locales/et.ts +13 -0
- package/src/components/items/create-item-form/locales/fi.ts +13 -0
- package/src/components/items/create-item-form/locales/is.ts +13 -0
- package/src/components/items/create-item-form/locales/nb.ts +13 -0
- package/src/components/items/create-item-form/locales/sk.ts +13 -0
- package/src/components/items/create-item-form/locales/sv.ts +13 -0
- package/src/components/items/edit-item-form/edit-item-form.tsx +39 -1
- package/src/components/items/edit-item-form/locales/bg.ts +12 -0
- package/src/components/items/edit-item-form/locales/cs.ts +12 -0
- package/src/components/items/edit-item-form/locales/en.ts +12 -0
- package/src/components/items/edit-item-form/locales/et.ts +12 -0
- package/src/components/items/edit-item-form/locales/fi.ts +12 -0
- package/src/components/items/edit-item-form/locales/is.ts +12 -0
- package/src/components/items/edit-item-form/locales/nb.ts +12 -0
- package/src/components/items/edit-item-form/locales/sk.ts +12 -0
- package/src/components/items/edit-item-form/locales/sv.ts +12 -0
- package/src/components/items/item-combobox.tsx +51 -18
- package/src/components/items/item-list-table/item-list-table.tsx +47 -23
- package/src/components/items/item-list-table/locales/bg.ts +16 -0
- package/src/components/items/item-list-table/locales/cs.ts +16 -0
- package/src/components/items/item-list-table/locales/en.ts +4 -3
- package/src/components/items/item-list-table/locales/et.ts +16 -0
- package/src/components/items/item-list-table/locales/fi.ts +16 -0
- package/src/components/items/item-list-table/locales/is.ts +16 -0
- package/src/components/items/item-list-table/locales/nb.ts +16 -0
- package/src/components/items/item-list-table/locales/sk.ts +16 -0
- package/src/components/items/item-list-table/locales/sv.ts +16 -0
- package/src/components/items/items.hooks.ts +15 -15
- package/src/components/payments/create-payment-form/create-payment-form.tsx +11 -7
- package/src/components/payments/create-payment-form/index.ts +1 -0
- package/src/components/payments/create-payment-form/locales/bg.ts +20 -0
- package/src/components/payments/create-payment-form/locales/cs.ts +20 -0
- package/src/components/payments/create-payment-form/locales/en.ts +20 -0
- package/src/components/payments/create-payment-form/locales/et.ts +20 -0
- package/src/components/payments/create-payment-form/locales/fi.ts +20 -0
- package/src/components/payments/create-payment-form/locales/hr.ts +2 -2
- package/src/components/payments/create-payment-form/locales/is.ts +20 -0
- package/src/components/payments/create-payment-form/locales/nb.ts +20 -0
- package/src/components/payments/create-payment-form/locales/sk.ts +20 -0
- package/src/components/payments/create-payment-form/locales/sl.ts +4 -4
- package/src/components/payments/create-payment-form/locales/sv.ts +20 -0
- package/src/components/payments/edit-payment-form/edit-payment-form.tsx +5 -1
- package/src/components/payments/edit-payment-form/locales/bg.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/cs.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/en.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/et.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/fi.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/hr.ts +2 -2
- package/src/components/payments/edit-payment-form/locales/is.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/nb.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/sk.ts +20 -0
- package/src/components/payments/edit-payment-form/locales/sl.ts +4 -4
- package/src/components/payments/edit-payment-form/locales/sv.ts +20 -0
- package/src/components/payments/list/list-row-actions.tsx +10 -2
- package/src/components/payments/list/list-table.tsx +51 -45
- package/src/components/payments/list/locales/bg.ts +42 -0
- package/src/components/payments/list/locales/cs.ts +42 -0
- package/src/components/payments/list/locales/de.ts +18 -0
- package/src/components/payments/list/locales/en.ts +37 -2
- package/src/components/payments/list/locales/es.ts +18 -0
- package/src/components/payments/list/locales/et.ts +42 -0
- package/src/components/payments/list/locales/fi.ts +42 -0
- package/src/components/payments/list/locales/fr.ts +18 -0
- package/src/components/payments/list/locales/hr.ts +18 -0
- package/src/components/payments/list/locales/is.ts +42 -0
- package/src/components/payments/list/locales/it.ts +18 -0
- package/src/components/payments/list/locales/nb.ts +42 -0
- package/src/components/payments/list/locales/nl.ts +18 -0
- package/src/components/payments/list/locales/pl.ts +18 -0
- package/src/components/payments/list/locales/pt.ts +18 -0
- package/src/components/payments/list/locales/sk.ts +42 -0
- package/src/components/payments/list/locales/sl.ts +18 -1
- package/src/components/payments/list/locales/sv.ts +42 -0
- package/src/components/payments/payments.hooks.ts +13 -6
- package/src/components/recurring-invoices/create-recurring-invoice-form/create-recurring-invoice-form.tsx +23 -17
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/bg.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/cs.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/en.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/et.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/fi.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/hr.ts +6 -6
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/is.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/nb.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sk.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sl.ts +4 -4
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sv.ts +44 -0
- package/src/components/recurring-invoices/list/list-row-actions.tsx +3 -5
- package/src/components/recurring-invoices/list/list-table.tsx +10 -7
- package/src/components/recurring-invoices/list/locales/bg.ts +28 -0
- package/src/components/recurring-invoices/list/locales/cs.ts +28 -0
- package/src/components/recurring-invoices/list/locales/en.ts +23 -0
- package/src/components/recurring-invoices/list/locales/et.ts +28 -0
- package/src/components/recurring-invoices/list/locales/fi.ts +28 -0
- package/src/components/recurring-invoices/list/locales/is.ts +28 -0
- package/src/components/recurring-invoices/list/locales/nb.ts +28 -0
- package/src/components/recurring-invoices/list/locales/sk.ts +28 -0
- package/src/components/recurring-invoices/list/locales/sv.ts +28 -0
- package/src/components/recurring-invoices/recurring-invoices.hooks.ts +11 -8
- package/src/components/request-logs/request-log-detail.tsx +30 -23
- package/src/components/request-logs/request-log-list-table.tsx +88 -45
- package/src/components/table/README.md +47 -9
- package/src/components/table/data-table.tsx +232 -92
- package/src/components/table/filter-bar.tsx +1 -1
- package/src/components/table/filter-panel.tsx +51 -22
- package/src/components/table/hooks/use-table-state.ts +64 -11
- package/src/components/table/index.ts +3 -0
- package/src/components/table/locales.ts +119 -4
- package/src/components/table/selection-toolbar.tsx +65 -9
- package/src/components/table/sorting.ts +80 -0
- package/src/components/table/table-skeleton.tsx +15 -9
- package/src/components/table/types.ts +17 -0
- package/src/components/tax-reports/index.ts +8 -0
- package/src/components/tax-reports/kir-export-form.tsx +4 -5
- package/src/components/tax-reports/slovenia-accounting-mappings-fields.tsx +271 -0
- package/src/components/tax-reports/slovenia-tax-profile-step.tsx +21 -10
- package/src/components/tax-reports/slovenia-vod-export-form.tsx +452 -0
- package/src/components/tax-reports/slovenia-yearly-export-form.tsx +17 -16
- package/src/components/tax-reports/slovenia-yearly-review-step.tsx +40 -18
- package/src/components/taxes/create-tax-form/create-tax-form.tsx +48 -2
- package/src/components/taxes/create-tax-form/locales/bg.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/cs.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/et.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/fi.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/is.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/nb.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/sk.ts +8 -0
- package/src/components/taxes/create-tax-form/locales/sv.ts +8 -0
- package/src/components/taxes/edit-tax-form/edit-tax-form.tsx +80 -11
- package/src/components/taxes/edit-tax-form/locales/bg.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/cs.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/en.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/et.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/fi.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/is.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/nb.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/sk.ts +6 -0
- package/src/components/taxes/edit-tax-form/locales/sv.ts +6 -0
- package/src/components/taxes/tax-list-table/locales/bg.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/cs.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/en.ts +4 -3
- package/src/components/taxes/tax-list-table/locales/et.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/fi.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/is.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/nb.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/sk.ts +17 -0
- package/src/components/taxes/tax-list-table/locales/sv.ts +17 -0
- package/src/components/taxes/tax-list-table/tax-list-table.tsx +53 -19
- package/src/components/taxes/taxes.hooks.ts +53 -12
- package/src/components/ui/badge.tsx +1 -1
- package/src/components/ui/button.tsx +1 -1
- package/src/components/ui/drawer.tsx +2 -2
- package/src/components/ui/form.tsx +118 -2
- package/src/components/ui/progress.tsx +6 -4
- package/src/components/ui/select.tsx +118 -1
- package/src/components/ui/sidebar.tsx +3 -2
- package/src/components/ui/sonner.tsx +17 -36
- package/src/components/ui/sticky-form-footer.tsx +6 -1
- package/src/components/ui/tooltip.tsx +15 -2
- package/src/components/webhook-logs/webhook-delivery-detail.tsx +22 -22
- package/src/components/webhook-logs/webhook-delivery-list-table.tsx +92 -17
- package/src/components/wl-subscription/locked-feature.tsx +11 -10
- package/src/components/wl-subscription/paywall.tsx +184 -72
- package/src/components/wl-subscription/upgrade-modal.tsx +28 -31
- package/src/generate-schemas.ts +17 -7
- package/src/generated/schemas/account_webhook.ts +43 -0
- package/src/generated/schemas/accountwebhook.ts +67 -0
- package/src/generated/schemas/entity.ts +343 -4
- package/src/generated/schemas/exportsloveniavodxml_body.ts +16 -0
- package/src/generated/schemas/exportsloveniayearlynormiranireport_body.ts +27 -0
- package/src/generated/schemas/furssettings.ts +1 -0
- package/src/generated/schemas/incomingpurchasedocument.ts +198 -0
- package/src/generated/schemas/incomingpurchasedocumentpayment.ts +38 -0
- package/src/generated/schemas/index.ts +12 -0
- package/src/generated/schemas/item.ts +36 -0
- package/src/generated/schemas/me.ts +23 -19
- package/src/generated/schemas/order.ts +2 -0
- package/src/generated/schemas/orderintegration.ts +8 -4
- package/src/generated/schemas/payment.ts +5 -0
- package/src/generated/schemas/ptatcudseries.ts +30 -0
- package/src/generated/schemas/renderadvanceinvoicepreview_body.ts +35 -3
- package/src/generated/schemas/rendercreditnotepreview_body.ts +35 -3
- package/src/generated/schemas/renderdeliverynotepreview_body.ts +12 -5
- package/src/generated/schemas/renderestimatepreview_body.ts +38 -5
- package/src/generated/schemas/renderinvoicepreview_body.ts +39 -5
- package/src/generated/schemas/senddocument_body.ts +1 -0
- package/src/generated/schemas/sendemail_body.ts +67 -39
- package/src/generated/schemas/sloveniataxprofile.ts +118 -0
- package/src/generated/schemas/starteslogexport_body.ts +33 -0
- package/src/generated/schemas/startpdfexport_body.ts +94 -78
- package/src/generated/schemas/supplier.ts +59 -0
- package/src/generated/schemas/syncshopifyorders_body.ts +20 -0
- package/src/generated/schemas/tax.ts +2 -0
- package/src/generated/schemas/uploadfile_body.ts +1 -0
- package/src/generated/schemas/userptsettings.ts +26 -0
- package/src/generated/schemas/voidinvoice_body.ts +20 -0
- package/src/generated/schemas/webhook.ts +2 -0
- package/src/hooks/create-resource-hooks.ts +22 -19
- package/src/hooks/use-duplicate-document.ts +10 -8
- package/src/hooks/use-eslog-validation.ts +5 -1
- package/src/hooks/use-next-document-number.ts +13 -6
- package/src/hooks/use-resolved-entity-id.ts +14 -0
- package/src/hooks/use-resource-mutation.ts +11 -30
- package/src/hooks/use-transaction-type-check.ts +3 -8
- package/src/lib/browser-cookies.ts +1 -1
- package/src/lib/country-capabilities.ts +114 -0
- package/src/lib/date-fns-locale.ts +1 -20
- package/src/lib/eslog-export.ts +32 -0
- package/src/lib/fiscalization-options.ts +21 -1
- package/src/lib/formatting.ts +27 -0
- package/src/lib/furs-error-utils.ts +29 -0
- package/src/lib/locale.ts +4 -0
- package/src/lib/payment-display.ts +95 -0
- package/src/lib/pt-document-input.ts +67 -0
- package/src/lib/schemas/shared.ts +1 -0
- package/src/lib/template-variables.tsx +102 -4
- package/src/lib/translation.ts +51 -33
- package/src/lib/white-label-capabilities.ts +626 -0
- package/src/lib/zod-validation-message.ts +291 -0
- package/src/providers/entities-provider.tsx +32 -14
- package/src/providers/sdk-provider.tsx +112 -12
- package/src/providers/space-invoices-provider.tsx +129 -0
- package/src/providers/white-label-provider.tsx +96 -4
- package/src/providers/wl-subscription-provider.tsx +144 -10
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
"FINA is for Croatian Entities": "FINA är för kroatiska enheter",
|
|
3
|
+
"FINA fiscalization is only available for entities with country code HR":
|
|
4
|
+
"FINA-fiskalisering är bara tillgänglig för enheter med landskod HR",
|
|
5
|
+
"Test Mode (Sandbox)": "Testläge (Sandbox)",
|
|
6
|
+
"This entity is in test mode. FINA invoices will be sent to the test environment. No real fiscalization will occur.":
|
|
7
|
+
"Den här enheten är i testläge. FINA-fakturor skickas till testmiljön. Ingen verklig fiskalisering kommer att ske.",
|
|
8
|
+
"General Settings": "Allmänna inställningar",
|
|
9
|
+
Certificate: "Certifikat",
|
|
10
|
+
"Business Premises": "Affärslokaler",
|
|
11
|
+
"Enable FINA Fiscalization": "Aktivera FINA-fiskalisering",
|
|
12
|
+
"Upload and validate digital certificate first": "Ladda upp och validera digitalt certifikat först",
|
|
13
|
+
"Certificate Required": "Certifikat krävs",
|
|
14
|
+
"You must upload a FINA digital certificate before you can fiscalize invoices":
|
|
15
|
+
"Du måste ladda upp ett digitalt FINA-certifikat innan du kan fiskalisera fakturor",
|
|
16
|
+
"Business Premise Required": "Affärslokal krävs",
|
|
17
|
+
"Register at least one business premise before fiscalizing invoices":
|
|
18
|
+
"Registrera minst en affärslokal innan du fiskaliserar fakturor",
|
|
19
|
+
"Numbering Sequence": "Numreringssekvens",
|
|
20
|
+
"Choose how invoice numbers are sequenced": "Välj hur fakturanummer ska sekvenseras",
|
|
21
|
+
"Per Device (N)": "Per enhet (N)",
|
|
22
|
+
"Per Premise (P)": "Per lokal (P)",
|
|
23
|
+
Recommended: "Rekommenderad",
|
|
24
|
+
"One sequence per business premise. Simpler to manage.": "En sekvens per affärslokal. Enklare att hantera.",
|
|
25
|
+
"Separate sequence per electronic device. For multi-device setups.":
|
|
26
|
+
"Separat sekvens per elektronisk enhet. För installationer med flera enheter.",
|
|
27
|
+
"Operator Information": "Operatörsinformation",
|
|
28
|
+
"Configure default operator for API usage": "Konfigurera standardoperatör för API-användning",
|
|
29
|
+
"Operator OIB": "Operatörens OIB",
|
|
30
|
+
"OIB of the operator (11 digits)": "Operatörens OIB (11 siffror)",
|
|
31
|
+
"OIB must be exactly 11 digits": "OIB måste bestå av exakt 11 siffror",
|
|
32
|
+
"Operator OIB set": "Operatörens OIB har angetts",
|
|
33
|
+
"Set operator OIB in General Settings first": "Ange först operatörens OIB under Allmänna inställningar",
|
|
34
|
+
"Operator Label": "Operatörsetikett",
|
|
35
|
+
"e.g. Cashier 1": "t.ex. Kassör 1",
|
|
36
|
+
"PDV System": "PDV-system",
|
|
37
|
+
"Entity is registered in the Croatian PDV (VAT) system": "Enheten är registrerad i det kroatiska PDV-systemet (moms)",
|
|
38
|
+
"Digital Certificate": "Digitalt certifikat",
|
|
39
|
+
"Upload your FINA digital certificate": "Ladda upp ditt digitala FINA-certifikat",
|
|
40
|
+
"Your certificate is required to digitally sign all fiscalized invoices. The certificate must be obtained from FINA (Financial Agency of Croatia).":
|
|
41
|
+
"Ditt certifikat krävs för att digitalt signera alla fiskaliserade fakturor. Certifikatet måste erhållas från FINA (Kroatiens finansiella myndighet).",
|
|
42
|
+
"Invalid file type. Please upload a .p12 or .pfx certificate file.":
|
|
43
|
+
"Ogiltig filtyp. Vänligen ladda upp en .p12- eller .pfx-certifikatfil.",
|
|
44
|
+
"Please select a certificate file and enter the passphrase": "Vänligen välj en certifikatfil och ange lösenordet",
|
|
45
|
+
"Invalid certificate passphrase. Please check your passphrase and try again.":
|
|
46
|
+
"Ogiltig lösenfras för certifikatet. Kontrollera lösenfrasen och försök igen.",
|
|
47
|
+
"Certificate OIB does not match entity OIB. Please upload a certificate for this entity.":
|
|
48
|
+
"Certifikatets OIB matchar inte enhetens OIB. Ladda upp ett certifikat för den här enheten.",
|
|
49
|
+
Valid: "Giltig",
|
|
50
|
+
"Expiring Soon": "Löper ut snart",
|
|
51
|
+
Expired: "Utgånget",
|
|
52
|
+
Missing: "Saknas",
|
|
53
|
+
Expires: "Löper ut",
|
|
54
|
+
Issuer: "Utfärdare",
|
|
55
|
+
Subject: "Ämne",
|
|
56
|
+
"Change Certificate": "Byt certifikat",
|
|
57
|
+
"P12/PFX Certificate File": "P12/PFX-certifikatfil",
|
|
58
|
+
Selected: "Vald",
|
|
59
|
+
"Certificate Passphrase": "Certifikatlösenord",
|
|
60
|
+
"Enter certificate passphrase": "Ange certifikatlösenord",
|
|
61
|
+
"Upload Certificate": "Ladda upp certifikat",
|
|
62
|
+
"Upload New Certificate": "Ladda upp nytt certifikat",
|
|
63
|
+
"Manage your business premises for FINA": "Hantera dina affärslokaler för FINA",
|
|
64
|
+
"Register your premises on ePorezna first, then add the premise ID here.":
|
|
65
|
+
"Registrera först din lokal i ePorezna och lägg sedan till lokal-ID:t här.",
|
|
66
|
+
"Add Premise": "Lägg till lokal",
|
|
67
|
+
"No premises registered yet": "Inga lokaler registrerade ännu",
|
|
68
|
+
Active: "Aktiv",
|
|
69
|
+
Inactive: "Inaktiv",
|
|
70
|
+
Closed: "Stängd",
|
|
71
|
+
"Delete Premise": "Ta bort lokal",
|
|
72
|
+
"Delete Device": "Ta bort enhet",
|
|
73
|
+
"Are you sure you want to delete this premise? This will also deactivate all its devices.":
|
|
74
|
+
"Är du säker på att du vill ta bort den här lokalen? Det kommer också att avaktivera alla dess enheter.",
|
|
75
|
+
"Are you sure you want to delete this device?": "Är du säker på att du vill ta bort den här enheten?",
|
|
76
|
+
Other: "Övrigt",
|
|
77
|
+
Device: "Enhet",
|
|
78
|
+
Devices: "Enheter",
|
|
79
|
+
"No devices registered. Add at least one device to fiscalize invoices.":
|
|
80
|
+
"Inga enheter registrerade. Lägg till minst en enhet för att fiskalisera fakturor.",
|
|
81
|
+
Created: "Skapad",
|
|
82
|
+
"Add Electronic Device": "Lägg till elektronisk enhet",
|
|
83
|
+
"Register an electronic device for this business premise.":
|
|
84
|
+
"Registrera en elektronisk enhet för den här affärslokalen.",
|
|
85
|
+
"Device ID": "Device ID",
|
|
86
|
+
"Enter a numeric device ID (e.g., 1, 2, 3)": "Ange ett numeriskt enhets-ID, till exempel 1, 2 eller 3",
|
|
87
|
+
Cancel: "Avbryt",
|
|
88
|
+
"Register Device": "Registrera enhet",
|
|
89
|
+
"Registering...": "Registrerar...",
|
|
90
|
+
"Add Business Premise": "Lägg till affärslokal",
|
|
91
|
+
"Enter the premise ID that you registered on ePorezna. After adding, you'll need to register at least one electronic device.":
|
|
92
|
+
"Ange lokal-ID:t som du registrerade i ePorezna. Efter att du har lagt till det behöver du registrera minst en elektronisk enhet.",
|
|
93
|
+
"Premise ID": "Lokal-ID",
|
|
94
|
+
"Unique identifier for this premise (e.g., PP1, OFFICE1)":
|
|
95
|
+
"Unik identifierare för den här lokalen, till exempel PP1 eller OFFICE1",
|
|
96
|
+
"Adding...": "Adding...",
|
|
97
|
+
"Save Settings": "Spara inställningar",
|
|
98
|
+
"Saving...": "Sparar...",
|
|
99
|
+
"Loading...": "Laddar...",
|
|
100
|
+
"Enable Fiscalization": "Aktivera fiskalisering",
|
|
101
|
+
"Turn on FINA fiscalization for invoices": "Aktivera FINA-fiskalisering för fakturor",
|
|
102
|
+
"Setup Checklist": "Checklista för konfiguration",
|
|
103
|
+
"Valid certificate uploaded": "Giltigt certifikat uppladdat",
|
|
104
|
+
"At least one business premise registered": "Minst en affärslokal är registrerad",
|
|
105
|
+
"At least one electronic device registered": "Minst en elektronisk enhet är registrerad",
|
|
106
|
+
"Cannot Enable Fiscalization": "Det går inte att aktivera fiskalisering",
|
|
107
|
+
"Complete all prerequisites above before enabling FINA fiscalization.":
|
|
108
|
+
"Uppfyll alla ovanstående krav innan du aktiverar FINA-fiskalisering.",
|
|
109
|
+
"Once enabled, all new B2C invoices will be automatically fiscalized with FINA":
|
|
110
|
+
"När funktionen är aktiverad fiskaliseras alla nya B2C-fakturor automatiskt med FINA",
|
|
111
|
+
"Warning: Disabling fiscalization will prevent new invoices from being fiscalized.":
|
|
112
|
+
"Varning: Om du inaktiverar fiskalisering kommer nya fakturor inte att fiskaliseras.",
|
|
113
|
+
"Register at least one business premise first": "Registrera först minst en affärslokal",
|
|
114
|
+
"Register at least one electronic device first": "Registrera först minst en elektronisk enhet",
|
|
115
|
+
"Activate FINA fiscalization for your invoices": "Aktivera FINA-fiskalisering för dina fakturor",
|
|
116
|
+
"You must upload a digital certificate before you can register business premises":
|
|
117
|
+
"Du måste ladda upp ett digitalt certifikat innan du kan registrera affärslokaler",
|
|
118
|
+
"FINA Fiscalization": "FINA-fiskalisering",
|
|
119
|
+
"Croatian tax authority fiscalization details": "Fiskalisering hos den kroatiska skattemyndigheten",
|
|
120
|
+
Fiscalized: "Fiskaliserad",
|
|
121
|
+
Pending: "Väntande",
|
|
122
|
+
Failed: "Misslyckad",
|
|
123
|
+
JIR: "JIR",
|
|
124
|
+
ZKI: "ZKI",
|
|
125
|
+
"Invoice Number": "Fakturanummer",
|
|
126
|
+
"QR Code": "QR-kod",
|
|
127
|
+
"Issuer OIB": "Utfärdarens OIB",
|
|
128
|
+
Operator: "Operatör",
|
|
129
|
+
Verify: "Verifiera",
|
|
130
|
+
"Fiscalized at": "Fiskaliserad den",
|
|
131
|
+
"Business Premise": "Affärslokal",
|
|
132
|
+
"Electronic Device": "Elektronisk enhet",
|
|
133
|
+
"Fiscalization Error": "Fiskaliseringsfel",
|
|
134
|
+
"Your Operator Settings": "Dina operatörsinställningar",
|
|
135
|
+
"Your personal operator info for FINA invoices": "Din personliga operatörsinformation för FINA-fakturor",
|
|
136
|
+
"Save Operator Settings": "Spara operatörsinställningar",
|
|
137
|
+
"Advanced Settings": "Avancerade inställningar",
|
|
138
|
+
"API Default Operator": "API-standardoperatör",
|
|
139
|
+
"Default operator settings for API key usage (when no user context)":
|
|
140
|
+
"Standardinställningar för operatör vid API-nyckelanvändning (när det inte finns någon användarkontext)",
|
|
141
|
+
"OIB for API key usage (optional)": "OIB för användning med API-nyckel (valfritt)",
|
|
142
|
+
"Operator label for API key usage (optional)": "Operatörsetikett för API-nyckelanvändning (valfritt)",
|
|
143
|
+
City: "Stad",
|
|
144
|
+
"Entity Information": "Enhetsinformation",
|
|
145
|
+
"Required company details for FINA fiscalization": "Obligatoriska företagsuppgifter för FINA-fiskalisering",
|
|
146
|
+
"Entity OIB": "Enhetens OIB",
|
|
147
|
+
"Your company's OIB (must match FINA certificate)": "Ditt företags OIB måste matcha FINA-certifikatet",
|
|
148
|
+
"Entity OIB is required for FINA fiscalization": "Enhetens OIB krävs för FINA-fiskalisering",
|
|
149
|
+
"Set entity OIB in General Settings first": "Ange först enhetens OIB under Allmänna inställningar",
|
|
150
|
+
"Set operator OIB and label in General Settings first":
|
|
151
|
+
"Ange först operatörens OIB och etikett under Allmänna inställningar",
|
|
152
|
+
"Complete General Settings first": "Slutför Allmänna inställningar först",
|
|
153
|
+
"Operator OIB and label are required for FINA fiscalization":
|
|
154
|
+
"Operatörens OIB och etikett krävs för FINA-fiskalisering",
|
|
155
|
+
Address: "Adress",
|
|
156
|
+
"Post Code": "Postnummer",
|
|
157
|
+
"Save Entity Info": "Spara enhetsinformation",
|
|
158
|
+
"FINA Operator Settings Required": "FINA-operatörsinställningar krävs",
|
|
159
|
+
"Your FINA operator information is needed to fiscalize this document. Please enter your operator details.":
|
|
160
|
+
"Din FINA-operatörsinformation krävs för att fiskalisera det här dokumentet. Ange dina operatörsuppgifter.",
|
|
161
|
+
"Save & Retry": "Spara och försök igen",
|
|
162
|
+
"Unified document numbering": "Enhetlig dokumentnumrering",
|
|
163
|
+
"Use the same numbering sequence for all documents, including non-fiscalized ones":
|
|
164
|
+
"Använd samma nummersekvens för alla dokument, även de som inte fiskaliseras",
|
|
165
|
+
} as const;
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
DialogTitle,
|
|
10
10
|
} from "@/ui/components/ui/dialog";
|
|
11
11
|
import { Input } from "@/ui/components/ui/input";
|
|
12
|
-
import { useUpdateUserFursSettings } from "./furs-settings.hooks";
|
|
12
|
+
import { useUpdateFursSettings, useUpdateUserFursSettings } from "./furs-settings.hooks";
|
|
13
13
|
|
|
14
14
|
interface FursOperatorRequiredDialogProps {
|
|
15
15
|
open: boolean;
|
|
@@ -17,6 +17,7 @@ interface FursOperatorRequiredDialogProps {
|
|
|
17
17
|
entityId: string;
|
|
18
18
|
onSaved: () => void;
|
|
19
19
|
t: (key: string) => string;
|
|
20
|
+
saveScope?: "user" | "entity";
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
export const FursOperatorRequiredDialog: FC<FursOperatorRequiredDialogProps> = ({
|
|
@@ -25,28 +26,52 @@ export const FursOperatorRequiredDialog: FC<FursOperatorRequiredDialogProps> = (
|
|
|
25
26
|
entityId,
|
|
26
27
|
onSaved,
|
|
27
28
|
t,
|
|
29
|
+
saveScope = "user",
|
|
28
30
|
}) => {
|
|
29
31
|
const [operatorTaxNumber, setOperatorTaxNumber] = useState("");
|
|
30
32
|
const [operatorLabel, setOperatorLabel] = useState("");
|
|
31
33
|
|
|
32
|
-
const
|
|
34
|
+
const handleSuccess = () => {
|
|
35
|
+
setOperatorTaxNumber("");
|
|
36
|
+
setOperatorLabel("");
|
|
37
|
+
onSaved();
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const { mutate: updateUserSettings, isPending: isUserPending } = useUpdateUserFursSettings({
|
|
41
|
+
onSuccess: () => {
|
|
42
|
+
handleSuccess();
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
const { mutate: updateEntitySettings, isPending: isEntityPending } = useUpdateFursSettings({
|
|
33
47
|
onSuccess: () => {
|
|
34
|
-
|
|
35
|
-
setOperatorLabel("");
|
|
36
|
-
onSaved();
|
|
48
|
+
handleSuccess();
|
|
37
49
|
},
|
|
38
50
|
});
|
|
39
51
|
|
|
52
|
+
const isPending = isUserPending || isEntityPending;
|
|
53
|
+
|
|
40
54
|
const handleSubmit = (e: React.FormEvent) => {
|
|
41
55
|
e.preventDefault();
|
|
42
56
|
e.stopPropagation();
|
|
43
57
|
if (!operatorTaxNumber || !operatorLabel) return;
|
|
58
|
+
|
|
59
|
+
const payload = {
|
|
60
|
+
operator_tax_number: operatorTaxNumber,
|
|
61
|
+
operator_label: operatorLabel,
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
if (saveScope === "entity") {
|
|
65
|
+
updateEntitySettings({
|
|
66
|
+
entityId,
|
|
67
|
+
data: payload,
|
|
68
|
+
});
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
|
|
44
72
|
updateUserSettings({
|
|
45
73
|
entityId,
|
|
46
|
-
data:
|
|
47
|
-
operator_tax_number: operatorTaxNumber,
|
|
48
|
-
operator_label: operatorLabel,
|
|
49
|
-
},
|
|
74
|
+
data: payload,
|
|
50
75
|
});
|
|
51
76
|
};
|
|
52
77
|
|
|
@@ -15,22 +15,30 @@ import { type FiscalizationStepConfig, useFiscalizationStepFlow } from "../share
|
|
|
15
15
|
import { FiscalizationStepTabs } from "../shared/fiscalization-step-tabs";
|
|
16
16
|
import { useFursPremises, useFursSettings, useUpdateFursSettings, useUserFursSettings } from "./furs-settings.hooks";
|
|
17
17
|
// Import locale files
|
|
18
|
+
import bg from "./locales/bg";
|
|
19
|
+
import cs from "./locales/cs";
|
|
18
20
|
import de from "./locales/de";
|
|
19
21
|
import en from "./locales/en";
|
|
20
22
|
import es from "./locales/es";
|
|
23
|
+
import et from "./locales/et";
|
|
24
|
+
import fi from "./locales/fi";
|
|
21
25
|
import fr from "./locales/fr";
|
|
22
26
|
import hr from "./locales/hr";
|
|
27
|
+
import is from "./locales/is";
|
|
23
28
|
import it from "./locales/it";
|
|
29
|
+
import nb from "./locales/nb";
|
|
24
30
|
import nl from "./locales/nl";
|
|
25
31
|
import pl from "./locales/pl";
|
|
26
32
|
import pt from "./locales/pt";
|
|
33
|
+
import sk from "./locales/sk";
|
|
27
34
|
import sl from "./locales/sl";
|
|
35
|
+
import sv from "./locales/sv";
|
|
28
36
|
import { CertificateSettingsSection } from "./sections/certificate-settings-section";
|
|
29
37
|
import { EnableFiscalizationSection } from "./sections/enable-fiscalization-section";
|
|
30
38
|
import { GeneralSettingsSection } from "./sections/general-settings-section";
|
|
31
39
|
import { PremisesManagementSection } from "./sections/premises-management-section";
|
|
32
40
|
|
|
33
|
-
const translations = {
|
|
41
|
+
const translations = { bg, cs, de, en, es, et, fi, fr, hr, is, it, nb, nl, pl, pt, sk, sl, sv } as const;
|
|
34
42
|
|
|
35
43
|
/**
|
|
36
44
|
* FURS Settings Form Schema
|
|
@@ -93,6 +101,7 @@ export const FursSettingsForm: FC<FursSettingsFormProps> = ({
|
|
|
93
101
|
t: translateFn,
|
|
94
102
|
namespace,
|
|
95
103
|
locale,
|
|
104
|
+
translationLocale,
|
|
96
105
|
initialStep = "settings",
|
|
97
106
|
onStepChange,
|
|
98
107
|
renderSection,
|
|
@@ -103,6 +112,7 @@ export const FursSettingsForm: FC<FursSettingsFormProps> = ({
|
|
|
103
112
|
t: translateFn,
|
|
104
113
|
namespace,
|
|
105
114
|
locale,
|
|
115
|
+
translationLocale,
|
|
106
116
|
translations,
|
|
107
117
|
});
|
|
108
118
|
|
|
@@ -126,6 +136,7 @@ export const FursSettingsForm: FC<FursSettingsFormProps> = ({
|
|
|
126
136
|
resolver: zodResolver(fursSettingsFormSchema),
|
|
127
137
|
values: {
|
|
128
138
|
enabled: fursSettings?.enabled || false,
|
|
139
|
+
default_skip_fiscalization: fursSettings?.default_skip_fiscalization || false,
|
|
129
140
|
numbering_strategy: fursSettings?.numbering_strategy || "C",
|
|
130
141
|
operator_tax_number: fursSettings?.operator_tax_number || "",
|
|
131
142
|
operator_label: fursSettings?.operator_label || "",
|
|
@@ -361,6 +372,7 @@ export const FursSettingsForm: FC<FursSettingsFormProps> = ({
|
|
|
361
372
|
|
|
362
373
|
{activeStep === "enable" && (
|
|
363
374
|
<EnableFiscalizationSection
|
|
375
|
+
entityId={entity.id}
|
|
364
376
|
form={form}
|
|
365
377
|
fursSettings={fursSettings}
|
|
366
378
|
premises={(premises || []) as any}
|
|
@@ -13,6 +13,7 @@ import type {
|
|
|
13
13
|
UploadFursCertificate200,
|
|
14
14
|
User,
|
|
15
15
|
} from "@spaceinvoices/js-sdk";
|
|
16
|
+
import { downloadBlob, fursCertificate, fursDevices, fursPremises, fursSettings, users } from "@spaceinvoices/js-sdk";
|
|
16
17
|
import {
|
|
17
18
|
type UseMutationOptions,
|
|
18
19
|
type UseQueryOptions,
|
|
@@ -20,8 +21,8 @@ import {
|
|
|
20
21
|
useQuery,
|
|
21
22
|
useQueryClient,
|
|
22
23
|
} from "@tanstack/react-query";
|
|
23
|
-
import { useMemo } from "react";
|
|
24
|
-
import {
|
|
24
|
+
import { useMemo, useState } from "react";
|
|
25
|
+
import { toast } from "sonner";
|
|
25
26
|
|
|
26
27
|
/**
|
|
27
28
|
* Query Keys
|
|
@@ -34,6 +35,78 @@ export const fursQueryKeys = {
|
|
|
34
35
|
currentUser: () => ["user", "me"] as const,
|
|
35
36
|
};
|
|
36
37
|
|
|
38
|
+
type TranslationFn = (key: string) => string;
|
|
39
|
+
type InternalActFormat = "pdf" | "docx";
|
|
40
|
+
type FursInternalActApi = {
|
|
41
|
+
generateFursInternalActPdf?: (options?: { entity_id?: string; signal?: AbortSignal }) => Promise<Blob>;
|
|
42
|
+
generateFursInternalActDocx?: (options?: { entity_id?: string; signal?: AbortSignal }) => Promise<Blob>;
|
|
43
|
+
downloadPdf?: (options?: { entity_id?: string; signal?: AbortSignal }) => Promise<Blob>;
|
|
44
|
+
downloadDocx?: (options?: { entity_id?: string; signal?: AbortSignal }) => Promise<Blob>;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
function getInternalActDownloadFilename(format: InternalActFormat) {
|
|
48
|
+
const date = new Date().toISOString().slice(0, 10);
|
|
49
|
+
return `furs-interni-akt-${date}.${format}`;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function getInternalActDownloadSuccessKey(format: InternalActFormat) {
|
|
53
|
+
return format === "pdf" ? "Internal act PDF downloaded" : "Internal act DOCX downloaded";
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function getInternalActDownloadPendingKey(format: InternalActFormat) {
|
|
57
|
+
return format === "pdf" ? "Preparing PDF..." : "Preparing DOCX...";
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function getInternalActDownloadErrorDescription(error: unknown, t: TranslationFn) {
|
|
61
|
+
const apiMessage = (error as any)?.data?.message || (error as Error | undefined)?.message;
|
|
62
|
+
|
|
63
|
+
if (typeof apiMessage === "string") {
|
|
64
|
+
const normalizedMessage = apiMessage.toLowerCase();
|
|
65
|
+
|
|
66
|
+
if (normalizedMessage.includes("certificate")) {
|
|
67
|
+
return t("Upload a valid certificate to download the internal act");
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (normalizedMessage.includes("premise")) {
|
|
71
|
+
return t("Register at least one active business premise to download the internal act");
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (normalizedMessage.includes("device")) {
|
|
75
|
+
return t("Register at least one electronic device to download the internal act");
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return apiMessage;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return t("Internal act download unavailable");
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function getInternalActDownloader(api: FursInternalActApi, format: InternalActFormat) {
|
|
85
|
+
if (format === "pdf") {
|
|
86
|
+
return api.generateFursInternalActPdf ?? api.downloadPdf;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return api.generateFursInternalActDocx ?? api.downloadDocx;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
async function loadFursInternalActApi(): Promise<FursInternalActApi> {
|
|
93
|
+
try {
|
|
94
|
+
const module = (await import("../../../../../js-sdk/src/sdk/furs-internal-act.ts")) as unknown as {
|
|
95
|
+
fursInternalAct?: FursInternalActApi;
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
if (!module.fursInternalAct) {
|
|
99
|
+
throw new Error("FURS internal act SDK module is not available");
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return module.fursInternalAct;
|
|
103
|
+
} catch (error) {
|
|
104
|
+
throw new Error("FURS internal act download is not available yet", {
|
|
105
|
+
cause: error,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
37
110
|
/**
|
|
38
111
|
* Hook: Get FURS settings
|
|
39
112
|
*/
|
|
@@ -41,16 +114,13 @@ export function useFursSettings(
|
|
|
41
114
|
entityId: string,
|
|
42
115
|
options?: Omit<UseQueryOptions<GetFursSettings200>, "queryKey" | "queryFn">,
|
|
43
116
|
) {
|
|
44
|
-
const { sdk } = useSDK();
|
|
45
|
-
|
|
46
117
|
return useQuery({
|
|
47
118
|
queryKey: fursQueryKeys.settings(entityId),
|
|
48
119
|
queryFn: async () => {
|
|
49
|
-
if (!sdk) throw new Error("SDK not initialized");
|
|
50
120
|
if (!entityId) throw new Error("Entity ID required");
|
|
51
|
-
return
|
|
121
|
+
return fursSettings.list({ entity_id: entityId });
|
|
52
122
|
},
|
|
53
|
-
enabled: !!
|
|
123
|
+
enabled: !!entityId,
|
|
54
124
|
staleTime: 0, // Always fetch fresh data
|
|
55
125
|
...options,
|
|
56
126
|
});
|
|
@@ -62,14 +132,12 @@ export function useFursSettings(
|
|
|
62
132
|
export function useUpdateFursSettings(
|
|
63
133
|
options?: UseMutationOptions<GetFursSettings200, Error, { entityId: string; data: UpdateFursSettingsBody }>,
|
|
64
134
|
) {
|
|
65
|
-
const { sdk } = useSDK();
|
|
66
135
|
const queryClient = useQueryClient();
|
|
67
136
|
|
|
68
137
|
return useMutation({
|
|
69
138
|
...options,
|
|
70
139
|
mutationFn: async ({ entityId, data }) => {
|
|
71
|
-
|
|
72
|
-
return sdk.fursSettings.update(data, { entity_id: entityId });
|
|
140
|
+
return fursSettings.update(data, { entity_id: entityId });
|
|
73
141
|
},
|
|
74
142
|
onSuccess: (data, variables, context) => {
|
|
75
143
|
// Invalidate settings query
|
|
@@ -90,14 +158,12 @@ export function useUpdateFursSettings(
|
|
|
90
158
|
export function useUploadFursCertificate(
|
|
91
159
|
options?: UseMutationOptions<UploadFursCertificate200, Error, { entityId: string; file: Blob; passphrase: string }>,
|
|
92
160
|
) {
|
|
93
|
-
const { sdk } = useSDK();
|
|
94
161
|
const queryClient = useQueryClient();
|
|
95
162
|
|
|
96
163
|
return useMutation({
|
|
97
164
|
...options,
|
|
98
165
|
mutationFn: async ({ entityId, file, passphrase }) => {
|
|
99
|
-
|
|
100
|
-
return sdk.fursCertificate.uploadFursCertificate({ file, passphrase }, { entity_id: entityId });
|
|
166
|
+
return fursCertificate.uploadFursCertificate({ file, passphrase }, { entity_id: entityId });
|
|
101
167
|
},
|
|
102
168
|
onSuccess: (data, variables, context) => {
|
|
103
169
|
// Invalidate settings query to refresh certificate status
|
|
@@ -119,15 +185,10 @@ export function useFursPremises(
|
|
|
119
185
|
entityId: string,
|
|
120
186
|
options?: Omit<UseQueryOptions<FursBusinessPremise[]>, "queryKey" | "queryFn">,
|
|
121
187
|
) {
|
|
122
|
-
const { sdk } = useSDK();
|
|
123
|
-
|
|
124
188
|
return useQuery({
|
|
125
189
|
queryKey: fursQueryKeys.premises(entityId),
|
|
126
|
-
queryFn: async () => {
|
|
127
|
-
|
|
128
|
-
return sdk.fursPremises.listFursBusinessPremises({ entity_id: entityId });
|
|
129
|
-
},
|
|
130
|
-
enabled: !!sdk,
|
|
190
|
+
queryFn: async () => fursPremises.listFursBusinessPremises({ entity_id: entityId }),
|
|
191
|
+
enabled: !!entityId,
|
|
131
192
|
staleTime: 0, // Always fetch fresh data to reflect device changes
|
|
132
193
|
...options,
|
|
133
194
|
});
|
|
@@ -139,14 +200,12 @@ export function useFursPremises(
|
|
|
139
200
|
export function useRegisterRealEstatePremise(
|
|
140
201
|
options?: UseMutationOptions<any, Error, { entityId: string; data: RegisterFursRealEstatePremiseBody }>,
|
|
141
202
|
) {
|
|
142
|
-
const { sdk } = useSDK();
|
|
143
203
|
const queryClient = useQueryClient();
|
|
144
204
|
|
|
145
205
|
return useMutation({
|
|
146
206
|
...options,
|
|
147
207
|
mutationFn: async ({ entityId, data }) => {
|
|
148
|
-
|
|
149
|
-
return sdk.fursPremises.registerFursRealEstatePremise(data, { entity_id: entityId });
|
|
208
|
+
return fursPremises.registerFursRealEstatePremise(data, { entity_id: entityId });
|
|
150
209
|
},
|
|
151
210
|
onSuccess: (data, variables, context) => {
|
|
152
211
|
// Invalidate premises list
|
|
@@ -167,14 +226,12 @@ export function useRegisterRealEstatePremise(
|
|
|
167
226
|
export function useRegisterMovablePremise(
|
|
168
227
|
options?: UseMutationOptions<any, Error, { entityId: string; data: RegisterFursMovablePremiseBody }>,
|
|
169
228
|
) {
|
|
170
|
-
const { sdk } = useSDK();
|
|
171
229
|
const queryClient = useQueryClient();
|
|
172
230
|
|
|
173
231
|
return useMutation({
|
|
174
232
|
...options,
|
|
175
233
|
mutationFn: async ({ entityId, data }) => {
|
|
176
|
-
|
|
177
|
-
return sdk.fursPremises.registerFursMovablePremise(data, { entity_id: entityId });
|
|
234
|
+
return fursPremises.registerFursMovablePremise(data, { entity_id: entityId });
|
|
178
235
|
},
|
|
179
236
|
onSuccess: (data, variables, context) => {
|
|
180
237
|
// Invalidate premises list
|
|
@@ -193,14 +250,12 @@ export function useRegisterMovablePremise(
|
|
|
193
250
|
* Hook: Close premise
|
|
194
251
|
*/
|
|
195
252
|
export function useClosePremise(options?: UseMutationOptions<any, Error, { entityId: string; premiseId: string }>) {
|
|
196
|
-
const { sdk } = useSDK();
|
|
197
253
|
const queryClient = useQueryClient();
|
|
198
254
|
|
|
199
255
|
return useMutation({
|
|
200
256
|
...options,
|
|
201
257
|
mutationFn: async ({ entityId, premiseId }) => {
|
|
202
|
-
|
|
203
|
-
return sdk.fursPremises.closeFursBusinessPremise(premiseId, { entity_id: entityId });
|
|
258
|
+
return fursPremises.closeFursBusinessPremise(premiseId, { entity_id: entityId });
|
|
204
259
|
},
|
|
205
260
|
onSuccess: (data, variables, context) => {
|
|
206
261
|
// Invalidate premises list
|
|
@@ -221,14 +276,12 @@ export function useClosePremise(options?: UseMutationOptions<any, Error, { entit
|
|
|
221
276
|
export function useRegisterElectronicDevice(
|
|
222
277
|
options?: UseMutationOptions<any, Error, { entityId: string; premiseId: string; deviceName: string }>,
|
|
223
278
|
) {
|
|
224
|
-
const { sdk } = useSDK();
|
|
225
279
|
const queryClient = useQueryClient();
|
|
226
280
|
|
|
227
281
|
return useMutation({
|
|
228
282
|
...options,
|
|
229
283
|
mutationFn: async ({ entityId, premiseId, deviceName }) => {
|
|
230
|
-
|
|
231
|
-
return sdk.fursDevices.registerFursElectronicDevice(premiseId, { name: deviceName }, { entity_id: entityId });
|
|
284
|
+
return fursDevices.registerFursElectronicDevice(premiseId, { name: deviceName }, { entity_id: entityId });
|
|
232
285
|
},
|
|
233
286
|
onSuccess: (data, variables, context) => {
|
|
234
287
|
// Invalidate premises list to refresh devices
|
|
@@ -259,15 +312,10 @@ export interface UserFursSettings {
|
|
|
259
312
|
* Hook: Get current user
|
|
260
313
|
*/
|
|
261
314
|
export function useCurrentUser(options?: Omit<UseQueryOptions<User>, "queryKey" | "queryFn">) {
|
|
262
|
-
const { sdk } = useSDK();
|
|
263
|
-
|
|
264
315
|
return useQuery({
|
|
265
316
|
queryKey: fursQueryKeys.currentUser(),
|
|
266
|
-
queryFn: async () =>
|
|
267
|
-
|
|
268
|
-
return sdk.users.getMe();
|
|
269
|
-
},
|
|
270
|
-
enabled: !!sdk,
|
|
317
|
+
queryFn: async () => users.getMe(),
|
|
318
|
+
enabled: options?.enabled,
|
|
271
319
|
staleTime: 1000 * 60 * 5, // 5 minutes - user data doesn't change often
|
|
272
320
|
...options,
|
|
273
321
|
});
|
|
@@ -302,14 +350,12 @@ export function useUserFursSettings(entityId: string, options?: { enabled?: bool
|
|
|
302
350
|
export function useUpdateUserFursSettings(
|
|
303
351
|
options?: UseMutationOptions<User, Error, { entityId: string; data: UpdateUserFursSettingsBody }>,
|
|
304
352
|
) {
|
|
305
|
-
const { sdk } = useSDK();
|
|
306
353
|
const queryClient = useQueryClient();
|
|
307
354
|
|
|
308
355
|
return useMutation({
|
|
309
356
|
...options,
|
|
310
357
|
mutationFn: async ({ entityId, data }) => {
|
|
311
|
-
|
|
312
|
-
return sdk.users.updateFursSettings(data, { entity_id: entityId });
|
|
358
|
+
return users.updateFursSettings(data, { entity_id: entityId });
|
|
313
359
|
},
|
|
314
360
|
onSuccess: (data, variables, context) => {
|
|
315
361
|
// Invalidate current user query to refresh settings
|
|
@@ -323,3 +369,56 @@ export function useUpdateUserFursSettings(
|
|
|
323
369
|
},
|
|
324
370
|
});
|
|
325
371
|
}
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* Hook: Download the FURS internal act in PDF or DOCX format.
|
|
375
|
+
*/
|
|
376
|
+
export function useFursInternalActDownloads(t: TranslationFn) {
|
|
377
|
+
const [downloadFormat, setDownloadFormat] = useState<InternalActFormat | null>(null);
|
|
378
|
+
|
|
379
|
+
const downloadInternalAct = async (entityId: string, format: InternalActFormat) => {
|
|
380
|
+
if (!entityId) {
|
|
381
|
+
toast.error(t("Failed to download internal act"), {
|
|
382
|
+
description: t("Internal act download unavailable"),
|
|
383
|
+
});
|
|
384
|
+
return;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
toast.message(t(getInternalActDownloadPendingKey(format)));
|
|
388
|
+
setDownloadFormat(format);
|
|
389
|
+
|
|
390
|
+
try {
|
|
391
|
+
const fursInternalAct = await loadFursInternalActApi();
|
|
392
|
+
const downloadInternalActFile = getInternalActDownloader(fursInternalAct, format);
|
|
393
|
+
|
|
394
|
+
if (!downloadInternalActFile) {
|
|
395
|
+
throw new Error("FURS internal act download is not available yet");
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
const blob = await downloadInternalActFile({ entity_id: entityId });
|
|
399
|
+
|
|
400
|
+
downloadBlob(blob, getInternalActDownloadFilename(format));
|
|
401
|
+
|
|
402
|
+
toast.success(t(getInternalActDownloadSuccessKey(format)), {
|
|
403
|
+
description: t(
|
|
404
|
+
"The internal act contains your current business premises, devices, and invoice numbering setup.",
|
|
405
|
+
),
|
|
406
|
+
});
|
|
407
|
+
} catch (error) {
|
|
408
|
+
console.error("Error downloading FURS internal act:", error);
|
|
409
|
+
|
|
410
|
+
toast.error(t("Failed to download internal act"), {
|
|
411
|
+
description: getInternalActDownloadErrorDescription(error, t),
|
|
412
|
+
});
|
|
413
|
+
} finally {
|
|
414
|
+
setDownloadFormat(null);
|
|
415
|
+
}
|
|
416
|
+
};
|
|
417
|
+
|
|
418
|
+
return {
|
|
419
|
+
downloadFursInternalActPdf: async (entityId: string) => downloadInternalAct(entityId, "pdf"),
|
|
420
|
+
downloadFursInternalActDocx: async (entityId: string) => downloadInternalAct(entityId, "docx"),
|
|
421
|
+
isDownloadingPdf: downloadFormat === "pdf",
|
|
422
|
+
isDownloadingDocx: downloadFormat === "docx",
|
|
423
|
+
};
|
|
424
|
+
}
|