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
@@ -6,5 +6,5 @@ export { type AppChange, type AppPlan, AppPlanError, type AppReason, type AppSta
6
6
  export { idByName, maybeIdByName } from './demo.js';
7
7
  export { ModuleDefinitionError, ModuleLoadError } from './errors.js';
8
8
  export { type LoadedModules, type LoadOptions, loadModules } from './loader.js';
9
- export { type AccessLevel, type ApprovalLevelSpec, type ApprovalSpec, type AppSpec, type AutomationActionSpec, type AutomationRuleSpec, type DemoContext, type DemoUser, type DocumentSpec, defineModule, type EventSpec, type ImportTemplateSpec, type InboundAliasSpec, type InboundCall, type InboundWebhookSpec, type KoshModule, type LocalizationSpec, type MenuSpec, type ModuleHooks, type ModuleInput, type PortalActionSpec, type PortalDocumentSpec, type SettingFieldSpec, type SettingsSectionSpec, type SettingsSpec, type ShutroModuleShape, } from './manifest.js';
9
+ export { type AccessLevel, type ApprovalLevelSpec, type ApprovalSpec, type AppSpec, type AutomationActionSpec, type AutomationRuleSpec, type DemoContext, type DemoUser, type DocumentSpec, defineModule, type EventSpec, type ImportTemplateSpec, type InboundAliasSpec, type InboundCall, type InboundWebhookSpec, type KoshModule, type LocalizationSpec, type MenuSpec, type ModuleHooks, type ModuleInput, type PortalActionSpec, type PortalDocumentSpec, type SettingFieldSpec, type SettingsSectionSpec, type SettingsSpec, type ShutroModuleShape, type StandardWaiver, } from './manifest.js';
10
10
  export { compareVersions, satisfies } from './semver.js';
@@ -57,8 +57,17 @@ export interface ApprovalLevelSpec {
57
57
  readonly name: string;
58
58
  /** A Shutro domain on the record (e.g. `{ amountTotal: { gt: '500000' } }`); empty or omitted: always. */
59
59
  readonly condition?: Readonly<Record<string, unknown>>;
60
- /** The group or role whose holders (in the record's company) decide. */
60
+ /**
61
+ * The group or role whose holders (in the record's company) decide; with `approver`, the role used when there is
62
+ * nobody (no manager, an empty field).
63
+ */
61
64
  readonly approverRole: string;
65
+ /** Decided by the requester's manager (Workforce), or the person in a field of the record (RFC 0025). */
66
+ readonly approver?: 'manager' | {
67
+ readonly field: string;
68
+ };
69
+ /** How many decide: any one (default), all of them, or a number. */
70
+ readonly quorum?: 'any' | 'all' | number;
62
71
  }
63
72
  /** A default approval policy of a model. */
64
73
  export interface ApprovalSpec {
@@ -69,6 +78,12 @@ export interface ApprovalSpec {
69
78
  readonly onApproved?: string;
70
79
  /** A transition run when a level rejects. */
71
80
  readonly onRejected?: string;
81
+ /** A transition run when an approver sends the record back for changes. */
82
+ readonly onSentBack?: string;
83
+ /** A transition run when the requester withdraws the request. */
84
+ readonly onWithdrawn?: string;
85
+ /** A rejection or a sending back must say why (default: yes). */
86
+ readonly reasonRequired?: boolean;
72
87
  }
73
88
  /**
74
89
  * An automation rule a module ships (RFC 0011, RFC 0012 §5.1): installed by the Automation app as a rule owned by
@@ -297,7 +312,14 @@ export interface InboundAliasSpec {
297
312
  readonly subjectField: string;
298
313
  /** The field that takes the message text, when any. */
299
314
  readonly bodyField?: string;
300
- readonly defaults?: Readonly<Record<string, unknown>> | ((env: unknown) => Promise<Readonly<Record<string, unknown>> | null>);
315
+ /**
316
+ * The new record's values: fixed, or from the system scope and the sender (a helpdesk ticket names its customer by
317
+ * the sender's address); `null` quarantines the message.
318
+ */
319
+ readonly defaults?: Readonly<Record<string, unknown>> | ((env: unknown, sender: {
320
+ readonly address: string;
321
+ readonly name: string | null;
322
+ }) => Promise<Readonly<Record<string, unknown>> | null>);
301
323
  }
302
324
  /** An action a module offers to automation rules (RFC 0011 §5.3). */
303
325
  export interface AutomationActionSpec {
@@ -433,6 +455,21 @@ export interface ModuleInput {
433
455
  readonly hooks?: ModuleHooks;
434
456
  /** Translations per locale, loaded lazily. */
435
457
  readonly i18n?: Readonly<Record<string, () => Promise<unknown>>>;
458
+ /**
459
+ * Exceptions to the module standard (RFC 0023), each with its reason: `pnpm lint` (`scripts/check-modules.ts`)
460
+ * refuses a module that breaks an enforced rule for a model it has not waived here.
461
+ */
462
+ readonly standard?: {
463
+ readonly waive: readonly StandardWaiver[];
464
+ };
465
+ }
466
+ /** A rule of the module standard a module does not meet for one model (or at all), and why. */
467
+ export interface StandardWaiver {
468
+ /** The rule's code (`M2`, `V1`, `P1`…), as RFC 0023 §3 names them. */
469
+ readonly rule: string;
470
+ /** The model the waiver is for; none: the whole module. */
471
+ readonly model?: string;
472
+ readonly reason: string;
436
473
  }
437
474
  /**
438
475
  * A card of an app's overview (RFC 0022 §3.2): a live report query within the viewer's rules — a KPI (with the
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: ea6308794cf1f163
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 5cfa5bbf11a2ffb6
2
2
  // Bindings of module `mrp`: 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,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: ea6308794cf1f163
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 5cfa5bbf11a2ffb6
2
2
  // Schema view of module `mrp` (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
 
@@ -48,7 +48,9 @@ export interface SchemaView {
48
48
  readonly 'stock.lot.line': StockLotLine;
49
49
  readonly 'stock.move': StockMove;
50
50
  readonly 'stock.picking': StockPicking;
51
+ readonly 'stock.putaway': StockPutaway;
51
52
  readonly 'stock.quant': StockQuant;
53
+ readonly 'stock.reorder': StockReorder;
52
54
  readonly 'stock.reservation': StockReservation;
53
55
  readonly 'stock.scrap': StockScrap;
54
56
  readonly 'stock.warehouse': StockWarehouse;
@@ -829,6 +831,7 @@ export interface ProductCategory {
829
831
  readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
830
832
  readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
831
833
  readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
834
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
832
835
  readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
833
836
  readonly parent: F.Many2one<'product.category'>;
834
837
  };
@@ -1093,6 +1096,7 @@ export interface StockLocation {
1093
1096
  readonly children: F.One2many<'stock.location', { readonly required: true }>;
1094
1097
  readonly warehouse: F.Many2one<'stock.warehouse'>;
1095
1098
  readonly usage: F.Selection<'internal' | 'vendor' | 'customer' | 'adjustment' | 'production' | 'transit', { readonly required: true; readonly default: true }>;
1099
+ readonly step: F.Selection<'input' | 'quality' | 'packing' | 'output'>;
1096
1100
  readonly fullName: F.Char<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1097
1101
  };
1098
1102
  readonly methods: StockLocationMethods;
@@ -1112,6 +1116,7 @@ export interface StockLot {
1112
1116
  readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1113
1117
  readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1114
1118
  readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1119
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1115
1120
  readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1116
1121
  readonly name: F.Char<{ readonly required: true }>;
1117
1122
  readonly product: F.Many2one<'product.product', { readonly required: true }>;
@@ -1170,6 +1175,8 @@ export interface StockMove {
1170
1175
  readonly quantityDone: F.Decimal;
1171
1176
  readonly doneQty: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1172
1177
  readonly restrictLot: F.Many2one<'stock.lot'>;
1178
+ readonly procurement: F.Char;
1179
+ readonly destination: F.Many2one<'stock.location'>;
1173
1180
  readonly reservations: F.One2many<'stock.reservation', { readonly required: true }>;
1174
1181
  readonly reserved: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1175
1182
  };
@@ -1192,7 +1199,7 @@ export interface StockPicking {
1192
1199
  readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1193
1200
  readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1194
1201
  readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
1195
- readonly kind: F.Selection<'receipt' | 'delivery' | 'internal' | 'adjustment' | 'production', { readonly required: true; readonly default: true }>;
1202
+ readonly kind: F.Selection<'receipt' | 'delivery' | 'internal' | 'adjustment' | 'production' | 'dropship', { readonly required: true; readonly default: true }>;
1196
1203
  readonly partner: F.Many2one<'res.partner'>;
1197
1204
  readonly warehouse: F.Many2one<'stock.warehouse'>;
1198
1205
  readonly source: F.Many2one<'stock.location', { readonly required: true }>;
@@ -1206,6 +1213,8 @@ export interface StockPicking {
1206
1213
  readonly count: F.Many2one<'stock.count'>;
1207
1214
  readonly backorderOf: F.Many2one<'stock.picking'>;
1208
1215
  readonly backorders: F.One2many<'stock.picking', { readonly required: true }>;
1216
+ readonly next: F.Many2one<'stock.picking'>;
1217
+ readonly previousSteps: F.One2many<'stock.picking', { readonly required: true }>;
1209
1218
  readonly availability: F.Selection<'none' | 'partial' | 'full', { readonly readonly: true; readonly compute: true; readonly store: true }>;
1210
1219
  readonly status: F.Selection<'draft' | 'waiting' | 'ready' | 'done' | 'cancelled', { readonly readonly: true; readonly compute: true; readonly store: true }>;
1211
1220
  readonly state: F.State<'draft' | 'confirmed' | 'done' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
@@ -1223,6 +1232,31 @@ export interface StockPickingMethods extends F.Methods<typeof import('../../stoc
1223
1232
  readonly 'validate': () => Promise<void>;
1224
1233
  }
1225
1234
 
1235
+ /** `stock.putaway` (owner: stock). */
1236
+ export interface StockPutaway {
1237
+ readonly name: 'stock.putaway';
1238
+ readonly fields: {
1239
+ readonly id: F.Id<'stock.putaway'>;
1240
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1241
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1242
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1243
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1244
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1245
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1246
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1247
+ readonly location: F.Many2one<'stock.location', { readonly required: true }>;
1248
+ readonly product: F.Many2one<'product.product'>;
1249
+ readonly category: F.Many2one<'product.category'>;
1250
+ readonly destination: F.Many2one<'stock.location', { readonly required: true }>;
1251
+ readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
1252
+ };
1253
+ readonly methods: StockPutawayMethods;
1254
+ }
1255
+
1256
+ /** Methods of `stock.putaway`: declared ones and transitions. */
1257
+ export interface StockPutawayMethods extends F.Methods<typeof import('../../stock/index.js').stockShutro, 'stock.putaway'> {
1258
+ }
1259
+
1226
1260
  /** `stock.quant` (owner: stock). */
1227
1261
  export interface StockQuant {
1228
1262
  readonly name: 'stock.quant';
@@ -1249,6 +1283,45 @@ export interface StockQuant {
1249
1283
  export interface StockQuantMethods extends F.Methods<typeof import('../../stock/index.js').stockShutro, 'stock.quant'> {
1250
1284
  }
1251
1285
 
1286
+ /** `stock.reorder` (owner: stock; extended by: mrp). */
1287
+ export interface StockReorder {
1288
+ readonly name: 'stock.reorder';
1289
+ readonly fields: {
1290
+ readonly id: F.Id<'stock.reorder'>;
1291
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1292
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1293
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1294
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1295
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1296
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1297
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1298
+ readonly name: F.Char<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1299
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
1300
+ readonly warehouse: F.Many2one<'stock.warehouse', { readonly required: true }>;
1301
+ readonly minimum: F.Decimal<{ readonly required: true; readonly default: true }>;
1302
+ readonly maximum: F.Decimal<{ readonly required: true; readonly default: true }>;
1303
+ readonly multiple: F.Decimal<{ readonly required: true; readonly default: true }>;
1304
+ readonly leadDays: F.Integer<{ readonly required: true; readonly default: true }>;
1305
+ readonly method: F.Selection<'buy' | 'make' | 'transfer' | 'dropship', { readonly required: true; readonly default: true }>;
1306
+ readonly trigger: F.Selection<'minmax' | 'order', { readonly required: true; readonly default: true }>;
1307
+ readonly vendor: F.Many2one<'res.partner'>;
1308
+ readonly sourceWarehouse: F.Many2one<'stock.warehouse'>;
1309
+ readonly auto: F.Bool<{ readonly required: true; readonly default: true }>;
1310
+ readonly snoozedUntil: F.DateOnly;
1311
+ readonly onHand: F.Decimal;
1312
+ readonly forecast: F.Decimal;
1313
+ readonly proposed: F.Decimal;
1314
+ readonly explanation: F.Text;
1315
+ readonly refreshedAt: F.Datetime;
1316
+ readonly lastOrder: F.Char;
1317
+ };
1318
+ readonly methods: StockReorderMethods;
1319
+ }
1320
+
1321
+ /** Methods of `stock.reorder`: declared ones and transitions. */
1322
+ export interface StockReorderMethods extends F.Methods<typeof import('../../stock/index.js').stockShutro, 'stock.reorder'>, F.Methods<typeof import('../module.js').mrpShutro, 'stock.reorder'> {
1323
+ }
1324
+
1252
1325
  /** `stock.reservation` (owner: stock). */
1253
1326
  export interface StockReservation {
1254
1327
  readonly name: 'stock.reservation';
@@ -1319,6 +1392,8 @@ export interface StockWarehouse {
1319
1392
  readonly code: F.Char<{ readonly required: true }>;
1320
1393
  readonly locations: F.One2many<'stock.location', { readonly required: true }>;
1321
1394
  readonly address: F.Many2one<'res.partner'>;
1395
+ readonly receptionSteps: F.Selection<'one' | 'two' | 'three', { readonly required: true; readonly default: true }>;
1396
+ readonly deliverySteps: F.Selection<'one' | 'two' | 'three', { readonly required: true; readonly default: true }>;
1322
1397
  };
1323
1398
  readonly methods: StockWarehouseMethods;
1324
1399
  }
@@ -1,3 +1,3 @@
1
1
  import { defineModule } from '../modules-sdk/index.js';
2
- export { MrpBom, MrpBomByproduct, MrpBomLine, MrpBomOperation, MrpProduction, MrpProductionComponent, MrpWorkcenter, MrpWorkorder, mrpShutro, ScrapProduction, schedule, validBom, } from './module.js';
2
+ export { MrpBom, MrpBomByproduct, MrpBomLine, MrpBomOperation, MrpProduction, MrpProductionComponent, MrpWorkcenter, MrpWorkorder, mrpShutro, ReorderMake, ScrapProduction, schedule, validBom, } from './module.js';
3
3
  export declare const mrp: ReturnType<typeof defineModule>;
package/dist/mrp/index.js CHANGED
@@ -17,7 +17,7 @@ import { stock } from '../stock/index.js';
17
17
  import { action, form, gantt, kanban, list, search } from '../views/index.js';
18
18
  import { mrpDemo } from './demo.js';
19
19
  import { DAY_STARTS_AT, MrpBom, MrpBomLine, MrpProduction, MrpProductionComponent, MrpWorkcenter, MrpWorkorder, mrpShutro, } from './module.js';
20
- export { MrpBom, MrpBomByproduct, MrpBomLine, MrpBomOperation, MrpProduction, MrpProductionComponent, MrpWorkcenter, MrpWorkorder, mrpShutro, ScrapProduction, schedule, validBom, } from './module.js';
20
+ export { MrpBom, MrpBomByproduct, MrpBomLine, MrpBomOperation, MrpProduction, MrpProductionComponent, MrpWorkcenter, MrpWorkorder, mrpShutro, ReorderMake, ScrapProduction, schedule, validBom, } from './module.js';
21
21
  /** Each work centre's planned hours by day (the overlap of its work orders with the day) against its hours. */
22
22
  function registerCapacityRoutes({ app }) {
23
23
  app.get('/api/v1/production/capacity', async (request) => {
@@ -311,6 +311,7 @@ export const mrp = defineModule({
311
311
  ],
312
312
  }),
313
313
  'mrp.workorder.form': form(MrpWorkorder, (k) => ({
314
+ chatter: true,
314
315
  header: {
315
316
  statusbar: 'state',
316
317
  buttons: [