@spaceinvoices/react-ui 0.1.1 → 0.4.0

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 (411) hide show
  1. package/cli/dist/index.js +1 -1
  2. package/package.json +1 -1
  3. package/registry.json +86 -122
  4. package/src/components/activities/activity-timeline.tsx +8 -1
  5. package/src/components/activities/locales/es.ts +30 -0
  6. package/src/components/activities/locales/fr.ts +30 -0
  7. package/src/components/activities/locales/hr.ts +30 -0
  8. package/src/components/activities/locales/it.ts +30 -0
  9. package/src/components/activities/locales/nl.ts +30 -0
  10. package/src/components/activities/locales/pl.ts +30 -0
  11. package/src/components/activities/locales/pt.ts +30 -0
  12. package/src/components/advance-invoices/advance-invoices.hooks.ts +2 -2
  13. package/src/components/advance-invoices/create/create-advance-invoice-form.tsx +21 -7
  14. package/src/components/advance-invoices/create/locales/es.ts +29 -0
  15. package/src/components/advance-invoices/create/locales/fr.ts +28 -0
  16. package/src/components/advance-invoices/create/locales/hr.ts +27 -0
  17. package/src/components/advance-invoices/create/locales/it.ts +29 -0
  18. package/src/components/advance-invoices/create/locales/nl.ts +28 -0
  19. package/src/components/advance-invoices/create/locales/pl.ts +28 -0
  20. package/src/components/advance-invoices/create/locales/pt.ts +29 -0
  21. package/src/components/advance-invoices/create/prepare-advance-invoice-submission.ts +3 -3
  22. package/src/components/advance-invoices/list/list-table.tsx +20 -3
  23. package/src/components/advance-invoices/list/locales/de.ts +9 -0
  24. package/src/components/advance-invoices/list/locales/en.ts +8 -0
  25. package/src/components/advance-invoices/list/locales/es.ts +41 -0
  26. package/src/components/advance-invoices/list/locales/fr.ts +41 -0
  27. package/src/components/advance-invoices/list/locales/hr.ts +41 -0
  28. package/src/components/advance-invoices/list/locales/it.ts +41 -0
  29. package/src/components/advance-invoices/list/locales/nl.ts +41 -0
  30. package/src/components/advance-invoices/list/locales/pl.ts +41 -0
  31. package/src/components/advance-invoices/list/locales/pt.ts +41 -0
  32. package/src/components/advance-invoices/list/locales/sl.ts +9 -0
  33. package/src/components/credit-notes/create/create-credit-note-form.tsx +19 -5
  34. package/src/components/credit-notes/create/locales/es.ts +68 -0
  35. package/src/components/credit-notes/create/locales/fr.ts +69 -0
  36. package/src/components/credit-notes/create/locales/hr.ts +68 -0
  37. package/src/components/credit-notes/create/locales/it.ts +68 -0
  38. package/src/components/credit-notes/create/locales/nl.ts +69 -0
  39. package/src/components/credit-notes/create/locales/pl.ts +68 -0
  40. package/src/components/credit-notes/create/locales/pt.ts +68 -0
  41. package/src/components/credit-notes/list/list-table.tsx +25 -8
  42. package/src/components/credit-notes/list/locales/de.ts +10 -2
  43. package/src/components/credit-notes/list/locales/en.ts +8 -0
  44. package/src/components/credit-notes/list/locales/es.ts +41 -0
  45. package/src/components/credit-notes/list/locales/fr.ts +41 -0
  46. package/src/components/credit-notes/list/locales/hr.ts +41 -0
  47. package/src/components/credit-notes/list/locales/it.ts +41 -0
  48. package/src/components/credit-notes/list/locales/nl.ts +41 -0
  49. package/src/components/credit-notes/list/locales/pl.ts +41 -0
  50. package/src/components/credit-notes/list/locales/pt.ts +41 -0
  51. package/src/components/credit-notes/list/locales/sl.ts +10 -2
  52. package/src/components/customers/create-customer-form/create-customer-form.tsx +21 -3
  53. package/src/components/customers/create-customer-form/locales/de.ts +1 -0
  54. package/src/components/customers/create-customer-form/locales/es.ts +21 -0
  55. package/src/components/customers/create-customer-form/locales/fr.ts +21 -0
  56. package/src/components/customers/create-customer-form/locales/hr.ts +21 -0
  57. package/src/components/customers/create-customer-form/locales/it.ts +21 -0
  58. package/src/components/customers/create-customer-form/locales/nl.ts +21 -0
  59. package/src/components/customers/create-customer-form/locales/pl.ts +21 -0
  60. package/src/components/customers/create-customer-form/locales/pt.ts +21 -0
  61. package/src/components/customers/create-customer-form/locales/sl.ts +1 -0
  62. package/src/components/customers/customer-list-table/customer-list-row-actions.tsx +72 -16
  63. package/src/components/customers/customer-list-table/customer-list-table.tsx +35 -2
  64. package/src/components/customers/customer-list-table/locales/de.ts +9 -0
  65. package/src/components/customers/customer-list-table/locales/en.ts +10 -0
  66. package/src/components/customers/customer-list-table/locales/es.ts +25 -0
  67. package/src/components/customers/customer-list-table/locales/fr.ts +25 -0
  68. package/src/components/customers/customer-list-table/locales/hr.ts +25 -0
  69. package/src/components/customers/customer-list-table/locales/it.ts +25 -0
  70. package/src/components/customers/customer-list-table/locales/nl.ts +25 -0
  71. package/src/components/customers/customer-list-table/locales/pl.ts +25 -0
  72. package/src/components/customers/customer-list-table/locales/pt.ts +25 -0
  73. package/src/components/customers/customer-list-table/locales/sl.ts +9 -0
  74. package/src/components/customers/customers.hooks.test.ts +8 -8
  75. package/src/components/customers/customers.hooks.ts +6 -1
  76. package/src/components/customers/edit-customer-form/edit-customer-form.tsx +143 -0
  77. package/src/components/customers/edit-customer-form/locales/de.ts +13 -0
  78. package/src/components/customers/edit-customer-form/locales/es.ts +13 -0
  79. package/src/components/customers/edit-customer-form/locales/fr.ts +13 -0
  80. package/src/components/customers/edit-customer-form/locales/hr.ts +13 -0
  81. package/src/components/customers/edit-customer-form/locales/it.ts +13 -0
  82. package/src/components/customers/edit-customer-form/locales/nl.ts +13 -0
  83. package/src/components/customers/edit-customer-form/locales/pl.ts +13 -0
  84. package/src/components/customers/edit-customer-form/locales/pt.ts +13 -0
  85. package/src/components/customers/edit-customer-form/locales/sl.ts +13 -0
  86. package/src/components/customers/index.ts +1 -0
  87. package/src/components/dashboard/collection-rate-card/collection-rate-card.tsx +9 -1
  88. package/src/components/dashboard/collection-rate-card/locales/de.ts +3 -0
  89. package/src/components/dashboard/collection-rate-card/locales/es.ts +3 -0
  90. package/src/components/dashboard/collection-rate-card/locales/fr.ts +3 -0
  91. package/src/components/dashboard/collection-rate-card/locales/hr.ts +3 -0
  92. package/src/components/dashboard/collection-rate-card/locales/it.ts +3 -0
  93. package/src/components/dashboard/collection-rate-card/locales/nl.ts +3 -0
  94. package/src/components/dashboard/collection-rate-card/locales/pl.ts +3 -0
  95. package/src/components/dashboard/collection-rate-card/locales/pt.ts +3 -0
  96. package/src/components/dashboard/invoice-status-chart/invoice-status-chart.tsx +9 -1
  97. package/src/components/dashboard/invoice-status-chart/locales/de.ts +9 -0
  98. package/src/components/dashboard/invoice-status-chart/locales/es.ts +9 -0
  99. package/src/components/dashboard/invoice-status-chart/locales/fr.ts +9 -0
  100. package/src/components/dashboard/invoice-status-chart/locales/hr.ts +9 -0
  101. package/src/components/dashboard/invoice-status-chart/locales/it.ts +9 -0
  102. package/src/components/dashboard/invoice-status-chart/locales/nl.ts +9 -0
  103. package/src/components/dashboard/invoice-status-chart/locales/pl.ts +9 -0
  104. package/src/components/dashboard/invoice-status-chart/locales/pt.ts +9 -0
  105. package/src/components/dashboard/payment-methods-chart/locales/de.ts +12 -0
  106. package/src/components/dashboard/payment-methods-chart/locales/es.ts +12 -0
  107. package/src/components/dashboard/payment-methods-chart/locales/fr.ts +12 -0
  108. package/src/components/dashboard/payment-methods-chart/locales/hr.ts +12 -0
  109. package/src/components/dashboard/payment-methods-chart/locales/it.ts +12 -0
  110. package/src/components/dashboard/payment-methods-chart/locales/nl.ts +12 -0
  111. package/src/components/dashboard/payment-methods-chart/locales/pl.ts +12 -0
  112. package/src/components/dashboard/payment-methods-chart/locales/pt.ts +12 -0
  113. package/src/components/dashboard/payment-methods-chart/payment-methods-chart.tsx +9 -1
  114. package/src/components/dashboard/payment-trend-chart/locales/de.ts +5 -0
  115. package/src/components/dashboard/payment-trend-chart/locales/es.ts +5 -0
  116. package/src/components/dashboard/payment-trend-chart/locales/fr.ts +5 -0
  117. package/src/components/dashboard/payment-trend-chart/locales/hr.ts +5 -0
  118. package/src/components/dashboard/payment-trend-chart/locales/it.ts +5 -0
  119. package/src/components/dashboard/payment-trend-chart/locales/nl.ts +5 -0
  120. package/src/components/dashboard/payment-trend-chart/locales/pl.ts +5 -0
  121. package/src/components/dashboard/payment-trend-chart/locales/pt.ts +5 -0
  122. package/src/components/dashboard/payment-trend-chart/payment-trend-chart.tsx +10 -2
  123. package/src/components/dashboard/revenue-trend-chart/locales/de.ts +5 -0
  124. package/src/components/dashboard/revenue-trend-chart/locales/es.ts +5 -0
  125. package/src/components/dashboard/revenue-trend-chart/locales/fr.ts +5 -0
  126. package/src/components/dashboard/revenue-trend-chart/locales/hr.ts +5 -0
  127. package/src/components/dashboard/revenue-trend-chart/locales/it.ts +5 -0
  128. package/src/components/dashboard/revenue-trend-chart/locales/nl.ts +5 -0
  129. package/src/components/dashboard/revenue-trend-chart/locales/pl.ts +5 -0
  130. package/src/components/dashboard/revenue-trend-chart/locales/pt.ts +5 -0
  131. package/src/components/dashboard/revenue-trend-chart/revenue-trend-chart.tsx +10 -2
  132. package/src/components/dashboard/top-customers-chart/locales/de.ts +5 -0
  133. package/src/components/dashboard/top-customers-chart/locales/es.ts +5 -0
  134. package/src/components/dashboard/top-customers-chart/locales/fr.ts +5 -0
  135. package/src/components/dashboard/top-customers-chart/locales/hr.ts +5 -0
  136. package/src/components/dashboard/top-customers-chart/locales/it.ts +5 -0
  137. package/src/components/dashboard/top-customers-chart/locales/nl.ts +5 -0
  138. package/src/components/dashboard/top-customers-chart/locales/pl.ts +5 -0
  139. package/src/components/dashboard/top-customers-chart/locales/pt.ts +5 -0
  140. package/src/components/dashboard/top-customers-chart/top-customers-chart.tsx +10 -2
  141. package/src/components/documents/create/document-add-item-form.tsx +1 -1
  142. package/src/components/documents/create/form-types.ts +1 -5
  143. package/src/components/documents/create/mark-as-paid-section.tsx +60 -23
  144. package/src/components/documents/create/prepare-document-submission.test.ts +2 -2
  145. package/src/components/documents/create/prepare-document-submission.ts +12 -7
  146. package/src/components/documents/create/prepare-preview-data.test.ts +1 -1
  147. package/src/components/documents/documents.hooks.ts +5 -48
  148. package/src/components/documents/shared/document-preview-display.tsx +12 -1
  149. package/src/components/documents/view/document-actions-bar.tsx +28 -13
  150. package/src/components/documents/view/document-activities-list.tsx +166 -0
  151. package/src/components/documents/view/document-details-card.tsx +14 -7
  152. package/src/components/documents/view/document-payments-list.tsx +8 -1
  153. package/src/components/documents/view/index.ts +1 -0
  154. package/src/components/documents/view/locales/de.ts +32 -0
  155. package/src/components/documents/view/locales/es.ts +115 -0
  156. package/src/components/documents/view/locales/fr.ts +115 -0
  157. package/src/components/documents/view/locales/hr.ts +115 -0
  158. package/src/components/documents/view/locales/it.ts +115 -0
  159. package/src/components/documents/view/locales/nl.ts +116 -0
  160. package/src/components/documents/view/locales/pl.ts +115 -0
  161. package/src/components/documents/view/locales/pt.ts +115 -0
  162. package/src/components/documents/view/locales/sl.ts +32 -0
  163. package/src/components/entities/create-entity-form.tsx +12 -2
  164. package/src/components/entities/entity-settings-form/entity-settings-form.tsx +18 -0
  165. package/src/components/entities/entity-settings-form/locales/de.ts +3 -1
  166. package/src/components/entities/entity-settings-form/locales/es.ts +197 -0
  167. package/src/components/entities/entity-settings-form/locales/fr.ts +196 -0
  168. package/src/components/entities/entity-settings-form/locales/hr.ts +189 -0
  169. package/src/components/entities/entity-settings-form/locales/it.ts +195 -0
  170. package/src/components/entities/entity-settings-form/locales/nl.ts +192 -0
  171. package/src/components/entities/entity-settings-form/locales/pl.ts +193 -0
  172. package/src/components/entities/entity-settings-form/locales/pt.ts +194 -0
  173. package/src/components/entities/entity-settings-form/locales/sl.ts +2 -0
  174. package/src/components/entities/fina-settings-form/fina-settings-form.tsx +461 -0
  175. package/src/components/entities/fina-settings-form/fina-settings.hooks.ts +215 -0
  176. package/src/components/entities/fina-settings-form/index.ts +3 -0
  177. package/src/components/entities/fina-settings-form/locales/de.ts +148 -0
  178. package/src/components/entities/fina-settings-form/locales/en.ts +145 -0
  179. package/src/components/entities/fina-settings-form/locales/es.ts +146 -0
  180. package/src/components/entities/fina-settings-form/locales/fr.ts +145 -0
  181. package/src/components/entities/fina-settings-form/locales/hr.ts +147 -0
  182. package/src/components/entities/fina-settings-form/locales/it.ts +147 -0
  183. package/src/components/entities/fina-settings-form/locales/nl.ts +147 -0
  184. package/src/components/entities/fina-settings-form/locales/pl.ts +145 -0
  185. package/src/components/entities/fina-settings-form/locales/pt.ts +147 -0
  186. package/src/components/entities/fina-settings-form/locales/sl.ts +147 -0
  187. package/src/components/entities/fina-settings-form/sections/certificate-settings-section.tsx +233 -0
  188. package/src/components/entities/fina-settings-form/sections/premises-management-section.tsx +363 -0
  189. package/src/components/entities/fina-settings-form/sections/register-premise-dialog.tsx +395 -0
  190. package/src/components/entities/furs-settings-form/furs-settings-form.tsx +24 -9
  191. package/src/components/entities/furs-settings-form/furs-settings.hooks.ts +15 -11
  192. package/src/components/entities/furs-settings-form/locales/de.ts +54 -88
  193. package/src/components/entities/furs-settings-form/locales/en.ts +15 -0
  194. package/src/components/entities/furs-settings-form/locales/es.ts +198 -0
  195. package/src/components/entities/furs-settings-form/locales/fr.ts +198 -0
  196. package/src/components/entities/furs-settings-form/locales/hr.ts +197 -0
  197. package/src/components/entities/furs-settings-form/locales/it.ts +198 -0
  198. package/src/components/entities/furs-settings-form/locales/nl.ts +197 -0
  199. package/src/components/entities/furs-settings-form/locales/pl.ts +196 -0
  200. package/src/components/entities/furs-settings-form/locales/pt.ts +197 -0
  201. package/src/components/entities/furs-settings-form/locales/sl.ts +16 -0
  202. package/src/components/entities/furs-settings-form/sections/certificate-settings-section.tsx +19 -4
  203. package/src/components/entities/furs-settings-form/sections/general-settings-section.tsx +121 -1
  204. package/src/components/entities/furs-settings-form/sections/register-premise-dialog.tsx +17 -66
  205. package/src/components/entities/keys.ts +1 -1
  206. package/src/components/entities/settings/company-settings-form.tsx +28 -0
  207. package/src/components/entities/settings/pdf-template-selector/locales/es.ts +18 -0
  208. package/src/components/entities/settings/pdf-template-selector/locales/fr.ts +18 -0
  209. package/src/components/entities/settings/pdf-template-selector/locales/hr.ts +18 -0
  210. package/src/components/entities/settings/pdf-template-selector/locales/it.ts +18 -0
  211. package/src/components/entities/settings/pdf-template-selector/locales/nl.ts +17 -0
  212. package/src/components/entities/settings/pdf-template-selector/locales/pl.ts +18 -0
  213. package/src/components/entities/settings/pdf-template-selector/locales/pt.ts +18 -0
  214. package/src/components/estimates/create/create-estimate-form.tsx +14 -0
  215. package/src/components/estimates/create/locales/es.ts +57 -0
  216. package/src/components/estimates/create/locales/fr.ts +58 -0
  217. package/src/components/estimates/create/locales/hr.ts +57 -0
  218. package/src/components/estimates/create/locales/it.ts +57 -0
  219. package/src/components/estimates/create/locales/nl.ts +58 -0
  220. package/src/components/estimates/create/locales/pl.ts +57 -0
  221. package/src/components/estimates/create/locales/pt.ts +58 -0
  222. package/src/components/estimates/create/prepare-estimate-submission.ts +1 -1
  223. package/src/components/estimates/list/list-table.tsx +20 -3
  224. package/src/components/estimates/list/locales/de.ts +9 -0
  225. package/src/components/estimates/list/locales/en.ts +8 -0
  226. package/src/components/estimates/list/locales/es.ts +32 -0
  227. package/src/components/estimates/list/locales/fr.ts +32 -0
  228. package/src/components/estimates/list/locales/hr.ts +32 -0
  229. package/src/components/estimates/list/locales/it.ts +32 -0
  230. package/src/components/estimates/list/locales/nl.ts +32 -0
  231. package/src/components/estimates/list/locales/pl.ts +32 -0
  232. package/src/components/estimates/list/locales/pt.ts +32 -0
  233. package/src/components/estimates/list/locales/sl.ts +9 -0
  234. package/src/components/export/document-export-form.tsx +0 -2
  235. package/src/components/invoices/create/create-invoice-form.tsx +24 -10
  236. package/src/components/invoices/create/eslog-validation.test.ts +2 -0
  237. package/src/components/invoices/create/locales/es.ts +103 -0
  238. package/src/components/invoices/create/locales/fr.ts +105 -0
  239. package/src/components/invoices/create/locales/hr.ts +103 -0
  240. package/src/components/invoices/create/locales/it.ts +105 -0
  241. package/src/components/invoices/create/locales/nl.ts +104 -0
  242. package/src/components/invoices/create/locales/pl.ts +104 -0
  243. package/src/components/invoices/create/locales/pt.ts +105 -0
  244. package/src/components/invoices/create/prepare-invoice-submission.test.ts +54 -55
  245. package/src/components/invoices/create/prepare-invoice-submission.ts +3 -3
  246. package/src/components/invoices/index.ts +1 -1
  247. package/src/components/invoices/list/list-table.tsx +20 -3
  248. package/src/components/invoices/list/locales/de.ts +9 -0
  249. package/src/components/invoices/list/locales/en.ts +8 -0
  250. package/src/components/invoices/list/locales/es.ts +42 -0
  251. package/src/components/invoices/list/locales/fr.ts +42 -0
  252. package/src/components/invoices/list/locales/hr.ts +42 -0
  253. package/src/components/invoices/list/locales/it.ts +42 -0
  254. package/src/components/invoices/list/locales/nl.ts +42 -0
  255. package/src/components/invoices/list/locales/pl.ts +42 -0
  256. package/src/components/invoices/list/locales/pt.ts +42 -0
  257. package/src/components/invoices/list/locales/sl.ts +9 -0
  258. package/src/components/invoices/send-email-dialog/locales/es.ts +18 -0
  259. package/src/components/invoices/send-email-dialog/locales/fr.ts +18 -0
  260. package/src/components/invoices/send-email-dialog/locales/hr.ts +17 -0
  261. package/src/components/invoices/send-email-dialog/locales/it.ts +18 -0
  262. package/src/components/invoices/send-email-dialog/locales/nl.ts +18 -0
  263. package/src/components/invoices/send-email-dialog/locales/pl.ts +18 -0
  264. package/src/components/invoices/send-email-dialog/locales/pt.ts +18 -0
  265. package/src/components/invoices/send-email-dialog/send-email-dialog.tsx +22 -14
  266. package/src/components/invoices/shared/scaled-document-preview.tsx +1 -0
  267. package/src/components/invoices/view/eslog-info-display.tsx +1 -0
  268. package/src/components/invoices/view/fiscalization-status-card.tsx +121 -0
  269. package/src/components/items/create-item-form/create-item-form.tsx +14 -0
  270. package/src/components/items/create-item-form/locales/en.ts +5 -0
  271. package/src/components/items/create-item-form/locales/es.ts +14 -0
  272. package/src/components/items/create-item-form/locales/fr.ts +14 -0
  273. package/src/components/items/create-item-form/locales/hr.ts +14 -0
  274. package/src/components/items/create-item-form/locales/it.ts +14 -0
  275. package/src/components/items/create-item-form/locales/nl.ts +14 -0
  276. package/src/components/items/create-item-form/locales/pl.ts +14 -0
  277. package/src/components/items/create-item-form/locales/pt.ts +14 -0
  278. package/src/components/items/edit-item-form/edit-item-form.tsx +170 -0
  279. package/src/components/items/edit-item-form/locales/de.ts +12 -0
  280. package/src/components/items/edit-item-form/locales/es.ts +12 -0
  281. package/src/components/items/edit-item-form/locales/fr.ts +12 -0
  282. package/src/components/items/edit-item-form/locales/hr.ts +12 -0
  283. package/src/components/items/edit-item-form/locales/it.ts +12 -0
  284. package/src/components/items/edit-item-form/locales/nl.ts +12 -0
  285. package/src/components/items/edit-item-form/locales/pl.ts +12 -0
  286. package/src/components/items/edit-item-form/locales/pt.ts +12 -0
  287. package/src/components/items/edit-item-form/locales/sl.ts +12 -0
  288. package/src/components/items/item-list-table/item-list-table.tsx +20 -13
  289. package/src/components/items/item-list-table/locales/de.ts +6 -0
  290. package/src/components/items/item-list-table/locales/en.ts +5 -0
  291. package/src/components/items/item-list-table/locales/es.ts +16 -0
  292. package/src/components/items/item-list-table/locales/fr.ts +16 -0
  293. package/src/components/items/item-list-table/locales/hr.ts +16 -0
  294. package/src/components/items/item-list-table/locales/it.ts +16 -0
  295. package/src/components/items/item-list-table/locales/nl.ts +16 -0
  296. package/src/components/items/item-list-table/locales/pl.ts +16 -0
  297. package/src/components/items/item-list-table/locales/pt.ts +16 -0
  298. package/src/components/items/item-list-table/locales/sl.ts +6 -0
  299. package/src/components/items/items.hooks.ts +7 -2
  300. package/src/components/payments/create-payment-form/create-payment-form.tsx +14 -0
  301. package/src/components/payments/create-payment-form/locales/es.ts +20 -0
  302. package/src/components/payments/create-payment-form/locales/fr.ts +20 -0
  303. package/src/components/payments/create-payment-form/locales/hr.ts +20 -0
  304. package/src/components/payments/create-payment-form/locales/it.ts +20 -0
  305. package/src/components/payments/create-payment-form/locales/nl.ts +20 -0
  306. package/src/components/payments/create-payment-form/locales/pl.ts +20 -0
  307. package/src/components/payments/create-payment-form/locales/pt.ts +20 -0
  308. package/src/components/payments/edit-payment-form/edit-payment-form.tsx +18 -2
  309. package/src/components/payments/edit-payment-form/locales/es.ts +20 -0
  310. package/src/components/payments/edit-payment-form/locales/fr.ts +20 -0
  311. package/src/components/payments/edit-payment-form/locales/hr.ts +20 -0
  312. package/src/components/payments/edit-payment-form/locales/it.ts +20 -0
  313. package/src/components/payments/edit-payment-form/locales/nl.ts +20 -0
  314. package/src/components/payments/edit-payment-form/locales/pl.ts +20 -0
  315. package/src/components/payments/edit-payment-form/locales/pt.ts +20 -0
  316. package/src/components/payments/list/list-row-actions.tsx +14 -0
  317. package/src/components/payments/list/list-table.tsx +21 -2
  318. package/src/components/payments/list/locales/de.ts +6 -0
  319. package/src/components/payments/list/locales/en.ts +7 -0
  320. package/src/components/payments/list/locales/es.ts +25 -0
  321. package/src/components/payments/list/locales/fr.ts +25 -0
  322. package/src/components/payments/list/locales/hr.ts +25 -0
  323. package/src/components/payments/list/locales/it.ts +25 -0
  324. package/src/components/payments/list/locales/nl.ts +25 -0
  325. package/src/components/payments/list/locales/pl.ts +25 -0
  326. package/src/components/payments/list/locales/pt.ts +25 -0
  327. package/src/components/payments/list/locales/sl.ts +6 -0
  328. package/src/components/payments/payments.hooks.ts +7 -2
  329. package/src/components/request-logs/index.ts +1 -1
  330. package/src/components/table/data-table.tsx +8 -3
  331. package/src/components/table/filter-panel.tsx +4 -4
  332. package/src/components/table/hooks/use-table-query.ts +3 -0
  333. package/src/components/table/table-empty-state.tsx +11 -4
  334. package/src/components/table/table-no-results.tsx +6 -4
  335. package/src/components/table/types.ts +2 -2
  336. package/src/components/tax-reports/kir-export-form.tsx +0 -1
  337. package/src/components/taxes/create-tax-form/create-tax-form.tsx +14 -0
  338. package/src/components/taxes/create-tax-form/locales/en.ts +1 -0
  339. package/src/components/taxes/create-tax-form/locales/es.ts +8 -0
  340. package/src/components/taxes/create-tax-form/locales/fr.ts +8 -0
  341. package/src/components/taxes/create-tax-form/locales/hr.ts +8 -0
  342. package/src/components/taxes/create-tax-form/locales/it.ts +8 -0
  343. package/src/components/taxes/create-tax-form/locales/nl.ts +8 -0
  344. package/src/components/taxes/create-tax-form/locales/pl.ts +8 -0
  345. package/src/components/taxes/create-tax-form/locales/pt.ts +8 -0
  346. package/src/components/taxes/edit-tax-form/edit-tax-form.tsx +119 -0
  347. package/src/components/taxes/edit-tax-form/locales/de.ts +6 -0
  348. package/src/components/taxes/edit-tax-form/locales/es.ts +6 -0
  349. package/src/components/taxes/edit-tax-form/locales/fr.ts +6 -0
  350. package/src/components/taxes/edit-tax-form/locales/hr.ts +6 -0
  351. package/src/components/taxes/edit-tax-form/locales/it.ts +6 -0
  352. package/src/components/taxes/edit-tax-form/locales/nl.ts +6 -0
  353. package/src/components/taxes/edit-tax-form/locales/pl.ts +6 -0
  354. package/src/components/taxes/edit-tax-form/locales/pt.ts +6 -0
  355. package/src/components/taxes/edit-tax-form/locales/sl.ts +6 -0
  356. package/src/components/taxes/tax-list-table/locales/de.ts +6 -0
  357. package/src/components/taxes/tax-list-table/locales/en.ts +6 -0
  358. package/src/components/taxes/tax-list-table/locales/es.ts +17 -0
  359. package/src/components/taxes/tax-list-table/locales/fr.ts +17 -0
  360. package/src/components/taxes/tax-list-table/locales/hr.ts +17 -0
  361. package/src/components/taxes/tax-list-table/locales/it.ts +17 -0
  362. package/src/components/taxes/tax-list-table/locales/nl.ts +17 -0
  363. package/src/components/taxes/tax-list-table/locales/pl.ts +17 -0
  364. package/src/components/taxes/tax-list-table/locales/pt.ts +17 -0
  365. package/src/components/taxes/tax-list-table/locales/sl.ts +6 -0
  366. package/src/components/taxes/tax-list-table/tax-list-table.tsx +18 -0
  367. package/src/components/taxes/taxes.hooks.ts +12 -7
  368. package/src/components/ui/tooltip.tsx +2 -2
  369. package/src/components/wl-subscription/locked-feature.tsx +1 -0
  370. package/src/components/wl-subscription/upgrade-modal.tsx +1 -0
  371. package/src/generated/schemas/acceptentityinvitation_body.ts +17 -0
  372. package/src/generated/schemas/addentityuser_body.ts +18 -0
  373. package/src/generated/schemas/advanceinvoice.ts +184 -12
  374. package/src/generated/schemas/creditnote.ts +99 -127
  375. package/src/generated/schemas/customadvanceinvoice.ts +246 -0
  376. package/src/generated/schemas/customcreditnote.ts +237 -0
  377. package/src/generated/schemas/customer.ts +26 -0
  378. package/src/generated/schemas/customestimate.ts +181 -0
  379. package/src/generated/schemas/custominvoice.ts +237 -0
  380. package/src/generated/schemas/entity.ts +66 -7
  381. package/src/generated/schemas/entityuserrole.ts +19 -0
  382. package/src/generated/schemas/estimate.ts +149 -1
  383. package/src/generated/schemas/finasettings.ts +25 -0
  384. package/src/generated/schemas/furssettings.ts +1 -2
  385. package/src/generated/schemas/index.ts +24 -5
  386. package/src/generated/schemas/invoice.ts +224 -22
  387. package/src/generated/schemas/me.ts +22 -0
  388. package/src/generated/schemas/registerfinamovablepremise_body.ts +26 -0
  389. package/src/generated/schemas/registerfinarealestatepremise_body.ts +37 -0
  390. package/src/generated/schemas/renderadvanceinvoicepreview_body.ts +342 -0
  391. package/src/generated/schemas/rendercreditnotepreview_body.ts +344 -0
  392. package/src/generated/schemas/renderestimatepreview_body.ts +284 -0
  393. package/src/generated/schemas/renderinvoicepreview_body.ts +344 -0
  394. package/src/generated/schemas/senddocument_body.ts +23 -0
  395. package/src/generated/schemas/sendemail_body.ts +8 -10
  396. package/src/generated/schemas/stripeappconnect_body.ts +18 -0
  397. package/src/generated/schemas/stripeappcreateinvoice_body.ts +20 -0
  398. package/src/generated/schemas/stripeappupdatesettings_body.ts +26 -0
  399. package/src/generated/schemas/webhook.ts +143 -0
  400. package/src/hooks/create-resource-hooks.ts +85 -1
  401. package/src/hooks/use-duplicate-document.ts +19 -11
  402. package/src/hooks/use-next-document-number.ts +1 -1
  403. package/src/hooks/use-resource-mutation.ts +4 -3
  404. package/src/lib/browser-cookies.ts +12 -1
  405. package/src/lib/cookies.ts +2 -2
  406. package/src/lib/translation.ts +1 -1
  407. package/src/providers/entities-provider.tsx +105 -39
  408. package/src/providers/sdk-provider.tsx +7 -3
  409. package/src/providers/white-label-provider.tsx +5 -2
  410. package/src/providers/wl-subscription-provider.tsx +1 -0
  411. package/src/components/invoices/view/furs-info-display.tsx +0 -213
@@ -0,0 +1,395 @@
1
+ import { zodResolver } from "@hookform/resolvers/zod";
2
+ import type { FC } from "react";
3
+ import type { Resolver } from "react-hook-form";
4
+ import { useForm } from "react-hook-form";
5
+ import { z } from "zod";
6
+ import { Button } from "@/ui/components/ui/button";
7
+ import {
8
+ Dialog,
9
+ DialogContent,
10
+ DialogDescription,
11
+ DialogFooter,
12
+ DialogHeader,
13
+ DialogTitle,
14
+ } from "@/ui/components/ui/dialog";
15
+ import {
16
+ Form,
17
+ FormControl,
18
+ FormDescription,
19
+ FormField,
20
+ FormItem,
21
+ FormLabel,
22
+ FormMessage,
23
+ } from "@/ui/components/ui/form";
24
+ import { Input } from "@/ui/components/ui/input";
25
+ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/ui/components/ui/select";
26
+ import { useRegisterFinaMovablePremise, useRegisterFinaRealEstatePremise } from "../fina-settings.hooks";
27
+
28
+ // Manual Zod schemas (SDK not regenerated for FINA yet)
29
+ const realEstatePremiseSchema = z.object({
30
+ premise_id: z.string().min(1, "Premise ID is required").max(20),
31
+ real_estate: z.object({
32
+ cadastral_municipality: z.string().min(1, "Cadastral municipality is required"),
33
+ land_registry_number: z.string().min(1, "Land registry number is required"),
34
+ building_number: z.string().optional().default(""),
35
+ sub_building_number: z.string().optional().default(""),
36
+ street: z.string().optional().default(""),
37
+ house_number: z.string().optional().default(""),
38
+ house_number_additional: z.string().optional().default(""),
39
+ settlement: z.string().optional().default(""),
40
+ city: z.string().optional().default(""),
41
+ postal_code: z.string().optional().default(""),
42
+ }),
43
+ });
44
+
45
+ const movablePremiseSchema = z.object({
46
+ premise_id: z.string().min(1, "Premise ID is required").max(20),
47
+ movable_premise: z.object({
48
+ type: z.enum(["vehicle", "market_stall", "other"]),
49
+ }),
50
+ });
51
+
52
+ type RealEstatePremiseForm = z.infer<typeof realEstatePremiseSchema>;
53
+ type MovablePremiseForm = z.infer<typeof movablePremiseSchema>;
54
+
55
+ interface RegisterFinaPremiseDialogProps {
56
+ open: boolean;
57
+ onOpenChange: (open: boolean) => void;
58
+ entity: any;
59
+ type: "real-estate" | "movable";
60
+ t: (key: string) => string;
61
+ onSuccess?: () => void;
62
+ onError?: (error: unknown) => void;
63
+ }
64
+
65
+ export const RegisterFinaPremiseDialog: FC<RegisterFinaPremiseDialogProps> = ({
66
+ open,
67
+ onOpenChange,
68
+ entity,
69
+ type,
70
+ t,
71
+ onSuccess,
72
+ onError,
73
+ }) => {
74
+ const isRealEstate = type === "real-estate";
75
+
76
+ const realEstateForm = useForm<RealEstatePremiseForm>({
77
+ resolver: zodResolver(realEstatePremiseSchema) as Resolver<RealEstatePremiseForm>,
78
+ defaultValues: {
79
+ premise_id: "",
80
+ real_estate: {
81
+ cadastral_municipality: "",
82
+ land_registry_number: "",
83
+ building_number: "",
84
+ sub_building_number: "",
85
+ street: "",
86
+ house_number: "",
87
+ house_number_additional: "",
88
+ settlement: "",
89
+ city: "",
90
+ postal_code: "",
91
+ },
92
+ },
93
+ });
94
+
95
+ const movableForm = useForm<MovablePremiseForm>({
96
+ resolver: zodResolver(movablePremiseSchema),
97
+ defaultValues: {
98
+ premise_id: "",
99
+ movable_premise: {
100
+ type: "vehicle",
101
+ },
102
+ },
103
+ });
104
+
105
+ const { mutate: registerRealEstate, isPending: isRealEstatePending } = useRegisterFinaRealEstatePremise({
106
+ onSuccess: () => {
107
+ realEstateForm.reset();
108
+ onSuccess?.();
109
+ },
110
+ onError,
111
+ });
112
+
113
+ const { mutate: registerMovable, isPending: isMovablePending } = useRegisterFinaMovablePremise({
114
+ onSuccess: () => {
115
+ movableForm.reset();
116
+ onSuccess?.();
117
+ },
118
+ onError,
119
+ });
120
+
121
+ const handleRealEstateSubmit = (data: RealEstatePremiseForm) => {
122
+ registerRealEstate({
123
+ entityId: entity.id,
124
+ data,
125
+ });
126
+ };
127
+
128
+ const handleMovableSubmit = (data: MovablePremiseForm) => {
129
+ registerMovable({
130
+ entityId: entity.id,
131
+ data,
132
+ });
133
+ };
134
+
135
+ const isPending = isRealEstatePending || isMovablePending;
136
+
137
+ return (
138
+ <Dialog open={open} onOpenChange={onOpenChange}>
139
+ <DialogContent className="max-h-[90vh] max-w-2xl overflow-y-auto">
140
+ <DialogHeader>
141
+ <DialogTitle>{isRealEstate ? t("Register Real Estate Premise") : t("Register Movable Premise")}</DialogTitle>
142
+ <DialogDescription>
143
+ {t(
144
+ "Register a new business premise with FINA. After registration, you'll need to add at least one electronic device.",
145
+ )}
146
+ </DialogDescription>
147
+ </DialogHeader>
148
+
149
+ {isRealEstate ? (
150
+ <Form {...realEstateForm}>
151
+ <form onSubmit={realEstateForm.handleSubmit(handleRealEstateSubmit as any)} className="space-y-4">
152
+ {/* Premise ID */}
153
+ <FormField
154
+ control={realEstateForm.control as any}
155
+ name="premise_id"
156
+ render={({ field }) => (
157
+ <FormItem>
158
+ <FormLabel>{t("Premise ID")}</FormLabel>
159
+ <FormControl>
160
+ <Input placeholder="PP1" {...field} />
161
+ </FormControl>
162
+ <FormDescription>{t("Unique identifier for this premise (e.g., PP1, OFFICE1)")}</FormDescription>
163
+ <FormMessage />
164
+ </FormItem>
165
+ )}
166
+ />
167
+
168
+ {/* Cadastral Municipality */}
169
+ <FormField
170
+ control={realEstateForm.control as any}
171
+ name="real_estate.cadastral_municipality"
172
+ render={({ field }) => (
173
+ <FormItem>
174
+ <FormLabel>{t("Cadastral Municipality")} *</FormLabel>
175
+ <FormControl>
176
+ <Input placeholder="12345" {...field} />
177
+ </FormControl>
178
+ <FormMessage />
179
+ </FormItem>
180
+ )}
181
+ />
182
+
183
+ {/* Land Registry Number */}
184
+ <FormField
185
+ control={realEstateForm.control as any}
186
+ name="real_estate.land_registry_number"
187
+ render={({ field }) => (
188
+ <FormItem>
189
+ <FormLabel>{t("Land Registry Number")} *</FormLabel>
190
+ <FormControl>
191
+ <Input placeholder="123" {...field} />
192
+ </FormControl>
193
+ <FormMessage />
194
+ </FormItem>
195
+ )}
196
+ />
197
+
198
+ {/* Building Information */}
199
+ <div className="grid grid-cols-2 gap-4">
200
+ <FormField
201
+ control={realEstateForm.control as any}
202
+ name="real_estate.building_number"
203
+ render={({ field }) => (
204
+ <FormItem>
205
+ <FormLabel>{t("Building Number")}</FormLabel>
206
+ <FormControl>
207
+ <Input placeholder="1" {...field} value={field.value || ""} />
208
+ </FormControl>
209
+ <FormMessage />
210
+ </FormItem>
211
+ )}
212
+ />
213
+ <FormField
214
+ control={realEstateForm.control as any}
215
+ name="real_estate.sub_building_number"
216
+ render={({ field }) => (
217
+ <FormItem>
218
+ <FormLabel>{t("Sub-Building Number")}</FormLabel>
219
+ <FormControl>
220
+ <Input placeholder="A" {...field} value={field.value || ""} />
221
+ </FormControl>
222
+ <FormMessage />
223
+ </FormItem>
224
+ )}
225
+ />
226
+ </div>
227
+
228
+ {/* Address */}
229
+ <FormField
230
+ control={realEstateForm.control as any}
231
+ name="real_estate.street"
232
+ render={({ field }) => (
233
+ <FormItem>
234
+ <FormLabel>{t("Street")}</FormLabel>
235
+ <FormControl>
236
+ <Input placeholder="Ilica" {...field} value={field.value || ""} />
237
+ </FormControl>
238
+ <FormMessage />
239
+ </FormItem>
240
+ )}
241
+ />
242
+
243
+ <div className="grid grid-cols-2 gap-4">
244
+ <FormField
245
+ control={realEstateForm.control as any}
246
+ name="real_estate.house_number"
247
+ render={({ field }) => (
248
+ <FormItem>
249
+ <FormLabel>{t("House Number")}</FormLabel>
250
+ <FormControl>
251
+ <Input placeholder="22" {...field} value={field.value || ""} />
252
+ </FormControl>
253
+ <FormMessage />
254
+ </FormItem>
255
+ )}
256
+ />
257
+ <FormField
258
+ control={realEstateForm.control as any}
259
+ name="real_estate.house_number_additional"
260
+ render={({ field }) => (
261
+ <FormItem>
262
+ <FormLabel>{t("House Number Additional")}</FormLabel>
263
+ <FormControl>
264
+ <Input placeholder="A" {...field} value={field.value || ""} />
265
+ </FormControl>
266
+ <FormMessage />
267
+ </FormItem>
268
+ )}
269
+ />
270
+ </div>
271
+
272
+ <FormField
273
+ control={realEstateForm.control as any}
274
+ name="real_estate.settlement"
275
+ render={({ field }) => (
276
+ <FormItem>
277
+ <FormLabel>{t("Settlement")}</FormLabel>
278
+ <FormControl>
279
+ <Input placeholder="" {...field} value={field.value || ""} />
280
+ </FormControl>
281
+ <FormMessage />
282
+ </FormItem>
283
+ )}
284
+ />
285
+
286
+ <div className="grid grid-cols-2 gap-4">
287
+ <FormField
288
+ control={realEstateForm.control as any}
289
+ name="real_estate.city"
290
+ render={({ field }) => (
291
+ <FormItem>
292
+ <FormLabel>{t("City")}</FormLabel>
293
+ <FormControl>
294
+ <Input placeholder="Zagreb" {...field} value={field.value || ""} />
295
+ </FormControl>
296
+ <FormMessage />
297
+ </FormItem>
298
+ )}
299
+ />
300
+ <FormField
301
+ control={realEstateForm.control as any}
302
+ name="real_estate.postal_code"
303
+ render={({ field }) => (
304
+ <FormItem>
305
+ <FormLabel>{t("Postal Code")}</FormLabel>
306
+ <FormControl>
307
+ <Input placeholder="10000" {...field} value={field.value || ""} />
308
+ </FormControl>
309
+ <FormMessage />
310
+ </FormItem>
311
+ )}
312
+ />
313
+ </div>
314
+
315
+ <DialogFooter>
316
+ <Button
317
+ type="button"
318
+ variant="outline"
319
+ onClick={() => onOpenChange(false)}
320
+ disabled={isPending}
321
+ className="cursor-pointer"
322
+ >
323
+ {t("Cancel")}
324
+ </Button>
325
+ <Button type="submit" disabled={isPending} className="cursor-pointer">
326
+ {isPending ? t("Registering...") : t("Register Premise")}
327
+ </Button>
328
+ </DialogFooter>
329
+ </form>
330
+ </Form>
331
+ ) : (
332
+ <Form {...movableForm}>
333
+ <form onSubmit={movableForm.handleSubmit(handleMovableSubmit)} className="space-y-4">
334
+ {/* Premise ID */}
335
+ <FormField
336
+ control={movableForm.control}
337
+ name="premise_id"
338
+ render={({ field }) => (
339
+ <FormItem>
340
+ <FormLabel>{t("Premise ID")}</FormLabel>
341
+ <FormControl>
342
+ <Input placeholder="PP1" {...field} />
343
+ </FormControl>
344
+ <FormDescription>{t("Unique identifier for this premise (e.g., PP1, OFFICE1)")}</FormDescription>
345
+ <FormMessage />
346
+ </FormItem>
347
+ )}
348
+ />
349
+
350
+ {/* Premise Type */}
351
+ <FormField
352
+ control={movableForm.control}
353
+ name="movable_premise.type"
354
+ render={({ field }) => (
355
+ <FormItem>
356
+ <FormLabel>{t("Premise Type")}</FormLabel>
357
+ <Select onValueChange={field.onChange} value={field.value}>
358
+ <FormControl>
359
+ <SelectTrigger>
360
+ <SelectValue placeholder="Select type" />
361
+ </SelectTrigger>
362
+ </FormControl>
363
+ <SelectContent>
364
+ <SelectItem value="vehicle">{t("Vehicle")}</SelectItem>
365
+ <SelectItem value="market_stall">{t("Market Stall")}</SelectItem>
366
+ <SelectItem value="other">{t("Other Movable")}</SelectItem>
367
+ </SelectContent>
368
+ </Select>
369
+ <FormDescription>{t("Type of movable business premise")}</FormDescription>
370
+ <FormMessage />
371
+ </FormItem>
372
+ )}
373
+ />
374
+
375
+ <DialogFooter>
376
+ <Button
377
+ type="button"
378
+ variant="outline"
379
+ onClick={() => onOpenChange(false)}
380
+ disabled={isPending}
381
+ className="cursor-pointer"
382
+ >
383
+ {t("Cancel")}
384
+ </Button>
385
+ <Button type="submit" disabled={isPending} className="cursor-pointer">
386
+ {isPending ? t("Registering...") : t("Register Premise")}
387
+ </Button>
388
+ </DialogFooter>
389
+ </form>
390
+ </Form>
391
+ )}
392
+ </DialogContent>
393
+ </Dialog>
394
+ );
395
+ };
@@ -18,13 +18,20 @@ import { useFursPremises, useFursSettings, useUpdateFursSettings } from "./furs-
18
18
  // Import locale files
19
19
  import de from "./locales/de";
20
20
  import en from "./locales/en";
21
+ import es from "./locales/es";
22
+ import fr from "./locales/fr";
23
+ import hr from "./locales/hr";
24
+ import it from "./locales/it";
25
+ import nl from "./locales/nl";
26
+ import pl from "./locales/pl";
27
+ import pt from "./locales/pt";
21
28
  import sl from "./locales/sl";
22
29
  import { CertificateSettingsSection } from "./sections/certificate-settings-section";
23
30
  import { EnableFiscalizationSection } from "./sections/enable-fiscalization-section";
24
31
  import { GeneralSettingsSection } from "./sections/general-settings-section";
25
32
  import { PremisesManagementSection } from "./sections/premises-management-section";
26
33
 
27
- const translations = { de, sl, en } as const;
34
+ const translations = { sl, de, en, it, fr, es, pt, nl, pl, hr } as const;
28
35
 
29
36
  /**
30
37
  * FURS Settings Form Schema
@@ -38,6 +45,7 @@ export type FursSettingsFormSchema = z.infer<typeof fursSettingsFormSchema>;
38
45
 
39
46
  export type StepType = "settings" | "certificate" | "premises" | "enable";
40
47
  export type SectionType =
48
+ | "entity-info"
41
49
  | "operator"
42
50
  | "fiscalization"
43
51
  | "advanced"
@@ -147,19 +155,20 @@ export const FursSettingsForm: FC<FursSettingsFormProps> = ({
147
155
 
148
156
  // Step unlocking logic (new flow: settings -> certificate -> premises -> enable)
149
157
  // - Step 1 (Settings): Always accessible
150
- // - Step 2 (Certificate): Always accessible
158
+ // - Step 2 (Certificate): Requires entity tax number
151
159
  // - Step 3 (Premises): Requires valid certificate
152
160
  // - Step 4 (Enable): Requires certificate + premise + device
161
+ const hasEntityTaxNumber = !!entity.tax_number;
153
162
  const fursEnabled = fursSettings?.enabled || false;
154
- const canAccessCertificate = true; // Always accessible
155
- const canAccessPremises = hasCertificate && certificateValid;
156
- const canAccessEnable = certificateValid && hasPremises && hasPremiseWithDevice;
163
+ const canAccessCertificate = hasEntityTaxNumber;
164
+ const canAccessPremises = hasEntityTaxNumber && hasCertificate && certificateValid;
165
+ const canAccessEnable = hasEntityTaxNumber && certificateValid && hasPremises && hasPremiseWithDevice;
157
166
 
158
167
  const steps = [
159
168
  {
160
169
  id: "settings" as const,
161
170
  title: translate("General Settings"),
162
- complete: true, // Settings are always "complete" - just configuration
171
+ complete: hasEntityTaxNumber,
163
172
  unlocked: true,
164
173
  },
165
174
  {
@@ -245,7 +254,7 @@ export const FursSettingsForm: FC<FursSettingsFormProps> = ({
245
254
  };
246
255
 
247
256
  if (settingsLoading || premisesLoading) {
248
- return <PageLoadingSpinner text={translate("Loading...")} />;
257
+ return <PageLoadingSpinner />;
249
258
  }
250
259
 
251
260
  // Check if entity is in sandbox (test) mode
@@ -265,8 +274,14 @@ export const FursSettingsForm: FC<FursSettingsFormProps> = ({
265
274
  let tooltipText = "";
266
275
 
267
276
  if (isLocked) {
268
- if (step.id === "premises") {
269
- tooltipText = translate("Upload and validate digital certificate first");
277
+ if (step.id === "certificate") {
278
+ tooltipText = translate("Set entity tax number in General Settings first");
279
+ } else if (step.id === "premises") {
280
+ if (!hasEntityTaxNumber) {
281
+ tooltipText = translate("Set entity tax number in General Settings first");
282
+ } else {
283
+ tooltipText = translate("Upload and validate digital certificate first");
284
+ }
270
285
  } else if (step.id === "enable") {
271
286
  if (!certificateValid) {
272
287
  tooltipText = translate("Upload and validate digital certificate first");
@@ -5,12 +5,12 @@
5
5
 
6
6
  import type {
7
7
  FursBusinessPremise,
8
- GetFursCertificate200,
9
8
  GetFursSettings200,
10
9
  RegisterFursMovablePremiseBody,
11
10
  RegisterFursRealEstatePremiseBody,
12
11
  UpdateFursSettingsBody,
13
12
  UpdateUserFursSettingsBody,
13
+ UploadFursCertificate200,
14
14
  User,
15
15
  } from "@spaceinvoices/js-sdk";
16
16
  import {
@@ -48,7 +48,7 @@ export function useFursSettings(
48
48
  queryFn: async () => {
49
49
  if (!sdk) throw new Error("SDK not initialized");
50
50
  if (!entityId) throw new Error("Entity ID required");
51
- return (sdk.fursSettings as any).get({ entity_id: entityId });
51
+ return sdk.fursSettings.list({ entity_id: entityId });
52
52
  },
53
53
  enabled: !!sdk && !!entityId,
54
54
  staleTime: 0, // Always fetch fresh data
@@ -69,7 +69,7 @@ export function useUpdateFursSettings(
69
69
  ...options,
70
70
  mutationFn: async ({ entityId, data }) => {
71
71
  if (!sdk) throw new Error("SDK not initialized");
72
- return (sdk.fursSettings as any).update(data, { entity_id: entityId });
72
+ return sdk.fursSettings.update(data, { entity_id: entityId });
73
73
  },
74
74
  onSuccess: (data, variables, context) => {
75
75
  // Invalidate settings query
@@ -88,7 +88,7 @@ export function useUpdateFursSettings(
88
88
  * Hook: Upload FURS certificate
89
89
  */
90
90
  export function useUploadFursCertificate(
91
- options?: UseMutationOptions<GetFursCertificate200, Error, { entityId: string; file: Blob; passphrase: string }>,
91
+ options?: UseMutationOptions<UploadFursCertificate200, Error, { entityId: string; file: Blob; passphrase: string }>,
92
92
  ) {
93
93
  const { sdk } = useSDK();
94
94
  const queryClient = useQueryClient();
@@ -97,7 +97,7 @@ export function useUploadFursCertificate(
97
97
  ...options,
98
98
  mutationFn: async ({ entityId, file, passphrase }) => {
99
99
  if (!sdk) throw new Error("SDK not initialized");
100
- return (sdk.fursSettings as any).uploadCertificate(file, passphrase, { entity_id: entityId });
100
+ return sdk.fursCertificate.uploadFursCertificate({ file, passphrase }, { entity_id: entityId });
101
101
  },
102
102
  onSuccess: (data, variables, context) => {
103
103
  // Invalidate settings query to refresh certificate status
@@ -125,7 +125,7 @@ export function useFursPremises(
125
125
  queryKey: fursQueryKeys.premises(entityId),
126
126
  queryFn: async () => {
127
127
  if (!sdk) throw new Error("SDK not initialized");
128
- return (sdk.fursFiscalization as any).listPremises({ entity_id: entityId });
128
+ return sdk.fursFiscalization.listFursBusinessPremises({ entity_id: entityId });
129
129
  },
130
130
  enabled: !!sdk,
131
131
  staleTime: 0, // Always fetch fresh data to reflect device changes
@@ -146,7 +146,7 @@ export function useRegisterRealEstatePremise(
146
146
  ...options,
147
147
  mutationFn: async ({ entityId, data }) => {
148
148
  if (!sdk) throw new Error("SDK not initialized");
149
- return (sdk.fursFiscalization as any).registerRealEstatePremise(data, { entity_id: entityId });
149
+ return sdk.fursFiscalization.registerFursRealEstatePremise(data, { entity_id: entityId });
150
150
  },
151
151
  onSuccess: (data, variables, context) => {
152
152
  // Invalidate premises list
@@ -174,7 +174,7 @@ export function useRegisterMovablePremise(
174
174
  ...options,
175
175
  mutationFn: async ({ entityId, data }) => {
176
176
  if (!sdk) throw new Error("SDK not initialized");
177
- return (sdk.fursFiscalization as any).registerMovablePremise(data, { entity_id: entityId });
177
+ return sdk.fursFiscalization.registerFursMovablePremise(data, { entity_id: entityId });
178
178
  },
179
179
  onSuccess: (data, variables, context) => {
180
180
  // Invalidate premises list
@@ -200,7 +200,7 @@ export function useClosePremise(options?: UseMutationOptions<any, Error, { entit
200
200
  ...options,
201
201
  mutationFn: async ({ entityId, premiseId }) => {
202
202
  if (!sdk) throw new Error("SDK not initialized");
203
- return (sdk.fursFiscalization as any).closePremise(premiseId, { entity_id: entityId });
203
+ return sdk.fursFiscalization.closeFursBusinessPremise(premiseId, { entity_id: entityId });
204
204
  },
205
205
  onSuccess: (data, variables, context) => {
206
206
  // Invalidate premises list
@@ -228,7 +228,11 @@ export function useRegisterElectronicDevice(
228
228
  ...options,
229
229
  mutationFn: async ({ entityId, premiseId, deviceName }) => {
230
230
  if (!sdk) throw new Error("SDK not initialized");
231
- return (sdk.fursFiscalization as any).registerDevice(premiseId, { name: deviceName }, { entity_id: entityId });
231
+ return sdk.fursFiscalization.registerFursElectronicDevice(
232
+ premiseId,
233
+ { name: deviceName },
234
+ { entity_id: entityId },
235
+ );
232
236
  },
233
237
  onSuccess: (data, variables, context) => {
234
238
  // Invalidate premises list to refresh devices
@@ -304,7 +308,7 @@ export function useUpdateUserFursSettings(
304
308
  ...options,
305
309
  mutationFn: async ({ entityId, data }) => {
306
310
  if (!sdk) throw new Error("SDK not initialized");
307
- return (sdk.users as any).updateFursSettings(data, { entity_id: entityId });
311
+ return sdk.users.updateFursSettings(data, { entity_id: entityId });
308
312
  },
309
313
  onSuccess: (data, variables, context) => {
310
314
  // Invalidate current user query to refresh settings