@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,452 @@
|
|
|
1
|
+
import { taxReports } from "@spaceinvoices/js-sdk";
|
|
2
|
+
import { ChevronDown, Download, Loader2, Save } from "lucide-react";
|
|
3
|
+
import { useEffect, useMemo, useState } from "react";
|
|
4
|
+
import type { ComponentTranslationProps } from "@/ui/lib/translation";
|
|
5
|
+
import { createTranslation } from "@/ui/lib/translation";
|
|
6
|
+
import { Alert, AlertDescription, AlertTitle } from "../ui/alert";
|
|
7
|
+
import { Button } from "../ui/button";
|
|
8
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../ui/collapsible";
|
|
9
|
+
import { Input } from "../ui/input";
|
|
10
|
+
import { Label } from "../ui/label";
|
|
11
|
+
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../ui/select";
|
|
12
|
+
import {
|
|
13
|
+
DEFAULT_SLOVENIA_ACCOUNTING_KONTO_MAPPINGS,
|
|
14
|
+
normalizeSloveniaAccountingKontoMappings,
|
|
15
|
+
type SloveniaAccountingExportFormat,
|
|
16
|
+
type SloveniaAccountingKontoMappings,
|
|
17
|
+
SloveniaAccountingMappingsFields,
|
|
18
|
+
} from "./slovenia-accounting-mappings-fields";
|
|
19
|
+
|
|
20
|
+
type SloveniaVodExportFormProps = {
|
|
21
|
+
entityId: string;
|
|
22
|
+
onSuccess?: (fileName: string) => void;
|
|
23
|
+
onError?: (error: Error) => void;
|
|
24
|
+
} & ComponentTranslationProps;
|
|
25
|
+
|
|
26
|
+
type SloveniaVodProfile = {
|
|
27
|
+
accounting_exports?: {
|
|
28
|
+
preferred_format?: SloveniaAccountingExportFormat | null;
|
|
29
|
+
konto_mappings?: Partial<Record<keyof SloveniaAccountingKontoMappings, string | null>> | null;
|
|
30
|
+
} | null;
|
|
31
|
+
supported_exports?: {
|
|
32
|
+
vod_xml?: boolean;
|
|
33
|
+
vasco_xml?: boolean;
|
|
34
|
+
minimax_xml?: boolean;
|
|
35
|
+
} | null;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
type SloveniaVodSupportedExports = NonNullable<SloveniaVodProfile["supported_exports"]>;
|
|
39
|
+
type SloveniaVodAccountingExports = {
|
|
40
|
+
preferred_format: SloveniaAccountingExportFormat;
|
|
41
|
+
konto_mappings: SloveniaAccountingKontoMappings;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const translations = {
|
|
45
|
+
en: {
|
|
46
|
+
"slovenia-vod.title": "VOD XML",
|
|
47
|
+
"slovenia-vod.loading": "Loading VOD export profile...",
|
|
48
|
+
"slovenia-vod.save": "Save mappings",
|
|
49
|
+
"slovenia-vod.export": "Export VOD ZIP",
|
|
50
|
+
"slovenia-vod.saving": "Saving mappings...",
|
|
51
|
+
"slovenia-vod.exporting": "Generating ZIP...",
|
|
52
|
+
"slovenia-vod.load-error": "Failed to load Slovenia VOD export profile",
|
|
53
|
+
"slovenia-vod.save-error": "Failed to save Slovenia VOD export profile",
|
|
54
|
+
"slovenia-vod.export-error": "Failed to export Slovenia VOD ZIP",
|
|
55
|
+
"slovenia-vod.unsupported": "VOD XML export is not enabled for this entity.",
|
|
56
|
+
"slovenia-vod.notice.title": "Issued documents only",
|
|
57
|
+
"slovenia-vod.notice.description":
|
|
58
|
+
"This first release exports issued documents only. Received-document XML will be added once v2 has a received-invoice source.",
|
|
59
|
+
"slovenia-vod.purchase-note.title": "Purchase mappings are stored now",
|
|
60
|
+
"slovenia-vod.purchase-note.description":
|
|
61
|
+
"These purchase kontos are saved for future exporters and future VOD_prejeti.xml support, but they are not included in this first VOD ZIP.",
|
|
62
|
+
"slovenia-vod.format.label": "Preferred accounting format",
|
|
63
|
+
"slovenia-vod.format.placeholder": "Select accounting format",
|
|
64
|
+
"slovenia-vod.format.vod_xml": "VOD XML",
|
|
65
|
+
"slovenia-vod.format.vasco_xml": "VASCO XML (coming soon)",
|
|
66
|
+
"slovenia-vod.format.minimax_xml": "miniMAX XML (coming soon)",
|
|
67
|
+
"slovenia-vod.date-from": "Date from",
|
|
68
|
+
"slovenia-vod.date-to": "Date to",
|
|
69
|
+
"slovenia-vod.date-range-error": "Date from must be before or equal to date to.",
|
|
70
|
+
"slovenia-vod.mappings.title": "Sales and purchase mappings",
|
|
71
|
+
"slovenia-vod.mappings.description":
|
|
72
|
+
"Save reusable konto mappings for VOD exports and future purchase-side support.",
|
|
73
|
+
},
|
|
74
|
+
sl: {
|
|
75
|
+
"slovenia-vod.title": "VOD XML",
|
|
76
|
+
"slovenia-vod.loading": "Nalaganje VOD profila...",
|
|
77
|
+
"slovenia-vod.save": "Shrani konte",
|
|
78
|
+
"slovenia-vod.export": "Izvozi VOD ZIP",
|
|
79
|
+
"slovenia-vod.saving": "Shranjevanje kontov...",
|
|
80
|
+
"slovenia-vod.exporting": "Generiranje ZIP ...",
|
|
81
|
+
"slovenia-vod.load-error": "Nalaganje slovenskega VOD profila ni uspelo",
|
|
82
|
+
"slovenia-vod.save-error": "Shranjevanje slovenskega VOD profila ni uspelo",
|
|
83
|
+
"slovenia-vod.export-error": "Izvoz slovenskega VOD ZIP ni uspel",
|
|
84
|
+
"slovenia-vod.unsupported": "Izvoz VOD XML za to entiteto ni omogočen.",
|
|
85
|
+
"slovenia-vod.notice.title": "Samo izdani dokumenti",
|
|
86
|
+
"slovenia-vod.notice.description":
|
|
87
|
+
"Ta prva izdaja izvozi samo izdane dokumente. XML za prejete dokumente bo dodan, ko bo v v2 na voljo vir prejetih računov.",
|
|
88
|
+
"slovenia-vod.purchase-note.title": "Nabavni konti se shranijo že zdaj",
|
|
89
|
+
"slovenia-vod.purchase-note.description":
|
|
90
|
+
"Ti nabavni konti se shranijo za prihodnje izvoznike in prihodnjo podporo za VOD_prejeti.xml, vendar še niso vključeni v prvi VOD ZIP.",
|
|
91
|
+
"slovenia-vod.format.label": "Prednostni računovodski format",
|
|
92
|
+
"slovenia-vod.format.placeholder": "Izberi računovodski format",
|
|
93
|
+
"slovenia-vod.format.vod_xml": "VOD XML",
|
|
94
|
+
"slovenia-vod.format.vasco_xml": "VASCO XML (kmalu)",
|
|
95
|
+
"slovenia-vod.format.minimax_xml": "miniMAX XML (kmalu)",
|
|
96
|
+
"slovenia-vod.date-from": "Datum od",
|
|
97
|
+
"slovenia-vod.date-to": "Datum do",
|
|
98
|
+
"slovenia-vod.date-range-error": "Datum od mora biti pred datumom do ali enak datumu do.",
|
|
99
|
+
"slovenia-vod.mappings.title": "Prodajni in nabavni konti",
|
|
100
|
+
"slovenia-vod.mappings.description":
|
|
101
|
+
"Shranite ponovno uporabne konte za izvoz VOD in prihodnjo podporo za nabavno stran.",
|
|
102
|
+
},
|
|
103
|
+
hr: {
|
|
104
|
+
"slovenia-vod.title": "VOD XML",
|
|
105
|
+
"slovenia-vod.loading": "Učitavanje VOD profila...",
|
|
106
|
+
"slovenia-vod.save": "Spremi konta",
|
|
107
|
+
"slovenia-vod.export": "Izvezi VOD ZIP",
|
|
108
|
+
"slovenia-vod.saving": "Spremanje konta...",
|
|
109
|
+
"slovenia-vod.exporting": "Generiranje ZIP-a...",
|
|
110
|
+
"slovenia-vod.load-error": "Učitavanje slovenskog VOD profila nije uspjelo",
|
|
111
|
+
"slovenia-vod.save-error": "Spremanje slovenskog VOD profila nije uspjelo",
|
|
112
|
+
"slovenia-vod.export-error": "Izvoz slovenskog VOD ZIP-a nije uspio",
|
|
113
|
+
"slovenia-vod.unsupported": "VOD XML izvoz nije omogućen za ovaj entitet.",
|
|
114
|
+
"slovenia-vod.notice.title": "Samo izdani dokumenti",
|
|
115
|
+
"slovenia-vod.notice.description":
|
|
116
|
+
"Ovo prvo izdanje izvozi samo izdane dokumente. XML za ulazne dokumente bit će dodan kada v2 dobije izvor zaprimljenih računa.",
|
|
117
|
+
"slovenia-vod.purchase-note.title": "Ulazna konta spremamo već sada",
|
|
118
|
+
"slovenia-vod.purchase-note.description":
|
|
119
|
+
"Ta ulazna konta spremaju se za buduće izvoznike i buduću podršku za VOD_prejeti.xml, ali još nisu uključena u prvi VOD ZIP.",
|
|
120
|
+
"slovenia-vod.format.label": "Preferirani računovodstveni format",
|
|
121
|
+
"slovenia-vod.format.placeholder": "Odaberi računovodstveni format",
|
|
122
|
+
"slovenia-vod.format.vod_xml": "VOD XML",
|
|
123
|
+
"slovenia-vod.format.vasco_xml": "VASCO XML (uskoro)",
|
|
124
|
+
"slovenia-vod.format.minimax_xml": "miniMAX XML (uskoro)",
|
|
125
|
+
"slovenia-vod.date-from": "Datum od",
|
|
126
|
+
"slovenia-vod.date-to": "Datum do",
|
|
127
|
+
"slovenia-vod.date-range-error": "Datum od mora biti prije ili jednak datumu do.",
|
|
128
|
+
"slovenia-vod.mappings.title": "Prodajna i nabavna konta",
|
|
129
|
+
"slovenia-vod.mappings.description":
|
|
130
|
+
"Spremite ponovno upotrebljiva konta za VOD izvoz i buduću podršku za ulaznu stranu.",
|
|
131
|
+
},
|
|
132
|
+
} as const;
|
|
133
|
+
|
|
134
|
+
function formatDateLocal(date: Date): string {
|
|
135
|
+
const year = date.getFullYear();
|
|
136
|
+
const month = String(date.getMonth() + 1).padStart(2, "0");
|
|
137
|
+
const day = String(date.getDate()).padStart(2, "0");
|
|
138
|
+
return `${year}-${month}-${day}`;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
function getPreviousMonthRange(): { from: string; to: string } {
|
|
142
|
+
const now = new Date();
|
|
143
|
+
const firstDayPrevMonth = new Date(now.getFullYear(), now.getMonth() - 1, 1);
|
|
144
|
+
const lastDayPrevMonth = new Date(now.getFullYear(), now.getMonth(), 0);
|
|
145
|
+
return {
|
|
146
|
+
from: formatDateLocal(firstDayPrevMonth),
|
|
147
|
+
to: formatDateLocal(lastDayPrevMonth),
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
function createDefaultProfile(): {
|
|
152
|
+
accounting_exports: SloveniaVodAccountingExports;
|
|
153
|
+
supported_exports: SloveniaVodSupportedExports;
|
|
154
|
+
} {
|
|
155
|
+
return {
|
|
156
|
+
accounting_exports: {
|
|
157
|
+
preferred_format: "vod_xml",
|
|
158
|
+
konto_mappings: DEFAULT_SLOVENIA_ACCOUNTING_KONTO_MAPPINGS,
|
|
159
|
+
},
|
|
160
|
+
supported_exports: {
|
|
161
|
+
vod_xml: false,
|
|
162
|
+
vasco_xml: false,
|
|
163
|
+
minimax_xml: false,
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
function normalizeProfile(profile?: SloveniaVodProfile | null) {
|
|
169
|
+
const defaults = createDefaultProfile();
|
|
170
|
+
|
|
171
|
+
return {
|
|
172
|
+
accounting_exports: {
|
|
173
|
+
preferred_format: profile?.accounting_exports?.preferred_format ?? defaults.accounting_exports.preferred_format,
|
|
174
|
+
konto_mappings: normalizeSloveniaAccountingKontoMappings(profile?.accounting_exports?.konto_mappings),
|
|
175
|
+
},
|
|
176
|
+
supported_exports: {
|
|
177
|
+
vod_xml: profile?.supported_exports?.vod_xml ?? defaults.supported_exports.vod_xml,
|
|
178
|
+
vasco_xml: profile?.supported_exports?.vasco_xml ?? defaults.supported_exports.vasco_xml,
|
|
179
|
+
minimax_xml: profile?.supported_exports?.minimax_xml ?? defaults.supported_exports.minimax_xml,
|
|
180
|
+
},
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
function getVodDownloadFileName(dateFrom: string, dateTo: string) {
|
|
185
|
+
return `VOD_${dateFrom}_${dateTo}.zip`;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
export function SloveniaVodExportForm({
|
|
189
|
+
entityId,
|
|
190
|
+
t: translateFn,
|
|
191
|
+
namespace,
|
|
192
|
+
locale,
|
|
193
|
+
translationLocale,
|
|
194
|
+
onSuccess,
|
|
195
|
+
onError,
|
|
196
|
+
}: SloveniaVodExportFormProps) {
|
|
197
|
+
const t = useMemo(
|
|
198
|
+
() => createTranslation({ t: translateFn, namespace, locale, translationLocale, translations }),
|
|
199
|
+
[locale, namespace, translateFn, translationLocale],
|
|
200
|
+
);
|
|
201
|
+
const defaultDateRange = getPreviousMonthRange();
|
|
202
|
+
const [dateFrom, setDateFrom] = useState(defaultDateRange.from);
|
|
203
|
+
const [dateTo, setDateTo] = useState(defaultDateRange.to);
|
|
204
|
+
const [preferredFormat, setPreferredFormat] = useState<SloveniaAccountingExportFormat>("vod_xml");
|
|
205
|
+
const [kontoMappings, setKontoMappings] = useState<SloveniaAccountingKontoMappings>(
|
|
206
|
+
DEFAULT_SLOVENIA_ACCOUNTING_KONTO_MAPPINGS,
|
|
207
|
+
);
|
|
208
|
+
const [supportedExports, setSupportedExports] = useState(createDefaultProfile().supported_exports);
|
|
209
|
+
const [isLoadingProfile, setIsLoadingProfile] = useState(true);
|
|
210
|
+
const [isSavingProfile, setIsSavingProfile] = useState(false);
|
|
211
|
+
const [isExporting, setIsExporting] = useState(false);
|
|
212
|
+
const [isMappingsOpen, setIsMappingsOpen] = useState(false);
|
|
213
|
+
|
|
214
|
+
useEffect(() => {
|
|
215
|
+
let isMounted = true;
|
|
216
|
+
|
|
217
|
+
const loadProfile = async () => {
|
|
218
|
+
setIsLoadingProfile(true);
|
|
219
|
+
|
|
220
|
+
try {
|
|
221
|
+
const profile = await taxReports.getSloveniaTaxProfile({ entity_id: entityId });
|
|
222
|
+
if (!isMounted) return;
|
|
223
|
+
|
|
224
|
+
const normalizedProfile = normalizeProfile(profile);
|
|
225
|
+
setPreferredFormat(normalizedProfile.accounting_exports.preferred_format);
|
|
226
|
+
setKontoMappings(normalizedProfile.accounting_exports.konto_mappings);
|
|
227
|
+
setSupportedExports(normalizedProfile.supported_exports);
|
|
228
|
+
} catch (error) {
|
|
229
|
+
onError?.(error instanceof Error ? error : new Error(t("slovenia-vod.load-error")));
|
|
230
|
+
} finally {
|
|
231
|
+
if (isMounted) {
|
|
232
|
+
setIsLoadingProfile(false);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
void loadProfile();
|
|
238
|
+
|
|
239
|
+
return () => {
|
|
240
|
+
isMounted = false;
|
|
241
|
+
};
|
|
242
|
+
}, [entityId, onError, t]);
|
|
243
|
+
|
|
244
|
+
const dateRangeInvalid = !!dateFrom && !!dateTo && dateFrom > dateTo;
|
|
245
|
+
|
|
246
|
+
const persistProfile = async () => {
|
|
247
|
+
setIsSavingProfile(true);
|
|
248
|
+
|
|
249
|
+
try {
|
|
250
|
+
const profile = await taxReports.updateSloveniaTaxProfile(
|
|
251
|
+
{
|
|
252
|
+
accounting_exports: {
|
|
253
|
+
preferred_format: preferredFormat,
|
|
254
|
+
konto_mappings: kontoMappings,
|
|
255
|
+
},
|
|
256
|
+
},
|
|
257
|
+
{ entity_id: entityId },
|
|
258
|
+
);
|
|
259
|
+
|
|
260
|
+
const normalizedProfile = normalizeProfile(profile);
|
|
261
|
+
setPreferredFormat(normalizedProfile.accounting_exports.preferred_format);
|
|
262
|
+
setKontoMappings(normalizedProfile.accounting_exports.konto_mappings);
|
|
263
|
+
setSupportedExports(normalizedProfile.supported_exports);
|
|
264
|
+
|
|
265
|
+
return normalizedProfile;
|
|
266
|
+
} catch (error) {
|
|
267
|
+
throw error instanceof Error ? error : new Error(t("slovenia-vod.save-error"));
|
|
268
|
+
} finally {
|
|
269
|
+
setIsSavingProfile(false);
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
const handleSave = async () => {
|
|
274
|
+
try {
|
|
275
|
+
await persistProfile();
|
|
276
|
+
} catch (error) {
|
|
277
|
+
onError?.(error instanceof Error ? error : new Error(t("slovenia-vod.save-error")));
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
const handleExport = async () => {
|
|
282
|
+
if (dateRangeInvalid) {
|
|
283
|
+
onError?.(new Error(t("slovenia-vod.date-range-error")));
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
setIsExporting(true);
|
|
288
|
+
|
|
289
|
+
try {
|
|
290
|
+
const profile = await persistProfile();
|
|
291
|
+
|
|
292
|
+
if (!profile.supported_exports.vod_xml) {
|
|
293
|
+
throw new Error(t("slovenia-vod.unsupported"));
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
const blob = await taxReports.exportSloveniaVodXml(
|
|
297
|
+
{
|
|
298
|
+
date_from: dateFrom,
|
|
299
|
+
date_to: dateTo,
|
|
300
|
+
},
|
|
301
|
+
{ entity_id: entityId },
|
|
302
|
+
);
|
|
303
|
+
|
|
304
|
+
const fileName = getVodDownloadFileName(dateFrom, dateTo);
|
|
305
|
+
const downloadUrl = window.URL.createObjectURL(blob);
|
|
306
|
+
const link = document.createElement("a");
|
|
307
|
+
link.href = downloadUrl;
|
|
308
|
+
link.download = fileName;
|
|
309
|
+
document.body.appendChild(link);
|
|
310
|
+
link.click();
|
|
311
|
+
setTimeout(() => {
|
|
312
|
+
document.body.removeChild(link);
|
|
313
|
+
window.URL.revokeObjectURL(downloadUrl);
|
|
314
|
+
}, 1000);
|
|
315
|
+
|
|
316
|
+
onSuccess?.(fileName);
|
|
317
|
+
} catch (error) {
|
|
318
|
+
onError?.(error instanceof Error ? error : new Error(t("slovenia-vod.export-error")));
|
|
319
|
+
} finally {
|
|
320
|
+
setIsExporting(false);
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
|
|
324
|
+
const buttonsDisabled = isSavingProfile || isExporting || isLoadingProfile;
|
|
325
|
+
|
|
326
|
+
return (
|
|
327
|
+
<div className="space-y-6">
|
|
328
|
+
{isLoadingProfile ? (
|
|
329
|
+
<div className="text-muted-foreground text-sm">{t("slovenia-vod.loading")}</div>
|
|
330
|
+
) : (
|
|
331
|
+
<>
|
|
332
|
+
<Alert>
|
|
333
|
+
<AlertTitle>{t("slovenia-vod.notice.title")}</AlertTitle>
|
|
334
|
+
<AlertDescription>{t("slovenia-vod.notice.description")}</AlertDescription>
|
|
335
|
+
</Alert>
|
|
336
|
+
|
|
337
|
+
{!supportedExports.vod_xml ? (
|
|
338
|
+
<Alert>
|
|
339
|
+
<AlertTitle>{t("slovenia-vod.title")}</AlertTitle>
|
|
340
|
+
<AlertDescription>{t("slovenia-vod.unsupported")}</AlertDescription>
|
|
341
|
+
</Alert>
|
|
342
|
+
) : null}
|
|
343
|
+
|
|
344
|
+
<div className="grid gap-4 md:grid-cols-3">
|
|
345
|
+
<div className="space-y-2 md:col-span-1">
|
|
346
|
+
<Label htmlFor="slovenia-vod-format">{t("slovenia-vod.format.label")}</Label>
|
|
347
|
+
<Select
|
|
348
|
+
value={preferredFormat}
|
|
349
|
+
onValueChange={(value) => setPreferredFormat(value as SloveniaAccountingExportFormat)}
|
|
350
|
+
>
|
|
351
|
+
<SelectTrigger id="slovenia-vod-format">
|
|
352
|
+
<SelectValue placeholder={t("slovenia-vod.format.placeholder")} />
|
|
353
|
+
</SelectTrigger>
|
|
354
|
+
<SelectContent>
|
|
355
|
+
<SelectItem value="vod_xml">{t("slovenia-vod.format.vod_xml")}</SelectItem>
|
|
356
|
+
<SelectItem value="vasco_xml" disabled>
|
|
357
|
+
{t("slovenia-vod.format.vasco_xml")}
|
|
358
|
+
</SelectItem>
|
|
359
|
+
<SelectItem value="minimax_xml" disabled>
|
|
360
|
+
{t("slovenia-vod.format.minimax_xml")}
|
|
361
|
+
</SelectItem>
|
|
362
|
+
</SelectContent>
|
|
363
|
+
</Select>
|
|
364
|
+
</div>
|
|
365
|
+
|
|
366
|
+
<div className="space-y-2">
|
|
367
|
+
<Label htmlFor="slovenia-vod-date-from">{t("slovenia-vod.date-from")}</Label>
|
|
368
|
+
<Input
|
|
369
|
+
id="slovenia-vod-date-from"
|
|
370
|
+
type="date"
|
|
371
|
+
value={dateFrom}
|
|
372
|
+
onChange={(event) => setDateFrom(event.target.value)}
|
|
373
|
+
/>
|
|
374
|
+
</div>
|
|
375
|
+
|
|
376
|
+
<div className="space-y-2">
|
|
377
|
+
<Label htmlFor="slovenia-vod-date-to">{t("slovenia-vod.date-to")}</Label>
|
|
378
|
+
<Input
|
|
379
|
+
id="slovenia-vod-date-to"
|
|
380
|
+
type="date"
|
|
381
|
+
value={dateTo}
|
|
382
|
+
onChange={(event) => setDateTo(event.target.value)}
|
|
383
|
+
/>
|
|
384
|
+
</div>
|
|
385
|
+
</div>
|
|
386
|
+
|
|
387
|
+
{dateRangeInvalid ? <p className="text-destructive text-sm">{t("slovenia-vod.date-range-error")}</p> : null}
|
|
388
|
+
|
|
389
|
+
<div className="flex flex-wrap gap-3">
|
|
390
|
+
<Button
|
|
391
|
+
type="button"
|
|
392
|
+
onClick={handleExport}
|
|
393
|
+
disabled={buttonsDisabled || dateRangeInvalid || !supportedExports.vod_xml}
|
|
394
|
+
>
|
|
395
|
+
{isExporting ? (
|
|
396
|
+
<>
|
|
397
|
+
<Loader2 className="mr-2 h-4 w-4 animate-spin" />
|
|
398
|
+
{t("slovenia-vod.exporting")}
|
|
399
|
+
</>
|
|
400
|
+
) : (
|
|
401
|
+
<>
|
|
402
|
+
<Download className="mr-2 h-4 w-4" />
|
|
403
|
+
{t("slovenia-vod.export")}
|
|
404
|
+
</>
|
|
405
|
+
)}
|
|
406
|
+
</Button>
|
|
407
|
+
</div>
|
|
408
|
+
|
|
409
|
+
<Collapsible open={isMappingsOpen} onOpenChange={setIsMappingsOpen} className="space-y-3">
|
|
410
|
+
<CollapsibleTrigger className="flex w-full items-center justify-between rounded-lg border p-4 text-left transition-colors hover:bg-muted/50">
|
|
411
|
+
<div>
|
|
412
|
+
<div className="font-medium">{t("slovenia-vod.mappings.title")}</div>
|
|
413
|
+
<div className="text-muted-foreground text-sm">{t("slovenia-vod.mappings.description")}</div>
|
|
414
|
+
</div>
|
|
415
|
+
<ChevronDown
|
|
416
|
+
className={`h-5 w-5 text-muted-foreground transition-transform ${isMappingsOpen ? "rotate-180" : ""}`}
|
|
417
|
+
/>
|
|
418
|
+
</CollapsibleTrigger>
|
|
419
|
+
<CollapsibleContent className="space-y-4">
|
|
420
|
+
<Alert>
|
|
421
|
+
<AlertTitle>{t("slovenia-vod.purchase-note.title")}</AlertTitle>
|
|
422
|
+
<AlertDescription>{t("slovenia-vod.purchase-note.description")}</AlertDescription>
|
|
423
|
+
</Alert>
|
|
424
|
+
|
|
425
|
+
<SloveniaAccountingMappingsFields
|
|
426
|
+
value={kontoMappings}
|
|
427
|
+
onChange={setKontoMappings}
|
|
428
|
+
disabled={isSavingProfile}
|
|
429
|
+
/>
|
|
430
|
+
|
|
431
|
+
<div className="flex flex-wrap gap-3">
|
|
432
|
+
<Button type="button" variant="outline" onClick={handleSave} disabled={buttonsDisabled}>
|
|
433
|
+
{isSavingProfile && !isExporting ? (
|
|
434
|
+
<>
|
|
435
|
+
<Loader2 className="mr-2 h-4 w-4 animate-spin" />
|
|
436
|
+
{t("slovenia-vod.saving")}
|
|
437
|
+
</>
|
|
438
|
+
) : (
|
|
439
|
+
<>
|
|
440
|
+
<Save className="mr-2 h-4 w-4" />
|
|
441
|
+
{t("slovenia-vod.save")}
|
|
442
|
+
</>
|
|
443
|
+
)}
|
|
444
|
+
</Button>
|
|
445
|
+
</div>
|
|
446
|
+
</CollapsibleContent>
|
|
447
|
+
</Collapsible>
|
|
448
|
+
</>
|
|
449
|
+
)}
|
|
450
|
+
</div>
|
|
451
|
+
);
|
|
452
|
+
}
|
|
@@ -1,24 +1,22 @@
|
|
|
1
|
+
import { taxReports } from "@spaceinvoices/js-sdk";
|
|
1
2
|
import { Download, Loader2, RefreshCcw, Save } from "lucide-react";
|
|
2
|
-
import { useEffect, useState } from "react";
|
|
3
|
-
import type SDK from "@spaceinvoices/js-sdk";
|
|
3
|
+
import { useEffect, useMemo, useState } from "react";
|
|
4
4
|
import type { ComponentTranslationProps } from "@/ui/lib/translation";
|
|
5
5
|
import { createTranslation } from "@/ui/lib/translation";
|
|
6
|
-
import { SloveniaTaxProfileStep, type SloveniaTaxProfileFormState } from "./slovenia-tax-profile-step";
|
|
7
|
-
import { SloveniaYearlyReviewStep } from "./slovenia-yearly-review-step";
|
|
8
6
|
import { Button } from "../ui/button";
|
|
7
|
+
import { type SloveniaTaxProfileFormState, SloveniaTaxProfileStep } from "./slovenia-tax-profile-step";
|
|
8
|
+
import { SloveniaYearlyReviewStep } from "./slovenia-yearly-review-step";
|
|
9
9
|
|
|
10
10
|
type SloveniaYearlyExportFormProps = {
|
|
11
|
-
sdk: SDK;
|
|
12
11
|
entityId: string;
|
|
13
12
|
onSuccess?: (fileName: string) => void;
|
|
14
13
|
onError?: (error: Error) => void;
|
|
15
14
|
} & ComponentTranslationProps;
|
|
16
15
|
|
|
17
|
-
type
|
|
18
|
-
type
|
|
19
|
-
type DraftResponse = Awaited<ReturnType<TaxReportsApi["reviewSloveniaYearlyNormiraniReport"]>>;
|
|
16
|
+
type ProfileResponse = Awaited<ReturnType<typeof taxReports.getSloveniaTaxProfile>>;
|
|
17
|
+
type DraftResponse = Awaited<ReturnType<typeof taxReports.reviewSloveniaYearlyNormiraniReport>>;
|
|
20
18
|
type ManualValues = DraftResponse["manual_values"];
|
|
21
|
-
type UpdateProfileBody = Parameters<
|
|
19
|
+
type UpdateProfileBody = Parameters<typeof taxReports.updateSloveniaTaxProfile>[0];
|
|
22
20
|
|
|
23
21
|
const translations = {
|
|
24
22
|
en: {
|
|
@@ -291,15 +289,18 @@ function profileToForm(profile: ProfileResponse): SloveniaTaxProfileFormState {
|
|
|
291
289
|
}
|
|
292
290
|
|
|
293
291
|
export function SloveniaYearlyExportForm({
|
|
294
|
-
sdk,
|
|
295
292
|
entityId,
|
|
296
293
|
t: translateFn,
|
|
297
294
|
namespace,
|
|
298
295
|
locale,
|
|
296
|
+
translationLocale,
|
|
299
297
|
onSuccess,
|
|
300
298
|
onError,
|
|
301
299
|
}: SloveniaYearlyExportFormProps) {
|
|
302
|
-
const t =
|
|
300
|
+
const t = useMemo(
|
|
301
|
+
() => createTranslation({ t: translateFn, namespace, locale, translationLocale, translations }),
|
|
302
|
+
[locale, namespace, translateFn, translationLocale],
|
|
303
|
+
);
|
|
303
304
|
const [year, setYear] = useState(getDefaultYear);
|
|
304
305
|
const [profileForm, setProfileForm] = useState<SloveniaTaxProfileFormState>(createDefaultProfileForm);
|
|
305
306
|
const [draft, setDraft] = useState<DraftResponse | null>(null);
|
|
@@ -322,7 +323,7 @@ export function SloveniaYearlyExportForm({
|
|
|
322
323
|
setIsLoadingProfile(true);
|
|
323
324
|
|
|
324
325
|
try {
|
|
325
|
-
const profile = await
|
|
326
|
+
const profile = await taxReports.getSloveniaTaxProfile({
|
|
326
327
|
entity_id: entityId,
|
|
327
328
|
});
|
|
328
329
|
|
|
@@ -342,7 +343,7 @@ export function SloveniaYearlyExportForm({
|
|
|
342
343
|
return () => {
|
|
343
344
|
isMounted = false;
|
|
344
345
|
};
|
|
345
|
-
}, [entityId, onError,
|
|
346
|
+
}, [entityId, onError, t]);
|
|
346
347
|
|
|
347
348
|
const unsupportedReasonKey = getUnsupportedReasonKey(profileForm);
|
|
348
349
|
const unsupportedReason = unsupportedReasonKey ? t(unsupportedReasonKey) : null;
|
|
@@ -364,7 +365,7 @@ export function SloveniaYearlyExportForm({
|
|
|
364
365
|
},
|
|
365
366
|
};
|
|
366
367
|
|
|
367
|
-
const profile = await
|
|
368
|
+
const profile = await taxReports.updateSloveniaTaxProfile(payload, {
|
|
368
369
|
entity_id: entityId,
|
|
369
370
|
});
|
|
370
371
|
|
|
@@ -387,7 +388,7 @@ export function SloveniaYearlyExportForm({
|
|
|
387
388
|
}
|
|
388
389
|
|
|
389
390
|
setIsReviewing(true);
|
|
390
|
-
const response = await
|
|
391
|
+
const response = await taxReports.reviewSloveniaYearlyNormiraniReport(
|
|
391
392
|
{
|
|
392
393
|
year,
|
|
393
394
|
},
|
|
@@ -407,7 +408,7 @@ export function SloveniaYearlyExportForm({
|
|
|
407
408
|
setIsExporting(true);
|
|
408
409
|
|
|
409
410
|
try {
|
|
410
|
-
const blob = await
|
|
411
|
+
const blob = await taxReports.exportSloveniaYearlyNormiraniReport(
|
|
411
412
|
{
|
|
412
413
|
year,
|
|
413
414
|
manual_values: manualValues,
|