@spaceinvoices/react-ui 0.4.1 → 0.4.3
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/cli/dist/index.js +1 -1
- package/package.json +1 -1
- package/registry.json +25 -0
- package/src/components/advance-invoices/advance-invoices.hooks.ts +32 -2
- package/src/components/advance-invoices/create/create-advance-invoice-form.tsx +109 -4
- package/src/components/advance-invoices/create/locales/de.ts +2 -0
- package/src/components/advance-invoices/create/locales/es.ts +2 -0
- package/src/components/advance-invoices/create/locales/fr.ts +2 -0
- package/src/components/advance-invoices/create/locales/hr.ts +2 -0
- package/src/components/advance-invoices/create/locales/it.ts +2 -0
- package/src/components/advance-invoices/create/locales/nl.ts +2 -0
- package/src/components/advance-invoices/create/locales/pl.ts +2 -0
- package/src/components/advance-invoices/create/locales/pt.ts +2 -0
- package/src/components/advance-invoices/create/locales/sl.ts +2 -0
- package/src/components/advance-invoices/create/prepare-advance-invoice-submission.ts +17 -0
- package/src/components/advance-invoices/list/list-row-actions.tsx +3 -6
- package/src/components/advance-invoices/list/list-table.tsx +105 -2
- package/src/components/advance-invoices/list/locales/de.ts +4 -0
- package/src/components/advance-invoices/list/locales/en.ts +4 -0
- package/src/components/advance-invoices/list/locales/es.ts +4 -0
- package/src/components/advance-invoices/list/locales/fr.ts +4 -0
- package/src/components/advance-invoices/list/locales/hr.ts +4 -0
- package/src/components/advance-invoices/list/locales/it.ts +4 -0
- package/src/components/advance-invoices/list/locales/nl.ts +4 -0
- package/src/components/advance-invoices/list/locales/pl.ts +4 -0
- package/src/components/advance-invoices/list/locales/pt.ts +4 -0
- package/src/components/advance-invoices/list/locales/sl.ts +4 -0
- package/src/components/credit-notes/create/create-credit-note-form.tsx +177 -6
- package/src/components/credit-notes/create/locales/de.ts +8 -0
- package/src/components/credit-notes/create/locales/es.ts +8 -0
- package/src/components/credit-notes/create/locales/fr.ts +7 -0
- package/src/components/credit-notes/create/locales/hr.ts +7 -0
- package/src/components/credit-notes/create/locales/it.ts +9 -0
- package/src/components/credit-notes/create/locales/nl.ts +7 -0
- package/src/components/credit-notes/create/locales/pl.ts +7 -0
- package/src/components/credit-notes/create/locales/pt.ts +7 -0
- package/src/components/credit-notes/create/locales/sl.ts +7 -0
- package/src/components/credit-notes/credit-notes.hooks.ts +30 -0
- package/src/components/credit-notes/list/list-row-actions.tsx +3 -6
- package/src/components/credit-notes/list/list-table.tsx +79 -8
- package/src/components/credit-notes/list/locales/de.ts +4 -1
- package/src/components/credit-notes/list/locales/en.ts +5 -0
- package/src/components/credit-notes/list/locales/es.ts +4 -1
- package/src/components/credit-notes/list/locales/fr.ts +4 -1
- package/src/components/credit-notes/list/locales/hr.ts +4 -1
- package/src/components/credit-notes/list/locales/it.ts +4 -1
- package/src/components/credit-notes/list/locales/nl.ts +4 -1
- package/src/components/credit-notes/list/locales/pl.ts +4 -1
- package/src/components/credit-notes/list/locales/pt.ts +4 -1
- package/src/components/credit-notes/list/locales/sl.ts +4 -1
- package/src/components/customers/create-customer-form/create-customer-form.tsx +0 -1
- package/src/components/dashboard/collection-rate-card/use-collection-rate.ts +2 -2
- package/src/components/dashboard/invoice-status-chart/use-invoice-status.ts +3 -3
- package/src/components/dashboard/payment-methods-chart/use-payment-methods.ts +1 -1
- package/src/components/dashboard/payment-trend-chart/use-payment-trend.ts +1 -1
- package/src/components/dashboard/revenue-trend-chart/use-revenue-trend.ts +1 -1
- package/src/components/dashboard/shared/use-revenue-data.ts +4 -4
- package/src/components/dashboard/shared/use-stats-counts.ts +4 -4
- package/src/components/dashboard/shared/use-stats-query.ts +1 -1
- package/src/components/dashboard/tax-collected-card/use-tax-collected.ts +2 -2
- package/src/components/dashboard/top-customers-chart/use-top-customers.ts +1 -1
- package/src/components/delivery-notes/create/create-delivery-note-form.tsx +332 -0
- package/src/components/delivery-notes/create/locales/de.ts +50 -0
- package/src/components/delivery-notes/create/locales/es.ts +49 -0
- package/src/components/delivery-notes/create/locales/fr.ts +50 -0
- package/src/components/delivery-notes/create/locales/hr.ts +49 -0
- package/src/components/delivery-notes/create/locales/it.ts +49 -0
- package/src/components/delivery-notes/create/locales/nl.ts +50 -0
- package/src/components/delivery-notes/create/locales/pl.ts +49 -0
- package/src/components/delivery-notes/create/locales/pt.ts +50 -0
- package/src/components/delivery-notes/create/locales/sl.ts +49 -0
- package/src/components/delivery-notes/create/prepare-delivery-note-submission.ts +38 -0
- package/src/components/delivery-notes/create/use-delivery-note-customer-form.ts +1 -0
- package/src/components/delivery-notes/delivery-notes.hooks.ts +15 -0
- package/src/components/delivery-notes/list/index.ts +3 -0
- package/src/components/delivery-notes/list/list-row-actions.tsx +103 -0
- package/src/components/delivery-notes/list/list-table.tsx +214 -0
- package/src/components/delivery-notes/list/locales/de.ts +9 -0
- package/src/components/delivery-notes/list/locales/en.ts +11 -0
- package/src/components/delivery-notes/list/locales/es.ts +9 -0
- package/src/components/delivery-notes/list/locales/fr.ts +9 -0
- package/src/components/delivery-notes/list/locales/hr.ts +9 -0
- package/src/components/delivery-notes/list/locales/it.ts +9 -0
- package/src/components/delivery-notes/list/locales/nl.ts +9 -0
- package/src/components/delivery-notes/list/locales/pl.ts +9 -0
- package/src/components/delivery-notes/list/locales/pt.ts +9 -0
- package/src/components/delivery-notes/list/locales/sl.ts +9 -0
- package/src/components/delivery-notes/list/use-delivery-note-download.ts +63 -0
- package/src/components/documents/create/document-details-section.tsx +103 -33
- package/src/components/documents/create/live-preview.tsx +37 -10
- package/src/components/documents/create/mark-as-paid-section.tsx +11 -2
- package/src/components/documents/create/prepare-document-submission.ts +1 -1
- package/src/components/documents/documents.hooks.ts +2 -1
- package/src/components/documents/shared/document-preview-display.tsx +12 -5
- package/src/components/documents/types.ts +10 -1
- package/src/components/documents/view/document-actions-bar.tsx +30 -0
- package/src/components/documents/view/document-details-card.tsx +3 -3
- package/src/components/documents/view/document-payments-list.tsx +3 -3
- package/src/components/documents/view/document-relations-list.tsx +105 -0
- package/src/components/documents/view/locales/de.ts +26 -0
- package/src/components/documents/view/locales/es.ts +26 -0
- package/src/components/documents/view/locales/fr.ts +26 -0
- package/src/components/documents/view/locales/hr.ts +26 -0
- package/src/components/documents/view/locales/it.ts +26 -0
- package/src/components/documents/view/locales/nl.ts +26 -0
- package/src/components/documents/view/locales/pl.ts +26 -0
- package/src/components/documents/view/locales/pt.ts +26 -0
- package/src/components/documents/view/locales/sl.ts +26 -0
- package/src/components/documents/view/use-document-download.ts +5 -3
- package/src/components/entities/create-entity-form.tsx +1 -1
- package/src/components/entities/entity-settings-form/entity-settings-form.tsx +2 -3
- package/src/components/entities/entity-settings-form/locales/es.ts +2 -0
- package/src/components/entities/entity-settings-form/locales/fr.ts +2 -0
- package/src/components/entities/entity-settings-form/locales/hr.ts +2 -0
- package/src/components/entities/entity-settings-form/locales/it.ts +2 -0
- package/src/components/entities/entity-settings-form/locales/nl.ts +2 -0
- package/src/components/entities/entity-settings-form/locales/pl.ts +2 -0
- package/src/components/entities/entity-settings-form/locales/pt.ts +2 -0
- package/src/components/entities/fina-settings-form/fina-operator-required-dialog.tsx +109 -0
- package/src/components/entities/fina-settings-form/fina-settings-form.tsx +377 -35
- package/src/components/entities/fina-settings-form/fina-settings.hooks.ts +106 -20
- package/src/components/entities/fina-settings-form/index.ts +1 -0
- package/src/components/entities/fina-settings-form/locales/de.ts +54 -34
- package/src/components/entities/fina-settings-form/locales/en.ts +51 -34
- package/src/components/entities/fina-settings-form/locales/es.ts +50 -34
- package/src/components/entities/fina-settings-form/locales/fr.ts +50 -34
- package/src/components/entities/fina-settings-form/locales/hr.ts +50 -34
- package/src/components/entities/fina-settings-form/locales/it.ts +50 -34
- package/src/components/entities/fina-settings-form/locales/nl.ts +50 -34
- package/src/components/entities/fina-settings-form/locales/pl.ts +50 -34
- package/src/components/entities/fina-settings-form/locales/pt.ts +50 -34
- package/src/components/entities/fina-settings-form/locales/sl.ts +50 -34
- package/src/components/entities/fina-settings-form/sections/certificate-settings-section.tsx +18 -0
- package/src/components/entities/fina-settings-form/sections/premises-management-section.tsx +64 -89
- package/src/components/entities/fina-settings-form/sections/register-premise-dialog.tsx +51 -323
- package/src/components/entities/furs-settings-form/furs-operator-required-dialog.tsx +106 -0
- package/src/components/entities/furs-settings-form/furs-settings-form.tsx +33 -10
- package/src/components/entities/furs-settings-form/furs-settings.hooks.ts +12 -11
- package/src/components/entities/furs-settings-form/index.ts +1 -0
- package/src/components/entities/furs-settings-form/locales/de.ts +27 -3
- package/src/components/entities/furs-settings-form/locales/en.ts +17 -3
- package/src/components/entities/furs-settings-form/locales/es.ts +26 -3
- package/src/components/entities/furs-settings-form/locales/fr.ts +26 -3
- package/src/components/entities/furs-settings-form/locales/hr.ts +26 -3
- package/src/components/entities/furs-settings-form/locales/it.ts +26 -3
- package/src/components/entities/furs-settings-form/locales/nl.ts +26 -3
- package/src/components/entities/furs-settings-form/locales/pl.ts +26 -3
- package/src/components/entities/furs-settings-form/locales/pt.ts +26 -3
- package/src/components/entities/furs-settings-form/locales/sl.ts +16 -3
- package/src/components/entities/furs-settings-form/sections/certificate-settings-section.tsx +22 -0
- package/src/components/entities/furs-settings-form/sections/general-settings-section.tsx +26 -5
- package/src/components/entities/furs-settings-form/sections/register-premise-dialog.tsx +14 -2
- package/src/components/entities/settings/tax-rules-settings-form.tsx +4 -4
- package/src/components/estimates/list/list-row-actions.tsx +3 -7
- package/src/components/estimates/list/list-table.tsx +35 -2
- package/src/components/estimates/list/locales/de.ts +3 -0
- package/src/components/estimates/list/locales/en.ts +3 -0
- package/src/components/estimates/list/locales/es.ts +3 -0
- package/src/components/estimates/list/locales/fr.ts +3 -0
- package/src/components/estimates/list/locales/hr.ts +3 -0
- package/src/components/estimates/list/locales/it.ts +3 -0
- package/src/components/estimates/list/locales/nl.ts +3 -0
- package/src/components/estimates/list/locales/pl.ts +3 -0
- package/src/components/estimates/list/locales/pt.ts +3 -0
- package/src/components/estimates/list/locales/sl.ts +3 -0
- package/src/components/export/document-export-form.tsx +34 -34
- package/src/components/invoices/create/create-invoice-form.tsx +107 -5
- package/src/components/invoices/create/prepare-invoice-submission.ts +17 -0
- package/src/components/invoices/invoices-furs.hooks.ts +24 -9
- package/src/components/invoices/invoices.hooks.ts +32 -2
- package/src/components/invoices/list/list-row-actions.tsx +26 -11
- package/src/components/invoices/list/list-table.tsx +121 -5
- package/src/components/invoices/list/locales/de.ts +5 -0
- package/src/components/invoices/list/locales/en.ts +5 -0
- package/src/components/invoices/list/locales/es.ts +5 -0
- package/src/components/invoices/list/locales/fr.ts +5 -0
- package/src/components/invoices/list/locales/hr.ts +5 -0
- package/src/components/invoices/list/locales/it.ts +5 -0
- package/src/components/invoices/list/locales/nl.ts +5 -0
- package/src/components/invoices/list/locales/pl.ts +5 -0
- package/src/components/invoices/list/locales/pt.ts +5 -0
- package/src/components/invoices/list/locales/sl.ts +5 -0
- package/src/components/invoices/view/fiscalization-status-card.tsx +4 -1
- package/src/components/items/item-list-table/item-list-row-actions.tsx +5 -8
- package/src/components/items/item-list-table/item-list-row.tsx +5 -3
- package/src/components/items/item-list-table/item-list-table.tsx +5 -1
- package/src/components/recurring-invoices/create-recurring-invoice-form/create-recurring-invoice-form.tsx +418 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/de.ts +45 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/es.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/fr.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/hr.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/it.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/nl.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/pl.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/pt.ts +44 -0
- package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sl.ts +44 -0
- package/src/components/recurring-invoices/index.ts +3 -0
- package/src/components/recurring-invoices/list/index.ts +2 -0
- package/src/components/recurring-invoices/list/list-row-actions.tsx +139 -0
- package/src/components/recurring-invoices/list/list-table.tsx +179 -0
- package/src/components/recurring-invoices/list/locales/de.ts +27 -0
- package/src/components/recurring-invoices/list/locales/en.ts +5 -0
- package/src/components/recurring-invoices/list/locales/es.ts +27 -0
- package/src/components/recurring-invoices/list/locales/fr.ts +27 -0
- package/src/components/recurring-invoices/list/locales/hr.ts +27 -0
- package/src/components/recurring-invoices/list/locales/it.ts +27 -0
- package/src/components/recurring-invoices/list/locales/nl.ts +27 -0
- package/src/components/recurring-invoices/list/locales/pl.ts +27 -0
- package/src/components/recurring-invoices/list/locales/pt.ts +27 -0
- package/src/components/recurring-invoices/list/locales/sl.ts +27 -0
- package/src/components/recurring-invoices/recurring-invoices.hooks.ts +28 -0
- package/src/components/table/data-table.tsx +122 -5
- package/src/components/table/selection-toolbar.tsx +36 -0
- package/src/components/tax-reports/kir-export-form.tsx +75 -55
- package/src/components/taxes/tax-list-table/tax-list-row-actions.tsx +3 -6
- package/src/components/taxes/tax-list-table/tax-list-row.tsx +3 -2
- package/src/components/taxes/tax-list-table/tax-list-table.tsx +5 -1
- package/src/components/ui/checkbox.tsx +5 -5
- package/src/generate-schemas.ts +45 -18
- package/src/generated/schemas/authorizeshopify_body.ts +22 -0
- package/src/generated/schemas/creditnote.ts +0 -2
- package/src/generated/schemas/deliverynote.ts +134 -0
- package/src/generated/schemas/entity.ts +5 -1
- package/src/generated/schemas/index.ts +42 -28
- package/src/generated/schemas/order.ts +129 -0
- package/src/generated/schemas/orderintegration.ts +51 -0
- package/src/generated/schemas/payment.ts +24 -2
- package/src/generated/schemas/recurringinvoice.ts +61 -0
- package/src/generated/schemas/renderadvanceinvoicepreview_body.ts +108 -140
- package/src/generated/schemas/rendercreditnotepreview_body.ts +109 -141
- package/src/generated/schemas/renderdeliverynotepreview_body.ts +185 -0
- package/src/generated/schemas/renderestimatepreview_body.ts +79 -82
- package/src/generated/schemas/renderinvoicepreview_body.ts +109 -141
- package/src/generated/schemas/startpdfexport_body.ts +18 -2
- package/src/generated/schemas/userfinasettings.ts +19 -0
- package/src/generated/schemas/webhook.ts +54 -0
- package/src/hooks/use-duplicate-document.ts +11 -3
- package/src/hooks/use-next-document-number.ts +2 -2
- package/src/lib/furs-error-utils.ts +36 -0
- package/src/lib/schemas/advance-invoice.ts +3 -3
- package/src/lib/schemas/credit-note.ts +3 -3
- package/src/lib/schemas/estimate.ts +3 -3
- package/src/lib/schemas/invoice.ts +3 -3
- package/src/providers/sdk-provider.tsx +5 -7
- package/src/providers/white-label-provider.tsx +3 -0
|
@@ -14,6 +14,7 @@ export default {
|
|
|
14
14
|
"Unshare failed": "Freigabe aufheben fehlgeschlagen",
|
|
15
15
|
"Download failed": "Download fehlgeschlagen",
|
|
16
16
|
"e-SLOG download failed": "e-SLOG Download fehlgeschlagen",
|
|
17
|
+
Recurring: "Wiederkehrend",
|
|
17
18
|
Duplicate: "Duplizieren",
|
|
18
19
|
"Duplicate invoice": "Rechnung duplizieren",
|
|
19
20
|
"Duplicate estimate": "Angebot duplizieren",
|
|
@@ -83,6 +84,10 @@ export default {
|
|
|
83
84
|
"Delete draft failed": "Entwurf löschen fehlgeschlagen",
|
|
84
85
|
Draft: "Entwurf",
|
|
85
86
|
|
|
87
|
+
// Void
|
|
88
|
+
Void: "Stornieren",
|
|
89
|
+
"Voiding...": "Stornierung...",
|
|
90
|
+
|
|
86
91
|
// Activity list
|
|
87
92
|
Activity: "Aktivität",
|
|
88
93
|
"No activity": "Keine Aktivität",
|
|
@@ -114,4 +119,25 @@ export default {
|
|
|
114
119
|
Dutch: "Niederländisch",
|
|
115
120
|
Polish: "Polnisch",
|
|
116
121
|
Croatian: "Kroatisch",
|
|
122
|
+
|
|
123
|
+
// Linked documents
|
|
124
|
+
"Linked documents": "Verknüpfte Dokumente",
|
|
125
|
+
"No linked documents": "Keine verknüpften Dokumente",
|
|
126
|
+
Invoice: "Rechnung",
|
|
127
|
+
Estimate: "Angebot",
|
|
128
|
+
"Credit note": "Gutschrift",
|
|
129
|
+
"Advance invoice": "Anzahlungsrechnung",
|
|
130
|
+
"Delivery note": "Lieferschein",
|
|
131
|
+
"Credit for": "Gutschrift für",
|
|
132
|
+
"Converted from": "Konvertiert von",
|
|
133
|
+
"Converted to": "Konvertiert zu",
|
|
134
|
+
"Has credit": "Hat Gutschrift",
|
|
135
|
+
"Advance applied": "Anzahlung angewendet",
|
|
136
|
+
"Applied to": "Angewendet auf",
|
|
137
|
+
"Delivered for": "Geliefert für",
|
|
138
|
+
"Has delivery": "Hat Lieferschein",
|
|
139
|
+
Fulfills: "Erfüllt",
|
|
140
|
+
"Fulfilled by": "Erfüllt durch",
|
|
141
|
+
References: "Verweist auf",
|
|
142
|
+
View: "Ansehen",
|
|
117
143
|
} as const;
|
|
@@ -13,6 +13,7 @@ export default {
|
|
|
13
13
|
"Unshare failed": "Error al dejar de compartir",
|
|
14
14
|
"Download failed": "Error en la descarga",
|
|
15
15
|
"e-SLOG download failed": "Error en la descarga e-SLOG",
|
|
16
|
+
Recurring: "Recurrente",
|
|
16
17
|
Duplicate: "Duplicar",
|
|
17
18
|
"Duplicate invoice": "Duplicar factura",
|
|
18
19
|
"Duplicate estimate": "Duplicar presupuesto",
|
|
@@ -81,6 +82,10 @@ export default {
|
|
|
81
82
|
"Delete draft failed": "Error al eliminar el borrador",
|
|
82
83
|
Draft: "Borrador",
|
|
83
84
|
|
|
85
|
+
// Void
|
|
86
|
+
Void: "Anular",
|
|
87
|
+
"Voiding...": "Anulando...",
|
|
88
|
+
|
|
84
89
|
// Activity list
|
|
85
90
|
Activity: "Actividad",
|
|
86
91
|
"No activity": "Sin actividad",
|
|
@@ -112,4 +117,25 @@ export default {
|
|
|
112
117
|
Dutch: "Neerlandés",
|
|
113
118
|
Polish: "Polaco",
|
|
114
119
|
Croatian: "Croata",
|
|
120
|
+
|
|
121
|
+
// Linked documents
|
|
122
|
+
"Linked documents": "Documentos vinculados",
|
|
123
|
+
"No linked documents": "Sin documentos vinculados",
|
|
124
|
+
Invoice: "Factura",
|
|
125
|
+
Estimate: "Presupuesto",
|
|
126
|
+
"Credit note": "Nota de crédito",
|
|
127
|
+
"Advance invoice": "Factura anticipada",
|
|
128
|
+
"Delivery note": "Albarán",
|
|
129
|
+
"Credit for": "Crédito para",
|
|
130
|
+
"Converted from": "Convertido desde",
|
|
131
|
+
"Converted to": "Convertido a",
|
|
132
|
+
"Has credit": "Tiene crédito",
|
|
133
|
+
"Advance applied": "Anticipo aplicado",
|
|
134
|
+
"Applied to": "Aplicado a",
|
|
135
|
+
"Delivered for": "Entregado para",
|
|
136
|
+
"Has delivery": "Tiene albarán",
|
|
137
|
+
Fulfills: "Cumple",
|
|
138
|
+
"Fulfilled by": "Cumplido por",
|
|
139
|
+
References: "Referencia",
|
|
140
|
+
View: "Ver",
|
|
115
141
|
} as const;
|
|
@@ -13,6 +13,7 @@ export default {
|
|
|
13
13
|
"Unshare failed": "Échec de l'annulation du partage",
|
|
14
14
|
"Download failed": "Échec du téléchargement",
|
|
15
15
|
"e-SLOG download failed": "Échec du téléchargement e-SLOG",
|
|
16
|
+
Recurring: "Récurrent",
|
|
16
17
|
Duplicate: "Dupliquer",
|
|
17
18
|
"Duplicate invoice": "Dupliquer la facture",
|
|
18
19
|
"Duplicate estimate": "Dupliquer le devis",
|
|
@@ -81,6 +82,10 @@ export default {
|
|
|
81
82
|
"Delete draft failed": "Échec de la suppression du brouillon",
|
|
82
83
|
Draft: "Brouillon",
|
|
83
84
|
|
|
85
|
+
// Void
|
|
86
|
+
Void: "Annuler",
|
|
87
|
+
"Voiding...": "Annulation...",
|
|
88
|
+
|
|
84
89
|
// Activity list
|
|
85
90
|
Activity: "Activité",
|
|
86
91
|
"No activity": "Aucune activité",
|
|
@@ -112,4 +117,25 @@ export default {
|
|
|
112
117
|
Dutch: "Néerlandais",
|
|
113
118
|
Polish: "Polonais",
|
|
114
119
|
Croatian: "Croate",
|
|
120
|
+
|
|
121
|
+
// Linked documents
|
|
122
|
+
"Linked documents": "Documents liés",
|
|
123
|
+
"No linked documents": "Aucun document lié",
|
|
124
|
+
Invoice: "Facture",
|
|
125
|
+
Estimate: "Devis",
|
|
126
|
+
"Credit note": "Avoir",
|
|
127
|
+
"Advance invoice": "Facture d'acompte",
|
|
128
|
+
"Delivery note": "Bon de livraison",
|
|
129
|
+
"Credit for": "Avoir pour",
|
|
130
|
+
"Converted from": "Converti depuis",
|
|
131
|
+
"Converted to": "Converti en",
|
|
132
|
+
"Has credit": "A un avoir",
|
|
133
|
+
"Advance applied": "Acompte appliqué",
|
|
134
|
+
"Applied to": "Appliqué à",
|
|
135
|
+
"Delivered for": "Livré pour",
|
|
136
|
+
"Has delivery": "A un bon de livraison",
|
|
137
|
+
Fulfills: "Remplit",
|
|
138
|
+
"Fulfilled by": "Rempli par",
|
|
139
|
+
References: "Référence",
|
|
140
|
+
View: "Voir",
|
|
115
141
|
} as const;
|
|
@@ -13,6 +13,7 @@ export default {
|
|
|
13
13
|
"Unshare failed": "Uklanjanje dijeljenja nije uspjelo",
|
|
14
14
|
"Download failed": "Preuzimanje nije uspjelo",
|
|
15
15
|
"e-SLOG download failed": "Preuzimanje e-SLOG nije uspjelo",
|
|
16
|
+
Recurring: "Ponavljajuće",
|
|
16
17
|
Duplicate: "Dupliciraj",
|
|
17
18
|
"Duplicate invoice": "Dupliciraj račun",
|
|
18
19
|
"Duplicate estimate": "Dupliciraj ponudu",
|
|
@@ -81,6 +82,10 @@ export default {
|
|
|
81
82
|
"Delete draft failed": "Brisanje nacrta nije uspjelo",
|
|
82
83
|
Draft: "Nacrt",
|
|
83
84
|
|
|
85
|
+
// Void
|
|
86
|
+
Void: "Storniraj",
|
|
87
|
+
"Voiding...": "Storniranje...",
|
|
88
|
+
|
|
84
89
|
// Activity list
|
|
85
90
|
Activity: "Aktivnost",
|
|
86
91
|
"No activity": "Nema aktivnosti",
|
|
@@ -112,4 +117,25 @@ export default {
|
|
|
112
117
|
Dutch: "Nizozemski",
|
|
113
118
|
Polish: "Poljski",
|
|
114
119
|
Croatian: "Hrvatski",
|
|
120
|
+
|
|
121
|
+
// Linked documents
|
|
122
|
+
"Linked documents": "Povezani dokumenti",
|
|
123
|
+
"No linked documents": "Nema povezanih dokumenata",
|
|
124
|
+
Invoice: "Račun",
|
|
125
|
+
Estimate: "Ponuda",
|
|
126
|
+
"Credit note": "Knjižno odobrenje",
|
|
127
|
+
"Advance invoice": "Avansni račun",
|
|
128
|
+
"Delivery note": "Otpremnica",
|
|
129
|
+
"Credit for": "Odobrenje za",
|
|
130
|
+
"Converted from": "Pretvoreno iz",
|
|
131
|
+
"Converted to": "Pretvoreno u",
|
|
132
|
+
"Has credit": "Ima odobrenje",
|
|
133
|
+
"Advance applied": "Avans primijenjen",
|
|
134
|
+
"Applied to": "Primijenjeno na",
|
|
135
|
+
"Delivered for": "Dostavljeno za",
|
|
136
|
+
"Has delivery": "Ima otpremnicu",
|
|
137
|
+
Fulfills: "Ispunjava",
|
|
138
|
+
"Fulfilled by": "Ispunjeno od",
|
|
139
|
+
References: "Upućuje na",
|
|
140
|
+
View: "Pogledaj",
|
|
115
141
|
} as const;
|
|
@@ -13,6 +13,7 @@ export default {
|
|
|
13
13
|
"Unshare failed": "Rimozione condivisione fallita",
|
|
14
14
|
"Download failed": "Download fallito",
|
|
15
15
|
"e-SLOG download failed": "Download e-SLOG fallito",
|
|
16
|
+
Recurring: "Ricorrente",
|
|
16
17
|
Duplicate: "Duplica",
|
|
17
18
|
"Duplicate invoice": "Duplica fattura",
|
|
18
19
|
"Duplicate estimate": "Duplica preventivo",
|
|
@@ -81,6 +82,10 @@ export default {
|
|
|
81
82
|
"Delete draft failed": "Eliminazione bozza fallita",
|
|
82
83
|
Draft: "Bozza",
|
|
83
84
|
|
|
85
|
+
// Void
|
|
86
|
+
Void: "Annulla",
|
|
87
|
+
"Voiding...": "Annullamento...",
|
|
88
|
+
|
|
84
89
|
// Activity list
|
|
85
90
|
Activity: "Attività",
|
|
86
91
|
"No activity": "Nessuna attività",
|
|
@@ -112,4 +117,25 @@ export default {
|
|
|
112
117
|
Dutch: "Olandese",
|
|
113
118
|
Polish: "Polacco",
|
|
114
119
|
Croatian: "Croato",
|
|
120
|
+
|
|
121
|
+
// Linked documents
|
|
122
|
+
"Linked documents": "Documenti collegati",
|
|
123
|
+
"No linked documents": "Nessun documento collegato",
|
|
124
|
+
Invoice: "Fattura",
|
|
125
|
+
Estimate: "Preventivo",
|
|
126
|
+
"Credit note": "Nota di credito",
|
|
127
|
+
"Advance invoice": "Fattura di acconto",
|
|
128
|
+
"Delivery note": "Bolla di consegna",
|
|
129
|
+
"Credit for": "Credito per",
|
|
130
|
+
"Converted from": "Convertito da",
|
|
131
|
+
"Converted to": "Convertito in",
|
|
132
|
+
"Has credit": "Ha credito",
|
|
133
|
+
"Advance applied": "Acconto applicato",
|
|
134
|
+
"Applied to": "Applicato a",
|
|
135
|
+
"Delivered for": "Consegnato per",
|
|
136
|
+
"Has delivery": "Ha bolla di consegna",
|
|
137
|
+
Fulfills: "Adempie",
|
|
138
|
+
"Fulfilled by": "Adempiuto da",
|
|
139
|
+
References: "Riferisce a",
|
|
140
|
+
View: "Visualizza",
|
|
115
141
|
} as const;
|
|
@@ -13,6 +13,7 @@ export default {
|
|
|
13
13
|
"Unshare failed": "Opheffen van delen mislukt",
|
|
14
14
|
"Download failed": "Download mislukt",
|
|
15
15
|
"e-SLOG download failed": "e-SLOG download mislukt",
|
|
16
|
+
Recurring: "Terugkerend",
|
|
16
17
|
Duplicate: "Dupliceren",
|
|
17
18
|
"Duplicate invoice": "Factuur dupliceren",
|
|
18
19
|
"Duplicate estimate": "Offerte dupliceren",
|
|
@@ -82,6 +83,10 @@ export default {
|
|
|
82
83
|
"Delete draft failed": "Verwijderen van concept mislukt",
|
|
83
84
|
Draft: "Concept",
|
|
84
85
|
|
|
86
|
+
// Void
|
|
87
|
+
Void: "Nietig verklaren",
|
|
88
|
+
"Voiding...": "Nietig verklaren...",
|
|
89
|
+
|
|
85
90
|
// Activity list
|
|
86
91
|
Activity: "Activiteit",
|
|
87
92
|
"No activity": "Geen activiteit",
|
|
@@ -113,4 +118,25 @@ export default {
|
|
|
113
118
|
Dutch: "Nederlands",
|
|
114
119
|
Polish: "Pools",
|
|
115
120
|
Croatian: "Kroatisch",
|
|
121
|
+
|
|
122
|
+
// Linked documents
|
|
123
|
+
"Linked documents": "Gekoppelde documenten",
|
|
124
|
+
"No linked documents": "Geen gekoppelde documenten",
|
|
125
|
+
Invoice: "Factuur",
|
|
126
|
+
Estimate: "Offerte",
|
|
127
|
+
"Credit note": "Creditnota",
|
|
128
|
+
"Advance invoice": "Voorschotfactuur",
|
|
129
|
+
"Delivery note": "Afleverbon",
|
|
130
|
+
"Credit for": "Creditering voor",
|
|
131
|
+
"Converted from": "Geconverteerd van",
|
|
132
|
+
"Converted to": "Geconverteerd naar",
|
|
133
|
+
"Has credit": "Heeft creditering",
|
|
134
|
+
"Advance applied": "Voorschot toegepast",
|
|
135
|
+
"Applied to": "Toegepast op",
|
|
136
|
+
"Delivered for": "Geleverd voor",
|
|
137
|
+
"Has delivery": "Heeft afleverbon",
|
|
138
|
+
Fulfills: "Vervult",
|
|
139
|
+
"Fulfilled by": "Vervuld door",
|
|
140
|
+
References: "Verwijst naar",
|
|
141
|
+
View: "Bekijken",
|
|
116
142
|
} as const;
|
|
@@ -13,6 +13,7 @@ export default {
|
|
|
13
13
|
"Unshare failed": "Cofnięcie udostępnienia nie powiodło się",
|
|
14
14
|
"Download failed": "Pobieranie nie powiodło się",
|
|
15
15
|
"e-SLOG download failed": "Pobieranie e-SLOG nie powiodło się",
|
|
16
|
+
Recurring: "Cykliczna",
|
|
16
17
|
Duplicate: "Duplikuj",
|
|
17
18
|
"Duplicate invoice": "Duplikuj fakturę",
|
|
18
19
|
"Duplicate estimate": "Duplikuj kosztorys",
|
|
@@ -81,6 +82,10 @@ export default {
|
|
|
81
82
|
"Delete draft failed": "Usunięcie szkicu nie powiodło się",
|
|
82
83
|
Draft: "Szkic",
|
|
83
84
|
|
|
85
|
+
// Void
|
|
86
|
+
Void: "Anuluj",
|
|
87
|
+
"Voiding...": "Anulowanie...",
|
|
88
|
+
|
|
84
89
|
// Activity list
|
|
85
90
|
Activity: "Aktywność",
|
|
86
91
|
"No activity": "Brak aktywności",
|
|
@@ -112,4 +117,25 @@ export default {
|
|
|
112
117
|
Dutch: "Niderlandzki",
|
|
113
118
|
Polish: "Polski",
|
|
114
119
|
Croatian: "Chorwacki",
|
|
120
|
+
|
|
121
|
+
// Linked documents
|
|
122
|
+
"Linked documents": "Powiązane dokumenty",
|
|
123
|
+
"No linked documents": "Brak powiązanych dokumentów",
|
|
124
|
+
Invoice: "Faktura",
|
|
125
|
+
Estimate: "Kosztorys",
|
|
126
|
+
"Credit note": "Nota kredytowa",
|
|
127
|
+
"Advance invoice": "Faktura zaliczkowa",
|
|
128
|
+
"Delivery note": "Dowód dostawy",
|
|
129
|
+
"Credit for": "Kredyt dla",
|
|
130
|
+
"Converted from": "Przekonwertowano z",
|
|
131
|
+
"Converted to": "Przekonwertowano na",
|
|
132
|
+
"Has credit": "Ma kredyt",
|
|
133
|
+
"Advance applied": "Zaliczka zastosowana",
|
|
134
|
+
"Applied to": "Zastosowano do",
|
|
135
|
+
"Delivered for": "Dostarczone dla",
|
|
136
|
+
"Has delivery": "Ma dowód dostawy",
|
|
137
|
+
Fulfills: "Realizuje",
|
|
138
|
+
"Fulfilled by": "Zrealizowano przez",
|
|
139
|
+
References: "Odnosi się do",
|
|
140
|
+
View: "Zobacz",
|
|
115
141
|
} as const;
|
|
@@ -13,6 +13,7 @@ export default {
|
|
|
13
13
|
"Unshare failed": "Falha ao remover partilha",
|
|
14
14
|
"Download failed": "Falha no download",
|
|
15
15
|
"e-SLOG download failed": "Falha no download e-SLOG",
|
|
16
|
+
Recurring: "Recorrente",
|
|
16
17
|
Duplicate: "Duplicar",
|
|
17
18
|
"Duplicate invoice": "Duplicar fatura",
|
|
18
19
|
"Duplicate estimate": "Duplicar orçamento",
|
|
@@ -81,6 +82,10 @@ export default {
|
|
|
81
82
|
"Delete draft failed": "Falha ao eliminar rascunho",
|
|
82
83
|
Draft: "Rascunho",
|
|
83
84
|
|
|
85
|
+
// Void
|
|
86
|
+
Void: "Anular",
|
|
87
|
+
"Voiding...": "Anulando...",
|
|
88
|
+
|
|
84
89
|
// Activity list
|
|
85
90
|
Activity: "Atividade",
|
|
86
91
|
"No activity": "Sem atividade",
|
|
@@ -112,4 +117,25 @@ export default {
|
|
|
112
117
|
Dutch: "Neerlandês",
|
|
113
118
|
Polish: "Polaco",
|
|
114
119
|
Croatian: "Croata",
|
|
120
|
+
|
|
121
|
+
// Linked documents
|
|
122
|
+
"Linked documents": "Documentos vinculados",
|
|
123
|
+
"No linked documents": "Sem documentos vinculados",
|
|
124
|
+
Invoice: "Fatura",
|
|
125
|
+
Estimate: "Orçamento",
|
|
126
|
+
"Credit note": "Nota de crédito",
|
|
127
|
+
"Advance invoice": "Fatura antecipada",
|
|
128
|
+
"Delivery note": "Guia de remessa",
|
|
129
|
+
"Credit for": "Crédito para",
|
|
130
|
+
"Converted from": "Convertido de",
|
|
131
|
+
"Converted to": "Convertido para",
|
|
132
|
+
"Has credit": "Tem crédito",
|
|
133
|
+
"Advance applied": "Adiantamento aplicado",
|
|
134
|
+
"Applied to": "Aplicado a",
|
|
135
|
+
"Delivered for": "Entregue para",
|
|
136
|
+
"Has delivery": "Tem guia de remessa",
|
|
137
|
+
Fulfills: "Cumpre",
|
|
138
|
+
"Fulfilled by": "Cumprido por",
|
|
139
|
+
References: "Referência",
|
|
140
|
+
View: "Ver",
|
|
115
141
|
} as const;
|
|
@@ -13,6 +13,7 @@ export default {
|
|
|
13
13
|
"Unshare failed": "Odstranitev deljenja ni uspela",
|
|
14
14
|
"Download failed": "Prenos ni uspel",
|
|
15
15
|
"e-SLOG download failed": "Prenos e-SLOG ni uspel",
|
|
16
|
+
Recurring: "Ponavljajoče",
|
|
16
17
|
Duplicate: "Podvoji",
|
|
17
18
|
"Duplicate invoice": "Podvoji račun",
|
|
18
19
|
"Duplicate estimate": "Podvoji predračun",
|
|
@@ -82,6 +83,10 @@ export default {
|
|
|
82
83
|
"Delete draft failed": "Brisanje osnutka ni uspelo",
|
|
83
84
|
Draft: "Osnutek",
|
|
84
85
|
|
|
86
|
+
// Void
|
|
87
|
+
Void: "Storniraj",
|
|
88
|
+
"Voiding...": "Storniranje...",
|
|
89
|
+
|
|
85
90
|
// Activity list
|
|
86
91
|
Activity: "Aktivnost",
|
|
87
92
|
"No activity": "Ni aktivnosti",
|
|
@@ -113,4 +118,25 @@ export default {
|
|
|
113
118
|
Dutch: "Nizozemščina",
|
|
114
119
|
Polish: "Poljščina",
|
|
115
120
|
Croatian: "Hrvaščina",
|
|
121
|
+
|
|
122
|
+
// Linked documents
|
|
123
|
+
"Linked documents": "Povezani dokumenti",
|
|
124
|
+
"No linked documents": "Ni povezanih dokumentov",
|
|
125
|
+
Invoice: "Račun",
|
|
126
|
+
Estimate: "Predračun",
|
|
127
|
+
"Credit note": "Dobropis",
|
|
128
|
+
"Advance invoice": "Avansni račun",
|
|
129
|
+
"Delivery note": "Dobavnica",
|
|
130
|
+
"Credit for": "Dobropis za",
|
|
131
|
+
"Converted from": "Pretvorjeno iz",
|
|
132
|
+
"Converted to": "Pretvorjeno v",
|
|
133
|
+
"Has credit": "Ima dobropis",
|
|
134
|
+
"Advance applied": "Avans uporabljen",
|
|
135
|
+
"Applied to": "Uporabljen za",
|
|
136
|
+
"Delivered for": "Dostavljeno za",
|
|
137
|
+
"Has delivery": "Ima dobavnico",
|
|
138
|
+
Fulfills: "Izpolnjuje",
|
|
139
|
+
"Fulfilled by": "Izpolnjeno z",
|
|
140
|
+
References: "Sklicuje se na",
|
|
141
|
+
View: "Poglej",
|
|
116
142
|
} as const;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { AdvanceInvoice, CreditNote, Estimate, Invoice } from "@spaceinvoices/js-sdk";
|
|
1
|
+
import type { AdvanceInvoice, CreditNote, DeliveryNote, Estimate, Invoice } from "@spaceinvoices/js-sdk";
|
|
2
2
|
import { useState } from "react";
|
|
3
3
|
import { useEntities } from "@/ui/providers/entities-context";
|
|
4
4
|
import { useSDK } from "@/ui/providers/sdk-provider";
|
|
5
5
|
|
|
6
|
-
type Document = Invoice | Estimate | CreditNote | AdvanceInvoice;
|
|
7
|
-
type DocumentType = "invoice" | "estimate" | "credit_note" | "advance_invoice";
|
|
6
|
+
type Document = Invoice | Estimate | CreditNote | AdvanceInvoice | DeliveryNote;
|
|
7
|
+
type DocumentType = "invoice" | "estimate" | "credit_note" | "advance_invoice" | "delivery_note";
|
|
8
8
|
|
|
9
9
|
// Document type labels for PDF filename
|
|
10
10
|
const TYPE_LABELS: Record<string, string> = {
|
|
@@ -12,6 +12,7 @@ const TYPE_LABELS: Record<string, string> = {
|
|
|
12
12
|
estimate: "Estimate",
|
|
13
13
|
credit_note: "Credit Note",
|
|
14
14
|
advance_invoice: "Advance Invoice",
|
|
15
|
+
delivery_note: "Delivery Note",
|
|
15
16
|
};
|
|
16
17
|
|
|
17
18
|
interface UseDocumentDownloadOptions {
|
|
@@ -90,6 +91,7 @@ export function useDocumentDownload({
|
|
|
90
91
|
advance_invoice: "advance_invoice",
|
|
91
92
|
credit_note: "credit_note",
|
|
92
93
|
estimate: "estimate",
|
|
94
|
+
delivery_note: "delivery_note",
|
|
93
95
|
};
|
|
94
96
|
|
|
95
97
|
// e-SLOG download - cast to any since the SDK structure may vary
|
|
@@ -47,7 +47,7 @@ export function CreateEntityForm({
|
|
|
47
47
|
country: "",
|
|
48
48
|
tax_number: "",
|
|
49
49
|
company_number: "",
|
|
50
|
-
environment,
|
|
50
|
+
environment: environment as "live" | "sandbox" | undefined,
|
|
51
51
|
...extraDefaults,
|
|
52
52
|
// defaultName takes priority over extraDefaults.name if provided
|
|
53
53
|
...(defaultName ? { name: defaultName } : {}),
|
|
@@ -74,7 +74,6 @@ const entitySettingsFormSchema = patchEntitySchema
|
|
|
74
74
|
.omit({
|
|
75
75
|
settings: true, // Remove nested settings - we'll flatten them
|
|
76
76
|
metadata: true, // Not used in this form
|
|
77
|
-
environment: true, // Not editable here
|
|
78
77
|
})
|
|
79
78
|
.extend({
|
|
80
79
|
// Flattened settings fields for easier form handling
|
|
@@ -85,8 +84,8 @@ const entitySettingsFormSchema = patchEntitySchema
|
|
|
85
84
|
message: "Must be a valid hex color (e.g., #5c6ac4)",
|
|
86
85
|
})
|
|
87
86
|
.optional(),
|
|
88
|
-
has_logo: z.
|
|
89
|
-
has_signature: z.
|
|
87
|
+
has_logo: z.boolean().nullable().optional(),
|
|
88
|
+
has_signature: z.boolean().nullable().optional(),
|
|
90
89
|
email: z
|
|
91
90
|
.union([z.string(), z.null()])
|
|
92
91
|
.refine((val) => !val || /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(val), {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
// Company settings
|
|
3
|
+
"Tax ID 2": "Tax ID 2",
|
|
4
|
+
"Secondary tax identification number (optional)": "Secondary tax identification number (optional)",
|
|
3
5
|
"Company Information": "Información de la empresa",
|
|
4
6
|
"Basic information about your company": "Información básica sobre su empresa",
|
|
5
7
|
// Branding settings
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
// Company settings
|
|
3
|
+
"Tax ID 2": "Tax ID 2",
|
|
4
|
+
"Secondary tax identification number (optional)": "Secondary tax identification number (optional)",
|
|
3
5
|
"Company Information": "Informations sur l'entreprise",
|
|
4
6
|
"Basic information about your company": "Informations de base sur votre entreprise",
|
|
5
7
|
// Branding settings
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
// Company settings
|
|
3
|
+
"Tax ID 2": "Tax ID 2",
|
|
4
|
+
"Secondary tax identification number (optional)": "Secondary tax identification number (optional)",
|
|
3
5
|
"Company Information": "Podaci o tvrtki",
|
|
4
6
|
"Basic information about your company": "Osnovni podaci o vašoj tvrtki",
|
|
5
7
|
// Branding settings
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
// Company settings
|
|
3
|
+
"Tax ID 2": "Tax ID 2",
|
|
4
|
+
"Secondary tax identification number (optional)": "Secondary tax identification number (optional)",
|
|
3
5
|
"Company Information": "Informazioni aziendali",
|
|
4
6
|
"Basic information about your company": "Informazioni di base sulla tua azienda",
|
|
5
7
|
// Branding settings
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
// Company settings
|
|
3
|
+
"Tax ID 2": "Tax ID 2",
|
|
4
|
+
"Secondary tax identification number (optional)": "Secondary tax identification number (optional)",
|
|
3
5
|
"Company Information": "Bedrijfsinformatie",
|
|
4
6
|
"Basic information about your company": "Basisinformatie over uw bedrijf",
|
|
5
7
|
// Branding settings
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
// Company settings
|
|
3
|
+
"Tax ID 2": "Tax ID 2",
|
|
4
|
+
"Secondary tax identification number (optional)": "Secondary tax identification number (optional)",
|
|
3
5
|
"Company Information": "Informacje o firmie",
|
|
4
6
|
"Basic information about your company": "Podstawowe informacje o Twojej firmie",
|
|
5
7
|
// Branding settings
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
// Company settings
|
|
3
|
+
"Tax ID 2": "Tax ID 2",
|
|
4
|
+
"Secondary tax identification number (optional)": "Secondary tax identification number (optional)",
|
|
3
5
|
"Company Information": "Informações da empresa",
|
|
4
6
|
"Basic information about your company": "Informações básicas sobre a sua empresa",
|
|
5
7
|
// Branding settings
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { type FC, useState } from "react";
|
|
2
|
+
import { Button } from "@/ui/components/ui/button";
|
|
3
|
+
import {
|
|
4
|
+
Dialog,
|
|
5
|
+
DialogContent,
|
|
6
|
+
DialogDescription,
|
|
7
|
+
DialogFooter,
|
|
8
|
+
DialogHeader,
|
|
9
|
+
DialogTitle,
|
|
10
|
+
} from "@/ui/components/ui/dialog";
|
|
11
|
+
import { Input } from "@/ui/components/ui/input";
|
|
12
|
+
import { useUpdateUserFinaSettings } from "./fina-settings.hooks";
|
|
13
|
+
|
|
14
|
+
interface FinaOperatorRequiredDialogProps {
|
|
15
|
+
open: boolean;
|
|
16
|
+
onOpenChange: (open: boolean) => void;
|
|
17
|
+
entityId: string;
|
|
18
|
+
onSaved: () => void;
|
|
19
|
+
t: (key: string) => string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const FinaOperatorRequiredDialog: FC<FinaOperatorRequiredDialogProps> = ({
|
|
23
|
+
open,
|
|
24
|
+
onOpenChange,
|
|
25
|
+
entityId,
|
|
26
|
+
onSaved,
|
|
27
|
+
t,
|
|
28
|
+
}) => {
|
|
29
|
+
const [operatorOib, setOperatorOib] = useState("");
|
|
30
|
+
const [operatorLabel, setOperatorLabel] = useState("");
|
|
31
|
+
|
|
32
|
+
const { mutate: updateUserSettings, isPending } = useUpdateUserFinaSettings({
|
|
33
|
+
onSuccess: () => {
|
|
34
|
+
setOperatorOib("");
|
|
35
|
+
setOperatorLabel("");
|
|
36
|
+
onSaved();
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
const handleSubmit = (e: React.FormEvent) => {
|
|
41
|
+
e.preventDefault();
|
|
42
|
+
e.stopPropagation();
|
|
43
|
+
if (!operatorOib || !operatorLabel) return;
|
|
44
|
+
updateUserSettings({
|
|
45
|
+
entityId,
|
|
46
|
+
data: {
|
|
47
|
+
operator_oib: operatorOib,
|
|
48
|
+
operator_label: operatorLabel,
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const oibError = operatorOib !== "" && !/^\d{11}$/.test(operatorOib);
|
|
54
|
+
const isValid = /^\d{11}$/.test(operatorOib) && operatorLabel.trim() !== "";
|
|
55
|
+
|
|
56
|
+
return (
|
|
57
|
+
<Dialog open={open} onOpenChange={onOpenChange}>
|
|
58
|
+
<DialogContent className="max-w-md">
|
|
59
|
+
<DialogHeader>
|
|
60
|
+
<DialogTitle>{t("FINA Operator Settings Required")}</DialogTitle>
|
|
61
|
+
<DialogDescription>
|
|
62
|
+
{t(
|
|
63
|
+
"Your FINA operator information is needed to fiscalize this document. Please enter your operator details.",
|
|
64
|
+
)}
|
|
65
|
+
</DialogDescription>
|
|
66
|
+
</DialogHeader>
|
|
67
|
+
|
|
68
|
+
<form onSubmit={handleSubmit} className="space-y-4">
|
|
69
|
+
<div>
|
|
70
|
+
<label htmlFor="fina-dialog-operator-oib" className="font-medium text-sm">
|
|
71
|
+
{t("Operator OIB")}
|
|
72
|
+
</label>
|
|
73
|
+
<Input
|
|
74
|
+
id="fina-dialog-operator-oib"
|
|
75
|
+
placeholder="12345678901"
|
|
76
|
+
value={operatorOib}
|
|
77
|
+
onChange={(e) => setOperatorOib(e.target.value.replace(/[^0-9]/g, ""))}
|
|
78
|
+
className={`mt-2 h-10${oibError ? "border-destructive" : ""}`}
|
|
79
|
+
maxLength={11}
|
|
80
|
+
/>
|
|
81
|
+
{oibError && <p className="mt-1 text-destructive text-xs">{t("OIB must be exactly 11 digits")}</p>}
|
|
82
|
+
</div>
|
|
83
|
+
|
|
84
|
+
<div>
|
|
85
|
+
<label htmlFor="fina-dialog-operator-label" className="font-medium text-sm">
|
|
86
|
+
{t("Operator Label")}
|
|
87
|
+
</label>
|
|
88
|
+
<Input
|
|
89
|
+
id="fina-dialog-operator-label"
|
|
90
|
+
placeholder={t("e.g. Cashier 1")}
|
|
91
|
+
value={operatorLabel}
|
|
92
|
+
onChange={(e) => setOperatorLabel(e.target.value)}
|
|
93
|
+
className="mt-2 h-10"
|
|
94
|
+
/>
|
|
95
|
+
</div>
|
|
96
|
+
|
|
97
|
+
<DialogFooter>
|
|
98
|
+
<Button type="button" variant="outline" onClick={() => onOpenChange(false)} disabled={isPending}>
|
|
99
|
+
{t("Cancel")}
|
|
100
|
+
</Button>
|
|
101
|
+
<Button type="submit" disabled={isPending || !isValid}>
|
|
102
|
+
{isPending ? t("Saving...") : t("Save & Retry")}
|
|
103
|
+
</Button>
|
|
104
|
+
</DialogFooter>
|
|
105
|
+
</form>
|
|
106
|
+
</DialogContent>
|
|
107
|
+
</Dialog>
|
|
108
|
+
);
|
|
109
|
+
};
|