shutro-erp 0.3.4 → 0.3.5

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 (381) hide show
  1. package/dist/account_portal/.kosh/bindings.js +1 -1
  2. package/dist/account_portal/.kosh/schema.d.ts +54 -3
  3. package/dist/account_portal/module.d.ts +359 -6
  4. package/dist/accounting/.kosh/bindings.js +1 -1
  5. package/dist/accounting/.kosh/schema.d.ts +54 -3
  6. package/dist/accounting/index.js +214 -2
  7. package/dist/accounting/module.d.ts +217 -5
  8. package/dist/accounting/module.js +23 -2
  9. package/dist/calendar/.kosh/bindings.d.ts +22 -0
  10. package/dist/calendar/.kosh/bindings.js +15 -0
  11. package/dist/calendar/.kosh/schema.d.ts +795 -0
  12. package/dist/calendar/demo.d.ts +6 -0
  13. package/dist/calendar/demo.js +24 -0
  14. package/dist/calendar/index.d.ts +3 -0
  15. package/dist/calendar/index.js +291 -0
  16. package/dist/calendar/module.d.ts +1705 -0
  17. package/dist/calendar/module.js +180 -0
  18. package/dist/cli/init.js +48 -0
  19. package/dist/cli/templates.d.ts +1 -1
  20. package/dist/cli/templates.js +137 -0
  21. package/dist/contacts/.kosh/bindings.js +1 -1
  22. package/dist/contacts/.kosh/schema.d.ts +78 -3
  23. package/dist/contacts/demo.js +30 -1
  24. package/dist/contacts/index.d.ts +1 -1
  25. package/dist/contacts/index.js +155 -9
  26. package/dist/contacts/module.d.ts +338 -2
  27. package/dist/contacts/module.js +82 -5
  28. package/dist/crm/.kosh/bindings.d.ts +22 -0
  29. package/dist/crm/.kosh/bindings.js +15 -0
  30. package/dist/crm/.kosh/schema.d.ts +799 -0
  31. package/dist/crm/demo.d.ts +6 -0
  32. package/dist/crm/demo.js +45 -0
  33. package/dist/crm/index.d.ts +3 -0
  34. package/dist/crm/index.js +361 -0
  35. package/dist/crm/module.d.ts +1843 -0
  36. package/dist/crm/module.js +207 -0
  37. package/dist/event/.kosh/bindings.d.ts +22 -0
  38. package/dist/event/.kosh/bindings.js +15 -0
  39. package/dist/event/.kosh/schema.d.ts +843 -0
  40. package/dist/event/demo.d.ts +6 -0
  41. package/dist/event/demo.js +65 -0
  42. package/dist/event/index.d.ts +14 -0
  43. package/dist/event/index.js +333 -0
  44. package/dist/event/mails.d.ts +15 -0
  45. package/dist/event/mails.js +112 -0
  46. package/dist/event/module.d.ts +2800 -0
  47. package/dist/event/module.js +323 -0
  48. package/dist/event/web/CheckInBox.d.ts +9 -0
  49. package/dist/event/web/CheckInBox.js +87 -0
  50. package/dist/event/web/index.d.ts +11 -0
  51. package/dist/event/web/index.js +16 -0
  52. package/dist/event/web/messages.d.ts +2 -0
  53. package/dist/event/web/messages.js +23 -0
  54. package/dist/event_account/.kosh/bindings.d.ts +22 -0
  55. package/dist/event_account/.kosh/bindings.js +15 -0
  56. package/dist/event_account/.kosh/schema.d.ts +1639 -0
  57. package/dist/event_account/index.d.ts +3 -0
  58. package/dist/event_account/index.js +28 -0
  59. package/dist/event_account/module.d.ts +6968 -0
  60. package/dist/event_account/module.js +90 -0
  61. package/dist/hr/.kosh/bindings.d.ts +22 -0
  62. package/dist/hr/.kosh/bindings.js +15 -0
  63. package/dist/hr/.kosh/schema.d.ts +878 -0
  64. package/dist/hr/demo.d.ts +6 -0
  65. package/dist/hr/demo.js +60 -0
  66. package/dist/hr/index.d.ts +3 -0
  67. package/dist/hr/index.js +483 -0
  68. package/dist/hr/module.d.ts +2611 -0
  69. package/dist/hr/module.js +350 -0
  70. package/dist/l10n_bd/.kosh/bindings.js +1 -1
  71. package/dist/l10n_bd/.kosh/schema.d.ts +54 -3
  72. package/dist/l10n_bd/module.d.ts +359 -6
  73. package/dist/l10n_in/.kosh/bindings.js +1 -1
  74. package/dist/l10n_in/.kosh/schema.d.ts +54 -3
  75. package/dist/l10n_in/module.d.ts +380 -7
  76. package/dist/maintenance/.kosh/bindings.d.ts +22 -0
  77. package/dist/maintenance/.kosh/bindings.js +15 -0
  78. package/dist/maintenance/.kosh/schema.d.ts +911 -0
  79. package/dist/maintenance/demo.d.ts +6 -0
  80. package/dist/maintenance/demo.js +60 -0
  81. package/dist/maintenance/index.d.ts +3 -0
  82. package/dist/maintenance/index.js +422 -0
  83. package/dist/maintenance/module.d.ts +3545 -0
  84. package/dist/maintenance/module.js +446 -0
  85. package/dist/maintenance_stock/.kosh/bindings.d.ts +22 -0
  86. package/dist/maintenance_stock/.kosh/bindings.js +15 -0
  87. package/dist/maintenance_stock/.kosh/schema.d.ts +1371 -0
  88. package/dist/maintenance_stock/index.d.ts +9 -0
  89. package/dist/maintenance_stock/index.js +52 -0
  90. package/dist/maintenance_stock/module.d.ts +6953 -0
  91. package/dist/maintenance_stock/module.js +192 -0
  92. package/dist/modules-sdk/index.d.ts +1 -1
  93. package/dist/modules-sdk/manifest.d.ts +70 -0
  94. package/dist/modules-sdk/manifest.js +35 -1
  95. package/dist/mrp/.kosh/bindings.d.ts +22 -0
  96. package/dist/mrp/.kosh/bindings.js +15 -0
  97. package/dist/mrp/.kosh/schema.d.ts +1378 -0
  98. package/dist/mrp/demo.d.ts +7 -0
  99. package/dist/mrp/demo.js +42 -0
  100. package/dist/mrp/index.d.ts +3 -0
  101. package/dist/mrp/index.js +392 -0
  102. package/dist/mrp/module.d.ts +8608 -0
  103. package/dist/mrp/module.js +695 -0
  104. package/dist/mrp_account/.kosh/bindings.d.ts +22 -0
  105. package/dist/mrp_account/.kosh/bindings.js +15 -0
  106. package/dist/mrp_account/.kosh/schema.d.ts +2106 -0
  107. package/dist/mrp_account/index.d.ts +3 -0
  108. package/dist/mrp_account/index.js +22 -0
  109. package/dist/mrp_account/module.d.ts +20840 -0
  110. package/dist/mrp_account/module.js +123 -0
  111. package/dist/payment/.kosh/bindings.js +1 -1
  112. package/dist/payment/.kosh/schema.d.ts +54 -3
  113. package/dist/payment/module.d.ts +359 -6
  114. package/dist/portal/.kosh/bindings.js +1 -1
  115. package/dist/portal/.kosh/schema.d.ts +78 -3
  116. package/dist/portal/module.d.ts +166 -2
  117. package/dist/pos/.kosh/bindings.d.ts +22 -0
  118. package/dist/pos/.kosh/bindings.js +15 -0
  119. package/dist/pos/.kosh/schema.d.ts +1690 -0
  120. package/dist/pos/accounting.d.ts +10 -0
  121. package/dist/pos/accounting.js +149 -0
  122. package/dist/pos/demo.d.ts +6 -0
  123. package/dist/pos/demo.js +90 -0
  124. package/dist/pos/index.d.ts +9 -0
  125. package/dist/pos/index.js +349 -0
  126. package/dist/pos/module.d.ts +9636 -0
  127. package/dist/pos/module.js +423 -0
  128. package/dist/pos/routes.d.ts +39 -0
  129. package/dist/pos/routes.js +368 -0
  130. package/dist/pos/web/Register.d.ts +9 -0
  131. package/dist/pos/web/Register.js +252 -0
  132. package/dist/pos/web/index.d.ts +11 -0
  133. package/dist/pos/web/index.js +16 -0
  134. package/dist/pos/web/messages.d.ts +2 -0
  135. package/dist/pos/web/messages.js +87 -0
  136. package/dist/pos_stock/.kosh/bindings.d.ts +22 -0
  137. package/dist/pos_stock/.kosh/bindings.js +15 -0
  138. package/dist/pos_stock/.kosh/schema.d.ts +2015 -0
  139. package/dist/pos_stock/index.d.ts +9 -0
  140. package/dist/pos_stock/index.js +35 -0
  141. package/dist/pos_stock/module.d.ts +11935 -0
  142. package/dist/pos_stock/module.js +115 -0
  143. package/dist/product/.kosh/bindings.js +1 -1
  144. package/dist/product/.kosh/schema.d.ts +51 -1
  145. package/dist/product/index.js +81 -4
  146. package/dist/product/module.d.ts +43 -1
  147. package/dist/product/module.js +9 -2
  148. package/dist/project/.kosh/bindings.js +1 -1
  149. package/dist/project/.kosh/schema.d.ts +54 -3
  150. package/dist/project/index.js +147 -7
  151. package/dist/project/module.d.ts +210 -2
  152. package/dist/project/module.js +52 -5
  153. package/dist/project_portal/.kosh/bindings.js +1 -1
  154. package/dist/project_portal/.kosh/schema.d.ts +54 -3
  155. package/dist/project_portal/module.d.ts +353 -4
  156. package/dist/purchase/.kosh/bindings.js +1 -1
  157. package/dist/purchase/.kosh/schema.d.ts +54 -3
  158. package/dist/purchase/index.js +163 -3
  159. package/dist/purchase/module.d.ts +215 -3
  160. package/dist/purchase/module.js +21 -3
  161. package/dist/purchase_account/.kosh/bindings.js +1 -1
  162. package/dist/purchase_account/.kosh/schema.d.ts +55 -3
  163. package/dist/purchase_account/index.js +26 -1
  164. package/dist/purchase_account/module.d.ts +393 -7
  165. package/dist/purchase_portal/.kosh/bindings.js +1 -1
  166. package/dist/purchase_portal/.kosh/schema.d.ts +54 -3
  167. package/dist/purchase_portal/module.d.ts +366 -5
  168. package/dist/purchase_stock/.kosh/bindings.d.ts +22 -0
  169. package/dist/purchase_stock/.kosh/bindings.js +15 -0
  170. package/dist/purchase_stock/.kosh/schema.d.ts +1310 -0
  171. package/dist/purchase_stock/index.d.ts +7 -0
  172. package/dist/purchase_stock/index.js +91 -0
  173. package/dist/purchase_stock/module.d.ts +6763 -0
  174. package/dist/purchase_stock/module.js +144 -0
  175. package/dist/purchase_stock_account/.kosh/bindings.d.ts +22 -0
  176. package/dist/purchase_stock_account/.kosh/bindings.js +15 -0
  177. package/dist/purchase_stock_account/.kosh/schema.d.ts +1959 -0
  178. package/dist/purchase_stock_account/index.d.ts +3 -0
  179. package/dist/purchase_stock_account/index.js +24 -0
  180. package/dist/purchase_stock_account/module.d.ts +35366 -0
  181. package/dist/purchase_stock_account/module.js +162 -0
  182. package/dist/recruitment/.kosh/bindings.d.ts +22 -0
  183. package/dist/recruitment/.kosh/bindings.js +15 -0
  184. package/dist/recruitment/.kosh/schema.d.ts +990 -0
  185. package/dist/recruitment/demo.d.ts +6 -0
  186. package/dist/recruitment/demo.js +45 -0
  187. package/dist/recruitment/index.d.ts +3 -0
  188. package/dist/recruitment/index.js +385 -0
  189. package/dist/recruitment/module.d.ts +3247 -0
  190. package/dist/recruitment/module.js +193 -0
  191. package/dist/recruitment/web/HireButton.d.ts +9 -0
  192. package/dist/recruitment/web/HireButton.js +32 -0
  193. package/dist/recruitment/web/index.d.ts +11 -0
  194. package/dist/recruitment/web/index.js +16 -0
  195. package/dist/recruitment/web/messages.d.ts +2 -0
  196. package/dist/recruitment/web/messages.js +19 -0
  197. package/dist/reporting/documents.d.ts +5 -0
  198. package/dist/reporting/documents.js +28 -1
  199. package/dist/reporting/index.d.ts +1 -1
  200. package/dist/reporting/index.js +4 -2
  201. package/dist/reporting/models.js +9 -0
  202. package/dist/reporting/overviews.d.ts +16 -0
  203. package/dist/reporting/overviews.js +56 -0
  204. package/dist/reporting/routes-documents.js +1 -1
  205. package/dist/reporting/routes.js +138 -80
  206. package/dist/reporting/web/DashboardView.d.ts +11 -0
  207. package/dist/reporting/web/DashboardView.js +2 -2
  208. package/dist/reporting/web/DesignerView.js +5 -0
  209. package/dist/reporting/web/Overview.d.ts +9 -0
  210. package/dist/reporting/web/Overview.js +53 -0
  211. package/dist/reporting/web/index.d.ts +1 -0
  212. package/dist/reporting/web/index.js +4 -1
  213. package/dist/reporting/web/messages.js +9 -0
  214. package/dist/sale_account/.kosh/bindings.js +1 -1
  215. package/dist/sale_account/.kosh/schema.d.ts +59 -3
  216. package/dist/sale_account/index.js +22 -1
  217. package/dist/sale_account/module.d.ts +461 -7
  218. package/dist/sale_portal/.kosh/bindings.js +1 -1
  219. package/dist/sale_portal/.kosh/schema.d.ts +58 -3
  220. package/dist/sale_portal/module.d.ts +434 -5
  221. package/dist/sale_project/.kosh/bindings.js +1 -1
  222. package/dist/sale_project/.kosh/schema.d.ts +60 -3
  223. package/dist/sale_project/module.d.ts +476 -6
  224. package/dist/sale_stock/.kosh/bindings.d.ts +22 -0
  225. package/dist/sale_stock/.kosh/bindings.js +15 -0
  226. package/dist/sale_stock/.kosh/schema.d.ts +1228 -0
  227. package/dist/sale_stock/index.d.ts +7 -0
  228. package/dist/sale_stock/index.js +84 -0
  229. package/dist/sale_stock/module.d.ts +6791 -0
  230. package/dist/sale_stock/module.js +146 -0
  231. package/dist/sales/.kosh/bindings.js +1 -1
  232. package/dist/sales/.kosh/schema.d.ts +58 -3
  233. package/dist/sales/index.js +191 -4
  234. package/dist/sales/module.d.ts +355 -3
  235. package/dist/sales/module.js +78 -3
  236. package/dist/server/api/metadata.d.ts +5 -0
  237. package/dist/server/api/metadata.js +5 -0
  238. package/dist/server/api/rest.js +64 -1
  239. package/dist/server/api/views.js +1 -0
  240. package/dist/server/app-settings.d.ts +7 -0
  241. package/dist/server/app-settings.js +10 -0
  242. package/dist/server/auth/base.js +9 -0
  243. package/dist/server/index.d.ts +1 -0
  244. package/dist/server/index.js +1 -0
  245. package/dist/settings/app-settings.d.ts +2 -0
  246. package/dist/settings/app-settings.js +518 -0
  247. package/dist/settings/index.d.ts +1 -0
  248. package/dist/settings/index.js +15 -0
  249. package/dist/settings/people.js +29 -5
  250. package/dist/settings/web/AppSettingsPage.d.ts +11 -0
  251. package/dist/settings/web/AppSettingsPage.js +210 -0
  252. package/dist/settings/web/OverviewPage.js +16 -3
  253. package/dist/settings/web/PeoplePage.js +20 -6
  254. package/dist/settings/web/index.d.ts +1 -0
  255. package/dist/settings/web/index.js +3 -0
  256. package/dist/settings/web/messages.js +118 -2
  257. package/dist/stock/.kosh/bindings.d.ts +22 -0
  258. package/dist/stock/.kosh/bindings.js +15 -0
  259. package/dist/stock/.kosh/schema.d.ts +1147 -0
  260. package/dist/stock/demo.d.ts +7 -0
  261. package/dist/stock/demo.js +55 -0
  262. package/dist/stock/index.d.ts +3 -0
  263. package/dist/stock/index.js +674 -0
  264. package/dist/stock/module.d.ts +6330 -0
  265. package/dist/stock/module.js +1325 -0
  266. package/dist/stock/web/ScanBox.d.ts +8 -0
  267. package/dist/stock/web/ScanBox.js +90 -0
  268. package/dist/stock/web/index.d.ts +11 -0
  269. package/dist/stock/web/index.js +16 -0
  270. package/dist/stock/web/messages.d.ts +2 -0
  271. package/dist/stock/web/messages.js +25 -0
  272. package/dist/stock_account/.kosh/bindings.d.ts +22 -0
  273. package/dist/stock_account/.kosh/bindings.js +15 -0
  274. package/dist/stock_account/.kosh/schema.d.ts +1875 -0
  275. package/dist/stock_account/index.d.ts +3 -0
  276. package/dist/stock_account/index.js +130 -0
  277. package/dist/stock_account/module.d.ts +10655 -0
  278. package/dist/stock_account/module.js +339 -0
  279. package/dist/storage/attachments.d.ts +5 -0
  280. package/dist/storage/attachments.js +12 -1
  281. package/dist/storage/models.js +3 -0
  282. package/dist/storage/routes.js +13 -2
  283. package/dist/todo/.kosh/bindings.d.ts +22 -0
  284. package/dist/todo/.kosh/bindings.js +15 -0
  285. package/dist/todo/.kosh/schema.d.ts +732 -0
  286. package/dist/todo/demo.d.ts +6 -0
  287. package/dist/todo/demo.js +35 -0
  288. package/dist/todo/index.d.ts +3 -0
  289. package/dist/todo/index.js +187 -0
  290. package/dist/todo/module.d.ts +1180 -0
  291. package/dist/todo/module.js +130 -0
  292. package/dist/trade_finance/.kosh/bindings.d.ts +22 -0
  293. package/dist/trade_finance/.kosh/bindings.js +15 -0
  294. package/dist/trade_finance/.kosh/schema.d.ts +884 -0
  295. package/dist/trade_finance/demo.d.ts +6 -0
  296. package/dist/trade_finance/demo.js +63 -0
  297. package/dist/trade_finance/index.d.ts +3 -0
  298. package/dist/trade_finance/index.js +413 -0
  299. package/dist/trade_finance/module.d.ts +3779 -0
  300. package/dist/trade_finance/module.js +505 -0
  301. package/dist/trade_finance_account/.kosh/bindings.d.ts +22 -0
  302. package/dist/trade_finance_account/.kosh/bindings.js +15 -0
  303. package/dist/trade_finance_account/.kosh/schema.d.ts +1711 -0
  304. package/dist/trade_finance_account/index.d.ts +3 -0
  305. package/dist/trade_finance_account/index.js +92 -0
  306. package/dist/trade_finance_account/module.d.ts +7928 -0
  307. package/dist/trade_finance_account/module.js +244 -0
  308. package/dist/trade_finance_purchase/.kosh/bindings.d.ts +22 -0
  309. package/dist/trade_finance_purchase/.kosh/bindings.js +15 -0
  310. package/dist/trade_finance_purchase/.kosh/schema.d.ts +1153 -0
  311. package/dist/trade_finance_purchase/index.d.ts +8 -0
  312. package/dist/trade_finance_purchase/index.js +50 -0
  313. package/dist/trade_finance_purchase/module.d.ts +4252 -0
  314. package/dist/trade_finance_purchase/module.js +44 -0
  315. package/dist/trade_finance_sale/.kosh/bindings.d.ts +22 -0
  316. package/dist/trade_finance_sale/.kosh/bindings.js +15 -0
  317. package/dist/trade_finance_sale/.kosh/schema.d.ts +1071 -0
  318. package/dist/trade_finance_sale/index.d.ts +8 -0
  319. package/dist/trade_finance_sale/index.js +50 -0
  320. package/dist/trade_finance_sale/module.d.ts +4280 -0
  321. package/dist/trade_finance_sale/module.js +44 -0
  322. package/dist/ui/api.d.ts +2 -1
  323. package/dist/ui/api.js +2 -1
  324. package/dist/ui/app.js +2 -1
  325. package/dist/ui/components/AppIcon.js +23 -1
  326. package/dist/ui/components/primitives.d.ts +2 -0
  327. package/dist/ui/components/primitives.js +7 -1
  328. package/dist/ui/i18n/messages.d.ts +23 -0
  329. package/dist/ui/i18n/messages.js +38 -0
  330. package/dist/ui/index.d.ts +1 -0
  331. package/dist/ui/index.js +1 -0
  332. package/dist/ui/offline/queue.d.ts +5 -1
  333. package/dist/ui/offline/queue.js +2 -0
  334. package/dist/ui/registry.d.ts +5 -0
  335. package/dist/ui/shell/Home.js +55 -4
  336. package/dist/ui/views/FormView.js +98 -17
  337. package/dist/ui/views/KanbanView.d.ts +2 -0
  338. package/dist/ui/views/KanbanView.js +32 -3
  339. package/dist/ui/views/ListView.js +108 -11
  340. package/dist/ui/views/StatsRow.d.ts +14 -0
  341. package/dist/ui/views/StatsRow.js +88 -0
  342. package/dist/ui/views/widgets.d.ts +2 -1
  343. package/dist/ui/views/widgets.js +194 -1
  344. package/dist/views/builders.d.ts +19 -2
  345. package/dist/views/builders.js +21 -1
  346. package/dist/views/condition.d.ts +6 -0
  347. package/dist/views/condition.js +20 -0
  348. package/dist/views/documents.d.ts +8 -0
  349. package/dist/views/extend.d.ts +2 -2
  350. package/dist/views/extend.js +11 -1
  351. package/dist/views/index.d.ts +2 -2
  352. package/dist/views/index.js +2 -2
  353. package/dist/views/types.d.ts +52 -5
  354. package/dist/views/validate.js +39 -1
  355. package/dist/website/.kosh/bindings.d.ts +22 -0
  356. package/dist/website/.kosh/bindings.js +15 -0
  357. package/dist/website/.kosh/schema.d.ts +881 -0
  358. package/dist/website/demo.d.ts +6 -0
  359. package/dist/website/demo.js +115 -0
  360. package/dist/website/index.d.ts +9 -0
  361. package/dist/website/index.js +250 -0
  362. package/dist/website/module.d.ts +2987 -0
  363. package/dist/website/module.js +281 -0
  364. package/dist/website/render.d.ts +45 -0
  365. package/dist/website/render.js +102 -0
  366. package/dist/website/routes.d.ts +12 -0
  367. package/dist/website/routes.js +246 -0
  368. package/dist/website/web/PagePreview.d.ts +7 -0
  369. package/dist/website/web/PagePreview.js +33 -0
  370. package/dist/website/web/index.d.ts +11 -0
  371. package/dist/website/web/index.js +16 -0
  372. package/dist/website/web/messages.d.ts +2 -0
  373. package/dist/website/web/messages.js +15 -0
  374. package/dist/website_crm/.kosh/bindings.d.ts +22 -0
  375. package/dist/website_crm/.kosh/bindings.js +15 -0
  376. package/dist/website_crm/.kosh/schema.d.ts +966 -0
  377. package/dist/website_crm/index.d.ts +3 -0
  378. package/dist/website_crm/index.js +39 -0
  379. package/dist/website_crm/module.d.ts +2955 -0
  380. package/dist/website_crm/module.js +44 -0
  381. package/package.json +118 -1
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: c9101ef07bbb3e64
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: ed4aa028c6a6d3e3
2
2
  // Schema view of module `accounting` (RFC 0002 §7.7): the models it owns or depends on, with the extensions it can see.
3
3
  import type { F } from '../../server/orm.js';
4
4
 
@@ -30,6 +30,7 @@ export interface SchemaView {
30
30
  readonly 'auth.user_group': AuthUserGroup;
31
31
  readonly 'kosh.image': KoshImage;
32
32
  readonly 'kosh.saved_view': KoshSavedView;
33
+ readonly 'kosh.setting': KoshSetting;
33
34
  readonly 'mail.activity': MailActivity;
34
35
  readonly 'mail.activity.type': MailActivityType;
35
36
  readonly 'mail.channel': MailChannel;
@@ -53,6 +54,7 @@ export interface SchemaView {
53
54
  readonly 'res.currency': ResCurrency;
54
55
  readonly 'res.currency.rate': ResCurrencyRate;
55
56
  readonly 'res.partner': ResPartner;
57
+ readonly 'res.partner.tag': ResPartnerTag;
56
58
  readonly 'res.users': ResUsers;
57
59
  readonly 'storage.attachment': StorageAttachment;
58
60
  readonly 'uom.uom': UomUom;
@@ -776,6 +778,26 @@ export interface KoshSavedView {
776
778
  export interface KoshSavedViewMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'kosh.saved_view'> {
777
779
  }
778
780
 
781
+ /** `kosh.setting` (owner: base). */
782
+ export interface KoshSetting {
783
+ readonly name: 'kosh.setting';
784
+ readonly fields: {
785
+ readonly id: F.Id<'kosh.setting'>;
786
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
787
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
788
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
789
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
790
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
791
+ readonly key: F.Char<{ readonly required: true }>;
792
+ readonly value: F.Json;
793
+ };
794
+ readonly methods: KoshSettingMethods;
795
+ }
796
+
797
+ /** Methods of `kosh.setting`: declared ones and transitions. */
798
+ export interface KoshSettingMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'kosh.setting'> {
799
+ }
800
+
779
801
  /** `mail.activity` (owner: messaging). */
780
802
  export interface MailActivity {
781
803
  readonly name: 'mail.activity';
@@ -1090,6 +1112,7 @@ export interface ProductProduct {
1090
1112
  readonly category: F.Many2one<'product.category'>;
1091
1113
  readonly uom: F.Many2one<'uom.uom'>;
1092
1114
  readonly barcode: F.Char;
1115
+ readonly image: F.Many2one<'storage.attachment'>;
1093
1116
  readonly listPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
1094
1117
  readonly standardPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
1095
1118
  readonly saleOk: F.Bool<{ readonly required: true; readonly default: true }>;
@@ -1120,6 +1143,7 @@ export interface ReportDashboard {
1120
1143
  readonly name: F.Char<{ readonly required: true }>;
1121
1144
  readonly items: F.Json<unknown, { readonly required: true; readonly default: true }>;
1122
1145
  readonly shared: F.Bool<{ readonly required: true; readonly default: true }>;
1146
+ readonly key: F.Char;
1123
1147
  };
1124
1148
  readonly methods: ReportDashboardMethods;
1125
1149
  }
@@ -1260,7 +1284,7 @@ export interface ResBankAccount {
1260
1284
  export interface ResBankAccountMethods extends F.Methods<typeof import('../module.js').accountingShutro, 'res.bank.account'> {
1261
1285
  }
1262
1286
 
1263
- /** `res.company` (owner: base; extended by: accounting). */
1287
+ /** `res.company` (owner: base; extended by: contacts, accounting). */
1264
1288
  export interface ResCompany {
1265
1289
  readonly name: 'res.company';
1266
1290
  readonly fields: {
@@ -1280,6 +1304,8 @@ export interface ResCompany {
1280
1304
  readonly email: F.Char;
1281
1305
  readonly phone: F.Char;
1282
1306
  readonly website: F.Char;
1307
+ readonly contactTaxIdRequired: F.Bool<{ readonly required: true; readonly default: true }>; // contacts
1308
+ readonly contactUniqueEmail: F.Bool<{ readonly required: true; readonly default: true }>; // contacts
1283
1309
  readonly fiscalYearStart: F.Integer<{ readonly required: true; readonly default: true }>; // accounting
1284
1310
  readonly chartTemplate: F.Char; // accounting
1285
1311
  readonly country: F.Char; // accounting
@@ -1296,7 +1322,7 @@ export interface ResCompany {
1296
1322
  }
1297
1323
 
1298
1324
  /** Methods of `res.company`: declared ones and transitions. */
1299
- export interface ResCompanyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'res.company'>, F.Methods<typeof import('../module.js').accountingShutro, 'res.company'> {
1325
+ export interface ResCompanyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'res.company'>, F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.company'>, F.Methods<typeof import('../module.js').accountingShutro, 'res.company'> {
1300
1326
  }
1301
1327
 
1302
1328
  /** `res.currency` (owner: base). */
@@ -1355,6 +1381,10 @@ export interface ResPartner {
1355
1381
  readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1356
1382
  readonly company: F.Many2one<'res.company', { readonly default: true }>;
1357
1383
  readonly name: F.Char<{ readonly required: true }>;
1384
+ readonly image: F.Many2one<'storage.attachment'>;
1385
+ readonly tags: F.Many2many<'res.partner.tag', { readonly required: true }>;
1386
+ readonly latitude: F.Decimal;
1387
+ readonly longitude: F.Decimal;
1358
1388
  readonly isCompany: F.Bool<{ readonly required: true; readonly default: true }>;
1359
1389
  readonly parent: F.Many2one<'res.partner'>;
1360
1390
  readonly contacts: F.One2many<'res.partner', { readonly required: true }>;
@@ -1381,6 +1411,25 @@ export interface ResPartner {
1381
1411
  export interface ResPartnerMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner'>, F.Methods<typeof import('../module.js').accountingShutro, 'res.partner'> {
1382
1412
  }
1383
1413
 
1414
+ /** `res.partner.tag` (owner: contacts). */
1415
+ export interface ResPartnerTag {
1416
+ readonly name: 'res.partner.tag';
1417
+ readonly fields: {
1418
+ readonly id: F.Id<'res.partner.tag'>;
1419
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1420
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1421
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1422
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1423
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1424
+ readonly name: F.Char<{ readonly required: true }>;
1425
+ };
1426
+ readonly methods: ResPartnerTagMethods;
1427
+ }
1428
+
1429
+ /** Methods of `res.partner.tag`: declared ones and transitions. */
1430
+ export interface ResPartnerTagMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner.tag'> {
1431
+ }
1432
+
1384
1433
  /** `res.users` (owner: base). */
1385
1434
  export interface ResUsers {
1386
1435
  readonly name: 'res.users';
@@ -1426,6 +1475,8 @@ export interface StorageAttachment {
1426
1475
  readonly key: F.Char<{ readonly required: true }>;
1427
1476
  readonly resModel: F.Char<{ readonly required: true }>;
1428
1477
  readonly resId: F.Integer<{ readonly required: true }>;
1478
+ readonly variantOf: F.Many2one<'storage.attachment'>;
1479
+ readonly width: F.Integer;
1429
1480
  };
1430
1481
  readonly methods: StorageAttachmentMethods;
1431
1482
  }
@@ -18,7 +18,7 @@ import { permissions } from '../permissions/index.js';
18
18
  import { product } from '../product/index.js';
19
19
  import { reporting } from '../reporting/index.js';
20
20
  import { HttpProblem } from '../server/index.js';
21
- import { action, field, form, list, pivot, search } from '../views/index.js';
21
+ import { action, field, form, list, pivot, search, stat } from '../views/index.js';
22
22
  import { ChartInstalledError, chartsOf, installChart, installedChart, installImmutability, installLocalization, localizationsOf, } from './chart.js';
23
23
  import { agingReport, closeFiscalYear, readSettings, reopenFiscalYear, updateSettings, } from './closing.js';
24
24
  import { accountingDemo } from './demo.js';
@@ -128,6 +128,148 @@ export const accounting = defineModule({
128
128
  implies: ['user'],
129
129
  },
130
130
  },
131
+ // Settings › App settings › Accounting (RFC 0020): per company, changed by accounting managers.
132
+ settings: {
133
+ sections: [
134
+ {
135
+ key: 'periods',
136
+ label: 'Fiscal year and lock dates',
137
+ description: 'When the fiscal year starts, and the dates before which nothing may change.',
138
+ keywords: 'fiscal year lock date period closing tax return',
139
+ scope: 'company',
140
+ editors: ['account.manager'],
141
+ fields: [
142
+ {
143
+ key: 'fiscalYearStart',
144
+ min: 1,
145
+ max: 12,
146
+ help: 'The month it starts: 7 for July–June.',
147
+ },
148
+ { key: 'lockDate', help: 'Nothing is posted, reversed or reconciled on or before it.' },
149
+ {
150
+ key: 'taxLockDate',
151
+ help: 'Tax returns are filed up to it: tax lines cannot change on or before it.',
152
+ },
153
+ ],
154
+ },
155
+ ],
156
+ },
157
+ // The Overview (RFC 0022 step 2): what is owed to us and by us, the month's invoicing, who owes most.
158
+ overview: {
159
+ cards: [
160
+ {
161
+ id: 'receivable',
162
+ title: 'Receivable',
163
+ kind: 'kpi',
164
+ model: 'account.move',
165
+ measure: 'sum:amountResidual',
166
+ filter: {
167
+ kind: { in: ['out_invoice', 'out_debit'] },
168
+ state: 'posted',
169
+ paymentState: { in: ['not_paid', 'partial'] },
170
+ },
171
+ w: 3,
172
+ },
173
+ {
174
+ id: 'payable',
175
+ title: 'Payable',
176
+ kind: 'kpi',
177
+ model: 'account.move',
178
+ measure: 'sum:amountResidual',
179
+ filter: {
180
+ kind: { in: ['in_invoice', 'in_debit'] },
181
+ state: 'posted',
182
+ paymentState: { in: ['not_paid', 'partial'] },
183
+ },
184
+ w: 3,
185
+ },
186
+ {
187
+ id: 'invoiced_month',
188
+ title: 'Invoiced this month',
189
+ kind: 'kpi',
190
+ model: 'account.move',
191
+ measure: 'sum:amountTotal',
192
+ filter: { kind: 'out_invoice', state: 'posted' },
193
+ comparison: { field: 'date', mode: 'previous' },
194
+ w: 3,
195
+ },
196
+ {
197
+ id: 'billed_month',
198
+ title: 'Bills this month',
199
+ kind: 'kpi',
200
+ model: 'account.move',
201
+ measure: 'sum:amountTotal',
202
+ filter: { kind: 'in_invoice', state: 'posted' },
203
+ comparison: { field: 'date', mode: 'previous' },
204
+ w: 3,
205
+ },
206
+ {
207
+ id: 'revenue_by_month',
208
+ title: 'Invoiced by month',
209
+ kind: 'chart',
210
+ model: 'account.move',
211
+ measure: 'sum:amountTotal',
212
+ groupBy: 'date:month',
213
+ filter: { kind: 'out_invoice', state: 'posted' },
214
+ chart: 'bar',
215
+ w: 6,
216
+ },
217
+ {
218
+ id: 'top_debtors',
219
+ title: 'Who owes most',
220
+ kind: 'pivot',
221
+ model: 'account.move',
222
+ measure: 'sum:amountResidual',
223
+ groupBy: 'partner',
224
+ filter: {
225
+ kind: { in: ['out_invoice', 'out_debit'] },
226
+ state: 'posted',
227
+ paymentState: { in: ['not_paid', 'partial'] },
228
+ },
229
+ w: 6,
230
+ },
231
+ {
232
+ id: 'payments_month',
233
+ title: 'Payments this month',
234
+ kind: 'kpi',
235
+ model: 'account.payment',
236
+ measure: 'sum:amount',
237
+ comparison: { field: 'date', mode: 'previous' },
238
+ w: 3,
239
+ },
240
+ {
241
+ id: 'drafts',
242
+ title: 'Draft invoices and bills',
243
+ kind: 'kpi',
244
+ model: 'account.move',
245
+ measure: 'count',
246
+ filter: { kind: { ne: 'entry' }, state: 'draft' },
247
+ w: 3,
248
+ },
249
+ {
250
+ id: 'to_approve',
251
+ title: 'Waiting approval',
252
+ kind: 'kpi',
253
+ model: 'account.move',
254
+ measure: 'count',
255
+ filter: { state: 'to_approve' },
256
+ w: 3,
257
+ },
258
+ {
259
+ id: 'biggest_open',
260
+ title: 'Biggest open invoices',
261
+ kind: 'list',
262
+ model: 'account.move',
263
+ measure: 'sum:amountResidual',
264
+ filter: {
265
+ kind: { in: ['out_invoice', 'out_debit'] },
266
+ state: 'posted',
267
+ paymentState: { in: ['not_paid', 'partial'] },
268
+ },
269
+ w: 3,
270
+ },
271
+ ],
272
+ },
131
273
  actions: {
132
274
  'accounting.action_customer_invoices': action(AccountMove, {
133
275
  label: 'Customer invoices',
@@ -425,6 +567,53 @@ export const accounting = defineModule({
425
567
  ],
426
568
  // Which withholdings apply to a contact (VDS, TDS), next to their roles (RFC 0016).
427
569
  viewExtensions: [
570
+ // The contact's invoices, what they still owe, and their bills (RFC 0022 §3.1).
571
+ {
572
+ view: 'res.partner.form',
573
+ operations: [
574
+ {
575
+ append: 'related',
576
+ nodes: [
577
+ stat({
578
+ id: 'customer_invoices',
579
+ label: 'Invoices',
580
+ model: AccountMove,
581
+ where: {
582
+ partner: { $record: 'id' },
583
+ kind: { in: ['out_invoice', 'out_refund', 'out_debit'] },
584
+ state: 'posted',
585
+ },
586
+ action: 'accounting.action_customer_invoices',
587
+ }),
588
+ stat({
589
+ id: 'customer_due',
590
+ label: 'Due from them',
591
+ model: AccountMove,
592
+ where: {
593
+ partner: { $record: 'id' },
594
+ kind: { in: ['out_invoice', 'out_debit'] },
595
+ state: 'posted',
596
+ paymentState: { ne: 'paid' },
597
+ },
598
+ measure: { sum: 'amountResidual' },
599
+ action: 'accounting.action_customer_invoices',
600
+ tone: 'warning',
601
+ }),
602
+ stat({
603
+ id: 'vendor_bills',
604
+ label: 'Bills',
605
+ model: AccountMove,
606
+ where: {
607
+ partner: { $record: 'id' },
608
+ kind: { in: ['in_invoice', 'in_refund', 'in_debit'] },
609
+ state: 'posted',
610
+ },
611
+ action: 'accounting.action_vendor_bills',
612
+ }),
613
+ ],
614
+ },
615
+ ],
616
+ },
428
617
  // A tax's accounts, reverse charge's payable account, and its components (CGST / SGST / IGST).
429
618
  {
430
619
  view: 'account.tax.form',
@@ -575,7 +764,7 @@ export const accounting = defineModule({
575
764
  'name',
576
765
  'partner',
577
766
  'date',
578
- 'dateDue',
767
+ { field: 'dateDue', widget: 'daysLeft' },
579
768
  'invoiceOrigin',
580
769
  { field: 'amountTotal', sum: true },
581
770
  { field: 'amountResidual', sum: true },
@@ -583,6 +772,11 @@ export const accounting = defineModule({
583
772
  { field: 'paymentState', widget: 'badge' },
584
773
  ],
585
774
  defaultOrder: ['date desc', 'name desc'],
775
+ decorations: {
776
+ success: { paymentState: 'paid' },
777
+ warning: { paymentState: 'partial' },
778
+ neutral: { state: 'cancel' },
779
+ },
586
780
  }),
587
781
  'account.move.invoice.form': form(AccountMove, (k) => ({
588
782
  header: {
@@ -596,6 +790,24 @@ export const accounting = defineModule({
596
790
  ],
597
791
  },
598
792
  sheet: [
793
+ k.stats('related', [
794
+ {
795
+ id: 'invoice_payments',
796
+ label: 'Payments',
797
+ model: AccountPayment,
798
+ where: { documents: { any: { id: { $record: 'id' } } }, state: 'posted' },
799
+ action: 'accounting.action_payments',
800
+ },
801
+ {
802
+ id: 'invoice_paid',
803
+ label: 'Paid',
804
+ model: AccountPayment,
805
+ where: { documents: { any: { id: { $record: 'id' } } }, state: 'posted' },
806
+ measure: { sum: 'amount' },
807
+ action: 'accounting.action_payments',
808
+ tone: 'success',
809
+ },
810
+ ]),
599
811
  k.group('party', ['partner', 'kind', 'invoiceOrigin', 'ref', 'debitOf', 'placeOfSupply']),
600
812
  k.group('dates', ['date', 'dateDue', 'paymentTerm', 'journal']),
601
813
  k.lines('lines', [