@spaceinvoices/react-ui 0.4.11 → 0.4.31

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.
Files changed (738) hide show
  1. package/cli/dist/index.js +1 -1
  2. package/package.json +3 -2
  3. package/registry.json +30 -31
  4. package/src/common/autocomplete.tsx +48 -26
  5. package/src/components/activities/locales/bg.ts +21 -0
  6. package/src/components/activities/locales/cs.ts +21 -0
  7. package/src/components/activities/locales/en.ts +21 -0
  8. package/src/components/activities/locales/et.ts +21 -0
  9. package/src/components/activities/locales/fi.ts +21 -0
  10. package/src/components/activities/locales/is.ts +21 -0
  11. package/src/components/activities/locales/nb.ts +21 -0
  12. package/src/components/activities/locales/sk.ts +21 -0
  13. package/src/components/activities/locales/sv.ts +21 -0
  14. package/src/components/advance-invoices/advance-invoices.hooks.ts +36 -46
  15. package/src/components/advance-invoices/create/create-advance-invoice-form.tsx +452 -115
  16. package/src/components/advance-invoices/create/locales/bg.ts +56 -0
  17. package/src/components/advance-invoices/create/locales/cs.ts +56 -0
  18. package/src/components/advance-invoices/create/locales/de.ts +15 -7
  19. package/src/components/advance-invoices/create/locales/en.ts +56 -0
  20. package/src/components/advance-invoices/create/locales/es.ts +15 -7
  21. package/src/components/advance-invoices/create/locales/et.ts +56 -0
  22. package/src/components/advance-invoices/create/locales/fi.ts +56 -0
  23. package/src/components/advance-invoices/create/locales/fr.ts +16 -8
  24. package/src/components/advance-invoices/create/locales/hr.ts +29 -21
  25. package/src/components/advance-invoices/create/locales/is.ts +56 -0
  26. package/src/components/advance-invoices/create/locales/it.ts +15 -7
  27. package/src/components/advance-invoices/create/locales/nb.ts +56 -0
  28. package/src/components/advance-invoices/create/locales/nl.ts +15 -7
  29. package/src/components/advance-invoices/create/locales/pl.ts +17 -9
  30. package/src/components/advance-invoices/create/locales/pt.ts +16 -8
  31. package/src/components/advance-invoices/create/locales/sk.ts +56 -0
  32. package/src/components/advance-invoices/create/locales/sl.ts +23 -12
  33. package/src/components/advance-invoices/create/locales/sv.ts +56 -0
  34. package/src/components/advance-invoices/create/prepare-advance-invoice-submission.ts +62 -2
  35. package/src/components/advance-invoices/list/list-row-actions.tsx +48 -16
  36. package/src/components/advance-invoices/list/list-table.tsx +35 -9
  37. package/src/components/advance-invoices/list/locales/bg.ts +51 -0
  38. package/src/components/advance-invoices/list/locales/cs.ts +51 -0
  39. package/src/components/advance-invoices/list/locales/en.ts +33 -2
  40. package/src/components/advance-invoices/list/locales/et.ts +51 -0
  41. package/src/components/advance-invoices/list/locales/fi.ts +51 -0
  42. package/src/components/advance-invoices/list/locales/hr.ts +15 -15
  43. package/src/components/advance-invoices/list/locales/is.ts +51 -0
  44. package/src/components/advance-invoices/list/locales/nb.ts +51 -0
  45. package/src/components/advance-invoices/list/locales/sk.ts +51 -0
  46. package/src/components/advance-invoices/list/locales/sv.ts +51 -0
  47. package/src/components/advance-invoices/list/use-advance-invoice-download.ts +3 -5
  48. package/src/components/common/autocomplete-locales.ts +101 -0
  49. package/src/components/company-registry/company-registry.hooks.ts +3 -7
  50. package/src/components/credit-notes/create/create-credit-note-form.tsx +437 -80
  51. package/src/components/credit-notes/create/locales/bg.ts +101 -0
  52. package/src/components/credit-notes/create/locales/cs.ts +101 -0
  53. package/src/components/credit-notes/create/locales/de.ts +20 -7
  54. package/src/components/credit-notes/create/locales/en.ts +101 -0
  55. package/src/components/credit-notes/create/locales/es.ts +20 -7
  56. package/src/components/credit-notes/create/locales/et.ts +101 -0
  57. package/src/components/credit-notes/create/locales/fi.ts +101 -0
  58. package/src/components/credit-notes/create/locales/fr.ts +21 -8
  59. package/src/components/credit-notes/create/locales/hr.ts +41 -28
  60. package/src/components/credit-notes/create/locales/is.ts +101 -0
  61. package/src/components/credit-notes/create/locales/it.ts +20 -7
  62. package/src/components/credit-notes/create/locales/nb.ts +101 -0
  63. package/src/components/credit-notes/create/locales/nl.ts +20 -7
  64. package/src/components/credit-notes/create/locales/pl.ts +22 -9
  65. package/src/components/credit-notes/create/locales/pt.ts +21 -8
  66. package/src/components/credit-notes/create/locales/sk.ts +101 -0
  67. package/src/components/credit-notes/create/locales/sl.ts +28 -14
  68. package/src/components/credit-notes/create/locales/sv.ts +101 -0
  69. package/src/components/credit-notes/create/prepare-credit-note-submission.ts +66 -0
  70. package/src/components/credit-notes/credit-notes.hooks.ts +34 -3
  71. package/src/components/credit-notes/list/list-row-actions.tsx +19 -7
  72. package/src/components/credit-notes/list/list-table.tsx +60 -8
  73. package/src/components/credit-notes/list/locales/bg.ts +48 -0
  74. package/src/components/credit-notes/list/locales/cs.ts +48 -0
  75. package/src/components/credit-notes/list/locales/en.ts +31 -2
  76. package/src/components/credit-notes/list/locales/et.ts +48 -0
  77. package/src/components/credit-notes/list/locales/fi.ts +48 -0
  78. package/src/components/credit-notes/list/locales/hr.ts +12 -12
  79. package/src/components/credit-notes/list/locales/is.ts +48 -0
  80. package/src/components/credit-notes/list/locales/nb.ts +48 -0
  81. package/src/components/credit-notes/list/locales/sk.ts +48 -0
  82. package/src/components/credit-notes/list/locales/sv.ts +48 -0
  83. package/src/components/credit-notes/list/use-credit-note-download.ts +3 -5
  84. package/src/components/customers/create-customer-form/locales/bg.ts +21 -0
  85. package/src/components/customers/create-customer-form/locales/cs.ts +21 -0
  86. package/src/components/customers/create-customer-form/locales/en.ts +21 -0
  87. package/src/components/customers/create-customer-form/locales/et.ts +21 -0
  88. package/src/components/customers/create-customer-form/locales/fi.ts +21 -0
  89. package/src/components/customers/create-customer-form/locales/hr.ts +11 -11
  90. package/src/components/customers/create-customer-form/locales/is.ts +21 -0
  91. package/src/components/customers/create-customer-form/locales/nb.ts +21 -0
  92. package/src/components/customers/create-customer-form/locales/sk.ts +21 -0
  93. package/src/components/customers/create-customer-form/locales/sv.ts +21 -0
  94. package/src/components/customers/customer-autocomplete.tsx +32 -4
  95. package/src/components/customers/customer-list-table/customer-list-table.tsx +8 -6
  96. package/src/components/customers/customer-list-table/locales/bg.ts +25 -0
  97. package/src/components/customers/customer-list-table/locales/cs.ts +25 -0
  98. package/src/components/customers/customer-list-table/locales/en.ts +17 -2
  99. package/src/components/customers/customer-list-table/locales/et.ts +25 -0
  100. package/src/components/customers/customer-list-table/locales/fi.ts +25 -0
  101. package/src/components/customers/customer-list-table/locales/hr.ts +11 -11
  102. package/src/components/customers/customer-list-table/locales/is.ts +25 -0
  103. package/src/components/customers/customer-list-table/locales/nb.ts +25 -0
  104. package/src/components/customers/customer-list-table/locales/sk.ts +25 -0
  105. package/src/components/customers/customer-list-table/locales/sv.ts +25 -0
  106. package/src/components/customers/customers.hooks.ts +14 -17
  107. package/src/components/customers/edit-customer-form/locales/bg.ts +13 -0
  108. package/src/components/customers/edit-customer-form/locales/cs.ts +13 -0
  109. package/src/components/customers/edit-customer-form/locales/en.ts +13 -0
  110. package/src/components/customers/edit-customer-form/locales/et.ts +13 -0
  111. package/src/components/customers/edit-customer-form/locales/fi.ts +13 -0
  112. package/src/components/customers/edit-customer-form/locales/hr.ts +5 -5
  113. package/src/components/customers/edit-customer-form/locales/is.ts +13 -0
  114. package/src/components/customers/edit-customer-form/locales/nb.ts +13 -0
  115. package/src/components/customers/edit-customer-form/locales/sk.ts +13 -0
  116. package/src/components/customers/edit-customer-form/locales/sv.ts +13 -0
  117. package/src/components/dashboard/collection-rate-card/collection-rate-card.tsx +7 -6
  118. package/src/components/dashboard/collection-rate-card/locales/en.ts +3 -0
  119. package/src/components/dashboard/collection-rate-card/use-collection-rate.ts +8 -7
  120. package/src/components/dashboard/invoice-status-chart/invoice-status-chart.tsx +7 -4
  121. package/src/components/dashboard/invoice-status-chart/locales/bg.ts +5 -5
  122. package/src/components/dashboard/invoice-status-chart/locales/cs.ts +5 -5
  123. package/src/components/dashboard/invoice-status-chart/locales/de.ts +1 -1
  124. package/src/components/dashboard/invoice-status-chart/locales/en.ts +10 -0
  125. package/src/components/dashboard/invoice-status-chart/locales/es.ts +1 -1
  126. package/src/components/dashboard/invoice-status-chart/locales/et.ts +5 -5
  127. package/src/components/dashboard/invoice-status-chart/locales/fi.ts +5 -5
  128. package/src/components/dashboard/invoice-status-chart/locales/fr.ts +1 -1
  129. package/src/components/dashboard/invoice-status-chart/locales/hr.ts +5 -5
  130. package/src/components/dashboard/invoice-status-chart/locales/is.ts +5 -5
  131. package/src/components/dashboard/invoice-status-chart/locales/it.ts +1 -1
  132. package/src/components/dashboard/invoice-status-chart/locales/nb.ts +5 -5
  133. package/src/components/dashboard/invoice-status-chart/locales/nl.ts +1 -1
  134. package/src/components/dashboard/invoice-status-chart/locales/pl.ts +1 -1
  135. package/src/components/dashboard/invoice-status-chart/locales/pt.ts +1 -1
  136. package/src/components/dashboard/invoice-status-chart/locales/sk.ts +5 -5
  137. package/src/components/dashboard/invoice-status-chart/locales/sl.ts +1 -1
  138. package/src/components/dashboard/invoice-status-chart/locales/sv.ts +5 -5
  139. package/src/components/dashboard/payment-methods-chart/locales/bg.ts +5 -5
  140. package/src/components/dashboard/payment-methods-chart/locales/cs.ts +5 -5
  141. package/src/components/dashboard/payment-methods-chart/locales/en.ts +12 -0
  142. package/src/components/dashboard/payment-methods-chart/locales/et.ts +5 -5
  143. package/src/components/dashboard/payment-methods-chart/locales/fi.ts +6 -6
  144. package/src/components/dashboard/payment-methods-chart/locales/hr.ts +3 -3
  145. package/src/components/dashboard/payment-methods-chart/locales/is.ts +5 -5
  146. package/src/components/dashboard/payment-methods-chart/locales/nb.ts +5 -5
  147. package/src/components/dashboard/payment-methods-chart/locales/sk.ts +5 -5
  148. package/src/components/dashboard/payment-methods-chart/locales/sv.ts +5 -5
  149. package/src/components/dashboard/payment-methods-chart/payment-methods-chart.tsx +4 -3
  150. package/src/components/dashboard/payment-trend-chart/locales/bg.ts +1 -1
  151. package/src/components/dashboard/payment-trend-chart/locales/cs.ts +1 -1
  152. package/src/components/dashboard/payment-trend-chart/locales/en.ts +6 -0
  153. package/src/components/dashboard/payment-trend-chart/locales/et.ts +1 -1
  154. package/src/components/dashboard/payment-trend-chart/locales/fi.ts +1 -1
  155. package/src/components/dashboard/payment-trend-chart/locales/is.ts +1 -1
  156. package/src/components/dashboard/payment-trend-chart/locales/nb.ts +1 -1
  157. package/src/components/dashboard/payment-trend-chart/locales/sk.ts +1 -1
  158. package/src/components/dashboard/payment-trend-chart/locales/sv.ts +1 -1
  159. package/src/components/dashboard/payment-trend-chart/payment-trend-chart.tsx +4 -3
  160. package/src/components/dashboard/payment-trend-chart/use-payment-trend.ts +12 -9
  161. package/src/components/dashboard/revenue-card.tsx +3 -3
  162. package/src/components/dashboard/revenue-trend-chart/locales/bg.ts +1 -1
  163. package/src/components/dashboard/revenue-trend-chart/locales/cs.ts +1 -1
  164. package/src/components/dashboard/revenue-trend-chart/locales/en.ts +6 -0
  165. package/src/components/dashboard/revenue-trend-chart/locales/et.ts +1 -1
  166. package/src/components/dashboard/revenue-trend-chart/locales/fi.ts +1 -1
  167. package/src/components/dashboard/revenue-trend-chart/locales/is.ts +1 -1
  168. package/src/components/dashboard/revenue-trend-chart/locales/nb.ts +1 -1
  169. package/src/components/dashboard/revenue-trend-chart/locales/sk.ts +1 -1
  170. package/src/components/dashboard/revenue-trend-chart/locales/sv.ts +1 -1
  171. package/src/components/dashboard/revenue-trend-chart/revenue-trend-chart.tsx +4 -3
  172. package/src/components/dashboard/revenue-trend-chart/use-revenue-trend.ts +4 -3
  173. package/src/components/dashboard/shared/local-date.ts +11 -0
  174. package/src/components/dashboard/shared/use-revenue-data.ts +6 -5
  175. package/src/components/dashboard/shared/use-stats-query.ts +7 -11
  176. package/src/components/dashboard/stat-card.tsx +3 -3
  177. package/src/components/dashboard/tax-collected-card/tax-collected-card.tsx +11 -9
  178. package/src/components/dashboard/tax-collected-card/use-tax-collected.ts +3 -2
  179. package/src/components/dashboard/top-customers-chart/locales/bg.ts +2 -2
  180. package/src/components/dashboard/top-customers-chart/locales/cs.ts +2 -2
  181. package/src/components/dashboard/top-customers-chart/locales/en.ts +7 -0
  182. package/src/components/dashboard/top-customers-chart/locales/et.ts +2 -2
  183. package/src/components/dashboard/top-customers-chart/locales/fi.ts +2 -2
  184. package/src/components/dashboard/top-customers-chart/locales/is.ts +2 -2
  185. package/src/components/dashboard/top-customers-chart/locales/nb.ts +2 -2
  186. package/src/components/dashboard/top-customers-chart/locales/sk.ts +2 -2
  187. package/src/components/dashboard/top-customers-chart/locales/sv.ts +2 -2
  188. package/src/components/dashboard/top-customers-chart/top-customers-chart.tsx +4 -3
  189. package/src/components/dashboard/top-customers-chart/use-top-customers.ts +7 -20
  190. package/src/components/delivery-notes/create/create-delivery-note-form.tsx +179 -47
  191. package/src/components/delivery-notes/create/locales/bg.ts +69 -0
  192. package/src/components/delivery-notes/create/locales/cs.ts +69 -0
  193. package/src/components/delivery-notes/create/locales/de.ts +1 -0
  194. package/src/components/delivery-notes/create/locales/en.ts +69 -0
  195. package/src/components/delivery-notes/create/locales/es.ts +1 -0
  196. package/src/components/delivery-notes/create/locales/et.ts +69 -0
  197. package/src/components/delivery-notes/create/locales/fi.ts +69 -0
  198. package/src/components/delivery-notes/create/locales/fr.ts +1 -0
  199. package/src/components/delivery-notes/create/locales/hr.ts +7 -6
  200. package/src/components/delivery-notes/create/locales/is.ts +69 -0
  201. package/src/components/delivery-notes/create/locales/it.ts +1 -0
  202. package/src/components/delivery-notes/create/locales/nb.ts +69 -0
  203. package/src/components/delivery-notes/create/locales/nl.ts +1 -0
  204. package/src/components/delivery-notes/create/locales/pl.ts +1 -0
  205. package/src/components/delivery-notes/create/locales/pt.ts +1 -0
  206. package/src/components/delivery-notes/create/locales/sk.ts +69 -0
  207. package/src/components/delivery-notes/create/locales/sl.ts +6 -5
  208. package/src/components/delivery-notes/create/locales/sv.ts +69 -0
  209. package/src/components/delivery-notes/create/prepare-delivery-note-submission.ts +34 -1
  210. package/src/components/delivery-notes/delivery-notes.hooks.ts +34 -3
  211. package/src/components/delivery-notes/list/list-row-actions.tsx +62 -16
  212. package/src/components/delivery-notes/list/list-table.tsx +44 -10
  213. package/src/components/delivery-notes/list/locales/bg.ts +40 -0
  214. package/src/components/delivery-notes/list/locales/cs.ts +40 -0
  215. package/src/components/delivery-notes/list/locales/et.ts +40 -0
  216. package/src/components/delivery-notes/list/locales/fi.ts +40 -0
  217. package/src/components/delivery-notes/list/locales/is.ts +40 -0
  218. package/src/components/delivery-notes/list/locales/nb.ts +40 -0
  219. package/src/components/delivery-notes/list/locales/sk.ts +40 -0
  220. package/src/components/delivery-notes/list/locales/sv.ts +40 -0
  221. package/src/components/delivery-notes/list/use-delivery-note-download.ts +3 -5
  222. package/src/components/documents/create/custom-create-template.ts +114 -0
  223. package/src/components/documents/create/document-add-item-form.tsx +266 -153
  224. package/src/components/documents/create/document-add-item-tax-rate-field.tsx +3 -3
  225. package/src/components/documents/create/document-date-validation.ts +111 -0
  226. package/src/components/documents/create/document-details-section.tsx +117 -54
  227. package/src/components/documents/create/document-form-item.ts +67 -0
  228. package/src/components/documents/create/document-item-validation.ts +54 -0
  229. package/src/components/documents/create/document-items-section.tsx +44 -6
  230. package/src/components/documents/create/document-recipient-section.tsx +10 -2
  231. package/src/components/documents/create/form-types.ts +2 -2
  232. package/src/components/documents/create/linked-documents-info.tsx +6 -14
  233. package/src/components/documents/create/live-preview.tsx +22 -18
  234. package/src/components/documents/create/mark-as-paid-section.tsx +80 -20
  235. package/src/components/documents/create/payment-rows.ts +321 -0
  236. package/src/components/documents/create/prepare-document-submission.ts +160 -109
  237. package/src/components/documents/create/prepare-preview-data.ts +12 -0
  238. package/src/components/documents/create/preserved-expected-total.ts +90 -0
  239. package/src/components/documents/create/scroll-to-first-invalid-field.ts +27 -0
  240. package/src/components/documents/create/smart-code-insert-button.tsx +5 -53
  241. package/src/components/documents/create/use-document-customer-form.ts +74 -25
  242. package/src/components/documents/documents.hooks.ts +3 -5
  243. package/src/components/documents/index.ts +1 -0
  244. package/src/components/documents/public/index.ts +1 -0
  245. package/src/components/documents/public/public-document-summary.tsx +336 -0
  246. package/src/components/documents/shared/document-preview-display.tsx +65 -39
  247. package/src/components/documents/shared/index.ts +6 -1
  248. package/src/components/documents/shared/scaled-document-preview.tsx +33 -19
  249. package/src/components/documents/types.ts +24 -0
  250. package/src/components/documents/view/document-actions-bar.tsx +251 -63
  251. package/src/components/documents/view/document-activities-list.tsx +23 -11
  252. package/src/components/documents/view/document-details-card.tsx +11 -39
  253. package/src/components/documents/view/document-payments-list.tsx +114 -57
  254. package/src/components/documents/view/document-relations-list.tsx +26 -6
  255. package/src/components/documents/view/document-sidebar.tsx +25 -3
  256. package/src/components/documents/view/document-version-history.tsx +137 -0
  257. package/src/components/documents/view/index.ts +1 -0
  258. package/src/components/documents/view/locales/bg.ts +143 -0
  259. package/src/components/documents/view/locales/cs.ts +143 -0
  260. package/src/components/documents/view/locales/de.ts +13 -0
  261. package/src/components/documents/view/locales/en.ts +143 -0
  262. package/src/components/documents/view/locales/es.ts +13 -0
  263. package/src/components/documents/view/locales/et.ts +143 -0
  264. package/src/components/documents/view/locales/fi.ts +143 -0
  265. package/src/components/documents/view/locales/fr.ts +13 -0
  266. package/src/components/documents/view/locales/hr.ts +18 -5
  267. package/src/components/documents/view/locales/is.ts +143 -0
  268. package/src/components/documents/view/locales/it.ts +13 -0
  269. package/src/components/documents/view/locales/nb.ts +143 -0
  270. package/src/components/documents/view/locales/nl.ts +13 -0
  271. package/src/components/documents/view/locales/pl.ts +13 -0
  272. package/src/components/documents/view/locales/pt.ts +13 -0
  273. package/src/components/documents/view/locales/sk.ts +143 -0
  274. package/src/components/documents/view/locales/sl.ts +21 -8
  275. package/src/components/documents/view/locales/sv.ts +143 -0
  276. package/src/components/documents/view/use-document-download.ts +18 -17
  277. package/src/components/entities/create-entity-form.tsx +200 -12
  278. package/src/components/entities/entities.hooks.ts +15 -7
  279. package/src/components/entities/entity-settings-form/entity-settings-form.tsx +121 -65
  280. package/src/components/entities/entity-settings-form/input-with-preview.tsx +28 -4
  281. package/src/components/entities/entity-settings-form/locales/bg.ts +206 -0
  282. package/src/components/entities/entity-settings-form/locales/cs.ts +206 -0
  283. package/src/components/entities/entity-settings-form/locales/de.ts +17 -3
  284. package/src/components/entities/entity-settings-form/locales/en.ts +206 -0
  285. package/src/components/entities/entity-settings-form/locales/es.ts +15 -3
  286. package/src/components/entities/entity-settings-form/locales/et.ts +205 -0
  287. package/src/components/entities/entity-settings-form/locales/fi.ts +206 -0
  288. package/src/components/entities/entity-settings-form/locales/fr.ts +15 -3
  289. package/src/components/entities/entity-settings-form/locales/hr.ts +23 -11
  290. package/src/components/entities/entity-settings-form/locales/is.ts +206 -0
  291. package/src/components/entities/entity-settings-form/locales/it.ts +15 -3
  292. package/src/components/entities/entity-settings-form/locales/nb.ts +206 -0
  293. package/src/components/entities/entity-settings-form/locales/nl.ts +15 -3
  294. package/src/components/entities/entity-settings-form/locales/pl.ts +15 -3
  295. package/src/components/entities/entity-settings-form/locales/pt.ts +15 -3
  296. package/src/components/entities/entity-settings-form/locales/sk.ts +206 -0
  297. package/src/components/entities/entity-settings-form/locales/sl.ts +31 -18
  298. package/src/components/entities/entity-settings-form/locales/sv.ts +212 -0
  299. package/src/components/entities/fina-settings-form/fina-operator-required-dialog.tsx +34 -9
  300. package/src/components/entities/fina-settings-form/fina-settings-form.tsx +2 -0
  301. package/src/components/entities/fina-settings-form/fina-settings.hooks.ts +14 -45
  302. package/src/components/entities/fina-settings-form/locales/bg.ts +163 -0
  303. package/src/components/entities/fina-settings-form/locales/cs.ts +163 -0
  304. package/src/components/entities/fina-settings-form/locales/et.ts +163 -0
  305. package/src/components/entities/fina-settings-form/locales/fi.ts +163 -0
  306. package/src/components/entities/fina-settings-form/locales/hr.ts +11 -10
  307. package/src/components/entities/fina-settings-form/locales/is.ts +164 -0
  308. package/src/components/entities/fina-settings-form/locales/nb.ts +163 -0
  309. package/src/components/entities/fina-settings-form/locales/sk.ts +163 -0
  310. package/src/components/entities/fina-settings-form/locales/sl.ts +8 -7
  311. package/src/components/entities/fina-settings-form/locales/sv.ts +165 -0
  312. package/src/components/entities/furs-settings-form/furs-operator-required-dialog.tsx +34 -9
  313. package/src/components/entities/furs-settings-form/furs-settings-form.tsx +13 -1
  314. package/src/components/entities/furs-settings-form/furs-settings.hooks.ts +141 -42
  315. package/src/components/entities/furs-settings-form/locales/bg.ts +242 -0
  316. package/src/components/entities/furs-settings-form/locales/cs.ts +241 -0
  317. package/src/components/entities/furs-settings-form/locales/de.ts +42 -15
  318. package/src/components/entities/furs-settings-form/locales/en.ts +24 -0
  319. package/src/components/entities/furs-settings-form/locales/es.ts +42 -15
  320. package/src/components/entities/furs-settings-form/locales/et.ts +242 -0
  321. package/src/components/entities/furs-settings-form/locales/fi.ts +243 -0
  322. package/src/components/entities/furs-settings-form/locales/fr.ts +43 -15
  323. package/src/components/entities/furs-settings-form/locales/hr.ts +44 -19
  324. package/src/components/entities/furs-settings-form/locales/is.ts +242 -0
  325. package/src/components/entities/furs-settings-form/locales/it.ts +42 -15
  326. package/src/components/entities/furs-settings-form/locales/nb.ts +242 -0
  327. package/src/components/entities/furs-settings-form/locales/nl.ts +42 -15
  328. package/src/components/entities/furs-settings-form/locales/pl.ts +40 -15
  329. package/src/components/entities/furs-settings-form/locales/pt.ts +42 -15
  330. package/src/components/entities/furs-settings-form/locales/sk.ts +243 -0
  331. package/src/components/entities/furs-settings-form/locales/sl.ts +34 -10
  332. package/src/components/entities/furs-settings-form/locales/sv.ts +242 -0
  333. package/src/components/entities/furs-settings-form/sections/enable-fiscalization-section.tsx +11 -0
  334. package/src/components/entities/furs-settings-form/sections/furs-internal-act-download-card.tsx +111 -0
  335. package/src/components/entities/furs-settings-form/sections/general-settings-section.tsx +27 -0
  336. package/src/components/entities/furs-settings-form/sections/premises-management-section.tsx +23 -16
  337. package/src/components/entities/furs-settings-form/sections/register-premise-dialog.tsx +89 -31
  338. package/src/components/entities/settings/branding-settings-form.tsx +11 -30
  339. package/src/components/entities/settings/company-settings-form.tsx +2 -1
  340. package/src/components/entities/settings/defaults-settings-form.tsx +106 -3
  341. package/src/components/entities/settings/email-settings-form.tsx +245 -3
  342. package/src/components/entities/settings/eslog-settings-form.tsx +2 -1
  343. package/src/components/entities/settings/number-format-settings-form.tsx +2 -1
  344. package/src/components/entities/settings/pdf-template-selector/locales/bg.ts +20 -0
  345. package/src/components/entities/settings/pdf-template-selector/locales/cs.ts +20 -0
  346. package/src/components/entities/settings/pdf-template-selector/locales/en.ts +20 -0
  347. package/src/components/entities/settings/pdf-template-selector/locales/et.ts +19 -0
  348. package/src/components/entities/settings/pdf-template-selector/locales/fi.ts +20 -0
  349. package/src/components/entities/settings/pdf-template-selector/locales/is.ts +19 -0
  350. package/src/components/entities/settings/pdf-template-selector/locales/nb.ts +19 -0
  351. package/src/components/entities/settings/pdf-template-selector/locales/sk.ts +20 -0
  352. package/src/components/entities/settings/pdf-template-selector/locales/sv.ts +19 -0
  353. package/src/components/entities/settings/tax-rules-settings-form.tsx +57 -6
  354. package/src/components/estimates/create/create-estimate-form.tsx +250 -66
  355. package/src/components/estimates/create/locales/bg.ts +77 -0
  356. package/src/components/estimates/create/locales/cs.ts +77 -0
  357. package/src/components/estimates/create/locales/de.ts +4 -3
  358. package/src/components/estimates/create/locales/en.ts +77 -0
  359. package/src/components/estimates/create/locales/es.ts +4 -3
  360. package/src/components/estimates/create/locales/et.ts +77 -0
  361. package/src/components/estimates/create/locales/fi.ts +77 -0
  362. package/src/components/estimates/create/locales/fr.ts +4 -3
  363. package/src/components/estimates/create/locales/hr.ts +13 -12
  364. package/src/components/estimates/create/locales/is.ts +77 -0
  365. package/src/components/estimates/create/locales/it.ts +4 -3
  366. package/src/components/estimates/create/locales/nb.ts +77 -0
  367. package/src/components/estimates/create/locales/nl.ts +4 -3
  368. package/src/components/estimates/create/locales/pl.ts +4 -3
  369. package/src/components/estimates/create/locales/pt.ts +4 -3
  370. package/src/components/estimates/create/locales/sk.ts +77 -0
  371. package/src/components/estimates/create/locales/sl.ts +13 -12
  372. package/src/components/estimates/create/locales/sv.ts +77 -0
  373. package/src/components/estimates/create/prepare-estimate-submission.ts +41 -4
  374. package/src/components/estimates/estimates.hooks.ts +24 -3
  375. package/src/components/estimates/list/list-row-actions.tsx +34 -7
  376. package/src/components/estimates/list/list-table.tsx +89 -11
  377. package/src/components/estimates/list/locales/bg.ts +40 -0
  378. package/src/components/estimates/list/locales/cs.ts +40 -0
  379. package/src/components/estimates/list/locales/de.ts +2 -0
  380. package/src/components/estimates/list/locales/en.ts +29 -2
  381. package/src/components/estimates/list/locales/es.ts +2 -0
  382. package/src/components/estimates/list/locales/et.ts +40 -0
  383. package/src/components/estimates/list/locales/fi.ts +40 -0
  384. package/src/components/estimates/list/locales/fr.ts +2 -0
  385. package/src/components/estimates/list/locales/hr.ts +9 -7
  386. package/src/components/estimates/list/locales/is.ts +40 -0
  387. package/src/components/estimates/list/locales/it.ts +2 -0
  388. package/src/components/estimates/list/locales/nb.ts +40 -0
  389. package/src/components/estimates/list/locales/nl.ts +2 -0
  390. package/src/components/estimates/list/locales/pl.ts +2 -0
  391. package/src/components/estimates/list/locales/pt.ts +2 -0
  392. package/src/components/estimates/list/locales/sk.ts +40 -0
  393. package/src/components/estimates/list/locales/sl.ts +9 -7
  394. package/src/components/estimates/list/locales/sv.ts +40 -0
  395. package/src/components/estimates/list/use-estimate-download.ts +3 -5
  396. package/src/components/export/document-export-form.tsx +72 -15
  397. package/src/components/export/sales-per-item-export-form.tsx +3 -2
  398. package/src/components/invoices/create/create-invoice-form.tsx +500 -112
  399. package/src/components/invoices/create/eslog-validation.ts +97 -8
  400. package/src/components/invoices/create/locales/bg.ts +173 -0
  401. package/src/components/invoices/create/locales/cs.ts +173 -0
  402. package/src/components/invoices/create/locales/de.ts +41 -9
  403. package/src/components/invoices/create/locales/en.ts +173 -0
  404. package/src/components/invoices/create/locales/es.ts +42 -9
  405. package/src/components/invoices/create/locales/et.ts +173 -0
  406. package/src/components/invoices/create/locales/fi.ts +173 -0
  407. package/src/components/invoices/create/locales/fr.ts +42 -11
  408. package/src/components/invoices/create/locales/hr.ts +50 -18
  409. package/src/components/invoices/create/locales/is.ts +173 -0
  410. package/src/components/invoices/create/locales/it.ts +43 -11
  411. package/src/components/invoices/create/locales/nb.ts +173 -0
  412. package/src/components/invoices/create/locales/nl.ts +42 -10
  413. package/src/components/invoices/create/locales/pl.ts +42 -11
  414. package/src/components/invoices/create/locales/pt.ts +43 -10
  415. package/src/components/invoices/create/locales/sk.ts +173 -0
  416. package/src/components/invoices/create/locales/sl.ts +49 -18
  417. package/src/components/invoices/create/locales/sv.ts +175 -0
  418. package/src/components/invoices/create/prepare-invoice-submission.ts +73 -2
  419. package/src/components/invoices/invoices-furs.hooks.ts +11 -8
  420. package/src/components/invoices/invoices.hooks.ts +36 -10
  421. package/src/components/invoices/list/list-row-actions.tsx +54 -21
  422. package/src/components/invoices/list/list-table.tsx +94 -12
  423. package/src/components/invoices/list/locales/bg.ts +49 -0
  424. package/src/components/invoices/list/locales/cs.ts +49 -0
  425. package/src/components/invoices/list/locales/en.ts +34 -2
  426. package/src/components/invoices/list/locales/et.ts +49 -0
  427. package/src/components/invoices/list/locales/fi.ts +49 -0
  428. package/src/components/invoices/list/locales/is.ts +49 -0
  429. package/src/components/invoices/list/locales/nb.ts +49 -0
  430. package/src/components/invoices/list/locales/sk.ts +49 -0
  431. package/src/components/invoices/list/locales/sv.ts +49 -0
  432. package/src/components/invoices/list/use-invoice-download.ts +3 -5
  433. package/src/components/invoices/send-email-dialog/locales/bg.ts +63 -0
  434. package/src/components/invoices/send-email-dialog/locales/cs.ts +63 -0
  435. package/src/components/invoices/send-email-dialog/locales/de.ts +26 -0
  436. package/src/components/invoices/send-email-dialog/locales/en.ts +63 -0
  437. package/src/components/invoices/send-email-dialog/locales/es.ts +26 -0
  438. package/src/components/invoices/send-email-dialog/locales/et.ts +63 -0
  439. package/src/components/invoices/send-email-dialog/locales/fi.ts +63 -0
  440. package/src/components/invoices/send-email-dialog/locales/fr.ts +26 -0
  441. package/src/components/invoices/send-email-dialog/locales/hr.ts +26 -0
  442. package/src/components/invoices/send-email-dialog/locales/is.ts +63 -0
  443. package/src/components/invoices/send-email-dialog/locales/it.ts +26 -0
  444. package/src/components/invoices/send-email-dialog/locales/nb.ts +63 -0
  445. package/src/components/invoices/send-email-dialog/locales/nl.ts +26 -0
  446. package/src/components/invoices/send-email-dialog/locales/pl.ts +26 -0
  447. package/src/components/invoices/send-email-dialog/locales/pt.ts +26 -0
  448. package/src/components/invoices/send-email-dialog/locales/sk.ts +63 -0
  449. package/src/components/invoices/send-email-dialog/locales/sl.ts +26 -0
  450. package/src/components/invoices/send-email-dialog/locales/sv.ts +63 -0
  451. package/src/components/invoices/send-email-dialog/send-email-dialog.tsx +189 -93
  452. package/src/components/invoices/view/eslog-info-display.tsx +2 -0
  453. package/src/components/invoices/view/fiscalization-status-card.tsx +2 -0
  454. package/src/components/items/create-item-form/create-item-form.tsx +29 -0
  455. package/src/components/items/create-item-form/locales/bg.ts +13 -0
  456. package/src/components/items/create-item-form/locales/cs.ts +13 -0
  457. package/src/components/items/create-item-form/locales/et.ts +13 -0
  458. package/src/components/items/create-item-form/locales/fi.ts +13 -0
  459. package/src/components/items/create-item-form/locales/is.ts +13 -0
  460. package/src/components/items/create-item-form/locales/nb.ts +13 -0
  461. package/src/components/items/create-item-form/locales/sk.ts +13 -0
  462. package/src/components/items/create-item-form/locales/sv.ts +13 -0
  463. package/src/components/items/edit-item-form/edit-item-form.tsx +39 -1
  464. package/src/components/items/edit-item-form/locales/bg.ts +12 -0
  465. package/src/components/items/edit-item-form/locales/cs.ts +12 -0
  466. package/src/components/items/edit-item-form/locales/en.ts +12 -0
  467. package/src/components/items/edit-item-form/locales/et.ts +12 -0
  468. package/src/components/items/edit-item-form/locales/fi.ts +12 -0
  469. package/src/components/items/edit-item-form/locales/is.ts +12 -0
  470. package/src/components/items/edit-item-form/locales/nb.ts +12 -0
  471. package/src/components/items/edit-item-form/locales/sk.ts +12 -0
  472. package/src/components/items/edit-item-form/locales/sv.ts +12 -0
  473. package/src/components/items/item-combobox.tsx +55 -22
  474. package/src/components/items/item-list-table/item-list-table.tsx +47 -23
  475. package/src/components/items/item-list-table/locales/bg.ts +16 -0
  476. package/src/components/items/item-list-table/locales/cs.ts +16 -0
  477. package/src/components/items/item-list-table/locales/en.ts +4 -3
  478. package/src/components/items/item-list-table/locales/et.ts +16 -0
  479. package/src/components/items/item-list-table/locales/fi.ts +16 -0
  480. package/src/components/items/item-list-table/locales/is.ts +16 -0
  481. package/src/components/items/item-list-table/locales/nb.ts +16 -0
  482. package/src/components/items/item-list-table/locales/sk.ts +16 -0
  483. package/src/components/items/item-list-table/locales/sv.ts +16 -0
  484. package/src/components/items/items.hooks.ts +15 -15
  485. package/src/components/payments/create-payment-form/create-payment-form.tsx +16 -9
  486. package/src/components/payments/create-payment-form/locales/bg.ts +20 -0
  487. package/src/components/payments/create-payment-form/locales/cs.ts +20 -0
  488. package/src/components/payments/create-payment-form/locales/en.ts +20 -0
  489. package/src/components/payments/create-payment-form/locales/et.ts +20 -0
  490. package/src/components/payments/create-payment-form/locales/fi.ts +20 -0
  491. package/src/components/payments/create-payment-form/locales/hr.ts +2 -2
  492. package/src/components/payments/create-payment-form/locales/is.ts +20 -0
  493. package/src/components/payments/create-payment-form/locales/nb.ts +20 -0
  494. package/src/components/payments/create-payment-form/locales/sk.ts +20 -0
  495. package/src/components/payments/create-payment-form/locales/sl.ts +4 -4
  496. package/src/components/payments/create-payment-form/locales/sv.ts +20 -0
  497. package/src/components/payments/edit-payment-form/edit-payment-form.tsx +10 -2
  498. package/src/components/payments/edit-payment-form/locales/bg.ts +20 -0
  499. package/src/components/payments/edit-payment-form/locales/cs.ts +20 -0
  500. package/src/components/payments/edit-payment-form/locales/en.ts +20 -0
  501. package/src/components/payments/edit-payment-form/locales/et.ts +20 -0
  502. package/src/components/payments/edit-payment-form/locales/fi.ts +20 -0
  503. package/src/components/payments/edit-payment-form/locales/hr.ts +2 -2
  504. package/src/components/payments/edit-payment-form/locales/is.ts +20 -0
  505. package/src/components/payments/edit-payment-form/locales/nb.ts +20 -0
  506. package/src/components/payments/edit-payment-form/locales/sk.ts +20 -0
  507. package/src/components/payments/edit-payment-form/locales/sl.ts +4 -4
  508. package/src/components/payments/edit-payment-form/locales/sv.ts +20 -0
  509. package/src/components/payments/list/list-row-actions.tsx +10 -2
  510. package/src/components/payments/list/list-table.tsx +51 -45
  511. package/src/components/payments/list/locales/bg.ts +42 -0
  512. package/src/components/payments/list/locales/cs.ts +42 -0
  513. package/src/components/payments/list/locales/de.ts +18 -0
  514. package/src/components/payments/list/locales/en.ts +37 -2
  515. package/src/components/payments/list/locales/es.ts +18 -0
  516. package/src/components/payments/list/locales/et.ts +42 -0
  517. package/src/components/payments/list/locales/fi.ts +42 -0
  518. package/src/components/payments/list/locales/fr.ts +18 -0
  519. package/src/components/payments/list/locales/hr.ts +18 -0
  520. package/src/components/payments/list/locales/is.ts +42 -0
  521. package/src/components/payments/list/locales/it.ts +18 -0
  522. package/src/components/payments/list/locales/nb.ts +42 -0
  523. package/src/components/payments/list/locales/nl.ts +18 -0
  524. package/src/components/payments/list/locales/pl.ts +18 -0
  525. package/src/components/payments/list/locales/pt.ts +18 -0
  526. package/src/components/payments/list/locales/sk.ts +42 -0
  527. package/src/components/payments/list/locales/sl.ts +18 -1
  528. package/src/components/payments/list/locales/sv.ts +42 -0
  529. package/src/components/payments/payments.hooks.ts +13 -6
  530. package/src/components/recurring-invoices/create-recurring-invoice-form/create-recurring-invoice-form.tsx +121 -39
  531. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/bg.ts +44 -0
  532. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/cs.ts +44 -0
  533. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/en.ts +44 -0
  534. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/et.ts +44 -0
  535. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/fi.ts +44 -0
  536. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/hr.ts +6 -6
  537. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/is.ts +44 -0
  538. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/nb.ts +44 -0
  539. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sk.ts +44 -0
  540. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sl.ts +4 -4
  541. package/src/components/recurring-invoices/create-recurring-invoice-form/locales/sv.ts +44 -0
  542. package/src/components/recurring-invoices/list/list-row-actions.tsx +12 -6
  543. package/src/components/recurring-invoices/list/list-table.tsx +63 -12
  544. package/src/components/recurring-invoices/list/locales/bg.ts +32 -0
  545. package/src/components/recurring-invoices/list/locales/cs.ts +32 -0
  546. package/src/components/recurring-invoices/list/locales/de.ts +4 -0
  547. package/src/components/recurring-invoices/list/locales/en.ts +27 -0
  548. package/src/components/recurring-invoices/list/locales/es.ts +4 -0
  549. package/src/components/recurring-invoices/list/locales/et.ts +32 -0
  550. package/src/components/recurring-invoices/list/locales/fi.ts +32 -0
  551. package/src/components/recurring-invoices/list/locales/fr.ts +4 -0
  552. package/src/components/recurring-invoices/list/locales/hr.ts +4 -0
  553. package/src/components/recurring-invoices/list/locales/is.ts +32 -0
  554. package/src/components/recurring-invoices/list/locales/it.ts +4 -0
  555. package/src/components/recurring-invoices/list/locales/nb.ts +32 -0
  556. package/src/components/recurring-invoices/list/locales/nl.ts +4 -0
  557. package/src/components/recurring-invoices/list/locales/pl.ts +4 -0
  558. package/src/components/recurring-invoices/list/locales/pt.ts +4 -0
  559. package/src/components/recurring-invoices/list/locales/sk.ts +32 -0
  560. package/src/components/recurring-invoices/list/locales/sl.ts +4 -0
  561. package/src/components/recurring-invoices/list/locales/sv.ts +32 -0
  562. package/src/components/recurring-invoices/recurring-invoices.hooks.ts +11 -8
  563. package/src/components/request-logs/request-log-detail.tsx +30 -23
  564. package/src/components/request-logs/request-log-list-table.tsx +88 -45
  565. package/src/components/table/README.md +47 -9
  566. package/src/components/table/data-table.tsx +232 -92
  567. package/src/components/table/filter-bar.tsx +1 -1
  568. package/src/components/table/filter-panel.tsx +51 -22
  569. package/src/components/table/hooks/use-table-state.ts +64 -11
  570. package/src/components/table/index.ts +3 -0
  571. package/src/components/table/locales.ts +119 -4
  572. package/src/components/table/selection-toolbar.tsx +65 -9
  573. package/src/components/table/sorting.ts +80 -0
  574. package/src/components/table/table-skeleton.tsx +15 -9
  575. package/src/components/table/types.ts +17 -0
  576. package/src/components/tax-reports/index.ts +8 -0
  577. package/src/components/tax-reports/kir-export-form.tsx +4 -5
  578. package/src/components/tax-reports/slovenia-accounting-mappings-fields.tsx +271 -0
  579. package/src/components/tax-reports/slovenia-tax-profile-step.tsx +25 -11
  580. package/src/components/tax-reports/slovenia-vod-export-form.tsx +452 -0
  581. package/src/components/tax-reports/slovenia-yearly-export-form.tsx +20 -16
  582. package/src/components/tax-reports/slovenia-yearly-review-step.tsx +42 -19
  583. package/src/components/taxes/create-tax-form/create-tax-form.tsx +48 -2
  584. package/src/components/taxes/create-tax-form/locales/bg.ts +8 -0
  585. package/src/components/taxes/create-tax-form/locales/cs.ts +8 -0
  586. package/src/components/taxes/create-tax-form/locales/et.ts +8 -0
  587. package/src/components/taxes/create-tax-form/locales/fi.ts +8 -0
  588. package/src/components/taxes/create-tax-form/locales/is.ts +8 -0
  589. package/src/components/taxes/create-tax-form/locales/nb.ts +8 -0
  590. package/src/components/taxes/create-tax-form/locales/sk.ts +8 -0
  591. package/src/components/taxes/create-tax-form/locales/sv.ts +8 -0
  592. package/src/components/taxes/edit-tax-form/edit-tax-form.tsx +80 -11
  593. package/src/components/taxes/edit-tax-form/locales/bg.ts +6 -0
  594. package/src/components/taxes/edit-tax-form/locales/cs.ts +6 -0
  595. package/src/components/taxes/edit-tax-form/locales/en.ts +6 -0
  596. package/src/components/taxes/edit-tax-form/locales/et.ts +6 -0
  597. package/src/components/taxes/edit-tax-form/locales/fi.ts +6 -0
  598. package/src/components/taxes/edit-tax-form/locales/is.ts +6 -0
  599. package/src/components/taxes/edit-tax-form/locales/nb.ts +6 -0
  600. package/src/components/taxes/edit-tax-form/locales/sk.ts +6 -0
  601. package/src/components/taxes/edit-tax-form/locales/sv.ts +6 -0
  602. package/src/components/taxes/tax-list-table/locales/bg.ts +17 -0
  603. package/src/components/taxes/tax-list-table/locales/cs.ts +17 -0
  604. package/src/components/taxes/tax-list-table/locales/en.ts +4 -3
  605. package/src/components/taxes/tax-list-table/locales/et.ts +17 -0
  606. package/src/components/taxes/tax-list-table/locales/fi.ts +17 -0
  607. package/src/components/taxes/tax-list-table/locales/is.ts +17 -0
  608. package/src/components/taxes/tax-list-table/locales/nb.ts +17 -0
  609. package/src/components/taxes/tax-list-table/locales/sk.ts +17 -0
  610. package/src/components/taxes/tax-list-table/locales/sv.ts +17 -0
  611. package/src/components/taxes/tax-list-table/tax-list-table.tsx +53 -19
  612. package/src/components/taxes/taxes.hooks.ts +53 -12
  613. package/src/components/ui/badge.tsx +1 -1
  614. package/src/components/ui/button.tsx +1 -1
  615. package/src/components/ui/drawer.tsx +2 -2
  616. package/src/components/ui/form.tsx +118 -10
  617. package/src/components/ui/progress.tsx +6 -4
  618. package/src/components/ui/select.tsx +118 -2
  619. package/src/components/ui/sidebar.tsx +2 -2
  620. package/src/components/ui/sonner.tsx +17 -36
  621. package/src/components/ui/sticky-form-footer.tsx +6 -1
  622. package/src/components/ui/tooltip.tsx +15 -2
  623. package/src/components/webhook-logs/webhook-delivery-detail.tsx +22 -22
  624. package/src/components/webhook-logs/webhook-delivery-list-table.tsx +92 -17
  625. package/src/components/wl-subscription/locked-feature.tsx +11 -10
  626. package/src/components/wl-subscription/paywall.tsx +184 -72
  627. package/src/components/wl-subscription/upgrade-modal.tsx +28 -31
  628. package/src/generate-schemas.ts +146 -103
  629. package/src/generated/schemas/acceptentityinvitation_body.ts +4 -3
  630. package/src/generated/schemas/accountwebhook.ts +63 -0
  631. package/src/generated/schemas/addentityuser_body.ts +4 -3
  632. package/src/generated/schemas/advanceinvoice.ts +167 -168
  633. package/src/generated/schemas/authorizeshopify_body.ts +4 -3
  634. package/src/generated/schemas/calculatedocumentpreview.ts +120 -0
  635. package/src/generated/schemas/checktransactiontype.ts +35 -0
  636. package/src/generated/schemas/creditnote.ts +203 -76
  637. package/src/generated/schemas/customadvanceinvoice.ts +172 -165
  638. package/src/generated/schemas/customcreditnote.ts +183 -155
  639. package/src/generated/schemas/customdeliverynote.ts +166 -0
  640. package/src/generated/schemas/customer.ts +4 -8
  641. package/src/generated/schemas/customestimate.ts +123 -97
  642. package/src/generated/schemas/customincomingpurchasedocument.ts +142 -0
  643. package/src/generated/schemas/custominvoice.ts +183 -154
  644. package/src/generated/schemas/deliverynote.ts +124 -79
  645. package/src/generated/schemas/einvoice.ts +19 -0
  646. package/src/generated/schemas/einvoicingsettings.ts +21 -0
  647. package/src/generated/schemas/einvoicingsupplier.ts +45 -0
  648. package/src/generated/schemas/entity.ts +267 -24
  649. package/src/generated/schemas/entityapikey.ts +1 -3
  650. package/src/generated/schemas/entityuserrole.ts +1 -3
  651. package/src/generated/schemas/estimate.ts +120 -127
  652. package/src/generated/schemas/exportsloveniavodxml_body.ts +17 -0
  653. package/src/generated/schemas/exportsloveniayearlynormiranireport_body.ts +4 -3
  654. package/src/generated/schemas/finadevice.ts +15 -0
  655. package/src/generated/schemas/finalizedocument.ts +52 -0
  656. package/src/generated/schemas/finapremise.ts +15 -0
  657. package/src/generated/schemas/finasettings.ts +1 -3
  658. package/src/generated/schemas/furselectronicdevice.ts +15 -0
  659. package/src/generated/schemas/furssettings.ts +2 -3
  660. package/src/generated/schemas/image.ts +15 -0
  661. package/src/generated/schemas/incomingpurchasedocument.ts +178 -0
  662. package/src/generated/schemas/incomingpurchasedocumentattachment.ts +15 -0
  663. package/src/generated/schemas/incomingpurchasedocumentpayment.ts +36 -0
  664. package/src/generated/schemas/index.ts +30 -5
  665. package/src/generated/schemas/invoice.ts +182 -183
  666. package/src/generated/schemas/item.ts +35 -3
  667. package/src/generated/schemas/legacymigrationauth.ts +18 -0
  668. package/src/generated/schemas/me.ts +4 -22
  669. package/src/generated/schemas/migrationjob.ts +20 -0
  670. package/src/generated/schemas/order.ts +6 -8
  671. package/src/generated/schemas/orderintegration.ts +12 -12
  672. package/src/generated/schemas/payment.ts +9 -8
  673. package/src/generated/schemas/ptatcudseries.ts +28 -0
  674. package/src/generated/schemas/queryentitystats.ts +15 -0
  675. package/src/generated/schemas/recurringinvoice.ts +4 -8
  676. package/src/generated/schemas/registerfursmovablepremise_body.ts +1 -3
  677. package/src/generated/schemas/registerfursrealestatepremise_body.ts +1 -3
  678. package/src/generated/schemas/renderadvanceinvoicepreview_body.ts +42 -16
  679. package/src/generated/schemas/rendercreditnotepreview_body.ts +42 -16
  680. package/src/generated/schemas/renderdeliverynotepreview_body.ts +19 -8
  681. package/src/generated/schemas/renderestimatepreview_body.ts +45 -8
  682. package/src/generated/schemas/renderinvoicepreview_body.ts +46 -18
  683. package/src/generated/schemas/reviewsloveniayearlynormiranireport.ts +15 -0
  684. package/src/generated/schemas/searcheinvoicingcustomer.ts +18 -0
  685. package/src/generated/schemas/senddocument_body.ts +2 -3
  686. package/src/generated/schemas/sendemail_body.ts +48 -42
  687. package/src/generated/schemas/sloveniataxprofile.ts +98 -24
  688. package/src/generated/schemas/starteslogexport_body.ts +34 -0
  689. package/src/generated/schemas/startpdfexport_body.ts +18 -81
  690. package/src/generated/schemas/stripeappconnect_body.ts +4 -3
  691. package/src/generated/schemas/stripeappcreateinvoice_body.ts +4 -6
  692. package/src/generated/schemas/stripeappmarketplaceauthorize.ts +15 -0
  693. package/src/generated/schemas/stripeappupdatesettings_body.ts +6 -6
  694. package/src/generated/schemas/supplier.ts +55 -0
  695. package/src/generated/schemas/syncshopifyorders_body.ts +21 -0
  696. package/src/generated/schemas/tax.ts +8 -8
  697. package/src/generated/schemas/uploadfile_body.ts +2 -3
  698. package/src/generated/schemas/uploadfurscertificate_body.ts +6 -6
  699. package/src/generated/schemas/userfinasettings.ts +1 -3
  700. package/src/generated/schemas/userfurssettings.ts +1 -3
  701. package/src/generated/schemas/userptsettings.ts +24 -0
  702. package/src/generated/schemas/voidinvoice_body.ts +25 -0
  703. package/src/generated/schemas/webhook.ts +6 -8
  704. package/src/generated/schemas/wlsubscriptionbillingemail.ts +17 -0
  705. package/src/hooks/create-resource-hooks.ts +22 -19
  706. package/src/hooks/use-duplicate-document.ts +71 -38
  707. package/src/hooks/use-eslog-validation.ts +5 -1
  708. package/src/hooks/use-next-document-number.ts +13 -6
  709. package/src/hooks/use-resolved-entity-id.ts +14 -0
  710. package/src/hooks/use-resource-mutation.ts +11 -30
  711. package/src/hooks/use-transaction-type-check.ts +3 -8
  712. package/src/lib/browser-cookies.ts +1 -1
  713. package/src/lib/country-capabilities.ts +114 -0
  714. package/src/lib/date-fns-locale.ts +1 -20
  715. package/src/lib/date-only.ts +58 -0
  716. package/src/lib/document-display.ts +18 -0
  717. package/src/lib/eslog-export.ts +32 -0
  718. package/src/lib/fiscalization-options.ts +21 -1
  719. package/src/lib/formatting.ts +27 -0
  720. package/src/lib/furs-error-utils.ts +29 -0
  721. package/src/lib/locale.ts +4 -0
  722. package/src/lib/payment-display.ts +97 -0
  723. package/src/lib/pt-document-input.ts +67 -0
  724. package/src/lib/schemas/shared.ts +12 -0
  725. package/src/lib/template-variables.tsx +102 -4
  726. package/src/lib/translation.ts +51 -33
  727. package/src/lib/white-label-capabilities.ts +626 -0
  728. package/src/lib/zod-validation-message.ts +291 -0
  729. package/src/providers/entities-provider.tsx +32 -14
  730. package/src/providers/sdk-provider.tsx +112 -12
  731. package/src/providers/space-invoices-provider.tsx +129 -0
  732. package/src/providers/white-label-provider.tsx +96 -4
  733. package/src/providers/wl-subscription-provider.tsx +149 -10
  734. package/src/generated/schemas/previewadvanceinvoice_body.ts +0 -354
  735. package/src/generated/schemas/previewestimate_body.ts +0 -309
  736. package/src/generated/schemas/registerfinamovablepremise_body.ts +0 -26
  737. package/src/generated/schemas/registerfinarealestatepremise_body.ts +0 -37
  738. package/src/generated/schemas/renderdocument_body.ts +0 -594
@@ -1,22 +1,33 @@
1
1
  import { zodResolver } from "@hookform/resolvers/zod";
2
- import type { AdvanceInvoice, CreateAdvanceInvoiceRequest } from "@spaceinvoices/js-sdk";
2
+ import type { AdvanceInvoice, CreateAdvanceInvoiceRequest, UpdateAdvanceInvoice } from "@spaceinvoices/js-sdk";
3
3
  import { AlertCircle, Check, FileCode2, X } from "lucide-react";
4
4
  import type { ReactNode } from "react";
5
5
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
6
6
  import type { Resolver } from "react-hook-form";
7
7
  import { useForm, useWatch } from "react-hook-form";
8
+ import type { z } from "zod";
8
9
  import { Alert, AlertDescription, AlertTitle } from "@/ui/components/ui/alert";
9
10
  import { Button } from "@/ui/components/ui/button";
10
- import { Form } from "@/ui/components/ui/form";
11
+ import { Form, FormRoot } from "@/ui/components/ui/form";
11
12
  import { Skeleton } from "@/ui/components/ui/skeleton";
12
13
  import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/ui/components/ui/tooltip";
13
- import type { CreateAdvanceInvoiceSchema } from "@/ui/generated/schemas";
14
14
  import { createAdvanceInvoiceSchema } from "@/ui/generated/schemas";
15
15
  import { useEslogValidation } from "@/ui/hooks/use-eslog-validation";
16
16
  import { useNextDocumentNumber } from "@/ui/hooks/use-next-document-number";
17
17
  import { usePremiseSelection } from "@/ui/hooks/use-premise-selection";
18
18
  import { useTransactionTypeCheck } from "@/ui/hooks/use-transaction-type-check";
19
- import { buildEslogOptions, buildFinaOptions, buildFursOptions } from "@/ui/lib/fiscalization-options";
19
+ import {
20
+ buildEslogOptions,
21
+ buildFinaOptions,
22
+ buildFursOptions,
23
+ type FiscalizationOperatorOverride,
24
+ } from "@/ui/lib/fiscalization-options";
25
+ import {
26
+ normalizePtDocumentInput,
27
+ type PtDocumentInputForm,
28
+ ptDocumentInputFormSchema,
29
+ } from "@/ui/lib/pt-document-input";
30
+ import { normalizeLineItemDiscountsForForm } from "@/ui/lib/schemas/shared";
20
31
  import type { ComponentTranslationProps } from "@/ui/lib/translation";
21
32
  import { createTranslation } from "@/ui/lib/translation";
22
33
  import { cn } from "@/ui/lib/utils";
@@ -29,13 +40,43 @@ import {
29
40
  DocumentSignatureField,
30
41
  DocumentTaxClauseField,
31
42
  } from "../../documents/create/document-details-section";
43
+ import { withRequiredDocumentItemFields } from "../../documents/create/document-item-validation";
32
44
  import { DocumentItemsSection, type PriceModesMap } from "../../documents/create/document-items-section";
33
45
  import { DocumentRecipientSection } from "../../documents/create/document-recipient-section";
34
46
  import { MarkAsPaidSection } from "../../documents/create/mark-as-paid-section";
47
+ import {
48
+ calculateDocumentTotal,
49
+ coercePaymentRowsToType,
50
+ createEmptyPaymentRow,
51
+ type DraftPaymentRow,
52
+ getFirstValidPaymentType,
53
+ serializePaymentRowsForApi,
54
+ validatePaymentRows,
55
+ } from "../../documents/create/payment-rows";
56
+ import { prepareDocumentItems } from "../../documents/create/prepare-document-submission";
57
+ import { applyCustomCreateTemplate } from "../../documents/create/custom-create-template";
58
+ import { financialInputsMatchInitial, resolvePreservedExpectedTotal } from "../../documents/create/preserved-expected-total";
59
+ import { scrollToFirstInvalidField } from "../../documents/create/scroll-to-first-invalid-field";
35
60
  import { useDocumentCustomerForm } from "../../documents/create/use-document-customer-form";
36
61
  import type { DocumentTypes } from "../../documents/types";
37
- import { getEntityErrors, getFormFieldErrors, validateEslogForm } from "../../invoices/create/eslog-validation";
38
- import { useCreateAdvanceInvoice } from "../advance-invoices.hooks";
62
+ import {
63
+ buildEslogFieldErrors,
64
+ getEntityErrors,
65
+ getFormFieldErrors,
66
+ mergeFieldErrors,
67
+ translateEslogValidationError,
68
+ validateEslogForm,
69
+ } from "../../invoices/create/eslog-validation";
70
+ import invoiceDe from "../../invoices/create/locales/de";
71
+ import invoiceEs from "../../invoices/create/locales/es";
72
+ import invoiceFr from "../../invoices/create/locales/fr";
73
+ import invoiceHr from "../../invoices/create/locales/hr";
74
+ import invoiceIt from "../../invoices/create/locales/it";
75
+ import invoiceNl from "../../invoices/create/locales/nl";
76
+ import invoicePl from "../../invoices/create/locales/pl";
77
+ import invoicePt from "../../invoices/create/locales/pt";
78
+ import invoiceSl from "../../invoices/create/locales/sl";
79
+ import { useCreateAdvanceInvoice, useCreateCustomAdvanceInvoice, useUpdateAdvanceInvoice } from "../advance-invoices.hooks";
39
80
  import de from "./locales/de";
40
81
  import es from "./locales/es";
41
82
  import fr from "./locales/fr";
@@ -45,27 +86,39 @@ import nl from "./locales/nl";
45
86
  import pl from "./locales/pl";
46
87
  import pt from "./locales/pt";
47
88
  import sl from "./locales/sl";
48
- import { prepareAdvanceInvoiceSubmission } from "./prepare-advance-invoice-submission";
89
+ import {
90
+ prepareAdvanceInvoiceSubmission,
91
+ prepareAdvanceInvoiceUpdateSubmission,
92
+ } from "./prepare-advance-invoice-submission";
49
93
 
50
94
  const translations = {
51
- sl,
52
- de,
53
- it,
54
- fr,
55
- es,
56
- pt,
57
- nl,
58
- pl,
59
- hr,
95
+ sl: { ...invoiceSl, ...sl },
96
+ de: { ...invoiceDe, ...de },
97
+ it: { ...invoiceIt, ...it },
98
+ fr: { ...invoiceFr, ...fr },
99
+ es: { ...invoiceEs, ...es },
100
+ pt: { ...invoicePt, ...pt },
101
+ nl: { ...invoiceNl, ...nl },
102
+ pl: { ...invoicePl, ...pl },
103
+ hr: { ...invoiceHr, ...hr },
60
104
  } as const;
105
+ const FORM_ID = "create-advance-invoice-form";
106
+ const createAdvanceInvoiceFormSchema = withRequiredDocumentItemFields(
107
+ createAdvanceInvoiceSchema.extend({
108
+ pt: ptDocumentInputFormSchema.optional(),
109
+ }),
110
+ );
61
111
 
62
112
  // Form values: extend schema with local-only fields (number is for display, not sent to API)
63
- type CreateAdvanceInvoiceFormValues = CreateAdvanceInvoiceSchema & {
113
+ type CreateAdvanceInvoiceFormValues = z.infer<typeof createAdvanceInvoiceFormSchema> & {
64
114
  number?: string;
65
115
  };
66
116
 
67
117
  /** Preview payload extends request with display-only fields */
68
- type AdvanceInvoicePreviewPayload = Partial<CreateAdvanceInvoiceRequest> & { number?: string };
118
+ type AdvanceInvoicePreviewPayload = Partial<CreateAdvanceInvoiceRequest> & {
119
+ number?: string;
120
+ pt?: PtDocumentInputForm;
121
+ };
69
122
 
70
123
  type CreateAdvanceInvoiceFormProps = {
71
124
  type: DocumentTypes;
@@ -77,6 +130,15 @@ type CreateAdvanceInvoiceFormProps = {
77
130
  onHeaderActionChange?: (action: ReactNode) => void;
78
131
  /** Initial values for form fields (used for document duplication) */
79
132
  initialValues?: Partial<CreateAdvanceInvoiceRequest>;
133
+ /** Whether draft actions should be available in the UI */
134
+ allowDrafts?: boolean;
135
+ mode?: "create" | "edit";
136
+ documentId?: string;
137
+ /** Optional app-level content rendered inside the details section. */
138
+ detailsExtras?: ReactNode;
139
+ /** Request-scoped operator override for embed fiscalization flows. */
140
+ operatorPrefill?: FiscalizationOperatorOverride;
141
+ translationLocale?: string;
80
142
  } & ComponentTranslationProps;
81
143
 
82
144
  export default function CreateAdvanceInvoiceForm({
@@ -88,6 +150,12 @@ export default function CreateAdvanceInvoiceForm({
88
150
  onAddNewTax,
89
151
  onHeaderActionChange,
90
152
  initialValues,
153
+ allowDrafts = true,
154
+ mode = "create",
155
+ documentId,
156
+ detailsExtras,
157
+ operatorPrefill,
158
+ translationLocale,
91
159
  t: translateProp,
92
160
  namespace,
93
161
  locale,
@@ -96,14 +164,19 @@ export default function CreateAdvanceInvoiceForm({
96
164
  t: translateProp,
97
165
  namespace,
98
166
  locale,
167
+ translationLocale,
99
168
  translations,
100
169
  });
101
170
 
102
171
  const { activeEntity } = useEntities();
172
+ const isEditMode = mode === "edit";
103
173
 
104
- // Get default note from entity settings (use invoice defaults)
105
- // Note: Advance invoices don't have payment terms - they are documents requesting payment
106
- const defaultNote = (activeEntity?.settings as any)?.default_invoice_note || "";
174
+ // Advance invoices have their own default note setting.
175
+ // Note: Advance invoices don't have payment terms - they are documents requesting payment.
176
+ const defaultNote =
177
+ (activeEntity?.settings as any)?.default_advance_invoice_note ||
178
+ (activeEntity?.settings as any)?.default_invoice_note ||
179
+ "";
107
180
  const defaultFooter = (activeEntity?.settings as any)?.document_footer || "";
108
181
 
109
182
  // ============================================================================
@@ -112,11 +185,15 @@ export default function CreateAdvanceInvoiceForm({
112
185
  const furs = usePremiseSelection({ entityId, type: "furs" });
113
186
  const fina = usePremiseSelection({ entityId, type: "fina" });
114
187
  const eslog = useEslogValidation(activeEntity);
188
+ const eslogValidationModeRef = useRef<"submit" | "draft">("submit");
189
+ const eslogEntityErrorsRef = useRef(eslog.entityErrors);
190
+ eslogEntityErrorsRef.current = eslog.entityErrors;
115
191
  const [skipFiscalization, setSkipFiscalization] = useState(false);
116
192
 
117
193
  // UI-only state (not part of API schema)
118
194
  const [markAsPaid, setMarkAsPaid] = useState(true);
119
- const [paymentTypes, setPaymentTypes] = useState<string[]>(["bank_transfer"]);
195
+ const [paymentRows, setPaymentRows] = useState<DraftPaymentRow[]>([createEmptyPaymentRow()]);
196
+ const [paymentValidationMessage, setPaymentValidationMessage] = useState<string | undefined>();
120
197
  const [isDraftPending, setIsDraftPending] = useState(false);
121
198
 
122
199
  // Price modes per item (gross vs net) - collected from component state at submit
@@ -128,27 +205,113 @@ export default function CreateAdvanceInvoiceForm({
128
205
  }, {} as PriceModesMap);
129
206
  }, [initialValues?.items]);
130
207
  const priceModesRef = useRef<PriceModesMap>(initialPriceModes);
208
+ const customCreateTemplate = (initialValues as any)?._custom_create_template;
209
+ const financialInputsMatchSource = useCallback(
210
+ (values: { items?: any[]; currency_code?: string; calculation_mode?: string | null }) =>
211
+ financialInputsMatchInitial({
212
+ initialItems: initialValues?.items,
213
+ currentItems: values.items,
214
+ initialCurrencyCode: initialValues?.currency_code,
215
+ currentCurrencyCode: values.currency_code,
216
+ initialCalculationMode: (initialValues as any)?.calculation_mode ?? null,
217
+ currentCalculationMode: values.calculation_mode ?? null,
218
+ initialPriceModes,
219
+ currentPriceModes: priceModesRef.current,
220
+ }),
221
+ [initialPriceModes, initialValues],
222
+ );
223
+ const getPreservedExpectedTotalWithTax = useCallback(
224
+ (values: { items?: any[]; currency_code?: string; calculation_mode?: string | null }) =>
225
+ resolvePreservedExpectedTotal({
226
+ initialExpectedTotalWithTax: (initialValues as any)?._preserved_expected_total_with_tax,
227
+ initialItems: initialValues?.items,
228
+ currentItems: values.items,
229
+ initialCurrencyCode: initialValues?.currency_code,
230
+ currentCurrencyCode: values.currency_code,
231
+ initialCalculationMode: (initialValues as any)?.calculation_mode ?? null,
232
+ currentCalculationMode: values.calculation_mode ?? null,
233
+ initialPriceModes,
234
+ currentPriceModes: priceModesRef.current,
235
+ }),
236
+ [initialPriceModes, initialValues],
237
+ );
238
+
239
+ const baseResolver = useMemo(
240
+ () => zodResolver(createAdvanceInvoiceFormSchema) as Resolver<CreateAdvanceInvoiceFormValues>,
241
+ [],
242
+ );
243
+ const eslogResolverStateRef = useRef({
244
+ activeEntity,
245
+ isEditMode,
246
+ isEnabled: eslog.isEnabled === true,
247
+ translate: t,
248
+ setEntityErrors: eslog.setEntityErrors,
249
+ });
250
+ eslogResolverStateRef.current = {
251
+ activeEntity,
252
+ isEditMode,
253
+ isEnabled: eslog.isEnabled === true,
254
+ translate: t,
255
+ setEntityErrors: eslog.setEntityErrors,
256
+ };
257
+ const resolver = useMemo<Resolver<CreateAdvanceInvoiceFormValues>>(
258
+ () => async (values, context, options) => {
259
+ const result = await baseResolver(values, context, options);
260
+ const resolverState = eslogResolverStateRef.current;
261
+ const shouldValidateEslog =
262
+ eslogValidationModeRef.current === "submit" && !resolverState.isEditMode && resolverState.isEnabled;
263
+
264
+ if (!shouldValidateEslog) {
265
+ eslogEntityErrorsRef.current = [];
266
+ resolverState.setEntityErrors([]);
267
+ return result;
268
+ }
269
+
270
+ const validationErrors = validateEslogForm(values as any, resolverState.activeEntity);
271
+ const entityErrors = getEntityErrors(validationErrors);
272
+ eslogEntityErrorsRef.current = entityErrors;
273
+ resolverState.setEntityErrors(entityErrors);
274
+
275
+ const fieldErrors = getFormFieldErrors(validationErrors);
276
+ if (fieldErrors.length === 0) {
277
+ return result;
278
+ }
279
+
280
+ return {
281
+ values: {},
282
+ errors: mergeFieldErrors(
283
+ result.errors,
284
+ buildEslogFieldErrors<CreateAdvanceInvoiceFormValues>(fieldErrors, resolverState.translate),
285
+ ),
286
+ };
287
+ },
288
+ [baseResolver],
289
+ );
131
290
 
132
291
  const form = useForm<CreateAdvanceInvoiceFormValues>({
133
- // Cast resolver to accept extended form type (includes UI-only fields)
134
- resolver: zodResolver(createAdvanceInvoiceSchema) as Resolver<CreateAdvanceInvoiceFormValues>,
292
+ resolver,
135
293
  defaultValues: {
136
- number: "", // Will be set by useNextAdvanceInvoiceNumber
294
+ number: (initialValues as any)?.number ?? "",
295
+ calculation_mode: (initialValues as any)?.calculation_mode ?? undefined,
137
296
  date: initialValues?.date || new Date().toISOString(),
138
297
  customer_id: initialValues?.customer_id ?? undefined,
139
298
  // Cast customer to form schema type (API type may have additional fields)
140
299
  customer: (initialValues?.customer as CreateAdvanceInvoiceFormValues["customer"]) ?? undefined,
141
300
  items: initialValues?.items?.length
142
301
  ? initialValues.items.map((item: any) => ({
143
- type: item.type,
302
+ type: item.type ?? undefined,
144
303
  name: item.name || "",
145
304
  description: item.description || "",
146
305
  ...(item.type !== "separator"
147
306
  ? {
307
+ item_id: item.item_id ?? undefined,
148
308
  quantity: item.quantity ?? 1,
149
- // Use gross_price if set, otherwise use price
150
309
  price: item.gross_price ?? item.price,
310
+ gross_price: item.gross_price ?? undefined,
311
+ unit: item.unit ?? undefined,
312
+ classification: item.classification ?? undefined,
151
313
  taxes: item.taxes || [],
314
+ discounts: normalizeLineItemDiscountsForForm(item.discounts),
152
315
  }
153
316
  : {}),
154
317
  }))
@@ -163,21 +326,71 @@ export default function CreateAdvanceInvoiceForm({
163
326
  ],
164
327
  currency_code: initialValues?.currency_code || activeEntity?.currency_code || "EUR",
165
328
  reference: (initialValues as any)?.reference ?? "",
166
- note: initialValues?.note ?? defaultNote,
167
- tax_clause: "",
168
- footer: (initialValues as any)?.footer ?? defaultFooter,
329
+ note: initialValues?.note ?? (isEditMode ? "" : defaultNote),
330
+ tax_clause: (initialValues as any)?.tax_clause ?? "",
331
+ footer: (initialValues as any)?.footer ?? (isEditMode ? "" : defaultFooter),
332
+ signature:
333
+ (initialValues as any)?.signature ??
334
+ (isEditMode ? "" : (activeEntity?.settings as any)?.default_document_signature || ""),
335
+ pt: ((initialValues as any)?.pt as PtDocumentInputForm | undefined) ?? undefined,
169
336
  },
170
337
  });
171
338
 
172
- // Skip fiscalization is only allowed for bank transfers or unpaid invoices
173
- const canSkipFiscalization = !markAsPaid || paymentTypes.every((type) => type === "bank_transfer");
339
+ const watchedItems = useWatch({ control: form.control, name: "items" });
340
+ const paymentDocumentTotal = useMemo(
341
+ () => calculateDocumentTotal((watchedItems as any[]) ?? [], priceModesRef.current),
342
+ [watchedItems],
343
+ );
344
+ const hasExplicitNonBankTransferPayment =
345
+ markAsPaid && paymentRows.some((row) => row.type != null && row.type !== "bank_transfer");
346
+ const skipPreferenceInitializedRef = useRef(false);
347
+ const skipPaymentCoercionPendingRef = useRef(false);
348
+ const previousSkipFiscalizationRef = useRef(skipFiscalization);
349
+ const previousMarkAsPaidRef = useRef(markAsPaid);
174
350
 
175
- // Auto-disable skip when it becomes invalid (e.g., user changes payment type to cash)
176
351
  useEffect(() => {
177
- if (!canSkipFiscalization && skipFiscalization) {
352
+ if (skipPreferenceInitializedRef.current || furs.isLoading || isEditMode) return;
353
+
354
+ skipPreferenceInitializedRef.current = true;
355
+ if (furs.settings?.default_skip_fiscalization === true) {
356
+ setSkipFiscalization(true);
357
+ }
358
+ }, [furs.isLoading, furs.settings?.default_skip_fiscalization, isEditMode]);
359
+
360
+ useEffect(() => {
361
+ const skipJustEnabled = skipFiscalization && !previousSkipFiscalizationRef.current;
362
+ const paidJustEnabled = markAsPaid && !previousMarkAsPaidRef.current;
363
+
364
+ if (skipFiscalization && markAsPaid && (skipJustEnabled || paidJustEnabled)) {
365
+ const nextPaymentRows = coercePaymentRowsToType(paymentRows, "bank_transfer");
366
+ const hasChanged = nextPaymentRows.some((row, index) => row.type !== paymentRows[index]?.type);
367
+
368
+ if (hasChanged) {
369
+ skipPaymentCoercionPendingRef.current = true;
370
+ setPaymentRows(nextPaymentRows);
371
+ }
372
+ }
373
+
374
+ previousSkipFiscalizationRef.current = skipFiscalization;
375
+ previousMarkAsPaidRef.current = markAsPaid;
376
+ }, [markAsPaid, paymentRows, skipFiscalization]);
377
+
378
+ // Auto-disable skip when the user explicitly changes payment away from bank transfer.
379
+ useEffect(() => {
380
+ if (skipPaymentCoercionPendingRef.current) return;
381
+
382
+ if (hasExplicitNonBankTransferPayment && skipFiscalization) {
178
383
  setSkipFiscalization(false);
179
384
  }
180
- }, [canSkipFiscalization, skipFiscalization]);
385
+ }, [hasExplicitNonBankTransferPayment, skipFiscalization]);
386
+
387
+ useEffect(() => {
388
+ if (!skipPaymentCoercionPendingRef.current) return;
389
+
390
+ if (!markAsPaid || paymentRows.every((row) => row.type === "bank_transfer")) {
391
+ skipPaymentCoercionPendingRef.current = false;
392
+ }
393
+ }, [markAsPaid, paymentRows]);
181
394
 
182
395
  // FURS is "active" for this advance invoice if enabled and we have a valid selection (and not skipped)
183
396
  const isFursActive = furs.isActive && !skipFiscalization;
@@ -185,6 +398,10 @@ export default function CreateAdvanceInvoiceForm({
185
398
  // Update header action with FURS and e-SLOG toggle buttons
186
399
  useEffect(() => {
187
400
  if (!onHeaderActionChange) return;
401
+ if (isEditMode) {
402
+ onHeaderActionChange(null);
403
+ return;
404
+ }
188
405
 
189
406
  if (furs.isLoading || fina.isLoading) {
190
407
  onHeaderActionChange(null);
@@ -245,10 +462,9 @@ export default function CreateAdvanceInvoiceForm({
245
462
  size="sm"
246
463
  className={cn(
247
464
  "h-8 cursor-pointer gap-2",
248
- !canSkipFiscalization && "cursor-not-allowed opacity-50",
249
465
  !isFursChecked && "text-destructive hover:text-destructive",
250
466
  )}
251
- onClick={() => canSkipFiscalization && setSkipFiscalization(!skipFiscalization)}
467
+ onClick={() => setSkipFiscalization(!skipFiscalization)}
252
468
  >
253
469
  <div
254
470
  className={cn(
@@ -264,11 +480,9 @@ export default function CreateAdvanceInvoiceForm({
264
480
  </Button>
265
481
  </TooltipTrigger>
266
482
  <TooltipContent side="bottom" className="max-w-xs">
267
- {canSkipFiscalization
268
- ? isFursChecked
269
- ? t("Click to skip fiscalization for this advance invoice")
270
- : t("Click to enable fiscalization")
271
- : t("Cannot skip fiscalization for cash payments")}
483
+ {isFursChecked
484
+ ? t("Click to skip fiscalization for this advance invoice")
485
+ : t("Click to enable fiscalization")}
272
486
  </TooltipContent>
273
487
  </Tooltip>
274
488
  </TooltipProvider>
@@ -284,10 +498,10 @@ export default function CreateAdvanceInvoiceForm({
284
498
  furs.isEnabled,
285
499
  furs.hasPremises,
286
500
  skipFiscalization,
287
- canSkipFiscalization,
288
501
  eslog.isAvailable,
289
502
  eslog.isEnabled,
290
503
  eslog.setEnabled,
504
+ isEditMode,
291
505
  onHeaderActionChange,
292
506
  t,
293
507
  ]);
@@ -295,6 +509,47 @@ export default function CreateAdvanceInvoiceForm({
295
509
  const formValues = useWatch({
296
510
  control: form.control,
297
511
  });
512
+ const watchedValidationSnapshot = useMemo(
513
+ () =>
514
+ JSON.stringify({
515
+ date: formValues.date,
516
+ currency_code: formValues.currency_code,
517
+ customer: formValues.customer,
518
+ items: formValues.items,
519
+ }),
520
+ [formValues.customer, formValues.currency_code, formValues.date, formValues.items],
521
+ );
522
+ const lastRevalidatedSnapshotRef = useRef<string | null>(null);
523
+
524
+ useEffect(() => {
525
+ if (!form.formState.isSubmitted || form.formState.isSubmitting) {
526
+ return;
527
+ }
528
+
529
+ const hasErrors = Object.keys(form.formState.errors).length > 0 || eslog.entityErrors.length > 0;
530
+ if (!hasErrors) {
531
+ lastRevalidatedSnapshotRef.current = watchedValidationSnapshot;
532
+ return;
533
+ }
534
+
535
+ if (lastRevalidatedSnapshotRef.current === watchedValidationSnapshot) {
536
+ return;
537
+ }
538
+
539
+ lastRevalidatedSnapshotRef.current = watchedValidationSnapshot;
540
+ const timeoutId = window.setTimeout(() => {
541
+ void form.trigger();
542
+ }, 0);
543
+
544
+ return () => window.clearTimeout(timeoutId);
545
+ }, [
546
+ eslog.entityErrors.length,
547
+ form,
548
+ form.formState.errors,
549
+ form.formState.isSubmitted,
550
+ form.formState.isSubmitting,
551
+ watchedValidationSnapshot,
552
+ ]);
298
553
  const onChangeRef = useRef(onChange);
299
554
  onChangeRef.current = onChange;
300
555
  const prevPayloadRef = useRef("");
@@ -341,19 +596,22 @@ export default function CreateAdvanceInvoiceForm({
341
596
  const { data: nextNumberData, isLoading: isNextNumberLoading } = useNextDocumentNumber(entityId, "advance_invoice", {
342
597
  businessPremiseName: activePremiseNameForNumber,
343
598
  electronicDeviceName: activeDeviceNameForNumber,
344
- enabled: !!entityId && !furs.isLoading && furs.isSelectionReady && !fina.isLoading && fina.isSelectionReady,
599
+ enabled:
600
+ !!entityId && !furs.isLoading && furs.isSelectionReady && !fina.isLoading && fina.isSelectionReady && !isEditMode,
345
601
  });
346
602
 
347
603
  // Overall loading state
348
- const isFormDataLoading =
349
- furs.isLoading || !furs.isSelectionReady || fina.isLoading || !fina.isSelectionReady || isNextNumberLoading;
604
+ const isFormDataLoading = isEditMode
605
+ ? false
606
+ : furs.isLoading || !furs.isSelectionReady || fina.isLoading || !fina.isSelectionReady || isNextNumberLoading;
350
607
 
351
608
  // Pre-fill advance invoice number from preview
352
609
  useEffect(() => {
610
+ if (isEditMode) return;
353
611
  if (nextNumberData?.number) {
354
612
  form.setValue("number", nextNumberData.number);
355
613
  }
356
- }, [nextNumberData?.number, form]);
614
+ }, [nextNumberData?.number, form, isEditMode]);
357
615
 
358
616
  // Auto-populate tax_clause from entity settings when transaction type changes
359
617
  const effectiveTransactionType = transactionType ?? "domestic";
@@ -361,13 +619,14 @@ export default function CreateAdvanceInvoiceForm({
361
619
  useEffect(() => {
362
620
  if (effectiveTransactionType === prevTransactionTypeRef.current) return;
363
621
  prevTransactionTypeRef.current = effectiveTransactionType;
622
+ if (isEditMode) return;
364
623
 
365
624
  const taxClauseDefaults = (activeEntity?.settings as any)?.tax_clause_defaults;
366
625
  if (!taxClauseDefaults) return;
367
626
 
368
627
  const clause = taxClauseDefaults[effectiveTransactionType] ?? "";
369
628
  form.setValue("tax_clause", clause);
370
- }, [effectiveTransactionType, activeEntity, form]);
629
+ }, [effectiveTransactionType, activeEntity, form, isEditMode]);
371
630
 
372
631
  // Customer form management
373
632
  const {
@@ -390,27 +649,41 @@ export default function CreateAdvanceInvoiceForm({
390
649
  },
391
650
  onError,
392
651
  });
652
+ const { mutate: createCustomAdvanceInvoice, isPending: isCreateCustomPending } = useCreateCustomAdvanceInvoice({
653
+ entityId,
654
+ onSuccess: (data) => {
655
+ furs.saveCombo();
656
+ fina.saveCombo();
657
+ onSuccess?.(data);
658
+ },
659
+ onError,
660
+ });
661
+ const { mutate: updateAdvanceInvoice, isPending: isUpdatePending } = useUpdateAdvanceInvoice({
662
+ entityId,
663
+ onSuccess,
664
+ onError,
665
+ });
393
666
 
394
667
  // Shared submit logic for both regular save and save as draft
395
668
  const submitAdvanceInvoice = useCallback(
396
669
  (values: CreateAdvanceInvoiceFormValues, isDraft: boolean) => {
397
- // Skip e-SLOG and FURS validation for drafts
398
- if (!isDraft && eslog.isEnabled) {
399
- const validationErrors = validateEslogForm(values as any, activeEntity);
400
-
401
- if (validationErrors.length > 0) {
402
- const entityErrors = getEntityErrors(validationErrors);
403
- const formErrors = getFormFieldErrors(validationErrors);
404
- eslog.setEntityErrors(entityErrors);
405
- for (const error of formErrors) {
406
- form.setError(error.field as any, {
407
- type: "eslog",
408
- message: error.message,
409
- });
410
- }
411
- return;
670
+ if (!isEditMode && !isDraft && eslog.isEnabled && eslogEntityErrorsRef.current.length > 0) {
671
+ return;
672
+ }
673
+
674
+ if (isEditMode) {
675
+ if (!documentId) {
676
+ throw new Error("Advance invoice edit mode requires a documentId");
412
677
  }
413
- eslog.setEntityErrors([]);
678
+
679
+ const updatePayload = prepareAdvanceInvoiceUpdateSubmission(values, {
680
+ originalCustomer,
681
+ wasCustomerFormShown: showCustomerForm,
682
+ priceModes: priceModesRef.current,
683
+ }) as UpdateAdvanceInvoice;
684
+
685
+ updateAdvanceInvoice({ id: documentId, data: updatePayload });
686
+ return;
414
687
  }
415
688
 
416
689
  const fursOptions = buildFursOptions({
@@ -419,6 +692,7 @@ export default function CreateAdvanceInvoiceForm({
419
692
  skipFiscalization,
420
693
  premiseName: furs.selectedPremiseName,
421
694
  deviceName: furs.selectedDeviceName,
695
+ operator: operatorPrefill,
422
696
  });
423
697
 
424
698
  const finaOptions = buildFinaOptions({
@@ -426,7 +700,8 @@ export default function CreateAdvanceInvoiceForm({
426
700
  useFinaNumbering,
427
701
  premiseName: fina.selectedPremiseName,
428
702
  deviceName: fina.selectedDeviceName,
429
- paymentType: paymentTypes[0],
703
+ paymentType: getFirstValidPaymentType(paymentRows),
704
+ operator: operatorPrefill,
430
705
  });
431
706
 
432
707
  const eslogOptions = buildEslogOptions({
@@ -435,33 +710,64 @@ export default function CreateAdvanceInvoiceForm({
435
710
  isEnabled: eslog.isEnabled,
436
711
  });
437
712
 
713
+ if (!isDraft && markAsPaid) {
714
+ const paymentValidation = validatePaymentRows(paymentRows, paymentDocumentTotal, "full_required");
715
+ const paymentMessage =
716
+ paymentValidation.typeError ?? paymentValidation.amountError ?? paymentValidation.totalError;
717
+
718
+ if (paymentMessage) {
719
+ setPaymentValidationMessage(paymentMessage);
720
+ return;
721
+ }
722
+ }
723
+
438
724
  const payload = prepareAdvanceInvoiceSubmission(values, {
439
725
  originalCustomer,
440
726
  wasCustomerFormShown: showCustomerForm,
441
727
  markAsPaid: isDraft ? false : markAsPaid,
442
- paymentTypes,
728
+ payments: serializePaymentRowsForApi(paymentRows, paymentDocumentTotal, {
729
+ preserveUntouchedAmounts: true,
730
+ }),
443
731
  furs: fursOptions,
444
732
  fina: finaOptions,
445
733
  eslog: eslogOptions,
446
734
  priceModes: priceModesRef.current,
447
735
  isDraft,
448
736
  });
737
+ const preservedExpectedTotalWithTax = getPreservedExpectedTotalWithTax(values);
738
+ if (preservedExpectedTotalWithTax !== undefined) {
739
+ (payload as any).expected_total_with_tax = preservedExpectedTotalWithTax;
740
+ } else {
741
+ delete (payload as any).expected_total_with_tax;
742
+ }
449
743
 
450
- createAdvanceInvoice(payload);
744
+ if (customCreateTemplate && financialInputsMatchSource(values)) {
745
+ delete (payload as any).expected_total_with_tax;
746
+ createCustomAdvanceInvoice(applyCustomCreateTemplate(payload as any, customCreateTemplate));
747
+ } else {
748
+ createAdvanceInvoice(payload);
749
+ }
451
750
  },
452
751
  [
453
- activeEntity,
454
752
  createAdvanceInvoice,
753
+ createCustomAdvanceInvoice,
754
+ customCreateTemplate,
755
+ documentId,
455
756
  eslog,
456
757
  furs,
457
758
  fina,
458
- form,
759
+ financialInputsMatchSource,
760
+ getPreservedExpectedTotalWithTax,
761
+ isEditMode,
459
762
  useFinaNumbering,
460
763
  markAsPaid,
461
764
  originalCustomer,
462
- paymentTypes,
765
+ paymentDocumentTotal,
766
+ paymentRows,
463
767
  showCustomerForm,
464
768
  skipFiscalization,
769
+ operatorPrefill,
770
+ updateAdvanceInvoice,
465
771
  ],
466
772
  );
467
773
 
@@ -469,31 +775,41 @@ export default function CreateAdvanceInvoiceForm({
469
775
  const handleSaveAsDraft = useCallback(async () => {
470
776
  setIsDraftPending(true);
471
777
  try {
778
+ eslogValidationModeRef.current = "draft";
472
779
  const isValid = await form.trigger();
473
780
  if (isValid) {
474
781
  const values = form.getValues();
475
782
  submitAdvanceInvoice(values, true);
783
+ } else {
784
+ scrollToFirstInvalidField(FORM_ID);
476
785
  }
477
786
  } finally {
787
+ eslogValidationModeRef.current = "submit";
478
788
  setIsDraftPending(false);
479
789
  }
480
790
  }, [form, submitAdvanceInvoice]);
481
791
 
482
792
  useFormFooterRegistration({
483
793
  formId: "create-advance-invoice-form",
484
- isPending,
794
+ isPending: isPending || isCreateCustomPending || isUpdatePending,
485
795
  isDirty: form.formState.isDirty || !!initialValues,
486
- label: t("Save"),
487
- secondaryAction: {
488
- label: t("Save as Draft"),
489
- onClick: handleSaveAsDraft,
490
- isPending: isDraftPending,
491
- },
796
+ label: isEditMode ? t("Update") : t("Save"),
797
+ secondaryAction:
798
+ allowDrafts && !isEditMode
799
+ ? {
800
+ label: t("Save as Draft"),
801
+ onClick: handleSaveAsDraft,
802
+ isPending: isDraftPending,
803
+ }
804
+ : undefined,
492
805
  });
493
806
 
494
807
  // Set default note, footer, and signature from entity settings (advance invoices don't have payment terms)
495
808
  useEffect(() => {
496
- const entityDefaultNote = (activeEntity?.settings as any)?.default_invoice_note;
809
+ if (isEditMode) return;
810
+ const entityDefaultNote =
811
+ (activeEntity?.settings as any)?.default_advance_invoice_note ||
812
+ (activeEntity?.settings as any)?.default_invoice_note;
497
813
  if (entityDefaultNote && !form.getValues("note")) {
498
814
  form.setValue("note", entityDefaultNote);
499
815
  }
@@ -505,7 +821,7 @@ export default function CreateAdvanceInvoiceForm({
505
821
  if (entityDefaultSignature && !form.getValues("signature")) {
506
822
  form.setValue("signature", entityDefaultSignature);
507
823
  }
508
- }, [activeEntity, form]);
824
+ }, [activeEntity, form, isEditMode]);
509
825
 
510
826
  // Auto-add tax field for tax subject entities
511
827
  useEffect(() => {
@@ -517,27 +833,29 @@ export default function CreateAdvanceInvoiceForm({
517
833
  }
518
834
  }, [activeEntity?.is_tax_subject, form]);
519
835
 
520
- const buildPreviewPayload = useCallback((values: CreateAdvanceInvoiceFormValues): AdvanceInvoicePreviewPayload => {
521
- const currentItems = values.items || [];
522
-
523
- const transformedItems = currentItems.map((item: any, index: number) => {
524
- const { price, ...rest } = item;
525
- const isGross = priceModesRef.current[index] ?? false;
526
- return isGross ? { ...rest, gross_price: price } : { ...rest, price };
527
- });
528
-
529
- return {
530
- number: values.number,
531
- date: values.date,
532
- customer_id: values.customer_id,
533
- customer: values.customer,
534
- items: transformedItems,
535
- currency_code: values.currency_code,
536
- reference: values.reference,
537
- note: values.note,
538
- signature: values.signature,
539
- };
540
- }, []);
836
+ const buildPreviewPayload = useCallback(
837
+ (values: CreateAdvanceInvoiceFormValues): AdvanceInvoicePreviewPayload => {
838
+ const preservedExpectedTotalWithTax = getPreservedExpectedTotalWithTax(values);
839
+ return {
840
+ number: values.number,
841
+ date: values.date,
842
+ customer_id: values.customer_id,
843
+ customer: values.customer,
844
+ items: prepareDocumentItems(values.items, priceModesRef.current),
845
+ currency_code: values.currency_code,
846
+ reference: values.reference,
847
+ note: values.note,
848
+ tax_clause: values.tax_clause,
849
+ signature: values.signature,
850
+ footer: values.footer,
851
+ ...(preservedExpectedTotalWithTax !== undefined
852
+ ? { expected_total_with_tax: preservedExpectedTotalWithTax }
853
+ : {}),
854
+ ...(normalizePtDocumentInput(values.pt) ? { pt: normalizePtDocumentInput(values.pt) } : {}),
855
+ };
856
+ },
857
+ [getPreservedExpectedTotalWithTax],
858
+ );
541
859
 
542
860
  const emitPreviewPayload = useCallback((payload: AdvanceInvoicePreviewPayload) => {
543
861
  const callback = onChangeRef.current;
@@ -620,10 +938,10 @@ export default function CreateAdvanceInvoiceForm({
620
938
 
621
939
  return (
622
940
  <Form {...form}>
623
- <form id="create-advance-invoice-form" onSubmit={form.handleSubmit(onSubmit)} className="space-y-8">
941
+ <FormRoot id={FORM_ID} onSubmit={form.handleSubmit(onSubmit)} className="space-y-8">
624
942
  {/* e-SLOG entity-level validation errors */}
625
943
  {eslog.entityErrors.length > 0 && (
626
- <Alert variant="destructive">
944
+ <Alert variant="destructive" data-form-error-summary="true">
627
945
  <AlertCircle className="h-4 w-4" />
628
946
  <AlertTitle>{t("e-SLOG Validation Failed")}</AlertTitle>
629
947
  <AlertDescription>
@@ -631,7 +949,7 @@ export default function CreateAdvanceInvoiceForm({
631
949
  <ul className="list-disc space-y-1 pl-4">
632
950
  {eslog.entityErrors.map((error) => (
633
951
  <li key={error.field} className="text-sm">
634
- {error.message}
952
+ {translateEslogValidationError(error, t)}
635
953
  </li>
636
954
  ))}
637
955
  </ul>
@@ -650,13 +968,15 @@ export default function CreateAdvanceInvoiceForm({
650
968
  selectedCustomerId={selectedCustomerId}
651
969
  initialCustomerName={initialCustomerName}
652
970
  t={t}
971
+ locale={locale}
653
972
  />
654
973
  <DocumentDetailsSection
655
974
  control={form.control}
656
975
  documentType={_type}
657
976
  t={t}
977
+ locale={locale}
658
978
  fursInline={
659
- furs.isEnabled && furs.hasPremises
979
+ !isEditMode && furs.isEnabled && furs.hasPremises
660
980
  ? {
661
981
  premises: furs.activePremises.map((p) => ({
662
982
  id: p.id,
@@ -675,7 +995,7 @@ export default function CreateAdvanceInvoiceForm({
675
995
  : undefined
676
996
  }
677
997
  finaInline={
678
- useFinaNumbering
998
+ !isEditMode && useFinaNumbering
679
999
  ? {
680
1000
  premises: fina.activePremises.map((p: any) => ({
681
1001
  id: p.id,
@@ -694,27 +1014,44 @@ export default function CreateAdvanceInvoiceForm({
694
1014
  }
695
1015
  >
696
1016
  {/* Mark as paid section (UI-only state, not in form schema) */}
697
- <MarkAsPaidSection
698
- checked={markAsPaid}
699
- onCheckedChange={setMarkAsPaid}
700
- paymentTypes={paymentTypes}
701
- onPaymentTypesChange={setPaymentTypes}
702
- t={t}
703
- alwaysShowPaymentType={!!fina.isActive}
704
- forced
705
- />
1017
+ {!isEditMode && (
1018
+ <MarkAsPaidSection
1019
+ checked={markAsPaid}
1020
+ onCheckedChange={(checked) => {
1021
+ setMarkAsPaid(checked);
1022
+ setPaymentValidationMessage(undefined);
1023
+ }}
1024
+ paymentRows={paymentRows}
1025
+ onPaymentRowsChange={(rows) => {
1026
+ setPaymentRows(rows);
1027
+ setPaymentValidationMessage(undefined);
1028
+ }}
1029
+ documentTotal={paymentDocumentTotal}
1030
+ t={t}
1031
+ alwaysShowPaymentType={!!fina.isActive}
1032
+ forced
1033
+ validationMessage={paymentValidationMessage}
1034
+ requireFullPayment
1035
+ />
1036
+ )}
1037
+ {detailsExtras}
706
1038
  </DocumentDetailsSection>
707
1039
  </div>
708
1040
 
709
1041
  <DocumentItemsSection
710
1042
  control={form.control}
1043
+ documentType={_type}
711
1044
  watch={form.watch}
712
1045
  setValue={form.setValue}
1046
+ clearErrors={form.clearErrors}
1047
+ trigger={form.trigger}
1048
+ isSubmitted={form.formState.isSubmitted}
713
1049
  getValues={form.getValues}
714
1050
  entityId={entityId}
715
1051
  currencyCode={activeEntity?.currency_code ?? undefined}
716
1052
  onAddNewTax={onAddNewTax}
717
1053
  t={t}
1054
+ locale={locale}
718
1055
  taxesDisabled={reverseChargeApplies}
719
1056
  taxesDisabledMessage={
720
1057
  reverseChargeApplies ? t("Reverse charge - tax exempt EU B2B sale") : viesWarning ? viesWarning : undefined
@@ -775,7 +1112,7 @@ export default function CreateAdvanceInvoiceForm({
775
1112
  customer: formValues.customer as any,
776
1113
  }}
777
1114
  />
778
- </form>
1115
+ </FormRoot>
779
1116
  </Form>
780
1117
  );
781
1118
  }