shutro-erp 0.3.5 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/dist/account_asset/.kosh/bindings.d.ts +22 -0
  2. package/dist/account_asset/.kosh/bindings.js +15 -0
  3. package/dist/account_asset/.kosh/schema.d.ts +1755 -0
  4. package/dist/account_asset/board.d.ts +61 -0
  5. package/dist/account_asset/board.js +86 -0
  6. package/dist/account_asset/books.d.ts +42 -0
  7. package/dist/account_asset/books.js +398 -0
  8. package/dist/account_asset/demo.d.ts +7 -0
  9. package/dist/account_asset/demo.js +72 -0
  10. package/dist/account_asset/index.d.ts +9 -0
  11. package/dist/account_asset/index.js +335 -0
  12. package/dist/account_asset/module.d.ts +7622 -0
  13. package/dist/account_asset/module.js +230 -0
  14. package/dist/account_budget/.kosh/bindings.d.ts +22 -0
  15. package/dist/account_budget/.kosh/bindings.js +15 -0
  16. package/dist/account_budget/.kosh/schema.d.ts +1767 -0
  17. package/dist/account_budget/budget.d.ts +5 -0
  18. package/dist/account_budget/budget.js +142 -0
  19. package/dist/account_budget/demo.d.ts +6 -0
  20. package/dist/account_budget/demo.js +30 -0
  21. package/dist/account_budget/index.d.ts +4 -0
  22. package/dist/account_budget/index.js +223 -0
  23. package/dist/account_budget/module.d.ts +13863 -0
  24. package/dist/account_budget/module.js +167 -0
  25. package/dist/account_portal/.kosh/bindings.js +1 -1
  26. package/dist/account_portal/.kosh/schema.d.ts +123 -4
  27. package/dist/account_portal/module.d.ts +146 -0
  28. package/dist/accounting/.kosh/bindings.js +1 -1
  29. package/dist/accounting/.kosh/schema.d.ts +123 -4
  30. package/dist/accounting/index.d.ts +1 -1
  31. package/dist/accounting/index.js +131 -3
  32. package/dist/accounting/module.d.ts +296 -0
  33. package/dist/accounting/module.js +32 -1
  34. package/dist/approvals/.kosh/bindings.d.ts +22 -0
  35. package/dist/approvals/.kosh/bindings.js +15 -0
  36. package/dist/approvals/.kosh/schema.d.ts +611 -0
  37. package/dist/approvals/index.d.ts +18 -0
  38. package/dist/approvals/index.js +302 -0
  39. package/dist/approvals/mails.d.ts +25 -0
  40. package/dist/approvals/mails.js +82 -0
  41. package/dist/approvals/module.d.ts +1 -0
  42. package/dist/approvals/module.js +12 -0
  43. package/dist/approvals/web/History.d.ts +4 -0
  44. package/dist/approvals/web/History.js +13 -0
  45. package/dist/approvals/web/Inbox.d.ts +9 -0
  46. package/dist/approvals/web/Inbox.js +114 -0
  47. package/dist/approvals/web/Mine.d.ts +7 -0
  48. package/dist/approvals/web/Mine.js +27 -0
  49. package/dist/approvals/web/index.d.ts +13 -0
  50. package/dist/approvals/web/index.js +22 -0
  51. package/dist/approvals/web/messages.d.ts +2 -0
  52. package/dist/approvals/web/messages.js +119 -0
  53. package/dist/approvals/web/shared.d.ts +59 -0
  54. package/dist/approvals/web/shared.js +46 -0
  55. package/dist/attendance/.kosh/bindings.d.ts +22 -0
  56. package/dist/attendance/.kosh/bindings.js +15 -0
  57. package/dist/attendance/.kosh/schema.d.ts +1048 -0
  58. package/dist/attendance/days.d.ts +96 -0
  59. package/dist/attendance/days.js +430 -0
  60. package/dist/attendance/demo.d.ts +7 -0
  61. package/dist/attendance/demo.js +58 -0
  62. package/dist/attendance/index.d.ts +4 -0
  63. package/dist/attendance/index.js +513 -0
  64. package/dist/attendance/module.d.ts +3969 -0
  65. package/dist/attendance/module.js +412 -0
  66. package/dist/attendance/routes.d.ts +16 -0
  67. package/dist/attendance/routes.js +266 -0
  68. package/dist/attendance/web/Check.d.ts +8 -0
  69. package/dist/attendance/web/Check.js +40 -0
  70. package/dist/attendance/web/Kiosk.d.ts +8 -0
  71. package/dist/attendance/web/Kiosk.js +62 -0
  72. package/dist/attendance/web/PinButton.d.ts +7 -0
  73. package/dist/attendance/web/PinButton.js +29 -0
  74. package/dist/attendance/web/index.d.ts +13 -0
  75. package/dist/attendance/web/index.js +22 -0
  76. package/dist/attendance/web/messages.d.ts +2 -0
  77. package/dist/attendance/web/messages.js +61 -0
  78. package/dist/cli/init.js +32 -0
  79. package/dist/cli/templates.d.ts +1 -1
  80. package/dist/cli/templates.js +89 -0
  81. package/dist/contacts/module.js +13 -2
  82. package/dist/crm/.kosh/bindings.js +1 -1
  83. package/dist/crm/.kosh/schema.d.ts +2 -1
  84. package/dist/crm/module.d.ts +2 -0
  85. package/dist/crm/module.js +2 -1
  86. package/dist/documents/.kosh/bindings.d.ts +22 -0
  87. package/dist/documents/.kosh/bindings.js +15 -0
  88. package/dist/documents/.kosh/schema.d.ts +862 -0
  89. package/dist/documents/demo.d.ts +6 -0
  90. package/dist/documents/demo.js +22 -0
  91. package/dist/documents/documents.d.ts +98 -0
  92. package/dist/documents/documents.js +318 -0
  93. package/dist/documents/index.d.ts +30 -0
  94. package/dist/documents/index.js +442 -0
  95. package/dist/documents/module.d.ts +2781 -0
  96. package/dist/documents/module.js +214 -0
  97. package/dist/documents/web/Versions.d.ts +7 -0
  98. package/dist/documents/web/Versions.js +45 -0
  99. package/dist/documents/web/index.d.ts +11 -0
  100. package/dist/documents/web/index.js +16 -0
  101. package/dist/documents/web/messages.d.ts +2 -0
  102. package/dist/documents/web/messages.js +21 -0
  103. package/dist/event_account/.kosh/bindings.js +1 -1
  104. package/dist/event_account/.kosh/schema.d.ts +123 -4
  105. package/dist/event_account/module.d.ts +146 -0
  106. package/dist/expense/.kosh/bindings.d.ts +22 -0
  107. package/dist/expense/.kosh/bindings.js +15 -0
  108. package/dist/expense/.kosh/schema.d.ts +1299 -0
  109. package/dist/expense/demo.d.ts +7 -0
  110. package/dist/expense/demo.js +69 -0
  111. package/dist/expense/index.d.ts +3 -0
  112. package/dist/expense/index.js +495 -0
  113. package/dist/expense/module.d.ts +4747 -0
  114. package/dist/expense/module.js +647 -0
  115. package/dist/expense_account/.kosh/bindings.d.ts +22 -0
  116. package/dist/expense_account/.kosh/bindings.js +15 -0
  117. package/dist/expense_account/.kosh/schema.d.ts +1936 -0
  118. package/dist/expense_account/index.d.ts +3 -0
  119. package/dist/expense_account/index.js +74 -0
  120. package/dist/expense_account/module.d.ts +9153 -0
  121. package/dist/expense_account/module.js +318 -0
  122. package/dist/helpdesk/.kosh/bindings.d.ts +22 -0
  123. package/dist/helpdesk/.kosh/bindings.js +15 -0
  124. package/dist/helpdesk/.kosh/schema.d.ts +885 -0
  125. package/dist/helpdesk/demo.d.ts +7 -0
  126. package/dist/helpdesk/demo.js +65 -0
  127. package/dist/helpdesk/hours.d.ts +17 -0
  128. package/dist/helpdesk/hours.js +94 -0
  129. package/dist/helpdesk/index.d.ts +10 -0
  130. package/dist/helpdesk/index.js +461 -0
  131. package/dist/helpdesk/module.d.ts +2940 -0
  132. package/dist/helpdesk/module.js +326 -0
  133. package/dist/helpdesk/routes.d.ts +12 -0
  134. package/dist/helpdesk/routes.js +132 -0
  135. package/dist/helpdesk/sla.d.ts +37 -0
  136. package/dist/helpdesk/sla.js +226 -0
  137. package/dist/hr/index.d.ts +1 -1
  138. package/dist/hr/index.js +1 -1
  139. package/dist/l10n_bd/.kosh/bindings.js +1 -1
  140. package/dist/l10n_bd/.kosh/schema.d.ts +123 -4
  141. package/dist/l10n_bd/module.d.ts +146 -0
  142. package/dist/l10n_bd_payroll/.kosh/bindings.d.ts +22 -0
  143. package/dist/l10n_bd_payroll/.kosh/bindings.js +15 -0
  144. package/dist/l10n_bd_payroll/.kosh/schema.d.ts +2312 -0
  145. package/dist/l10n_bd_payroll/data.d.ts +47 -0
  146. package/dist/l10n_bd_payroll/data.js +347 -0
  147. package/dist/l10n_bd_payroll/index.d.ts +4 -0
  148. package/dist/l10n_bd_payroll/index.js +24 -0
  149. package/dist/l10n_bd_payroll/module.d.ts +12932 -0
  150. package/dist/l10n_bd_payroll/module.js +86 -0
  151. package/dist/l10n_in/.kosh/bindings.js +1 -1
  152. package/dist/l10n_in/.kosh/schema.d.ts +123 -4
  153. package/dist/l10n_in/module.d.ts +147 -0
  154. package/dist/mail/inbound/handle.js +6 -1
  155. package/dist/maintenance_stock/.kosh/bindings.js +1 -1
  156. package/dist/maintenance_stock/.kosh/schema.d.ts +77 -2
  157. package/dist/maintenance_stock/module.d.ts +788 -66
  158. package/dist/modules-sdk/index.d.ts +1 -1
  159. package/dist/modules-sdk/manifest.d.ts +39 -2
  160. package/dist/mrp/.kosh/bindings.js +1 -1
  161. package/dist/mrp/.kosh/schema.d.ts +77 -2
  162. package/dist/mrp/index.d.ts +1 -1
  163. package/dist/mrp/index.js +2 -1
  164. package/dist/mrp/module.d.ts +781 -54
  165. package/dist/mrp/module.js +64 -2
  166. package/dist/mrp_account/.kosh/bindings.js +1 -1
  167. package/dist/mrp_account/.kosh/schema.d.ts +198 -5
  168. package/dist/mrp_account/module.d.ts +4852 -2541
  169. package/dist/payment/.kosh/bindings.js +1 -1
  170. package/dist/payment/.kosh/schema.d.ts +125 -5
  171. package/dist/payment/index.d.ts +41 -0
  172. package/dist/payment/index.js +131 -74
  173. package/dist/payment/module.d.ts +210 -6
  174. package/dist/payment/module.js +19 -3
  175. package/dist/payment/settle.js +10 -1
  176. package/dist/payroll/.kosh/bindings.d.ts +22 -0
  177. package/dist/payroll/.kosh/bindings.js +15 -0
  178. package/dist/payroll/.kosh/schema.d.ts +1390 -0
  179. package/dist/payroll/compute.d.ts +35 -0
  180. package/dist/payroll/compute.js +398 -0
  181. package/dist/payroll/demo.d.ts +55 -0
  182. package/dist/payroll/demo.js +121 -0
  183. package/dist/payroll/formula.d.ts +62 -0
  184. package/dist/payroll/formula.js +320 -0
  185. package/dist/payroll/index.d.ts +230 -0
  186. package/dist/payroll/index.js +713 -0
  187. package/dist/payroll/module.d.ts +9390 -0
  188. package/dist/payroll/module.js +606 -0
  189. package/dist/payroll/routes.d.ts +10 -0
  190. package/dist/payroll/routes.js +112 -0
  191. package/dist/payroll_account/.kosh/bindings.d.ts +22 -0
  192. package/dist/payroll_account/.kosh/bindings.js +15 -0
  193. package/dist/payroll_account/.kosh/schema.d.ts +2308 -0
  194. package/dist/payroll_account/index.d.ts +3 -0
  195. package/dist/payroll_account/index.js +40 -0
  196. package/dist/payroll_account/module.d.ts +12396 -0
  197. package/dist/payroll_account/module.js +256 -0
  198. package/dist/permissions/approvals.d.ts +131 -9
  199. package/dist/permissions/approvals.js +662 -57
  200. package/dist/permissions/index.d.ts +1 -1
  201. package/dist/permissions/index.js +2 -2
  202. package/dist/permissions/models.js +191 -12
  203. package/dist/permissions/routes.d.ts +6 -1
  204. package/dist/permissions/routes.js +37 -4
  205. package/dist/permissions/web/ApprovalPanel.d.ts +5 -4
  206. package/dist/permissions/web/ApprovalPanel.js +39 -13
  207. package/dist/permissions/web/index.d.ts +6 -4
  208. package/dist/permissions/web/index.js +13 -4
  209. package/dist/permissions/web/messages.d.ts +2 -0
  210. package/dist/permissions/web/messages.js +43 -0
  211. package/dist/portal/index.js +1 -1
  212. package/dist/pos/.kosh/bindings.js +1 -1
  213. package/dist/pos/.kosh/schema.d.ts +123 -4
  214. package/dist/pos/index.js +4 -0
  215. package/dist/pos/module.d.ts +147 -0
  216. package/dist/pos_stock/.kosh/bindings.js +1 -1
  217. package/dist/pos_stock/.kosh/schema.d.ts +198 -5
  218. package/dist/pos_stock/module.d.ts +914 -46
  219. package/dist/product/.kosh/bindings.js +1 -1
  220. package/dist/product/.kosh/schema.d.ts +2 -1
  221. package/dist/product/index.js +13 -0
  222. package/dist/product/module.d.ts +2 -0
  223. package/dist/product/module.js +2 -1
  224. package/dist/project/.kosh/bindings.js +1 -1
  225. package/dist/project/.kosh/schema.d.ts +672 -1
  226. package/dist/project/index.d.ts +3 -1
  227. package/dist/project/index.js +901 -14
  228. package/dist/project/module.d.ts +9892 -390
  229. package/dist/project/module.js +1530 -13
  230. package/dist/project/routes.d.ts +44 -0
  231. package/dist/project/routes.js +314 -0
  232. package/dist/project/schedule.d.ts +72 -0
  233. package/dist/project/schedule.js +192 -0
  234. package/dist/project/web/Refresh.d.ts +8 -0
  235. package/dist/project/web/Refresh.js +29 -0
  236. package/dist/project/web/Schedule.d.ts +9 -0
  237. package/dist/project/web/Schedule.js +93 -0
  238. package/dist/project/web/Structure.d.ts +8 -0
  239. package/dist/project/web/Structure.js +86 -0
  240. package/dist/project/web/Workload.d.ts +8 -0
  241. package/dist/project/web/Workload.js +43 -0
  242. package/dist/project/web/index.d.ts +14 -0
  243. package/dist/project/web/index.js +25 -0
  244. package/dist/project/web/messages.d.ts +2 -0
  245. package/dist/project/web/messages.js +85 -0
  246. package/dist/project_account/.kosh/bindings.d.ts +22 -0
  247. package/dist/project_account/.kosh/bindings.js +15 -0
  248. package/dist/project_account/.kosh/schema.d.ts +2241 -0
  249. package/dist/project_account/index.d.ts +3 -0
  250. package/dist/project_account/index.js +27 -0
  251. package/dist/project_account/module.d.ts +11539 -0
  252. package/dist/project_account/module.js +76 -0
  253. package/dist/project_portal/.kosh/bindings.js +1 -1
  254. package/dist/project_portal/.kosh/schema.d.ts +672 -1
  255. package/dist/project_portal/module.d.ts +4798 -129
  256. package/dist/project_purchase/.kosh/bindings.d.ts +22 -0
  257. package/dist/project_purchase/.kosh/bindings.js +15 -0
  258. package/dist/project_purchase/.kosh/schema.d.ts +2320 -0
  259. package/dist/project_purchase/index.d.ts +9 -0
  260. package/dist/project_purchase/index.js +22 -0
  261. package/dist/project_purchase/module.d.ts +25147 -0
  262. package/dist/project_purchase/module.js +56 -0
  263. package/dist/purchase/.kosh/bindings.js +1 -1
  264. package/dist/purchase/.kosh/schema.d.ts +97 -4
  265. package/dist/purchase/module.d.ts +13 -2
  266. package/dist/purchase/module.js +10 -1
  267. package/dist/purchase_account/.kosh/bindings.js +1 -1
  268. package/dist/purchase_account/.kosh/schema.d.ts +126 -6
  269. package/dist/purchase_account/index.js +1 -0
  270. package/dist/purchase_account/module.d.ts +176 -1
  271. package/dist/purchase_account/module.js +13 -2
  272. package/dist/purchase_portal/.kosh/bindings.js +1 -1
  273. package/dist/purchase_portal/.kosh/schema.d.ts +97 -4
  274. package/dist/purchase_portal/module.d.ts +6 -1
  275. package/dist/purchase_stock/.kosh/bindings.js +1 -1
  276. package/dist/purchase_stock/.kosh/schema.d.ts +174 -5
  277. package/dist/purchase_stock/index.d.ts +1 -1
  278. package/dist/purchase_stock/index.js +9 -2
  279. package/dist/purchase_stock/module.d.ts +840 -68
  280. package/dist/purchase_stock/module.js +242 -6
  281. package/dist/purchase_stock_account/.kosh/bindings.js +1 -1
  282. package/dist/purchase_stock_account/.kosh/schema.d.ts +203 -7
  283. package/dist/purchase_stock_account/module.d.ts +8163 -5514
  284. package/dist/purchase_stock_account/module.js +11 -5
  285. package/dist/recruitment/.kosh/bindings.js +1 -1
  286. package/dist/recruitment/.kosh/schema.d.ts +2 -1
  287. package/dist/recruitment/module.d.ts +2 -0
  288. package/dist/recruitment/module.js +2 -1
  289. package/dist/sale_account/.kosh/bindings.js +1 -1
  290. package/dist/sale_account/.kosh/schema.d.ts +123 -4
  291. package/dist/sale_account/module.d.ts +147 -0
  292. package/dist/sale_portal/.kosh/bindings.js +1 -1
  293. package/dist/sale_portal/.kosh/schema.d.ts +2 -1
  294. package/dist/sale_portal/module.d.ts +1 -0
  295. package/dist/sale_project/.kosh/bindings.js +1 -1
  296. package/dist/sale_project/.kosh/schema.d.ts +673 -1
  297. package/dist/sale_project/module.d.ts +4800 -129
  298. package/dist/sale_project/module.js +17 -1
  299. package/dist/sale_stock/.kosh/bindings.js +1 -1
  300. package/dist/sale_stock/.kosh/schema.d.ts +77 -2
  301. package/dist/sale_stock/module.d.ts +789 -66
  302. package/dist/sales/.kosh/bindings.js +1 -1
  303. package/dist/sales/.kosh/schema.d.ts +2 -1
  304. package/dist/sales/index.js +4 -0
  305. package/dist/sales/module.d.ts +1 -0
  306. package/dist/sign/.kosh/bindings.d.ts +22 -0
  307. package/dist/sign/.kosh/bindings.js +15 -0
  308. package/dist/sign/.kosh/schema.d.ts +990 -0
  309. package/dist/sign/index.d.ts +14 -0
  310. package/dist/sign/index.js +350 -0
  311. package/dist/sign/module.d.ts +4478 -0
  312. package/dist/sign/module.js +158 -0
  313. package/dist/sign/sign.d.ts +82 -0
  314. package/dist/sign/sign.js +474 -0
  315. package/dist/stock/.kosh/bindings.js +1 -1
  316. package/dist/stock/.kosh/schema.d.ts +77 -2
  317. package/dist/stock/demo.d.ts +2 -1
  318. package/dist/stock/demo.js +28 -1
  319. package/dist/stock/index.d.ts +2 -1
  320. package/dist/stock/index.js +233 -4
  321. package/dist/stock/module.d.ts +2363 -837
  322. package/dist/stock/module.js +569 -14
  323. package/dist/stock/replenish.d.ts +38 -0
  324. package/dist/stock/replenish.js +176 -0
  325. package/dist/stock/web/Replenishment.d.ts +8 -0
  326. package/dist/stock/web/Replenishment.js +84 -0
  327. package/dist/stock/web/index.d.ts +4 -2
  328. package/dist/stock/web/index.js +6 -2
  329. package/dist/stock/web/messages.js +52 -0
  330. package/dist/stock_account/.kosh/bindings.js +1 -1
  331. package/dist/stock_account/.kosh/schema.d.ts +198 -5
  332. package/dist/stock_account/index.js +10 -0
  333. package/dist/stock_account/module.d.ts +969 -101
  334. package/dist/trade_finance/index.js +2 -0
  335. package/dist/trade_finance/module.js +2 -0
  336. package/dist/trade_finance_account/.kosh/bindings.js +1 -1
  337. package/dist/trade_finance_account/.kosh/schema.d.ts +123 -4
  338. package/dist/trade_finance_account/index.js +1 -0
  339. package/dist/trade_finance_account/module.d.ts +146 -0
  340. package/dist/trade_finance_account/module.js +1 -0
  341. package/dist/trade_finance_purchase/.kosh/bindings.js +1 -1
  342. package/dist/trade_finance_purchase/.kosh/schema.d.ts +97 -4
  343. package/dist/trade_finance_purchase/module.d.ts +6 -1
  344. package/dist/trade_finance_sale/.kosh/bindings.js +1 -1
  345. package/dist/trade_finance_sale/.kosh/schema.d.ts +2 -1
  346. package/dist/trade_finance_sale/module.d.ts +1 -0
  347. package/dist/ui/app.js +24 -12
  348. package/dist/ui/components/AppIcon.js +8 -1
  349. package/dist/ui/i18n/messages.d.ts +4 -0
  350. package/dist/ui/i18n/messages.js +8 -0
  351. package/dist/ui/views/FormView.js +4 -2
  352. package/dist/ui/views/KanbanView.js +9 -1
  353. package/dist/ui/views/ListView.js +4 -2
  354. package/dist/ui/views/widgets.js +7 -1
  355. package/dist/website/index.js +1 -0
  356. package/dist/website/module.js +1 -0
  357. package/dist/website_crm/.kosh/bindings.js +1 -1
  358. package/dist/website_crm/.kosh/schema.d.ts +2 -1
  359. package/dist/website_crm/module.d.ts +1 -0
  360. package/dist/website_sale/.kosh/bindings.d.ts +22 -0
  361. package/dist/website_sale/.kosh/bindings.js +15 -0
  362. package/dist/website_sale/.kosh/schema.d.ts +2284 -0
  363. package/dist/website_sale/couriers.d.ts +50 -0
  364. package/dist/website_sale/couriers.js +59 -0
  365. package/dist/website_sale/demo.d.ts +7 -0
  366. package/dist/website_sale/demo.js +90 -0
  367. package/dist/website_sale/growth.d.ts +31 -0
  368. package/dist/website_sale/growth.js +163 -0
  369. package/dist/website_sale/index.d.ts +49 -0
  370. package/dist/website_sale/index.js +538 -0
  371. package/dist/website_sale/module.d.ts +22027 -0
  372. package/dist/website_sale/module.js +397 -0
  373. package/dist/website_sale/shipments.d.ts +16 -0
  374. package/dist/website_sale/shipments.js +113 -0
  375. package/dist/website_sale/shop.d.ts +81 -0
  376. package/dist/website_sale/shop.js +649 -0
  377. package/dist/website_sale_stock/.kosh/bindings.d.ts +22 -0
  378. package/dist/website_sale_stock/.kosh/bindings.js +15 -0
  379. package/dist/website_sale_stock/.kosh/schema.d.ts +2681 -0
  380. package/dist/website_sale_stock/index.d.ts +9 -0
  381. package/dist/website_sale_stock/index.js +20 -0
  382. package/dist/website_sale_stock/module.d.ts +24998 -0
  383. package/dist/website_sale_stock/module.js +28 -0
  384. package/package.json +83 -2
@@ -10,6 +10,19 @@ export declare const MovePurchaseOrder: import("../server/orm.js").Extension<"ac
10
10
  readonly readonly: false;
11
11
  }>;
12
12
  }, Record<never, never>>;
13
+ /** The cost centre of each order line, carried onto the bill (RFC 0024 §2.5): budgets commit and spend by it. */
14
+ export declare const PurchaseLineAnalytic: import("../server/orm.js").Extension<"purchase.order.line", {
15
+ readonly analytic: import("../server/orm.js").Many2oneField<"account.analytic", {
16
+ readonly required: false;
17
+ readonly computed: false;
18
+ readonly inverse: false;
19
+ readonly sequence: false;
20
+ readonly computeName: undefined;
21
+ readonly store: true;
22
+ readonly hasDefault: false;
23
+ readonly readonly: false;
24
+ }>;
25
+ }, Record<never, never>>;
13
26
  export declare const PurchaseOrderBilling: import("../server/orm.js").Extension<"purchase.order", {
14
27
  readonly bills: import("../server/orm.js").One2manyField<"account.move", {
15
28
  readonly required: true;
@@ -215,6 +228,7 @@ export declare const purchaseAccountShutro: import("../server/orm.js").Module<re
215
228
  readonly to: "to_approve";
216
229
  readonly guard: (records: never) => unknown;
217
230
  readonly message: "Add at least one line before submitting the order.";
231
+ readonly before: (records: never) => unknown;
218
232
  readonly after: (records: never) => unknown;
219
233
  };
220
234
  readonly confirm: {
@@ -252,7 +266,9 @@ export declare const purchaseAccountShutro: import("../server/orm.js").Module<re
252
266
  hasDefault: true;
253
267
  sequence: false;
254
268
  }>;
255
- }, {} & import("../server/orm.js").TransitionMethods<{
269
+ }, {
270
+ readonly submitting: (this: unknown) => Promise<undefined>;
271
+ } & import("../server/orm.js").TransitionMethods<{
256
272
  readonly name: import("../server/orm.js").CharField<{
257
273
  readonly required: true;
258
274
  readonly computed: false;
@@ -393,6 +409,7 @@ export declare const purchaseAccountShutro: import("../server/orm.js").Module<re
393
409
  readonly to: "to_approve";
394
410
  readonly guard: (records: never) => unknown;
395
411
  readonly message: "Add at least one line before submitting the order.";
412
+ readonly before: (records: never) => unknown;
396
413
  readonly after: (records: never) => unknown;
397
414
  };
398
415
  readonly confirm: {
@@ -1448,6 +1465,7 @@ export declare const purchaseAccountShutro: import("../server/orm.js").Module<re
1448
1465
  hasDefault: false;
1449
1466
  sequence: false;
1450
1467
  }>;
1468
+ readonly active: import("../server/orm.js").ActiveField;
1451
1469
  readonly name: import("../server/orm.js").CharField<{
1452
1470
  readonly required: true;
1453
1471
  readonly computed: false;
@@ -2601,6 +2619,131 @@ export declare const purchaseAccountShutro: import("../server/orm.js").Module<re
2601
2619
  readonly hasDefault: false;
2602
2620
  readonly readonly: false;
2603
2621
  }>;
2622
+ }>>, import("../server/orm.js").Model<"account.analytic", {
2623
+ readonly id: import("../server/orm.js").IdField<"account.analytic">;
2624
+ readonly createdAt: import("../server/orm.js").ScalarField<'datetime', Date, Date, {
2625
+ required: true;
2626
+ readonly: true;
2627
+ computed: false;
2628
+ inverse: false;
2629
+ hasDefault: false;
2630
+ sequence: false;
2631
+ }>;
2632
+ readonly updatedAt: import("../server/orm.js").ScalarField<'datetime', Date, Date, {
2633
+ required: true;
2634
+ readonly: true;
2635
+ computed: false;
2636
+ inverse: false;
2637
+ hasDefault: false;
2638
+ sequence: false;
2639
+ }>;
2640
+ readonly createdBy: import("../server/orm.js").Many2oneField<'res.users', {
2641
+ required: false;
2642
+ readonly: true;
2643
+ computed: false;
2644
+ inverse: false;
2645
+ hasDefault: false;
2646
+ sequence: false;
2647
+ }>;
2648
+ readonly updatedBy: import("../server/orm.js").Many2oneField<'res.users', {
2649
+ required: false;
2650
+ readonly: true;
2651
+ computed: false;
2652
+ inverse: false;
2653
+ hasDefault: false;
2654
+ sequence: false;
2655
+ }>;
2656
+ readonly displayName: import("../server/orm.js").CharField<{
2657
+ required: true;
2658
+ readonly: true;
2659
+ computed: true;
2660
+ inverse: false;
2661
+ hasDefault: false;
2662
+ sequence: false;
2663
+ }>;
2664
+ readonly active: import("../server/orm.js").ActiveField;
2665
+ readonly company: import("../server/orm.js").CompanyField<true>;
2666
+ readonly code: import("../server/orm.js").CharField<{
2667
+ readonly required: false;
2668
+ readonly computed: false;
2669
+ readonly inverse: false;
2670
+ readonly sequence: false;
2671
+ readonly computeName: undefined;
2672
+ readonly store: true;
2673
+ readonly hasDefault: false;
2674
+ readonly readonly: false;
2675
+ }, string>;
2676
+ readonly name: import("../server/orm.js").CharField<{
2677
+ readonly required: true;
2678
+ readonly computed: false;
2679
+ readonly inverse: false;
2680
+ readonly sequence: false;
2681
+ readonly computeName: undefined;
2682
+ readonly store: true;
2683
+ readonly hasDefault: false;
2684
+ readonly readonly: false;
2685
+ }, string | Readonly<Record<string, string>>>;
2686
+ readonly parent: import("../server/orm.js").Many2oneField<"account.analytic", {
2687
+ readonly required: false;
2688
+ readonly computed: false;
2689
+ readonly inverse: false;
2690
+ readonly sequence: false;
2691
+ readonly computeName: undefined;
2692
+ readonly store: true;
2693
+ readonly hasDefault: false;
2694
+ readonly readonly: false;
2695
+ }>;
2696
+ readonly note: import("../server/orm.js").ScalarField<"text", string, string, {
2697
+ readonly required: false;
2698
+ readonly computed: false;
2699
+ readonly inverse: false;
2700
+ readonly sequence: false;
2701
+ readonly computeName: undefined;
2702
+ readonly store: true;
2703
+ readonly hasDefault: false;
2704
+ readonly readonly: false;
2705
+ }>;
2706
+ }, {} & import("../server/orm.js").TransitionMethods<{
2707
+ readonly code: import("../server/orm.js").CharField<{
2708
+ readonly required: false;
2709
+ readonly computed: false;
2710
+ readonly inverse: false;
2711
+ readonly sequence: false;
2712
+ readonly computeName: undefined;
2713
+ readonly store: true;
2714
+ readonly hasDefault: false;
2715
+ readonly readonly: false;
2716
+ }, string>;
2717
+ readonly name: import("../server/orm.js").CharField<{
2718
+ readonly required: true;
2719
+ readonly computed: false;
2720
+ readonly inverse: false;
2721
+ readonly sequence: false;
2722
+ readonly computeName: undefined;
2723
+ readonly store: true;
2724
+ readonly hasDefault: false;
2725
+ readonly readonly: false;
2726
+ }, string | Readonly<Record<string, string>>>;
2727
+ readonly parent: import("../server/orm.js").Many2oneField<"account.analytic", {
2728
+ readonly required: false;
2729
+ readonly computed: false;
2730
+ readonly inverse: false;
2731
+ readonly sequence: false;
2732
+ readonly computeName: undefined;
2733
+ readonly store: true;
2734
+ readonly hasDefault: false;
2735
+ readonly readonly: false;
2736
+ }>;
2737
+ readonly note: import("../server/orm.js").ScalarField<"text", string, string, {
2738
+ readonly required: false;
2739
+ readonly computed: false;
2740
+ readonly inverse: false;
2741
+ readonly sequence: false;
2742
+ readonly computeName: undefined;
2743
+ readonly store: true;
2744
+ readonly hasDefault: false;
2745
+ readonly readonly: false;
2746
+ }>;
2604
2747
  }>>, import("../server/orm.js").Model<"account.account", {
2605
2748
  readonly id: import("../server/orm.js").IdField<"account.account">;
2606
2749
  readonly createdAt: import("../server/orm.js").ScalarField<'datetime', Date, Date, {
@@ -4293,6 +4436,16 @@ export declare const purchaseAccountShutro: import("../server/orm.js").Module<re
4293
4436
  readonly hasDefault: false;
4294
4437
  readonly readonly: false;
4295
4438
  }>;
4439
+ readonly analytic: import("../server/orm.js").Many2oneField<"account.analytic", {
4440
+ readonly required: false;
4441
+ readonly computed: false;
4442
+ readonly inverse: false;
4443
+ readonly sequence: false;
4444
+ readonly computeName: undefined;
4445
+ readonly store: true;
4446
+ readonly hasDefault: false;
4447
+ readonly readonly: false;
4448
+ }>;
4296
4449
  readonly quantity: import("../server/orm.js").DecimalField<{
4297
4450
  readonly required: false;
4298
4451
  readonly computed: false;
@@ -4644,6 +4797,16 @@ export declare const purchaseAccountShutro: import("../server/orm.js").Module<re
4644
4797
  readonly hasDefault: false;
4645
4798
  readonly readonly: false;
4646
4799
  }>;
4800
+ readonly analytic: import("../server/orm.js").Many2oneField<"account.analytic", {
4801
+ readonly required: false;
4802
+ readonly computed: false;
4803
+ readonly inverse: false;
4804
+ readonly sequence: false;
4805
+ readonly computeName: undefined;
4806
+ readonly store: true;
4807
+ readonly hasDefault: false;
4808
+ readonly readonly: false;
4809
+ }>;
4647
4810
  readonly quantity: import("../server/orm.js").DecimalField<{
4648
4811
  readonly required: false;
4649
4812
  readonly computed: false;
@@ -6569,6 +6732,7 @@ export declare const purchaseAccountShutro: import("../server/orm.js").Module<re
6569
6732
  hasDefault: false;
6570
6733
  sequence: false;
6571
6734
  }>;
6735
+ readonly active: import("../server/orm.js").ActiveField;
6572
6736
  readonly name: import("../server/orm.js").CharField<{
6573
6737
  readonly required: true;
6574
6738
  readonly computed: false;
@@ -7372,6 +7536,17 @@ export declare const purchaseAccountShutro: import("../server/orm.js").Module<re
7372
7536
  readonly hasDefault: false;
7373
7537
  readonly readonly: false;
7374
7538
  }>;
7539
+ }, Record<never, never>>, import("../server/orm.js").Extension<"purchase.order.line", {
7540
+ readonly analytic: import("../server/orm.js").Many2oneField<"account.analytic", {
7541
+ readonly required: false;
7542
+ readonly computed: false;
7543
+ readonly inverse: false;
7544
+ readonly sequence: false;
7545
+ readonly computeName: undefined;
7546
+ readonly store: true;
7547
+ readonly hasDefault: false;
7548
+ readonly readonly: false;
7549
+ }>;
7375
7550
  }, Record<never, never>>, import("../server/orm.js").Extension<"purchase.order", {
7376
7551
  readonly bills: import("../server/orm.js").One2manyField<"account.move", {
7377
7552
  readonly required: true;
@@ -13,6 +13,16 @@ export const MovePurchaseOrder = extendModel('account.move', {
13
13
  purchaseOrder: f.many2one('purchase.order', { label: 'Purchase order' }),
14
14
  },
15
15
  });
16
+ /** The cost centre of each order line, carried onto the bill (RFC 0024 §2.5): budgets commit and spend by it. */
17
+ export const PurchaseLineAnalytic = extendModel('purchase.order.line', {
18
+ fields: {
19
+ analytic: f.many2one('account.analytic', {
20
+ ondelete: 'restrict',
21
+ label: 'Cost centre',
22
+ help: 'The department, project or branch the purchase is for; the bill line keeps it.',
23
+ }),
24
+ },
25
+ });
16
26
  export const PurchaseOrderBilling = extendModel('purchase.order', {
17
27
  fields: {
18
28
  bills: f.one2many('account.move', 'purchaseOrder'),
@@ -76,6 +86,7 @@ export const PurchaseOrderBilling = extendModel('purchase.order', {
76
86
  quantity: l.quantity,
77
87
  priceUnit: l.priceUnit,
78
88
  taxes: { set: [...l.taxes].map((t) => t.id) },
89
+ analytic: l.analytic?.id ?? null,
79
90
  debit: '0',
80
91
  credit: '0',
81
92
  })),
@@ -91,7 +102,7 @@ export const PurchaseOrderBilling = extendModel('purchase.order', {
91
102
  });
92
103
  export const purchaseAccountShutro = defineModule({
93
104
  name: 'purchase_account',
94
- version: '0.1.0',
105
+ version: '0.2.0',
95
106
  depends: [purchaseShutro, accountingShutro],
96
107
  groups: [
97
108
  orm.defineGroup({
@@ -101,5 +112,5 @@ export const purchaseAccountShutro = defineModule({
101
112
  }),
102
113
  ],
103
114
  models: [],
104
- extensions: [MovePurchaseOrder, PurchaseOrderBilling],
115
+ extensions: [MovePurchaseOrder, PurchaseLineAnalytic, PurchaseOrderBilling],
105
116
  });
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 0778f4bbec8a5294
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 3369f35c9b08fe79
2
2
  // Bindings of module `purchase_portal`: import the definition API from here to get types scoped to what it can see.
3
3
  export { defineModel, defineModule, extendModel, f, replace } from '../../server/orm.js';
4
4
  import { definitions } from '../../server/orm.js';
@@ -1,13 +1,16 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 0778f4bbec8a5294
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 3369f35c9b08fe79
2
2
  // Schema view of module `purchase_portal` (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
 
5
5
  /** Model name → model type (RFC 0002 §7.7). */
6
6
  export interface SchemaView {
7
7
  readonly 'account.tax': AccountTax;
8
+ readonly 'approval.delegation': ApprovalDelegation;
8
9
  readonly 'approval.level': ApprovalLevel;
10
+ readonly 'approval.link': ApprovalLink;
9
11
  readonly 'approval.policy': ApprovalPolicy;
10
12
  readonly 'approval.request': ApprovalRequest;
13
+ readonly 'approval.vote': ApprovalVote;
11
14
  readonly 'audit.event': AuditEvent;
12
15
  readonly 'auth.api_key': AuthApiKey;
13
16
  readonly 'auth.credential': AuthCredential;
@@ -73,6 +76,29 @@ export interface AccountTax {
73
76
  export interface AccountTaxMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'account.tax'> {
74
77
  }
75
78
 
79
+ /** `approval.delegation` (owner: permissions). */
80
+ export interface ApprovalDelegation {
81
+ readonly name: 'approval.delegation';
82
+ readonly fields: {
83
+ readonly id: F.Id<'approval.delegation'>;
84
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
85
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
86
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
87
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
88
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
89
+ readonly user: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
90
+ readonly delegate: F.Many2one<'res.users', { readonly required: true }>;
91
+ readonly dateFrom: F.DateOnly<{ readonly required: true }>;
92
+ readonly dateTo: F.DateOnly<{ readonly required: true }>;
93
+ readonly note: F.Char;
94
+ };
95
+ readonly methods: ApprovalDelegationMethods;
96
+ }
97
+
98
+ /** Methods of `approval.delegation`: declared ones and transitions. */
99
+ export interface ApprovalDelegationMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.delegation'> {
100
+ }
101
+
76
102
  /** `approval.level` (owner: permissions). */
77
103
  export interface ApprovalLevel {
78
104
  readonly name: 'approval.level';
@@ -87,7 +113,14 @@ export interface ApprovalLevel {
87
113
  readonly sequence: F.Integer<{ readonly default: true }>;
88
114
  readonly name: F.Char<{ readonly required: true }>;
89
115
  readonly condition: F.Json;
90
- readonly approverRole: F.Char<{ readonly required: true }>;
116
+ readonly approverKind: F.Selection<'role' | 'users' | 'manager' | 'field', { readonly required: true; readonly default: true }>;
117
+ readonly approverRole: F.Char;
118
+ readonly approverUsers: F.Many2many<'res.users', { readonly required: true }>;
119
+ readonly approverField: F.Char;
120
+ readonly quorum: F.Selection<'any' | 'all' | 'count', { readonly required: true; readonly default: true }>;
121
+ readonly quorumCount: F.Integer;
122
+ readonly deadlineHours: F.Integer;
123
+ readonly escalateRole: F.Char;
91
124
  };
92
125
  readonly methods: ApprovalLevelMethods;
93
126
  }
@@ -96,6 +129,29 @@ export interface ApprovalLevel {
96
129
  export interface ApprovalLevelMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.level'> {
97
130
  }
98
131
 
132
+ /** `approval.link` (owner: permissions). */
133
+ export interface ApprovalLink {
134
+ readonly name: 'approval.link';
135
+ readonly fields: {
136
+ readonly id: F.Id<'approval.link'>;
137
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
138
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
139
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
140
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
141
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
142
+ readonly request: F.Many2one<'approval.request', { readonly required: true }>;
143
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
144
+ readonly tokenHash: F.Char<{ readonly required: true }>;
145
+ readonly expiresAt: F.Datetime<{ readonly required: true }>;
146
+ readonly usedAt: F.Datetime;
147
+ };
148
+ readonly methods: ApprovalLinkMethods;
149
+ }
150
+
151
+ /** Methods of `approval.link`: declared ones and transitions. */
152
+ export interface ApprovalLinkMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.link'> {
153
+ }
154
+
99
155
  /** `approval.policy` (owner: permissions). */
100
156
  export interface ApprovalPolicy {
101
157
  readonly name: 'approval.policy';
@@ -113,6 +169,9 @@ export interface ApprovalPolicy {
113
169
  readonly company: F.Many2one<'res.company'>;
114
170
  readonly onApproved: F.Char;
115
171
  readonly onRejected: F.Char;
172
+ readonly onSentBack: F.Char;
173
+ readonly onWithdrawn: F.Char;
174
+ readonly reasonRequired: F.Bool<{ readonly required: true; readonly default: true }>;
116
175
  readonly levels: F.One2many<'approval.level', { readonly required: true }>;
117
176
  };
118
177
  readonly methods: ApprovalPolicyMethods;
@@ -139,8 +198,16 @@ export interface ApprovalRequest {
139
198
  readonly targetModel: F.Char<{ readonly required: true }>;
140
199
  readonly targetId: F.Integer<{ readonly required: true }>;
141
200
  readonly company: F.Many2one<'res.company'>;
142
- readonly approverRole: F.Char<{ readonly required: true }>;
143
- readonly state: F.Selection<'pending' | 'approved' | 'rejected' | 'cancelled', { readonly required: true; readonly default: true }>;
201
+ readonly approverRole: F.Char;
202
+ readonly approvers: F.Many2many<'res.users', { readonly required: true }>;
203
+ readonly required: F.Integer<{ readonly required: true; readonly default: true }>;
204
+ readonly round: F.Integer<{ readonly required: true; readonly default: true }>;
205
+ readonly votes: F.One2many<'approval.vote', { readonly required: true }>;
206
+ readonly dueAt: F.Datetime;
207
+ readonly remindedAt: F.Datetime;
208
+ readonly escalatedTo: F.Char;
209
+ readonly escalatedAt: F.Datetime;
210
+ readonly state: F.Selection<'pending' | 'approved' | 'rejected' | 'sent_back' | 'cancelled', { readonly required: true; readonly default: true }>;
144
211
  readonly requestedBy: F.Many2one<'res.users'>;
145
212
  readonly decidedBy: F.Many2one<'res.users'>;
146
213
  readonly decidedAt: F.Datetime;
@@ -153,6 +220,31 @@ export interface ApprovalRequest {
153
220
  export interface ApprovalRequestMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.request'> {
154
221
  }
155
222
 
223
+ /** `approval.vote` (owner: permissions). */
224
+ export interface ApprovalVote {
225
+ readonly name: 'approval.vote';
226
+ readonly fields: {
227
+ readonly id: F.Id<'approval.vote'>;
228
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
229
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
230
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
231
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
232
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
233
+ readonly request: F.Many2one<'approval.request', { readonly required: true }>;
234
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
235
+ readonly decision: F.Selection<'approve' | 'reject' | 'send_back', { readonly required: true }>;
236
+ readonly comment: F.Text;
237
+ readonly at: F.Datetime<{ readonly required: true }>;
238
+ readonly onBehalfOf: F.Many2one<'res.users'>;
239
+ readonly ip: F.Char;
240
+ };
241
+ readonly methods: ApprovalVoteMethods;
242
+ }
243
+
244
+ /** Methods of `approval.vote`: declared ones and transitions. */
245
+ export interface ApprovalVoteMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.vote'> {
246
+ }
247
+
156
248
  /** `audit.event` (owner: base). */
157
249
  export interface AuditEvent {
158
250
  readonly name: 'audit.event';
@@ -748,6 +840,7 @@ export interface ProductCategory {
748
840
  readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
749
841
  readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
750
842
  readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
843
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
751
844
  readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
752
845
  readonly parent: F.Many2one<'product.category'>;
753
846
  };
@@ -182,6 +182,7 @@ export declare const purchasePortalShutro: import("shutro").Module<readonly [],
182
182
  readonly to: "to_approve";
183
183
  readonly guard: (records: never) => unknown;
184
184
  readonly message: "Add at least one line before submitting the order.";
185
+ readonly before: (records: never) => unknown;
185
186
  readonly after: (records: never) => unknown;
186
187
  };
187
188
  readonly confirm: {
@@ -219,7 +220,9 @@ export declare const purchasePortalShutro: import("shutro").Module<readonly [],
219
220
  hasDefault: true;
220
221
  sequence: false;
221
222
  }>;
222
- }, {} & import("shutro").TransitionMethods<{
223
+ }, {
224
+ readonly submitting: (this: unknown) => Promise<undefined>;
225
+ } & import("shutro").TransitionMethods<{
223
226
  readonly name: import("shutro").CharField<{
224
227
  readonly required: true;
225
228
  readonly computed: false;
@@ -360,6 +363,7 @@ export declare const purchasePortalShutro: import("shutro").Module<readonly [],
360
363
  readonly to: "to_approve";
361
364
  readonly guard: (records: never) => unknown;
362
365
  readonly message: "Add at least one line before submitting the order.";
366
+ readonly before: (records: never) => unknown;
363
367
  readonly after: (records: never) => unknown;
364
368
  };
365
369
  readonly confirm: {
@@ -1415,6 +1419,7 @@ export declare const purchasePortalShutro: import("shutro").Module<readonly [],
1415
1419
  hasDefault: false;
1416
1420
  sequence: false;
1417
1421
  }>;
1422
+ readonly active: import("shutro").ActiveField;
1418
1423
  readonly name: import("shutro").CharField<{
1419
1424
  readonly required: true;
1420
1425
  readonly computed: false;
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: d9f8e844230b1ef6
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: a7db9609fdcaa63d
2
2
  // Bindings of module `purchase_stock`: import the definition API from here to get types scoped to what it can see.
3
3
  export { defineModel, defineModule, extendModel, f, replace } from '../../server/orm.js';
4
4
  import { definitions } from '../../server/orm.js';