@spaceinvoices/react-ui 0.4.4 → 0.4.6
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/src/components/advance-invoices/advance-invoices.hooks.ts +2 -2
- package/src/components/advance-invoices/create/create-advance-invoice-form.tsx +151 -45
- package/src/components/advance-invoices/create/locales/de.ts +20 -0
- package/src/components/advance-invoices/create/locales/es.ts +20 -0
- package/src/components/advance-invoices/create/locales/fr.ts +20 -0
- package/src/components/advance-invoices/create/locales/hr.ts +20 -0
- package/src/components/advance-invoices/create/locales/it.ts +20 -0
- package/src/components/advance-invoices/create/locales/nl.ts +20 -0
- package/src/components/advance-invoices/create/locales/pl.ts +20 -0
- package/src/components/advance-invoices/create/locales/pt.ts +20 -0
- package/src/components/advance-invoices/create/locales/sl.ts +20 -0
- package/src/components/advance-invoices/create/prepare-advance-invoice-submission.ts +5 -5
- package/src/components/advance-invoices/list/list-row-actions.tsx +48 -1
- package/src/components/advance-invoices/list/list-table.tsx +21 -1
- package/src/components/advance-invoices/list/locales/de.ts +4 -0
- package/src/components/advance-invoices/list/locales/en.ts +3 -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 +3 -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 +3 -0
- package/src/components/advance-invoices/list/locales/pt.ts +4 -0
- package/src/components/advance-invoices/list/locales/sl.ts +3 -0
- package/src/components/credit-notes/create/create-credit-note-form.tsx +161 -42
- package/src/components/credit-notes/create/locales/de.ts +21 -0
- package/src/components/credit-notes/create/locales/es.ts +21 -0
- package/src/components/credit-notes/create/locales/fr.ts +21 -0
- package/src/components/credit-notes/create/locales/hr.ts +21 -0
- package/src/components/credit-notes/create/locales/it.ts +21 -0
- package/src/components/credit-notes/create/locales/nl.ts +21 -0
- package/src/components/credit-notes/create/locales/pl.ts +21 -0
- package/src/components/credit-notes/create/locales/pt.ts +21 -0
- package/src/components/credit-notes/create/locales/sl.ts +22 -1
- package/src/components/credit-notes/credit-notes.hooks.ts +2 -2
- package/src/components/credit-notes/list/list-row-actions.tsx +44 -1
- package/src/components/credit-notes/list/list-table.tsx +16 -2
- package/src/components/credit-notes/list/locales/de.ts +2 -0
- package/src/components/credit-notes/list/locales/en.ts +2 -0
- package/src/components/credit-notes/list/locales/es.ts +2 -0
- package/src/components/credit-notes/list/locales/fr.ts +2 -0
- package/src/components/credit-notes/list/locales/hr.ts +2 -0
- package/src/components/credit-notes/list/locales/it.ts +2 -0
- package/src/components/credit-notes/list/locales/nl.ts +2 -0
- package/src/components/credit-notes/list/locales/pl.ts +2 -0
- package/src/components/credit-notes/list/locales/pt.ts +2 -0
- package/src/components/credit-notes/list/locales/sl.ts +2 -0
- package/src/components/dashboard/collection-rate-card/use-collection-rate.ts +48 -9
- package/src/components/dashboard/revenue-trend-chart/use-revenue-trend.ts +77 -48
- package/src/components/dashboard/shared/use-revenue-data.ts +77 -9
- package/src/components/delivery-notes/create/create-delivery-note-form.tsx +114 -7
- package/src/components/delivery-notes/create/locales/de.ts +21 -0
- package/src/components/delivery-notes/create/locales/es.ts +21 -0
- package/src/components/delivery-notes/create/locales/fr.ts +21 -0
- package/src/components/delivery-notes/create/locales/hr.ts +21 -0
- package/src/components/delivery-notes/create/locales/it.ts +21 -0
- package/src/components/delivery-notes/create/locales/nl.ts +21 -0
- package/src/components/delivery-notes/create/locales/pl.ts +21 -0
- package/src/components/delivery-notes/create/locales/pt.ts +21 -0
- package/src/components/delivery-notes/create/locales/sl.ts +22 -1
- package/src/components/delivery-notes/list/list-table.tsx +17 -8
- package/src/components/delivery-notes/list/locales/de.ts +32 -1
- package/src/components/delivery-notes/list/locales/en.ts +31 -0
- package/src/components/delivery-notes/list/locales/es.ts +32 -1
- package/src/components/delivery-notes/list/locales/fr.ts +32 -1
- package/src/components/delivery-notes/list/locales/hr.ts +32 -1
- package/src/components/delivery-notes/list/locales/it.ts +32 -1
- package/src/components/delivery-notes/list/locales/nl.ts +32 -1
- package/src/components/delivery-notes/list/locales/pl.ts +32 -1
- package/src/components/delivery-notes/list/locales/pt.ts +32 -1
- package/src/components/delivery-notes/list/locales/sl.ts +32 -1
- package/src/components/documents/create/document-add-item-form.tsx +70 -0
- package/src/components/documents/create/document-details-section.tsx +590 -344
- package/src/components/documents/create/document-items-section.tsx +21 -4
- package/src/components/documents/create/live-preview.tsx +24 -4
- package/src/components/documents/create/mark-as-paid-section.tsx +29 -20
- package/src/components/documents/create/prepare-document-submission.ts +22 -8
- package/src/components/documents/create/smart-code-insert-button.tsx +6 -0
- package/src/components/documents/shared/document-preview-display.tsx +3 -4
- package/src/components/documents/view/document-actions-bar.tsx +7 -27
- package/src/components/documents/view/document-details-card.tsx +32 -9
- package/src/components/documents/view/locales/de.ts +3 -0
- package/src/components/documents/view/locales/es.ts +3 -0
- package/src/components/documents/view/locales/fr.ts +3 -0
- package/src/components/documents/view/locales/hr.ts +3 -0
- package/src/components/documents/view/locales/it.ts +3 -0
- package/src/components/documents/view/locales/nl.ts +3 -0
- package/src/components/documents/view/locales/pl.ts +3 -0
- package/src/components/documents/view/locales/pt.ts +3 -0
- package/src/components/documents/view/locales/sl.ts +4 -1
- package/src/components/documents/view/use-document-download.ts +6 -3
- package/src/components/entities/create-entity-form.tsx +2 -1
- package/src/components/entities/entity-settings-form/email-template-variables-info.tsx +6 -0
- package/src/components/entities/entity-settings-form/input-with-preview.tsx +2 -117
- package/src/components/entities/entity-settings-form/locales/de.ts +5 -0
- package/src/components/entities/entity-settings-form/locales/es.ts +5 -0
- package/src/components/entities/entity-settings-form/locales/fr.ts +5 -0
- package/src/components/entities/entity-settings-form/locales/hr.ts +5 -0
- package/src/components/entities/entity-settings-form/locales/it.ts +5 -0
- package/src/components/entities/entity-settings-form/locales/nl.ts +5 -0
- package/src/components/entities/entity-settings-form/locales/pl.ts +5 -0
- package/src/components/entities/entity-settings-form/locales/pt.ts +5 -0
- package/src/components/entities/entity-settings-form/locales/sl.ts +5 -0
- package/src/components/entities/fina-settings-form/fina-settings-form.tsx +15 -0
- package/src/components/entities/fina-settings-form/fina-settings.hooks.ts +5 -1
- package/src/components/entities/fina-settings-form/locales/de.ts +3 -0
- package/src/components/entities/fina-settings-form/locales/en.ts +3 -0
- package/src/components/entities/fina-settings-form/locales/es.ts +3 -0
- package/src/components/entities/fina-settings-form/locales/fr.ts +3 -0
- package/src/components/entities/fina-settings-form/locales/hr.ts +3 -0
- package/src/components/entities/fina-settings-form/locales/it.ts +3 -0
- package/src/components/entities/fina-settings-form/locales/nl.ts +3 -0
- package/src/components/entities/fina-settings-form/locales/pl.ts +3 -0
- package/src/components/entities/fina-settings-form/locales/pt.ts +3 -0
- package/src/components/entities/fina-settings-form/locales/sl.ts +3 -0
- package/src/components/entities/fina-settings-form/sections/premises-management-section.tsx +4 -4
- package/src/components/entities/fina-settings-form/sections/register-premise-dialog.tsx +3 -3
- package/src/components/entities/settings/company-settings-form.tsx +173 -20
- package/src/components/entities/settings/defaults-settings-form.tsx +38 -1
- package/src/components/entities/settings/tax-rules-settings-form.tsx +1 -2
- package/src/components/estimates/create/create-estimate-form.tsx +107 -8
- package/src/components/estimates/create/locales/de.ts +21 -0
- package/src/components/estimates/create/locales/es.ts +21 -0
- package/src/components/estimates/create/locales/fr.ts +21 -0
- package/src/components/estimates/create/locales/hr.ts +21 -0
- package/src/components/estimates/create/locales/it.ts +21 -0
- package/src/components/estimates/create/locales/nl.ts +21 -0
- package/src/components/estimates/create/locales/pl.ts +21 -0
- package/src/components/estimates/create/locales/pt.ts +21 -0
- package/src/components/estimates/create/locales/sl.ts +22 -1
- package/src/components/estimates/list/list-table.tsx +11 -2
- package/src/components/estimates/list/locales/de.ts +1 -0
- package/src/components/estimates/list/locales/en.ts +1 -0
- package/src/components/estimates/list/locales/es.ts +1 -0
- package/src/components/estimates/list/locales/fr.ts +1 -0
- package/src/components/estimates/list/locales/hr.ts +1 -0
- package/src/components/estimates/list/locales/it.ts +1 -0
- package/src/components/estimates/list/locales/nl.ts +1 -0
- package/src/components/estimates/list/locales/pl.ts +1 -0
- package/src/components/estimates/list/locales/pt.ts +1 -0
- package/src/components/estimates/list/locales/sl.ts +1 -0
- package/src/components/export/document-export-form.tsx +46 -12
- package/src/components/invoices/create/create-invoice-form.tsx +186 -48
- package/src/components/invoices/create/locales/de.ts +28 -0
- package/src/components/invoices/create/locales/es.ts +28 -0
- package/src/components/invoices/create/locales/fr.ts +28 -0
- package/src/components/invoices/create/locales/hr.ts +28 -0
- package/src/components/invoices/create/locales/it.ts +28 -0
- package/src/components/invoices/create/locales/nl.ts +28 -0
- package/src/components/invoices/create/locales/pl.ts +28 -0
- package/src/components/invoices/create/locales/pt.ts +28 -0
- package/src/components/invoices/create/locales/sl.ts +29 -1
- package/src/components/invoices/create/prepare-invoice-submission.ts +5 -5
- package/src/components/invoices/invoices.hooks.ts +2 -2
- package/src/components/invoices/view/fiscalization-status-card.tsx +10 -8
- package/src/components/table/search-input.tsx +17 -0
- package/src/components/table/table-pagination.tsx +1 -1
- package/src/generated/schemas/advanceinvoice.ts +6 -2
- package/src/generated/schemas/creditnote.ts +3 -1
- package/src/generated/schemas/deliverynote.ts +3 -1
- package/src/generated/schemas/entity.ts +4 -4
- package/src/generated/schemas/entityapikey.ts +19 -0
- package/src/generated/schemas/estimate.ts +6 -2
- package/src/generated/schemas/index.ts +1 -0
- package/src/generated/schemas/invoice.ts +4 -1
- package/src/generated/schemas/renderadvanceinvoicepreview_body.ts +17 -23
- package/src/generated/schemas/rendercreditnotepreview_body.ts +17 -23
- package/src/generated/schemas/renderdeliverynotepreview_body.ts +17 -23
- package/src/generated/schemas/renderestimatepreview_body.ts +17 -23
- package/src/generated/schemas/renderinvoicepreview_body.ts +19 -23
- package/src/generated/schemas/startpdfexport_body.ts +14 -2
- package/src/generated/schemas/webhook.ts +4 -0
- package/src/hooks/use-duplicate-document.ts +16 -9
- package/src/hooks/use-vies-check.ts +3 -0
- package/src/lib/template-variables.tsx +167 -0
- package/src/providers/entities-context.tsx +2 -2
|
@@ -33,6 +33,9 @@ export default {
|
|
|
33
33
|
Note: "Napomena",
|
|
34
34
|
"Insert variable": "Umetni varijablu",
|
|
35
35
|
"Add payment instructions, terms, or other notes...": "Dodajte upute za plaćanje, uvjete ili druge napomene...",
|
|
36
|
+
// Signature field
|
|
37
|
+
Signature: "Potpis",
|
|
38
|
+
"Add signature text...": "Dodaj tekst potpisa...",
|
|
36
39
|
"Payment Terms": "Uvjeti plaćanja",
|
|
37
40
|
"Add payment terms...": "Dodajte uvjete plaćanja...",
|
|
38
41
|
Quantity: "Količina",
|
|
@@ -54,4 +57,22 @@ export default {
|
|
|
54
57
|
"Net price": "Neto cijena",
|
|
55
58
|
"Gross price (tax included)": "Bruto cijena (s porezom)",
|
|
56
59
|
"Net price (before tax)": "Neto cijena (prije poreza)",
|
|
60
|
+
// Separator items
|
|
61
|
+
"Add separator": "Dodaj separator",
|
|
62
|
+
"Section header": "Naslov odjeljka",
|
|
63
|
+
"Section title...": "Naslov odjeljka...",
|
|
64
|
+
// Transaction type
|
|
65
|
+
"Transaction type": "Vrsta transakcije",
|
|
66
|
+
Domestic: "Domaća",
|
|
67
|
+
"EU B2B": "EU B2B",
|
|
68
|
+
"EU B2C": "EU B2C",
|
|
69
|
+
Export: "Izvoz",
|
|
70
|
+
"Determining transaction type...": "Određivanje vrste transakcije...",
|
|
71
|
+
"This invoice will not be fiscalized (non-domestic transaction)":
|
|
72
|
+
"Ovaj račun neće biti fiskaliziran (nedomaća transakcija)",
|
|
73
|
+
"Tax Clause": "Porezna klauzula",
|
|
74
|
+
"Add tax clause...": "Dodajte poreznu klauzulu...",
|
|
75
|
+
Footer: "Podnožje",
|
|
76
|
+
"Add document footer...": "Dodajte podnožje dokumenta...",
|
|
77
|
+
"Reverse charge - tax exempt EU B2B sale": "Prijenos porezne obveze - porezno oslobođena EU B2B prodaja",
|
|
57
78
|
} as const;
|
|
@@ -33,6 +33,9 @@ export default {
|
|
|
33
33
|
Note: "Nota",
|
|
34
34
|
"Insert variable": "Inserisci variabile",
|
|
35
35
|
"Add payment instructions, terms, or other notes...": "Aggiungi istruzioni di pagamento, condizioni o altre note...",
|
|
36
|
+
// Signature field
|
|
37
|
+
Signature: "Firma",
|
|
38
|
+
"Add signature text...": "Aggiungi testo della firma...",
|
|
36
39
|
"Payment Terms": "Condizioni di pagamento",
|
|
37
40
|
"Add payment terms...": "Aggiungi condizioni di pagamento...",
|
|
38
41
|
Quantity: "Quantità",
|
|
@@ -54,4 +57,22 @@ export default {
|
|
|
54
57
|
"Net price": "Prezzo netto",
|
|
55
58
|
"Gross price (tax included)": "Prezzo lordo (imposte incluse)",
|
|
56
59
|
"Net price (before tax)": "Prezzo netto (prima delle imposte)",
|
|
60
|
+
// Separator items
|
|
61
|
+
"Add separator": "Aggiungi separatore",
|
|
62
|
+
"Section header": "Intestazione sezione",
|
|
63
|
+
"Section title...": "Titolo sezione...",
|
|
64
|
+
// Transaction type
|
|
65
|
+
"Transaction type": "Tipo di transazione",
|
|
66
|
+
Domestic: "Nazionale",
|
|
67
|
+
"EU B2B": "EU B2B",
|
|
68
|
+
"EU B2C": "EU B2C",
|
|
69
|
+
Export: "Esportazione",
|
|
70
|
+
"Determining transaction type...": "Determinazione tipo di transazione...",
|
|
71
|
+
"This invoice will not be fiscalized (non-domestic transaction)":
|
|
72
|
+
"Questa fattura non sarà fiscalizzata (transazione non nazionale)",
|
|
73
|
+
"Tax Clause": "Clausola fiscale",
|
|
74
|
+
"Add tax clause...": "Aggiungi clausola fiscale...",
|
|
75
|
+
Footer: "Piè di pagina",
|
|
76
|
+
"Add document footer...": "Aggiungi piè di pagina del documento...",
|
|
77
|
+
"Reverse charge - tax exempt EU B2B sale": "Inversione contabile - vendita B2B UE esente da imposta",
|
|
57
78
|
} as const;
|
|
@@ -34,6 +34,9 @@ export default {
|
|
|
34
34
|
"Insert variable": "Variabele invoegen",
|
|
35
35
|
"Add payment instructions, terms, or other notes...":
|
|
36
36
|
"Voeg betalingsinstructies, voorwaarden of andere notities toe...",
|
|
37
|
+
// Signature field
|
|
38
|
+
Signature: "Handtekening",
|
|
39
|
+
"Add signature text...": "Handtekeningtekst toevoegen...",
|
|
37
40
|
"Payment Terms": "Betalingsvoorwaarden",
|
|
38
41
|
"Add payment terms...": "Voeg betalingsvoorwaarden toe...",
|
|
39
42
|
Quantity: "Aantal",
|
|
@@ -55,4 +58,22 @@ export default {
|
|
|
55
58
|
"Net price": "Nettoprijs",
|
|
56
59
|
"Gross price (tax included)": "Brutoprijs (inclusief belasting)",
|
|
57
60
|
"Net price (before tax)": "Nettoprijs (exclusief belasting)",
|
|
61
|
+
// Separator items
|
|
62
|
+
"Add separator": "Scheidingslijn toevoegen",
|
|
63
|
+
"Section header": "Sectiekop",
|
|
64
|
+
"Section title...": "Sectietitel...",
|
|
65
|
+
// Transaction type
|
|
66
|
+
"Transaction type": "Transactietype",
|
|
67
|
+
Domestic: "Binnenland",
|
|
68
|
+
"EU B2B": "EU B2B",
|
|
69
|
+
"EU B2C": "EU B2C",
|
|
70
|
+
Export: "Export",
|
|
71
|
+
"Determining transaction type...": "Transactietype bepalen...",
|
|
72
|
+
"This invoice will not be fiscalized (non-domestic transaction)":
|
|
73
|
+
"Deze factuur wordt niet gefiscaliseerd (niet-binnenlandse transactie)",
|
|
74
|
+
"Tax Clause": "Belastingclausule",
|
|
75
|
+
"Add tax clause...": "Belastingclausule toevoegen...",
|
|
76
|
+
Footer: "Voettekst",
|
|
77
|
+
"Add document footer...": "Documentvoettekst toevoegen...",
|
|
78
|
+
"Reverse charge - tax exempt EU B2B sale": "Verlegging - belastingvrijgestelde EU B2B verkoop",
|
|
58
79
|
} as const;
|
|
@@ -33,6 +33,9 @@ export default {
|
|
|
33
33
|
Note: "Uwaga",
|
|
34
34
|
"Insert variable": "Wstaw zmienną",
|
|
35
35
|
"Add payment instructions, terms, or other notes...": "Dodaj instrukcje płatności, warunki lub inne uwagi...",
|
|
36
|
+
// Signature field
|
|
37
|
+
Signature: "Podpis",
|
|
38
|
+
"Add signature text...": "Dodaj tekst podpisu...",
|
|
36
39
|
"Payment Terms": "Warunki płatności",
|
|
37
40
|
"Add payment terms...": "Dodaj warunki płatności...",
|
|
38
41
|
Quantity: "Ilość",
|
|
@@ -54,4 +57,22 @@ export default {
|
|
|
54
57
|
"Net price": "Cena netto",
|
|
55
58
|
"Gross price (tax included)": "Cena brutto (z podatkiem)",
|
|
56
59
|
"Net price (before tax)": "Cena netto (przed podatkiem)",
|
|
60
|
+
// Separator items
|
|
61
|
+
"Add separator": "Dodaj separator",
|
|
62
|
+
"Section header": "Nagłówek sekcji",
|
|
63
|
+
"Section title...": "Tytuł sekcji...",
|
|
64
|
+
// Transaction type
|
|
65
|
+
"Transaction type": "Typ transakcji",
|
|
66
|
+
Domestic: "Krajowa",
|
|
67
|
+
"EU B2B": "EU B2B",
|
|
68
|
+
"EU B2C": "EU B2C",
|
|
69
|
+
Export: "Eksport",
|
|
70
|
+
"Determining transaction type...": "Określanie typu transakcji...",
|
|
71
|
+
"This invoice will not be fiscalized (non-domestic transaction)":
|
|
72
|
+
"Ta faktura nie będzie fiskalizowana (transakcja niekrajowa)",
|
|
73
|
+
"Tax Clause": "Klauzula podatkowa",
|
|
74
|
+
"Add tax clause...": "Dodaj klauzulę podatkową...",
|
|
75
|
+
Footer: "Stopka",
|
|
76
|
+
"Add document footer...": "Dodaj stopkę dokumentu...",
|
|
77
|
+
"Reverse charge - tax exempt EU B2B sale": "Odwrotne obciążenie - zwolniona z podatku sprzedaż EU B2B",
|
|
57
78
|
} as const;
|
|
@@ -34,6 +34,9 @@ export default {
|
|
|
34
34
|
"Insert variable": "Inserir variável",
|
|
35
35
|
"Add payment instructions, terms, or other notes...":
|
|
36
36
|
"Adicione instruções de pagamento, condições ou outras notas...",
|
|
37
|
+
// Signature field
|
|
38
|
+
Signature: "Assinatura",
|
|
39
|
+
"Add signature text...": "Adicionar texto de assinatura...",
|
|
37
40
|
"Payment Terms": "Condições de pagamento",
|
|
38
41
|
"Add payment terms...": "Adicione condições de pagamento...",
|
|
39
42
|
Quantity: "Quantidade",
|
|
@@ -55,4 +58,22 @@ export default {
|
|
|
55
58
|
"Net price": "Preço líquido",
|
|
56
59
|
"Gross price (tax included)": "Preço bruto (impostos incluídos)",
|
|
57
60
|
"Net price (before tax)": "Preço líquido (antes de impostos)",
|
|
61
|
+
// Separator items
|
|
62
|
+
"Add separator": "Adicionar separador",
|
|
63
|
+
"Section header": "Cabeçalho da secção",
|
|
64
|
+
"Section title...": "Título da secção...",
|
|
65
|
+
// Transaction type
|
|
66
|
+
"Transaction type": "Tipo de transação",
|
|
67
|
+
Domestic: "Nacional",
|
|
68
|
+
"EU B2B": "EU B2B",
|
|
69
|
+
"EU B2C": "EU B2C",
|
|
70
|
+
Export: "Exportação",
|
|
71
|
+
"Determining transaction type...": "Determinando tipo de transação...",
|
|
72
|
+
"This invoice will not be fiscalized (non-domestic transaction)":
|
|
73
|
+
"Esta fatura não será fiscalizada (transação não nacional)",
|
|
74
|
+
"Tax Clause": "Cláusula fiscal",
|
|
75
|
+
"Add tax clause...": "Adicionar cláusula fiscal...",
|
|
76
|
+
Footer: "Rodapé",
|
|
77
|
+
"Add document footer...": "Adicionar rodapé do documento...",
|
|
78
|
+
"Reverse charge - tax exempt EU B2B sale": "Autoliquidação - venda B2B UE isenta de imposto",
|
|
58
79
|
} as const;
|
|
@@ -23,7 +23,7 @@ export default {
|
|
|
23
23
|
"Tax Number": "Davčna številka",
|
|
24
24
|
Items: "Postavke",
|
|
25
25
|
"Add item": "Dodaj postavko",
|
|
26
|
-
Tax: "
|
|
26
|
+
Tax: "DDV",
|
|
27
27
|
"Tax rate": "Davčna stopnja",
|
|
28
28
|
"Add tax": "Dodaj davek",
|
|
29
29
|
"Select tax...": "Izberi davek...",
|
|
@@ -34,6 +34,9 @@ export default {
|
|
|
34
34
|
Note: "Opomba",
|
|
35
35
|
"Insert variable": "Vstavi spremenljivko",
|
|
36
36
|
"Add payment instructions, terms, or other notes...": "Dodajte navodila za plačilo, pogoje ali druge opombe...",
|
|
37
|
+
// Signature field
|
|
38
|
+
Signature: "Podpis",
|
|
39
|
+
"Add signature text...": "Dodaj besedilo podpisa...",
|
|
37
40
|
// Payment terms field
|
|
38
41
|
"Payment Terms": "Plačilni pogoji",
|
|
39
42
|
"Add payment terms...": "Dodajte plačilne pogoje...",
|
|
@@ -60,4 +63,22 @@ export default {
|
|
|
60
63
|
"Net price": "Neto cena",
|
|
61
64
|
"Gross price (tax included)": "Bruto cena (z davkom)",
|
|
62
65
|
"Net price (before tax)": "Neto cena (brez davka)",
|
|
66
|
+
// Separator items
|
|
67
|
+
"Add separator": "Dodaj ločilnik",
|
|
68
|
+
"Section header": "Naslov razdelka",
|
|
69
|
+
"Section title...": "Naslov razdelka...",
|
|
70
|
+
// Transaction type
|
|
71
|
+
"Transaction type": "Vrsta transakcije",
|
|
72
|
+
Domestic: "Domača",
|
|
73
|
+
"EU B2B": "EU B2B",
|
|
74
|
+
"EU B2C": "EU B2C",
|
|
75
|
+
Export: "Izvoz",
|
|
76
|
+
"Determining transaction type...": "Določanje vrste transakcije...",
|
|
77
|
+
"This invoice will not be fiscalized (non-domestic transaction)":
|
|
78
|
+
"Ta račun ne bo fiskaliziran (nedomača transakcija)",
|
|
79
|
+
"Tax Clause": "Davčna klavzula",
|
|
80
|
+
"Add tax clause...": "Dodajte davčno klavzulo...",
|
|
81
|
+
Footer: "Noga dokumenta",
|
|
82
|
+
"Add document footer...": "Dodajte nogo dokumenta...",
|
|
83
|
+
"Reverse charge - tax exempt EU B2B sale": "Obrnjena davčna obveznost - davka oproščena EU B2B prodaja",
|
|
63
84
|
} as const;
|
|
@@ -52,6 +52,7 @@ type EstimateListTableProps = {
|
|
|
52
52
|
onDownloadSuccess?: (fileName: string) => void;
|
|
53
53
|
onDownloadError?: (error: string) => void;
|
|
54
54
|
onExportSelected?: (documentIds: string[]) => void;
|
|
55
|
+
onCopyToInvoice?: (documentIds: string[]) => void;
|
|
55
56
|
onCreateNew?: () => void;
|
|
56
57
|
} & ListTableProps<Estimate>;
|
|
57
58
|
|
|
@@ -66,6 +67,7 @@ export default function EstimateListTable({
|
|
|
66
67
|
onDownloadSuccess,
|
|
67
68
|
onDownloadError,
|
|
68
69
|
onExportSelected,
|
|
70
|
+
onCopyToInvoice,
|
|
69
71
|
onCreateNew,
|
|
70
72
|
...i18nProps
|
|
71
73
|
}: EstimateListTableProps) {
|
|
@@ -110,6 +112,12 @@ export default function EstimateListTable({
|
|
|
110
112
|
}
|
|
111
113
|
}, [selectedIds, onExportSelected]);
|
|
112
114
|
|
|
115
|
+
const handleCopyToInvoice = useCallback(() => {
|
|
116
|
+
if (selectedIds.size > 0 && onCopyToInvoice) {
|
|
117
|
+
onCopyToInvoice(Array.from(selectedIds));
|
|
118
|
+
}
|
|
119
|
+
}, [selectedIds, onCopyToInvoice]);
|
|
120
|
+
|
|
113
121
|
const handleDeselectAll = useCallback(() => {
|
|
114
122
|
setSelectedIds(new Set());
|
|
115
123
|
}, []);
|
|
@@ -119,11 +127,12 @@ export default function EstimateListTable({
|
|
|
119
127
|
<SelectionToolbar
|
|
120
128
|
selectedCount={count}
|
|
121
129
|
onExportPdfs={onExportSelected ? handleExportPdfs : undefined}
|
|
130
|
+
onCopyToInvoice={onCopyToInvoice ? handleCopyToInvoice : undefined}
|
|
122
131
|
onDeselectAll={handleDeselectAll}
|
|
123
132
|
t={t}
|
|
124
133
|
/>
|
|
125
134
|
),
|
|
126
|
-
[handleExportPdfs, handleDeselectAll, onExportSelected, t],
|
|
135
|
+
[handleExportPdfs, handleCopyToInvoice, handleDeselectAll, onExportSelected, onCopyToInvoice, t],
|
|
127
136
|
);
|
|
128
137
|
|
|
129
138
|
const columns: Column<Estimate>[] = useMemo(
|
|
@@ -209,7 +218,7 @@ export default function EstimateListTable({
|
|
|
209
218
|
filterConfig={filterConfig}
|
|
210
219
|
t={t}
|
|
211
220
|
locale={i18nProps.locale}
|
|
212
|
-
selectable={!!onExportSelected}
|
|
221
|
+
selectable={!!(onExportSelected || onCopyToInvoice)}
|
|
213
222
|
selectedIds={selectedIds}
|
|
214
223
|
onSelectionChange={setSelectedIds}
|
|
215
224
|
selectionToolbar={selectionToolbar}
|
|
@@ -3,13 +3,16 @@ type TFunction = (key: string, options?: Record<string, unknown>) => string;
|
|
|
3
3
|
import { Calendar, Download, Loader2 } from "lucide-react";
|
|
4
4
|
import { useRef, useState } from "react";
|
|
5
5
|
import { Button } from "../ui/button";
|
|
6
|
+
import { Checkbox } from "../ui/checkbox";
|
|
6
7
|
import { Input } from "../ui/input";
|
|
7
8
|
import { Label } from "../ui/label";
|
|
8
9
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../ui/select";
|
|
9
10
|
|
|
10
|
-
export type DocumentType = "invoice" | "estimate" | "credit_note";
|
|
11
|
+
export type DocumentType = "invoice" | "estimate" | "credit_note" | "advance_invoice" | "delivery_note";
|
|
11
12
|
export type ExportFormat = "xlsx" | "csv" | "pdf_zip";
|
|
12
13
|
|
|
14
|
+
const ALL_DOCUMENT_TYPES: DocumentType[] = ["invoice", "estimate", "credit_note", "advance_invoice", "delivery_note"];
|
|
15
|
+
|
|
13
16
|
// Maximum date range for export (1 year in milliseconds)
|
|
14
17
|
const MAX_DATE_RANGE_MS = 365 * 24 * 60 * 60 * 1000;
|
|
15
18
|
|
|
@@ -65,6 +68,7 @@ export function DocumentExportForm({
|
|
|
65
68
|
}: DocumentExportFormProps) {
|
|
66
69
|
const defaultDates = getPreviousMonthRange();
|
|
67
70
|
const [documentType, setDocumentType] = useState<DocumentType>("invoice");
|
|
71
|
+
const [selectedTypes, setSelectedTypes] = useState<DocumentType[]>(["invoice"]);
|
|
68
72
|
const [exportFormat, setExportFormat] = useState<ExportFormat>("xlsx");
|
|
69
73
|
const [dateFrom, setDateFrom] = useState(defaultDates.from);
|
|
70
74
|
const [dateTo, setDateTo] = useState(defaultDates.to);
|
|
@@ -73,6 +77,17 @@ export function DocumentExportForm({
|
|
|
73
77
|
|
|
74
78
|
const toastIdRef = useRef<string | number | null>(null);
|
|
75
79
|
|
|
80
|
+
const toggleType = (type: DocumentType) => {
|
|
81
|
+
setSelectedTypes((prev) => {
|
|
82
|
+
if (prev.includes(type)) {
|
|
83
|
+
// Don't allow deselecting the last type
|
|
84
|
+
if (prev.length === 1) return prev;
|
|
85
|
+
return prev.filter((t) => t !== type);
|
|
86
|
+
}
|
|
87
|
+
return [...prev, type];
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
|
|
76
91
|
const validateDateRange = (from: string, to: string) => {
|
|
77
92
|
const isValid = isDateRangeValid(from, to);
|
|
78
93
|
setDateRangeError(!isValid);
|
|
@@ -100,7 +115,7 @@ export function DocumentExportForm({
|
|
|
100
115
|
"Content-Type": "application/json",
|
|
101
116
|
},
|
|
102
117
|
body: JSON.stringify({
|
|
103
|
-
|
|
118
|
+
types: selectedTypes,
|
|
104
119
|
date_from: dateFrom || undefined,
|
|
105
120
|
date_to: dateTo || undefined,
|
|
106
121
|
}),
|
|
@@ -187,16 +202,35 @@ export function DocumentExportForm({
|
|
|
187
202
|
<div className="grid grid-cols-2 gap-4">
|
|
188
203
|
<div className="space-y-2">
|
|
189
204
|
<Label htmlFor="document-type">{t("export-page.document-type")}</Label>
|
|
190
|
-
|
|
191
|
-
<
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
205
|
+
{exportFormat === "pdf_zip" ? (
|
|
206
|
+
<fieldset className="space-y-2 rounded-md border p-3">
|
|
207
|
+
{ALL_DOCUMENT_TYPES.map((type) => (
|
|
208
|
+
<div key={type} className="flex items-center gap-2">
|
|
209
|
+
<Checkbox
|
|
210
|
+
id={`type-${type}`}
|
|
211
|
+
checked={selectedTypes.includes(type)}
|
|
212
|
+
onCheckedChange={() => toggleType(type)}
|
|
213
|
+
/>
|
|
214
|
+
<Label htmlFor={`type-${type}`} className="cursor-pointer font-normal">
|
|
215
|
+
{t(`export-page.types.${type}`)}
|
|
216
|
+
</Label>
|
|
217
|
+
</div>
|
|
218
|
+
))}
|
|
219
|
+
</fieldset>
|
|
220
|
+
) : (
|
|
221
|
+
<Select value={documentType} onValueChange={(v) => setDocumentType(v as DocumentType)}>
|
|
222
|
+
<SelectTrigger id="document-type">
|
|
223
|
+
<SelectValue />
|
|
224
|
+
</SelectTrigger>
|
|
225
|
+
<SelectContent>
|
|
226
|
+
<SelectItem value="invoice">{t("export-page.types.invoice")}</SelectItem>
|
|
227
|
+
<SelectItem value="estimate">{t("export-page.types.estimate")}</SelectItem>
|
|
228
|
+
<SelectItem value="credit_note">{t("export-page.types.credit_note")}</SelectItem>
|
|
229
|
+
<SelectItem value="advance_invoice">{t("export-page.types.advance_invoice")}</SelectItem>
|
|
230
|
+
<SelectItem value="delivery_note">{t("export-page.types.delivery_note")}</SelectItem>
|
|
231
|
+
</SelectContent>
|
|
232
|
+
</Select>
|
|
233
|
+
)}
|
|
200
234
|
</div>
|
|
201
235
|
|
|
202
236
|
<div className="space-y-2">
|