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
@@ -1846,6 +1846,7 @@ export declare const AccountMove: import("../server/orm.js").Model<"account.move
1846
1846
  readonly guard: (records: never) => unknown;
1847
1847
  readonly message: "Waiting for approvals.";
1848
1848
  readonly before: (records: never) => unknown;
1849
+ readonly after: (records: never) => unknown;
1849
1850
  };
1850
1851
  readonly reject: {
1851
1852
  readonly from: readonly ["to_approve"];
@@ -1927,7 +1928,19 @@ export declare const AccountMove: import("../server/orm.js").Model<"account.move
1927
1928
  readonly hasDefault: false;
1928
1929
  readonly readonly: false;
1929
1930
  }>;
1930
- }, {} & import("../server/orm.js").TransitionMethods<{
1931
+ }, {
1932
+ /**
1933
+ * The account of each product line of these documents that names none, by line: nothing here (the journal's
1934
+ * default account applies). An app that knows better overrides it (`purchase_stock_account`: a vendor bill's
1935
+ * goods to Goods received not billed).
1936
+ */
1937
+ readonly productLineAccounts: (this: unknown) => Promise<Map<number, number>>;
1938
+ /**
1939
+ * Runs once these entries are posted, in the posting's scope. Nothing here; an app overrides it
1940
+ * (`purchase_stock_account`: the price difference between a bill and the goods received).
1941
+ */
1942
+ readonly posted: (this: unknown) => Promise<void>;
1943
+ } & import("../server/orm.js").TransitionMethods<{
1931
1944
  /** The number, taken from the journal type's sequence at posting ('/' until then: no gaps from drafts). */
1932
1945
  readonly name: import("../server/orm.js").CharField<{
1933
1946
  readonly required: true;
@@ -2237,6 +2250,7 @@ export declare const AccountMove: import("../server/orm.js").Model<"account.move
2237
2250
  readonly guard: (records: never) => unknown;
2238
2251
  readonly message: "Waiting for approvals.";
2239
2252
  readonly before: (records: never) => unknown;
2253
+ readonly after: (records: never) => unknown;
2240
2254
  };
2241
2255
  readonly reject: {
2242
2256
  readonly from: readonly ["to_approve"];
@@ -5638,6 +5652,7 @@ export declare const accountingShutro: import("../server/orm.js").Module<readonl
5638
5652
  readonly guard: (records: never) => unknown;
5639
5653
  readonly message: "Waiting for approvals.";
5640
5654
  readonly before: (records: never) => unknown;
5655
+ readonly after: (records: never) => unknown;
5641
5656
  };
5642
5657
  readonly reject: {
5643
5658
  readonly from: readonly ["to_approve"];
@@ -5719,7 +5734,19 @@ export declare const accountingShutro: import("../server/orm.js").Module<readonl
5719
5734
  readonly hasDefault: false;
5720
5735
  readonly readonly: false;
5721
5736
  }>;
5722
- }, {} & import("../server/orm.js").TransitionMethods<{
5737
+ }, {
5738
+ /**
5739
+ * The account of each product line of these documents that names none, by line: nothing here (the journal's
5740
+ * default account applies). An app that knows better overrides it (`purchase_stock_account`: a vendor bill's
5741
+ * goods to Goods received not billed).
5742
+ */
5743
+ readonly productLineAccounts: (this: unknown) => Promise<Map<number, number>>;
5744
+ /**
5745
+ * Runs once these entries are posted, in the posting's scope. Nothing here; an app overrides it
5746
+ * (`purchase_stock_account`: the price difference between a bill and the goods received).
5747
+ */
5748
+ readonly posted: (this: unknown) => Promise<void>;
5749
+ } & import("../server/orm.js").TransitionMethods<{
5723
5750
  /** The number, taken from the journal type's sequence at posting ('/' until then: no gaps from drafts). */
5724
5751
  readonly name: import("../server/orm.js").CharField<{
5725
5752
  readonly required: true;
@@ -6029,6 +6056,7 @@ export declare const accountingShutro: import("../server/orm.js").Module<readonl
6029
6056
  readonly guard: (records: never) => unknown;
6030
6057
  readonly message: "Waiting for approvals.";
6031
6058
  readonly before: (records: never) => unknown;
6059
+ readonly after: (records: never) => unknown;
6032
6060
  };
6033
6061
  readonly reject: {
6034
6062
  readonly from: readonly ["to_approve"];
@@ -7867,7 +7895,70 @@ export declare const accountingShutro: import("../server/orm.js").Module<readonl
7867
7895
  readonly hasDefault: false;
7868
7896
  readonly readonly: false;
7869
7897
  }>;
7870
- }>>], readonly [import("../server/orm.js").Module<readonly [import("../server/orm.js").Model<"res.partner", {
7898
+ }>>], readonly [import("../server/orm.js").Module<readonly [import("../server/orm.js").Model<"res.partner.tag", {
7899
+ readonly id: import("../server/orm.js").IdField<"res.partner.tag">;
7900
+ readonly createdAt: import("../server/orm.js").ScalarField<'datetime', Date, Date, {
7901
+ required: true;
7902
+ readonly: true;
7903
+ computed: false;
7904
+ inverse: false;
7905
+ hasDefault: false;
7906
+ sequence: false;
7907
+ }>;
7908
+ readonly updatedAt: import("../server/orm.js").ScalarField<'datetime', Date, Date, {
7909
+ required: true;
7910
+ readonly: true;
7911
+ computed: false;
7912
+ inverse: false;
7913
+ hasDefault: false;
7914
+ sequence: false;
7915
+ }>;
7916
+ readonly createdBy: import("../server/orm.js").Many2oneField<'res.users', {
7917
+ required: false;
7918
+ readonly: true;
7919
+ computed: false;
7920
+ inverse: false;
7921
+ hasDefault: false;
7922
+ sequence: false;
7923
+ }>;
7924
+ readonly updatedBy: import("../server/orm.js").Many2oneField<'res.users', {
7925
+ required: false;
7926
+ readonly: true;
7927
+ computed: false;
7928
+ inverse: false;
7929
+ hasDefault: false;
7930
+ sequence: false;
7931
+ }>;
7932
+ readonly displayName: import("../server/orm.js").CharField<{
7933
+ required: true;
7934
+ readonly: true;
7935
+ computed: true;
7936
+ inverse: false;
7937
+ hasDefault: false;
7938
+ sequence: false;
7939
+ }>;
7940
+ readonly name: import("../server/orm.js").CharField<{
7941
+ readonly required: true;
7942
+ readonly computed: false;
7943
+ readonly inverse: false;
7944
+ readonly sequence: false;
7945
+ readonly computeName: undefined;
7946
+ readonly store: true;
7947
+ readonly hasDefault: false;
7948
+ readonly readonly: false;
7949
+ }, string>;
7950
+ }, {} & import("../server/orm.js").TransitionMethods<{
7951
+ readonly name: import("../server/orm.js").CharField<{
7952
+ readonly required: true;
7953
+ readonly computed: false;
7954
+ readonly inverse: false;
7955
+ readonly sequence: false;
7956
+ readonly computeName: undefined;
7957
+ readonly store: true;
7958
+ readonly hasDefault: false;
7959
+ readonly readonly: false;
7960
+ }, string>;
7961
+ }>>, import("../server/orm.js").Model<"res.partner", {
7871
7962
  readonly id: import("../server/orm.js").IdField<"res.partner">;
7872
7963
  readonly createdAt: import("../server/orm.js").ScalarField<'datetime', Date, Date, {
7873
7964
  required: true;
@@ -7921,6 +8012,46 @@ export declare const accountingShutro: import("../server/orm.js").Module<readonl
7921
8012
  readonly hasDefault: false;
7922
8013
  readonly readonly: false;
7923
8014
  }, string>;
8015
+ readonly image: import("../server/orm.js").Many2oneField<"storage.attachment", {
8016
+ readonly required: false;
8017
+ readonly computed: false;
8018
+ readonly inverse: false;
8019
+ readonly sequence: false;
8020
+ readonly computeName: undefined;
8021
+ readonly store: true;
8022
+ readonly hasDefault: false;
8023
+ readonly readonly: false;
8024
+ }>;
8025
+ readonly tags: import("../server/orm.js").Many2manyField<"res.partner.tag", {
8026
+ readonly required: true;
8027
+ readonly computed: false;
8028
+ readonly inverse: false;
8029
+ readonly sequence: false;
8030
+ readonly computeName: undefined;
8031
+ readonly store: true;
8032
+ readonly hasDefault: true;
8033
+ readonly readonly: false;
8034
+ }>;
8035
+ readonly latitude: import("../server/orm.js").DecimalField<{
8036
+ readonly required: false;
8037
+ readonly computed: false;
8038
+ readonly inverse: false;
8039
+ readonly sequence: false;
8040
+ readonly computeName: undefined;
8041
+ readonly store: true;
8042
+ readonly hasDefault: false;
8043
+ readonly readonly: false;
8044
+ }>;
8045
+ readonly longitude: import("../server/orm.js").DecimalField<{
8046
+ readonly required: false;
8047
+ readonly computed: false;
8048
+ readonly inverse: false;
8049
+ readonly sequence: false;
8050
+ readonly computeName: undefined;
8051
+ readonly store: true;
8052
+ readonly hasDefault: false;
8053
+ readonly readonly: false;
8054
+ }>;
7924
8055
  readonly isCompany: import("../server/orm.js").ScalarField<"boolean", boolean, boolean, {
7925
8056
  readonly required: true;
7926
8057
  readonly computed: false;
@@ -8102,6 +8233,46 @@ export declare const accountingShutro: import("../server/orm.js").Module<readonl
8102
8233
  readonly hasDefault: false;
8103
8234
  readonly readonly: false;
8104
8235
  }, string>;
8236
+ readonly image: import("../server/orm.js").Many2oneField<"storage.attachment", {
8237
+ readonly required: false;
8238
+ readonly computed: false;
8239
+ readonly inverse: false;
8240
+ readonly sequence: false;
8241
+ readonly computeName: undefined;
8242
+ readonly store: true;
8243
+ readonly hasDefault: false;
8244
+ readonly readonly: false;
8245
+ }>;
8246
+ readonly tags: import("../server/orm.js").Many2manyField<"res.partner.tag", {
8247
+ readonly required: true;
8248
+ readonly computed: false;
8249
+ readonly inverse: false;
8250
+ readonly sequence: false;
8251
+ readonly computeName: undefined;
8252
+ readonly store: true;
8253
+ readonly hasDefault: true;
8254
+ readonly readonly: false;
8255
+ }>;
8256
+ readonly latitude: import("../server/orm.js").DecimalField<{
8257
+ readonly required: false;
8258
+ readonly computed: false;
8259
+ readonly inverse: false;
8260
+ readonly sequence: false;
8261
+ readonly computeName: undefined;
8262
+ readonly store: true;
8263
+ readonly hasDefault: false;
8264
+ readonly readonly: false;
8265
+ }>;
8266
+ readonly longitude: import("../server/orm.js").DecimalField<{
8267
+ readonly required: false;
8268
+ readonly computed: false;
8269
+ readonly inverse: false;
8270
+ readonly sequence: false;
8271
+ readonly computeName: undefined;
8272
+ readonly store: true;
8273
+ readonly hasDefault: false;
8274
+ readonly readonly: false;
8275
+ }>;
8105
8276
  readonly isCompany: import("../server/orm.js").ScalarField<"boolean", boolean, boolean, {
8106
8277
  readonly required: true;
8107
8278
  readonly computed: false;
@@ -8272,7 +8443,28 @@ export declare const accountingShutro: import("../server/orm.js").Module<readonl
8272
8443
  readonly hasDefault: false;
8273
8444
  readonly readonly: false;
8274
8445
  }>;
8275
- }>>], readonly [import("../server/orm.js").Module<readonly import("../server/orm.js").AnyModel[], readonly import("../server/orm.js").ModuleBase[], readonly import("../server/orm.js").AnyExtension[]>], readonly []>, import("../server/orm.js").Module<readonly [import("../server/orm.js").Model<"uom.uom", {
8446
+ }>>], readonly [import("../server/orm.js").Module<readonly import("../server/orm.js").AnyModel[], readonly import("../server/orm.js").ModuleBase[], readonly import("../server/orm.js").AnyExtension[]>, import("../server/orm.js").Module<readonly import("../server/orm.js").AnyModel[], readonly import("../server/orm.js").ModuleBase[], readonly import("../server/orm.js").AnyExtension[]>], readonly [import("../server/orm.js").Extension<"res.company", {
8447
+ readonly contactTaxIdRequired: import("../server/orm.js").ScalarField<"boolean", boolean, boolean, {
8448
+ readonly required: true;
8449
+ readonly computed: false;
8450
+ readonly inverse: false;
8451
+ readonly sequence: false;
8452
+ readonly computeName: undefined;
8453
+ readonly store: true;
8454
+ readonly hasDefault: true;
8455
+ readonly readonly: false;
8456
+ }>;
8457
+ readonly contactUniqueEmail: import("../server/orm.js").ScalarField<"boolean", boolean, boolean, {
8458
+ readonly required: true;
8459
+ readonly computed: false;
8460
+ readonly inverse: false;
8461
+ readonly sequence: false;
8462
+ readonly computeName: undefined;
8463
+ readonly store: true;
8464
+ readonly hasDefault: true;
8465
+ readonly readonly: false;
8466
+ }>;
8467
+ }, Record<never, never>>]>, import("../server/orm.js").Module<readonly [import("../server/orm.js").Model<"uom.uom", {
8276
8468
  readonly id: import("../server/orm.js").IdField<"uom.uom">;
8277
8469
  readonly createdAt: import("../server/orm.js").ScalarField<'datetime', Date, Date, {
8278
8470
  required: true;
@@ -8806,6 +8998,16 @@ export declare const accountingShutro: import("../server/orm.js").Module<readonl
8806
8998
  readonly hasDefault: false;
8807
8999
  readonly readonly: false;
8808
9000
  }, string>;
9001
+ readonly image: import("../server/orm.js").Many2oneField<"storage.attachment", {
9002
+ readonly required: false;
9003
+ readonly computed: false;
9004
+ readonly inverse: false;
9005
+ readonly sequence: false;
9006
+ readonly computeName: undefined;
9007
+ readonly store: true;
9008
+ readonly hasDefault: false;
9009
+ readonly readonly: false;
9010
+ }>;
8809
9011
  readonly listPrice: import("../server/orm.js").DecimalField<{
8810
9012
  readonly required: true;
8811
9013
  readonly computed: false;
@@ -8957,6 +9159,16 @@ export declare const accountingShutro: import("../server/orm.js").Module<readonl
8957
9159
  readonly hasDefault: false;
8958
9160
  readonly readonly: false;
8959
9161
  }, string>;
9162
+ readonly image: import("../server/orm.js").Many2oneField<"storage.attachment", {
9163
+ readonly required: false;
9164
+ readonly computed: false;
9165
+ readonly inverse: false;
9166
+ readonly sequence: false;
9167
+ readonly computeName: undefined;
9168
+ readonly store: true;
9169
+ readonly hasDefault: false;
9170
+ readonly readonly: false;
9171
+ }>;
8960
9172
  readonly listPrice: import("../server/orm.js").DecimalField<{
8961
9173
  readonly required: true;
8962
9174
  readonly computed: false;
@@ -9047,7 +9259,7 @@ export declare const accountingShutro: import("../server/orm.js").Module<readonl
9047
9259
  readonly hasDefault: false;
9048
9260
  readonly readonly: false;
9049
9261
  }>;
9050
- }>>], readonly [import("../server/orm.js").Module<readonly import("../server/orm.js").AnyModel[], readonly import("../server/orm.js").ModuleBase[], readonly import("../server/orm.js").AnyExtension[]>], readonly []>, import("../server/orm.js").Module<readonly import("../server/orm.js").AnyModel[], readonly import("../server/orm.js").ModuleBase[], readonly import("../server/orm.js").AnyExtension[]>, import("../server/orm.js").Module<readonly import("../server/orm.js").AnyModel[], readonly import("../server/orm.js").ModuleBase[], readonly import("../server/orm.js").AnyExtension[]>, import("../server/orm.js").Module<readonly import("../server/orm.js").AnyModel[], readonly import("../server/orm.js").ModuleBase[], readonly import("../server/orm.js").AnyExtension[]>], readonly [import("../server/orm.js").Extension<"res.company", {
9262
+ }>>], readonly [import("../server/orm.js").Module<readonly import("../server/orm.js").AnyModel[], readonly import("../server/orm.js").ModuleBase[], readonly import("../server/orm.js").AnyExtension[]>, import("../server/orm.js").Module<readonly import("../server/orm.js").AnyModel[], readonly import("../server/orm.js").ModuleBase[], readonly import("../server/orm.js").AnyExtension[]>], readonly []>, import("../server/orm.js").Module<readonly import("../server/orm.js").AnyModel[], readonly import("../server/orm.js").ModuleBase[], readonly import("../server/orm.js").AnyExtension[]>, import("../server/orm.js").Module<readonly import("../server/orm.js").AnyModel[], readonly import("../server/orm.js").ModuleBase[], readonly import("../server/orm.js").AnyExtension[]>, import("../server/orm.js").Module<readonly import("../server/orm.js").AnyModel[], readonly import("../server/orm.js").ModuleBase[], readonly import("../server/orm.js").AnyExtension[]>], readonly [import("../server/orm.js").Extension<"res.company", {
9051
9263
  /** The first month of its fiscal years (July in Bangladesh: July–June). */
9052
9264
  readonly fiscalYearStart: import("../server/orm.js").ScalarField<"integer", number, number, {
9053
9265
  readonly required: true;
@@ -19,7 +19,7 @@ import { approvalGuard, permissionsShutro, requestApprovals } from '../permissio
19
19
  import { computeTaxes, productShutro, taxRule } from '../product/index.js';
20
20
  import { reportingShutro } from '../reporting/index.js';
21
21
  import { orm } from '../server/orm.js';
22
- import { check, compute, defineModel, defineModule, extendModel, f, onchange, record, records, ref, } from './.kosh/bindings.js';
22
+ import { check, compute, defineModel, defineModule, extendModel, f, method, onchange, record, records, ref, } from './.kosh/bindings.js';
23
23
  import { postPayments } from './payments.js';
24
24
  const READ = ['read'];
25
25
  const WRITE = ['read', 'write', 'create'];
@@ -597,6 +597,10 @@ export const AccountMove = defineModel('account.move', {
597
597
  guard: records('account.move', (moves) => approvalGuard(moves)),
598
598
  message: 'Waiting for approvals.',
599
599
  before: records('account.move', (moves) => postMoves(moves)),
600
+ after: records('account.move', async (moves) => {
601
+ // Through the full environment: a definition's own callbacks do not see its methods.
602
+ await moves.env.model('account.move').browse(moves.ids).posted();
603
+ }),
600
604
  },
601
605
  reject: { from: ['to_approve'], to: 'draft' },
602
606
  cancel: { from: ['draft', 'to_approve'], to: 'cancel' },
@@ -618,6 +622,19 @@ export const AccountMove = defineModel('account.move', {
618
622
  placeOfSupply: f.char({ size: 6, label: 'Place of supply' }),
619
623
  reversedBy: f.many2one('account.move', { label: 'Reversed by' }),
620
624
  },
625
+ methods: {
626
+ /**
627
+ * The account of each product line of these documents that names none, by line: nothing here (the journal's
628
+ * default account applies). An app that knows better overrides it (`purchase_stock_account`: a vendor bill's
629
+ * goods to Goods received not billed).
630
+ */
631
+ productLineAccounts: method('account.move', async () => new Map()),
632
+ /**
633
+ * Runs once these entries are posted, in the posting's scope. Nothing here; an app overrides it
634
+ * (`purchase_stock_account`: the price difference between a bill and the goods received).
635
+ */
636
+ posted: method('account.move', async () => undefined),
637
+ },
621
638
  constraints: {
622
639
  // A posted entry is frozen (the database triggers of chart.ts back this up for raw SQL and deletes).
623
640
  postedImmutable: {
@@ -990,8 +1007,12 @@ async function postMoves(moves) {
990
1007
  const scope = supplyScope(m.company, m.partner.country ?? null, placeOfSupply);
991
1008
  let total = orm.toDecimal(0);
992
1009
  const byTax = new Map();
1010
+ const proposed = await env
1011
+ .model('account.move')
1012
+ .browse([m.id])
1013
+ .productLineAccounts();
993
1014
  for (const l of products) {
994
- const account = l.account?.id ?? m.journal.defaultAccount?.id ?? null;
1015
+ const account = l.account?.id ?? proposed.get(l.id) ?? m.journal.defaultAccount?.id ?? null;
995
1016
  if (account === null)
996
1017
  throw fail(['lines'], `Line "${l.name ?? ''}" has no account and the journal ${m.journal.code} has no default account.`, 'Set the account on the line, or a default account on the journal.');
997
1018
  const subtotal = round(l.subtotal?.amount ?? orm.toDecimal(0));
@@ -0,0 +1,22 @@
1
+ export { defineModel, defineModule, extendModel, f, replace } from '../../server/orm.js';
2
+ import { type DefinitionHelpers } from '../../server/orm.js';
3
+ import type { DefaultLoaded, Env as CoreEnv, RecordSet as CoreRecordSet, Shutro as CoreShutro } from '../../server/orm.js';
4
+ import type { SchemaView } from './schema.js';
5
+ export type { SchemaView };
6
+ /** Every model visible in this view. */
7
+ export type ModelName = keyof SchemaView & string;
8
+ /** `Env` typed to this view. */
9
+ export type Env = CoreEnv<SchemaView>;
10
+ /** `Shutro` typed to this view. */
11
+ export type Shutro = CoreShutro<SchemaView>;
12
+ /** A recordset of `M`, with the default loaded shape unless `L` is given. */
13
+ export type Records<M extends ModelName, L = DefaultLoaded<SchemaView, M>> = CoreRecordSet<SchemaView, M, L>;
14
+ export declare const compute: DefinitionHelpers<SchemaView>['compute'];
15
+ export declare const check: DefinitionHelpers<SchemaView>['check'];
16
+ export declare const onchange: DefinitionHelpers<SchemaView>['onchange'];
17
+ export declare const records: DefinitionHelpers<SchemaView>['records'];
18
+ export declare const method: DefinitionHelpers<SchemaView>['method'];
19
+ /** Module data (RFC 0017): records, overrides of dependencies' records, and references, typed like creates. */
20
+ export declare const record: DefinitionHelpers<SchemaView>['record'];
21
+ export declare const override: DefinitionHelpers<SchemaView>['override'];
22
+ export declare const ref: DefinitionHelpers<SchemaView>['ref'];
@@ -0,0 +1,15 @@
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: ea3894a43dbbf85d
2
+ // Bindings of module `calendar`: import the definition API from here to get types scoped to what it can see.
3
+ export { defineModel, defineModule, extendModel, f, replace } from '../../server/orm.js';
4
+ import { definitions } from '../../server/orm.js';
5
+ /** Definition callbacks typed against this module's view: no casts in computes, checks, onchange, methods. */
6
+ const helpers = definitions();
7
+ export const compute = helpers.compute;
8
+ export const check = helpers.check;
9
+ export const onchange = helpers.onchange;
10
+ export const records = helpers.records;
11
+ export const method = helpers.method;
12
+ /** Module data (RFC 0017): records, overrides of dependencies' records, and references, typed like creates. */
13
+ export const record = helpers.record;
14
+ export const override = helpers.override;
15
+ export const ref = helpers.ref;