shutro-erp 0.3.4 → 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 (618) 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 +176 -6
  27. package/dist/account_portal/module.d.ts +505 -6
  28. package/dist/accounting/.kosh/bindings.js +1 -1
  29. package/dist/accounting/.kosh/schema.d.ts +176 -6
  30. package/dist/accounting/index.d.ts +1 -1
  31. package/dist/accounting/index.js +344 -4
  32. package/dist/accounting/module.d.ts +513 -5
  33. package/dist/accounting/module.js +55 -3
  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/calendar/.kosh/bindings.d.ts +22 -0
  79. package/dist/calendar/.kosh/bindings.js +15 -0
  80. package/dist/calendar/.kosh/schema.d.ts +795 -0
  81. package/dist/calendar/demo.d.ts +6 -0
  82. package/dist/calendar/demo.js +24 -0
  83. package/dist/calendar/index.d.ts +3 -0
  84. package/dist/calendar/index.js +291 -0
  85. package/dist/calendar/module.d.ts +1705 -0
  86. package/dist/calendar/module.js +180 -0
  87. package/dist/cli/init.js +80 -0
  88. package/dist/cli/templates.d.ts +1 -1
  89. package/dist/cli/templates.js +226 -0
  90. package/dist/contacts/.kosh/bindings.js +1 -1
  91. package/dist/contacts/.kosh/schema.d.ts +78 -3
  92. package/dist/contacts/demo.js +30 -1
  93. package/dist/contacts/index.d.ts +1 -1
  94. package/dist/contacts/index.js +155 -9
  95. package/dist/contacts/module.d.ts +338 -2
  96. package/dist/contacts/module.js +93 -5
  97. package/dist/crm/.kosh/bindings.d.ts +22 -0
  98. package/dist/crm/.kosh/bindings.js +15 -0
  99. package/dist/crm/.kosh/schema.d.ts +800 -0
  100. package/dist/crm/demo.d.ts +6 -0
  101. package/dist/crm/demo.js +45 -0
  102. package/dist/crm/index.d.ts +3 -0
  103. package/dist/crm/index.js +361 -0
  104. package/dist/crm/module.d.ts +1845 -0
  105. package/dist/crm/module.js +208 -0
  106. package/dist/documents/.kosh/bindings.d.ts +22 -0
  107. package/dist/documents/.kosh/bindings.js +15 -0
  108. package/dist/documents/.kosh/schema.d.ts +862 -0
  109. package/dist/documents/demo.d.ts +6 -0
  110. package/dist/documents/demo.js +22 -0
  111. package/dist/documents/documents.d.ts +98 -0
  112. package/dist/documents/documents.js +318 -0
  113. package/dist/documents/index.d.ts +30 -0
  114. package/dist/documents/index.js +442 -0
  115. package/dist/documents/module.d.ts +2781 -0
  116. package/dist/documents/module.js +214 -0
  117. package/dist/documents/web/Versions.d.ts +7 -0
  118. package/dist/documents/web/Versions.js +45 -0
  119. package/dist/documents/web/index.d.ts +11 -0
  120. package/dist/documents/web/index.js +16 -0
  121. package/dist/documents/web/messages.d.ts +2 -0
  122. package/dist/documents/web/messages.js +21 -0
  123. package/dist/event/.kosh/bindings.d.ts +22 -0
  124. package/dist/event/.kosh/bindings.js +15 -0
  125. package/dist/event/.kosh/schema.d.ts +843 -0
  126. package/dist/event/demo.d.ts +6 -0
  127. package/dist/event/demo.js +65 -0
  128. package/dist/event/index.d.ts +14 -0
  129. package/dist/event/index.js +333 -0
  130. package/dist/event/mails.d.ts +15 -0
  131. package/dist/event/mails.js +112 -0
  132. package/dist/event/module.d.ts +2800 -0
  133. package/dist/event/module.js +323 -0
  134. package/dist/event/web/CheckInBox.d.ts +9 -0
  135. package/dist/event/web/CheckInBox.js +87 -0
  136. package/dist/event/web/index.d.ts +11 -0
  137. package/dist/event/web/index.js +16 -0
  138. package/dist/event/web/messages.d.ts +2 -0
  139. package/dist/event/web/messages.js +23 -0
  140. package/dist/event_account/.kosh/bindings.d.ts +22 -0
  141. package/dist/event_account/.kosh/bindings.js +15 -0
  142. package/dist/event_account/.kosh/schema.d.ts +1758 -0
  143. package/dist/event_account/index.d.ts +3 -0
  144. package/dist/event_account/index.js +28 -0
  145. package/dist/event_account/module.d.ts +7114 -0
  146. package/dist/event_account/module.js +90 -0
  147. package/dist/expense/.kosh/bindings.d.ts +22 -0
  148. package/dist/expense/.kosh/bindings.js +15 -0
  149. package/dist/expense/.kosh/schema.d.ts +1299 -0
  150. package/dist/expense/demo.d.ts +7 -0
  151. package/dist/expense/demo.js +69 -0
  152. package/dist/expense/index.d.ts +3 -0
  153. package/dist/expense/index.js +495 -0
  154. package/dist/expense/module.d.ts +4747 -0
  155. package/dist/expense/module.js +647 -0
  156. package/dist/expense_account/.kosh/bindings.d.ts +22 -0
  157. package/dist/expense_account/.kosh/bindings.js +15 -0
  158. package/dist/expense_account/.kosh/schema.d.ts +1936 -0
  159. package/dist/expense_account/index.d.ts +3 -0
  160. package/dist/expense_account/index.js +74 -0
  161. package/dist/expense_account/module.d.ts +9153 -0
  162. package/dist/expense_account/module.js +318 -0
  163. package/dist/helpdesk/.kosh/bindings.d.ts +22 -0
  164. package/dist/helpdesk/.kosh/bindings.js +15 -0
  165. package/dist/helpdesk/.kosh/schema.d.ts +885 -0
  166. package/dist/helpdesk/demo.d.ts +7 -0
  167. package/dist/helpdesk/demo.js +65 -0
  168. package/dist/helpdesk/hours.d.ts +17 -0
  169. package/dist/helpdesk/hours.js +94 -0
  170. package/dist/helpdesk/index.d.ts +10 -0
  171. package/dist/helpdesk/index.js +461 -0
  172. package/dist/helpdesk/module.d.ts +2940 -0
  173. package/dist/helpdesk/module.js +326 -0
  174. package/dist/helpdesk/routes.d.ts +12 -0
  175. package/dist/helpdesk/routes.js +132 -0
  176. package/dist/helpdesk/sla.d.ts +37 -0
  177. package/dist/helpdesk/sla.js +226 -0
  178. package/dist/hr/.kosh/bindings.d.ts +22 -0
  179. package/dist/hr/.kosh/bindings.js +15 -0
  180. package/dist/hr/.kosh/schema.d.ts +878 -0
  181. package/dist/hr/demo.d.ts +6 -0
  182. package/dist/hr/demo.js +60 -0
  183. package/dist/hr/index.d.ts +3 -0
  184. package/dist/hr/index.js +483 -0
  185. package/dist/hr/module.d.ts +2611 -0
  186. package/dist/hr/module.js +350 -0
  187. package/dist/l10n_bd/.kosh/bindings.js +1 -1
  188. package/dist/l10n_bd/.kosh/schema.d.ts +176 -6
  189. package/dist/l10n_bd/module.d.ts +505 -6
  190. package/dist/l10n_bd_payroll/.kosh/bindings.d.ts +22 -0
  191. package/dist/l10n_bd_payroll/.kosh/bindings.js +15 -0
  192. package/dist/l10n_bd_payroll/.kosh/schema.d.ts +2312 -0
  193. package/dist/l10n_bd_payroll/data.d.ts +47 -0
  194. package/dist/l10n_bd_payroll/data.js +347 -0
  195. package/dist/l10n_bd_payroll/index.d.ts +4 -0
  196. package/dist/l10n_bd_payroll/index.js +24 -0
  197. package/dist/l10n_bd_payroll/module.d.ts +12932 -0
  198. package/dist/l10n_bd_payroll/module.js +86 -0
  199. package/dist/l10n_in/.kosh/bindings.js +1 -1
  200. package/dist/l10n_in/.kosh/schema.d.ts +176 -6
  201. package/dist/l10n_in/module.d.ts +527 -7
  202. package/dist/mail/inbound/handle.js +6 -1
  203. package/dist/maintenance/.kosh/bindings.d.ts +22 -0
  204. package/dist/maintenance/.kosh/bindings.js +15 -0
  205. package/dist/maintenance/.kosh/schema.d.ts +911 -0
  206. package/dist/maintenance/demo.d.ts +6 -0
  207. package/dist/maintenance/demo.js +60 -0
  208. package/dist/maintenance/index.d.ts +3 -0
  209. package/dist/maintenance/index.js +422 -0
  210. package/dist/maintenance/module.d.ts +3545 -0
  211. package/dist/maintenance/module.js +446 -0
  212. package/dist/maintenance_stock/.kosh/bindings.d.ts +22 -0
  213. package/dist/maintenance_stock/.kosh/bindings.js +15 -0
  214. package/dist/maintenance_stock/.kosh/schema.d.ts +1446 -0
  215. package/dist/maintenance_stock/index.d.ts +9 -0
  216. package/dist/maintenance_stock/index.js +52 -0
  217. package/dist/maintenance_stock/module.d.ts +7675 -0
  218. package/dist/maintenance_stock/module.js +192 -0
  219. package/dist/modules-sdk/index.d.ts +1 -1
  220. package/dist/modules-sdk/manifest.d.ts +109 -2
  221. package/dist/modules-sdk/manifest.js +35 -1
  222. package/dist/mrp/.kosh/bindings.d.ts +22 -0
  223. package/dist/mrp/.kosh/bindings.js +15 -0
  224. package/dist/mrp/.kosh/schema.d.ts +1453 -0
  225. package/dist/mrp/demo.d.ts +7 -0
  226. package/dist/mrp/demo.js +42 -0
  227. package/dist/mrp/index.d.ts +3 -0
  228. package/dist/mrp/index.js +393 -0
  229. package/dist/mrp/module.d.ts +9335 -0
  230. package/dist/mrp/module.js +757 -0
  231. package/dist/mrp_account/.kosh/bindings.d.ts +22 -0
  232. package/dist/mrp_account/.kosh/bindings.js +15 -0
  233. package/dist/mrp_account/.kosh/schema.d.ts +2299 -0
  234. package/dist/mrp_account/index.d.ts +3 -0
  235. package/dist/mrp_account/index.js +22 -0
  236. package/dist/mrp_account/module.d.ts +23151 -0
  237. package/dist/mrp_account/module.js +123 -0
  238. package/dist/payment/.kosh/bindings.js +1 -1
  239. package/dist/payment/.kosh/schema.d.ts +178 -7
  240. package/dist/payment/index.d.ts +41 -0
  241. package/dist/payment/index.js +131 -74
  242. package/dist/payment/module.d.ts +569 -12
  243. package/dist/payment/module.js +19 -3
  244. package/dist/payment/settle.js +10 -1
  245. package/dist/payroll/.kosh/bindings.d.ts +22 -0
  246. package/dist/payroll/.kosh/bindings.js +15 -0
  247. package/dist/payroll/.kosh/schema.d.ts +1390 -0
  248. package/dist/payroll/compute.d.ts +35 -0
  249. package/dist/payroll/compute.js +398 -0
  250. package/dist/payroll/demo.d.ts +55 -0
  251. package/dist/payroll/demo.js +121 -0
  252. package/dist/payroll/formula.d.ts +62 -0
  253. package/dist/payroll/formula.js +320 -0
  254. package/dist/payroll/index.d.ts +230 -0
  255. package/dist/payroll/index.js +713 -0
  256. package/dist/payroll/module.d.ts +9390 -0
  257. package/dist/payroll/module.js +606 -0
  258. package/dist/payroll/routes.d.ts +10 -0
  259. package/dist/payroll/routes.js +112 -0
  260. package/dist/payroll_account/.kosh/bindings.d.ts +22 -0
  261. package/dist/payroll_account/.kosh/bindings.js +15 -0
  262. package/dist/payroll_account/.kosh/schema.d.ts +2308 -0
  263. package/dist/payroll_account/index.d.ts +3 -0
  264. package/dist/payroll_account/index.js +40 -0
  265. package/dist/payroll_account/module.d.ts +12396 -0
  266. package/dist/payroll_account/module.js +256 -0
  267. package/dist/permissions/approvals.d.ts +131 -9
  268. package/dist/permissions/approvals.js +662 -57
  269. package/dist/permissions/index.d.ts +1 -1
  270. package/dist/permissions/index.js +2 -2
  271. package/dist/permissions/models.js +191 -12
  272. package/dist/permissions/routes.d.ts +6 -1
  273. package/dist/permissions/routes.js +37 -4
  274. package/dist/permissions/web/ApprovalPanel.d.ts +5 -4
  275. package/dist/permissions/web/ApprovalPanel.js +39 -13
  276. package/dist/permissions/web/index.d.ts +6 -4
  277. package/dist/permissions/web/index.js +13 -4
  278. package/dist/permissions/web/messages.d.ts +2 -0
  279. package/dist/permissions/web/messages.js +43 -0
  280. package/dist/portal/.kosh/bindings.js +1 -1
  281. package/dist/portal/.kosh/schema.d.ts +78 -3
  282. package/dist/portal/index.js +1 -1
  283. package/dist/portal/module.d.ts +166 -2
  284. package/dist/pos/.kosh/bindings.d.ts +22 -0
  285. package/dist/pos/.kosh/bindings.js +15 -0
  286. package/dist/pos/.kosh/schema.d.ts +1809 -0
  287. package/dist/pos/accounting.d.ts +10 -0
  288. package/dist/pos/accounting.js +149 -0
  289. package/dist/pos/demo.d.ts +6 -0
  290. package/dist/pos/demo.js +90 -0
  291. package/dist/pos/index.d.ts +9 -0
  292. package/dist/pos/index.js +353 -0
  293. package/dist/pos/module.d.ts +9783 -0
  294. package/dist/pos/module.js +423 -0
  295. package/dist/pos/routes.d.ts +39 -0
  296. package/dist/pos/routes.js +368 -0
  297. package/dist/pos/web/Register.d.ts +9 -0
  298. package/dist/pos/web/Register.js +252 -0
  299. package/dist/pos/web/index.d.ts +11 -0
  300. package/dist/pos/web/index.js +16 -0
  301. package/dist/pos/web/messages.d.ts +2 -0
  302. package/dist/pos/web/messages.js +87 -0
  303. package/dist/pos_stock/.kosh/bindings.d.ts +22 -0
  304. package/dist/pos_stock/.kosh/bindings.js +15 -0
  305. package/dist/pos_stock/.kosh/schema.d.ts +2208 -0
  306. package/dist/pos_stock/index.d.ts +9 -0
  307. package/dist/pos_stock/index.js +35 -0
  308. package/dist/pos_stock/module.d.ts +12803 -0
  309. package/dist/pos_stock/module.js +115 -0
  310. package/dist/product/.kosh/bindings.js +1 -1
  311. package/dist/product/.kosh/schema.d.ts +52 -1
  312. package/dist/product/index.js +94 -4
  313. package/dist/product/module.d.ts +45 -1
  314. package/dist/product/module.js +11 -3
  315. package/dist/project/.kosh/bindings.js +1 -1
  316. package/dist/project/.kosh/schema.d.ts +725 -3
  317. package/dist/project/index.d.ts +3 -1
  318. package/dist/project/index.js +1045 -18
  319. package/dist/project/module.d.ts +10168 -458
  320. package/dist/project/module.js +1578 -14
  321. package/dist/project/routes.d.ts +44 -0
  322. package/dist/project/routes.js +314 -0
  323. package/dist/project/schedule.d.ts +72 -0
  324. package/dist/project/schedule.js +192 -0
  325. package/dist/project/web/Refresh.d.ts +8 -0
  326. package/dist/project/web/Refresh.js +29 -0
  327. package/dist/project/web/Schedule.d.ts +9 -0
  328. package/dist/project/web/Schedule.js +93 -0
  329. package/dist/project/web/Structure.d.ts +8 -0
  330. package/dist/project/web/Structure.js +86 -0
  331. package/dist/project/web/Workload.d.ts +8 -0
  332. package/dist/project/web/Workload.js +43 -0
  333. package/dist/project/web/index.d.ts +14 -0
  334. package/dist/project/web/index.js +25 -0
  335. package/dist/project/web/messages.d.ts +2 -0
  336. package/dist/project/web/messages.js +85 -0
  337. package/dist/project_account/.kosh/bindings.d.ts +22 -0
  338. package/dist/project_account/.kosh/bindings.js +15 -0
  339. package/dist/project_account/.kosh/schema.d.ts +2241 -0
  340. package/dist/project_account/index.d.ts +3 -0
  341. package/dist/project_account/index.js +27 -0
  342. package/dist/project_account/module.d.ts +11539 -0
  343. package/dist/project_account/module.js +76 -0
  344. package/dist/project_portal/.kosh/bindings.js +1 -1
  345. package/dist/project_portal/.kosh/schema.d.ts +725 -3
  346. package/dist/project_portal/module.d.ts +5137 -119
  347. package/dist/project_purchase/.kosh/bindings.d.ts +22 -0
  348. package/dist/project_purchase/.kosh/bindings.js +15 -0
  349. package/dist/project_purchase/.kosh/schema.d.ts +2320 -0
  350. package/dist/project_purchase/index.d.ts +9 -0
  351. package/dist/project_purchase/index.js +22 -0
  352. package/dist/project_purchase/module.d.ts +25147 -0
  353. package/dist/project_purchase/module.js +56 -0
  354. package/dist/purchase/.kosh/bindings.js +1 -1
  355. package/dist/purchase/.kosh/schema.d.ts +150 -6
  356. package/dist/purchase/index.js +163 -3
  357. package/dist/purchase/module.d.ts +228 -5
  358. package/dist/purchase/module.js +30 -3
  359. package/dist/purchase_account/.kosh/bindings.js +1 -1
  360. package/dist/purchase_account/.kosh/schema.d.ts +180 -8
  361. package/dist/purchase_account/index.js +27 -1
  362. package/dist/purchase_account/module.d.ts +591 -30
  363. package/dist/purchase_account/module.js +13 -2
  364. package/dist/purchase_portal/.kosh/bindings.js +1 -1
  365. package/dist/purchase_portal/.kosh/schema.d.ts +150 -6
  366. package/dist/purchase_portal/module.d.ts +372 -6
  367. package/dist/purchase_stock/.kosh/bindings.d.ts +22 -0
  368. package/dist/purchase_stock/.kosh/bindings.js +15 -0
  369. package/dist/purchase_stock/.kosh/schema.d.ts +1479 -0
  370. package/dist/purchase_stock/index.d.ts +7 -0
  371. package/dist/purchase_stock/index.js +98 -0
  372. package/dist/purchase_stock/module.d.ts +7535 -0
  373. package/dist/purchase_stock/module.js +380 -0
  374. package/dist/purchase_stock_account/.kosh/bindings.d.ts +22 -0
  375. package/dist/purchase_stock_account/.kosh/bindings.js +15 -0
  376. package/dist/purchase_stock_account/.kosh/schema.d.ts +2155 -0
  377. package/dist/purchase_stock_account/index.d.ts +3 -0
  378. package/dist/purchase_stock_account/index.js +24 -0
  379. package/dist/purchase_stock_account/module.d.ts +38015 -0
  380. package/dist/purchase_stock_account/module.js +168 -0
  381. package/dist/recruitment/.kosh/bindings.d.ts +22 -0
  382. package/dist/recruitment/.kosh/bindings.js +15 -0
  383. package/dist/recruitment/.kosh/schema.d.ts +991 -0
  384. package/dist/recruitment/demo.d.ts +6 -0
  385. package/dist/recruitment/demo.js +45 -0
  386. package/dist/recruitment/index.d.ts +3 -0
  387. package/dist/recruitment/index.js +385 -0
  388. package/dist/recruitment/module.d.ts +3249 -0
  389. package/dist/recruitment/module.js +194 -0
  390. package/dist/recruitment/web/HireButton.d.ts +9 -0
  391. package/dist/recruitment/web/HireButton.js +32 -0
  392. package/dist/recruitment/web/index.d.ts +11 -0
  393. package/dist/recruitment/web/index.js +16 -0
  394. package/dist/recruitment/web/messages.d.ts +2 -0
  395. package/dist/recruitment/web/messages.js +19 -0
  396. package/dist/reporting/documents.d.ts +5 -0
  397. package/dist/reporting/documents.js +28 -1
  398. package/dist/reporting/index.d.ts +1 -1
  399. package/dist/reporting/index.js +4 -2
  400. package/dist/reporting/models.js +9 -0
  401. package/dist/reporting/overviews.d.ts +16 -0
  402. package/dist/reporting/overviews.js +56 -0
  403. package/dist/reporting/routes-documents.js +1 -1
  404. package/dist/reporting/routes.js +138 -80
  405. package/dist/reporting/web/DashboardView.d.ts +11 -0
  406. package/dist/reporting/web/DashboardView.js +2 -2
  407. package/dist/reporting/web/DesignerView.js +5 -0
  408. package/dist/reporting/web/Overview.d.ts +9 -0
  409. package/dist/reporting/web/Overview.js +53 -0
  410. package/dist/reporting/web/index.d.ts +1 -0
  411. package/dist/reporting/web/index.js +4 -1
  412. package/dist/reporting/web/messages.js +9 -0
  413. package/dist/sale_account/.kosh/bindings.js +1 -1
  414. package/dist/sale_account/.kosh/schema.d.ts +181 -6
  415. package/dist/sale_account/index.js +22 -1
  416. package/dist/sale_account/module.d.ts +639 -38
  417. package/dist/sale_portal/.kosh/bindings.js +1 -1
  418. package/dist/sale_portal/.kosh/schema.d.ts +59 -3
  419. package/dist/sale_portal/module.d.ts +435 -5
  420. package/dist/sale_project/.kosh/bindings.js +1 -1
  421. package/dist/sale_project/.kosh/schema.d.ts +732 -3
  422. package/dist/sale_project/module.d.ts +5349 -208
  423. package/dist/sale_project/module.js +17 -1
  424. package/dist/sale_stock/.kosh/bindings.d.ts +22 -0
  425. package/dist/sale_stock/.kosh/bindings.js +15 -0
  426. package/dist/sale_stock/.kosh/schema.d.ts +1303 -0
  427. package/dist/sale_stock/index.d.ts +7 -0
  428. package/dist/sale_stock/index.js +84 -0
  429. package/dist/sale_stock/module.d.ts +7514 -0
  430. package/dist/sale_stock/module.js +146 -0
  431. package/dist/sales/.kosh/bindings.js +1 -1
  432. package/dist/sales/.kosh/schema.d.ts +59 -3
  433. package/dist/sales/index.js +195 -4
  434. package/dist/sales/module.d.ts +356 -3
  435. package/dist/sales/module.js +78 -3
  436. package/dist/server/api/metadata.d.ts +5 -0
  437. package/dist/server/api/metadata.js +5 -0
  438. package/dist/server/api/rest.js +64 -1
  439. package/dist/server/api/views.js +1 -0
  440. package/dist/server/app-settings.d.ts +7 -0
  441. package/dist/server/app-settings.js +10 -0
  442. package/dist/server/auth/base.js +9 -0
  443. package/dist/server/index.d.ts +1 -0
  444. package/dist/server/index.js +1 -0
  445. package/dist/settings/app-settings.d.ts +2 -0
  446. package/dist/settings/app-settings.js +518 -0
  447. package/dist/settings/index.d.ts +1 -0
  448. package/dist/settings/index.js +15 -0
  449. package/dist/settings/people.js +29 -5
  450. package/dist/settings/web/AppSettingsPage.d.ts +11 -0
  451. package/dist/settings/web/AppSettingsPage.js +210 -0
  452. package/dist/settings/web/OverviewPage.js +16 -3
  453. package/dist/settings/web/PeoplePage.js +20 -6
  454. package/dist/settings/web/index.d.ts +1 -0
  455. package/dist/settings/web/index.js +3 -0
  456. package/dist/settings/web/messages.js +118 -2
  457. package/dist/sign/.kosh/bindings.d.ts +22 -0
  458. package/dist/sign/.kosh/bindings.js +15 -0
  459. package/dist/sign/.kosh/schema.d.ts +990 -0
  460. package/dist/sign/index.d.ts +14 -0
  461. package/dist/sign/index.js +350 -0
  462. package/dist/sign/module.d.ts +4478 -0
  463. package/dist/sign/module.js +158 -0
  464. package/dist/sign/sign.d.ts +82 -0
  465. package/dist/sign/sign.js +474 -0
  466. package/dist/stock/.kosh/bindings.d.ts +22 -0
  467. package/dist/stock/.kosh/bindings.js +15 -0
  468. package/dist/stock/.kosh/schema.d.ts +1222 -0
  469. package/dist/stock/demo.d.ts +8 -0
  470. package/dist/stock/demo.js +82 -0
  471. package/dist/stock/index.d.ts +4 -0
  472. package/dist/stock/index.js +903 -0
  473. package/dist/stock/module.d.ts +7856 -0
  474. package/dist/stock/module.js +1880 -0
  475. package/dist/stock/replenish.d.ts +38 -0
  476. package/dist/stock/replenish.js +176 -0
  477. package/dist/stock/web/Replenishment.d.ts +8 -0
  478. package/dist/stock/web/Replenishment.js +84 -0
  479. package/dist/stock/web/ScanBox.d.ts +8 -0
  480. package/dist/stock/web/ScanBox.js +90 -0
  481. package/dist/stock/web/index.d.ts +13 -0
  482. package/dist/stock/web/index.js +20 -0
  483. package/dist/stock/web/messages.d.ts +2 -0
  484. package/dist/stock/web/messages.js +77 -0
  485. package/dist/stock_account/.kosh/bindings.d.ts +22 -0
  486. package/dist/stock_account/.kosh/bindings.js +15 -0
  487. package/dist/stock_account/.kosh/schema.d.ts +2068 -0
  488. package/dist/stock_account/index.d.ts +3 -0
  489. package/dist/stock_account/index.js +140 -0
  490. package/dist/stock_account/module.d.ts +11523 -0
  491. package/dist/stock_account/module.js +339 -0
  492. package/dist/storage/attachments.d.ts +5 -0
  493. package/dist/storage/attachments.js +12 -1
  494. package/dist/storage/models.js +3 -0
  495. package/dist/storage/routes.js +13 -2
  496. package/dist/todo/.kosh/bindings.d.ts +22 -0
  497. package/dist/todo/.kosh/bindings.js +15 -0
  498. package/dist/todo/.kosh/schema.d.ts +732 -0
  499. package/dist/todo/demo.d.ts +6 -0
  500. package/dist/todo/demo.js +35 -0
  501. package/dist/todo/index.d.ts +3 -0
  502. package/dist/todo/index.js +187 -0
  503. package/dist/todo/module.d.ts +1180 -0
  504. package/dist/todo/module.js +130 -0
  505. package/dist/trade_finance/.kosh/bindings.d.ts +22 -0
  506. package/dist/trade_finance/.kosh/bindings.js +15 -0
  507. package/dist/trade_finance/.kosh/schema.d.ts +884 -0
  508. package/dist/trade_finance/demo.d.ts +6 -0
  509. package/dist/trade_finance/demo.js +63 -0
  510. package/dist/trade_finance/index.d.ts +3 -0
  511. package/dist/trade_finance/index.js +415 -0
  512. package/dist/trade_finance/module.d.ts +3779 -0
  513. package/dist/trade_finance/module.js +507 -0
  514. package/dist/trade_finance_account/.kosh/bindings.d.ts +22 -0
  515. package/dist/trade_finance_account/.kosh/bindings.js +15 -0
  516. package/dist/trade_finance_account/.kosh/schema.d.ts +1830 -0
  517. package/dist/trade_finance_account/index.d.ts +3 -0
  518. package/dist/trade_finance_account/index.js +93 -0
  519. package/dist/trade_finance_account/module.d.ts +8074 -0
  520. package/dist/trade_finance_account/module.js +245 -0
  521. package/dist/trade_finance_purchase/.kosh/bindings.d.ts +22 -0
  522. package/dist/trade_finance_purchase/.kosh/bindings.js +15 -0
  523. package/dist/trade_finance_purchase/.kosh/schema.d.ts +1246 -0
  524. package/dist/trade_finance_purchase/index.d.ts +8 -0
  525. package/dist/trade_finance_purchase/index.js +50 -0
  526. package/dist/trade_finance_purchase/module.d.ts +4257 -0
  527. package/dist/trade_finance_purchase/module.js +44 -0
  528. package/dist/trade_finance_sale/.kosh/bindings.d.ts +22 -0
  529. package/dist/trade_finance_sale/.kosh/bindings.js +15 -0
  530. package/dist/trade_finance_sale/.kosh/schema.d.ts +1072 -0
  531. package/dist/trade_finance_sale/index.d.ts +8 -0
  532. package/dist/trade_finance_sale/index.js +50 -0
  533. package/dist/trade_finance_sale/module.d.ts +4281 -0
  534. package/dist/trade_finance_sale/module.js +44 -0
  535. package/dist/ui/api.d.ts +2 -1
  536. package/dist/ui/api.js +2 -1
  537. package/dist/ui/app.js +26 -13
  538. package/dist/ui/components/AppIcon.js +30 -1
  539. package/dist/ui/components/primitives.d.ts +2 -0
  540. package/dist/ui/components/primitives.js +7 -1
  541. package/dist/ui/i18n/messages.d.ts +27 -0
  542. package/dist/ui/i18n/messages.js +46 -0
  543. package/dist/ui/index.d.ts +1 -0
  544. package/dist/ui/index.js +1 -0
  545. package/dist/ui/offline/queue.d.ts +5 -1
  546. package/dist/ui/offline/queue.js +2 -0
  547. package/dist/ui/registry.d.ts +5 -0
  548. package/dist/ui/shell/Home.js +55 -4
  549. package/dist/ui/views/FormView.js +102 -19
  550. package/dist/ui/views/KanbanView.d.ts +2 -0
  551. package/dist/ui/views/KanbanView.js +40 -3
  552. package/dist/ui/views/ListView.js +110 -11
  553. package/dist/ui/views/StatsRow.d.ts +14 -0
  554. package/dist/ui/views/StatsRow.js +88 -0
  555. package/dist/ui/views/widgets.d.ts +2 -1
  556. package/dist/ui/views/widgets.js +200 -1
  557. package/dist/views/builders.d.ts +19 -2
  558. package/dist/views/builders.js +21 -1
  559. package/dist/views/condition.d.ts +6 -0
  560. package/dist/views/condition.js +20 -0
  561. package/dist/views/documents.d.ts +8 -0
  562. package/dist/views/extend.d.ts +2 -2
  563. package/dist/views/extend.js +11 -1
  564. package/dist/views/index.d.ts +2 -2
  565. package/dist/views/index.js +2 -2
  566. package/dist/views/types.d.ts +52 -5
  567. package/dist/views/validate.js +39 -1
  568. package/dist/website/.kosh/bindings.d.ts +22 -0
  569. package/dist/website/.kosh/bindings.js +15 -0
  570. package/dist/website/.kosh/schema.d.ts +881 -0
  571. package/dist/website/demo.d.ts +6 -0
  572. package/dist/website/demo.js +115 -0
  573. package/dist/website/index.d.ts +9 -0
  574. package/dist/website/index.js +251 -0
  575. package/dist/website/module.d.ts +2987 -0
  576. package/dist/website/module.js +282 -0
  577. package/dist/website/render.d.ts +45 -0
  578. package/dist/website/render.js +102 -0
  579. package/dist/website/routes.d.ts +12 -0
  580. package/dist/website/routes.js +246 -0
  581. package/dist/website/web/PagePreview.d.ts +7 -0
  582. package/dist/website/web/PagePreview.js +33 -0
  583. package/dist/website/web/index.d.ts +11 -0
  584. package/dist/website/web/index.js +16 -0
  585. package/dist/website/web/messages.d.ts +2 -0
  586. package/dist/website/web/messages.js +15 -0
  587. package/dist/website_crm/.kosh/bindings.d.ts +22 -0
  588. package/dist/website_crm/.kosh/bindings.js +15 -0
  589. package/dist/website_crm/.kosh/schema.d.ts +967 -0
  590. package/dist/website_crm/index.d.ts +3 -0
  591. package/dist/website_crm/index.js +39 -0
  592. package/dist/website_crm/module.d.ts +2956 -0
  593. package/dist/website_crm/module.js +44 -0
  594. package/dist/website_sale/.kosh/bindings.d.ts +22 -0
  595. package/dist/website_sale/.kosh/bindings.js +15 -0
  596. package/dist/website_sale/.kosh/schema.d.ts +2284 -0
  597. package/dist/website_sale/couriers.d.ts +50 -0
  598. package/dist/website_sale/couriers.js +59 -0
  599. package/dist/website_sale/demo.d.ts +7 -0
  600. package/dist/website_sale/demo.js +90 -0
  601. package/dist/website_sale/growth.d.ts +31 -0
  602. package/dist/website_sale/growth.js +163 -0
  603. package/dist/website_sale/index.d.ts +49 -0
  604. package/dist/website_sale/index.js +538 -0
  605. package/dist/website_sale/module.d.ts +22027 -0
  606. package/dist/website_sale/module.js +397 -0
  607. package/dist/website_sale/shipments.d.ts +16 -0
  608. package/dist/website_sale/shipments.js +113 -0
  609. package/dist/website_sale/shop.d.ts +81 -0
  610. package/dist/website_sale/shop.js +649 -0
  611. package/dist/website_sale_stock/.kosh/bindings.d.ts +22 -0
  612. package/dist/website_sale_stock/.kosh/bindings.js +15 -0
  613. package/dist/website_sale_stock/.kosh/schema.d.ts +2681 -0
  614. package/dist/website_sale_stock/index.d.ts +9 -0
  615. package/dist/website_sale_stock/index.js +20 -0
  616. package/dist/website_sale_stock/module.d.ts +24998 -0
  617. package/dist/website_sale_stock/module.js +28 -0
  618. package/package.json +200 -2
@@ -0,0 +1,123 @@
1
+ /**
2
+ * The data layer of the Production ↔ Accounting bridge (RFC 0021, Production step 2): a product made enters stock at
3
+ * what its order consumed (the components' valuation) plus its operations (minutes at the work centres' rates), and
4
+ * the operations are posted into Work in progress against Production labour and overhead — so what goes into Work in
5
+ * progress for an order comes out of it with the product, to the cent.
6
+ */
7
+ import { mrpShutro } from '../mrp/index.js';
8
+ import { orm } from '../server/orm.js';
9
+ import { stockShutro } from '../stock/index.js';
10
+ import { stockAccountShutro, stockAccountsOf } from '../stock_account/index.js';
11
+ import { defineModule, extendModel } from './.kosh/bindings.js';
12
+ const zero = orm.toDecimal(0);
13
+ const money = (d) => d.toDecimalPlaces(2);
14
+ /** The labour and overhead account: its code in the chart, made when missing. */
15
+ export const LABOUR_ACCOUNT = {
16
+ code: '5200',
17
+ name: 'Production labour and overhead',
18
+ type: 'expense_direct_cost',
19
+ };
20
+ /** The production order an output transfer belongs to, with what its components cost. */
21
+ async function madeBy(env, picking) {
22
+ const [order] = await (await env.model('mrp.production').search({ where: { output: picking }, limit: 1 })).load({});
23
+ if (order === undefined)
24
+ return null;
25
+ const [bill] = order.bom === null
26
+ ? []
27
+ : await env.model('mrp.bom').browse([order.bom.id]).load({ byproducts: true });
28
+ const shares = new Map([...(bill?.byproducts ?? [])].map((b) => [b.product.id, b.costShare]));
29
+ let consumed = zero;
30
+ if (order.consumption !== null) {
31
+ const layers = await (await env.model('stock.valuation.layer').search({ where: { picking: order.consumption.id } })).load(['value']);
32
+ consumed = [...layers].reduce((s, l) => s.minus(l.value), zero); // out layers are negative
33
+ }
34
+ return { order, consumed, operations: order.operationCost ?? zero, shares };
35
+ }
36
+ export const OutputCost = extendModel('stock.move', {
37
+ overrides: {
38
+ // The product made costs what was consumed plus the operations, per unit.
39
+ incomingUnitCost: async function (next) {
40
+ const out = await next();
41
+ const moves = this;
42
+ const env = moves.env;
43
+ for (const m of await moves.load({ picking: { source: true }, product: true })) {
44
+ if (m.picking.kind !== 'production' || m.picking.source.usage !== 'production')
45
+ continue;
46
+ const made = await madeBy(env, m.picking.id);
47
+ if (made === null || m.productQty === null || m.productQty.lte(0))
48
+ continue;
49
+ // A by-product carries its share of the cost; the product made, the rest.
50
+ const total = made.consumed.plus(made.operations);
51
+ const others = [...made.shares.values()].reduce((s, x) => s.plus(x), zero);
52
+ const share = m.product.id === made.order.product.id
53
+ ? orm.toDecimal(100).minus(others)
54
+ : (made.shares.get(m.product.id) ?? zero);
55
+ const unit = total.times(share).div(100).div(m.productQty);
56
+ out.set(m.id, unit.toDecimalPlaces(4).toString());
57
+ }
58
+ return out;
59
+ },
60
+ },
61
+ });
62
+ export const OperationsPosted = extendModel('stock.picking', {
63
+ overrides: {
64
+ // Once a product is made, its operations go into Work in progress.
65
+ validated: async function (next) {
66
+ await next();
67
+ const pickings = this;
68
+ const env = pickings.env;
69
+ for (const p of await pickings.load({ source: true, company: true })) {
70
+ if (p.kind !== 'production' || p.source.usage !== 'production')
71
+ continue;
72
+ const made = await madeBy(env, p.id);
73
+ if (made === null || made.operations.lte(0))
74
+ continue;
75
+ const accounts = await stockAccountsOf(env, p.company.id);
76
+ if (accounts === null)
77
+ continue;
78
+ const labour = (await env
79
+ .model('account.account')
80
+ .search({ where: { company: p.company.id, code: LABOUR_ACCOUNT.code }, limit: 1 })).ids[0] ??
81
+ (await env
82
+ .model('account.account')
83
+ .create([{ ...LABOUR_ACCOUNT, company: p.company.id }])).ids[0];
84
+ if (labour === undefined)
85
+ continue;
86
+ const [company] = await env.model('res.company').browse([p.company.id]).load({});
87
+ const amount = money(made.operations);
88
+ const name = `${made.order.name} operations`;
89
+ const entry = await env.model('account.move').create([
90
+ {
91
+ kind: 'entry',
92
+ journal: accounts.journal,
93
+ company: p.company.id,
94
+ currency: company?.currency.id,
95
+ date: env.today(),
96
+ ref: name,
97
+ lines: {
98
+ create: [
99
+ { account: accounts.production, debit: amount, credit: zero, name },
100
+ { account: labour, debit: zero, credit: amount, name },
101
+ ],
102
+ },
103
+ },
104
+ ]);
105
+ await env.withGrants({ grants: ['account.post'], reason: name }, (e) => e.model('account.move').browse(entry.ids).post());
106
+ }
107
+ },
108
+ },
109
+ });
110
+ export const mrpAccountShutro = defineModule({
111
+ name: 'mrp_account',
112
+ version: '0.1.0',
113
+ depends: [mrpShutro, stockShutro, stockAccountShutro],
114
+ groups: [
115
+ orm.defineGroup({
116
+ code: 'mrp_account.user',
117
+ label: 'Production valued',
118
+ implies: ['mrp.user'],
119
+ }),
120
+ ],
121
+ models: [],
122
+ extensions: [OutputCost, OperationsPosted],
123
+ });
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 7de15337289f5e89
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: c50b4a215467041d
2
2
  // Bindings of module `payment`: 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,10 +1,11 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 7de15337289f5e89
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: c50b4a215467041d
2
2
  // Schema view of module `payment` (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.account': AccountAccount;
8
+ readonly 'account.analytic': AccountAnalytic;
8
9
  readonly 'account.fiscal.year': AccountFiscalYear;
9
10
  readonly 'account.full.reconcile': AccountFullReconcile;
10
11
  readonly 'account.journal': AccountJournal;
@@ -18,9 +19,12 @@ export interface SchemaView {
18
19
  readonly 'account.tax': AccountTax;
19
20
  readonly 'account.tax.component': AccountTaxComponent;
20
21
  readonly 'account.withholding': AccountWithholding;
22
+ readonly 'approval.delegation': ApprovalDelegation;
21
23
  readonly 'approval.level': ApprovalLevel;
24
+ readonly 'approval.link': ApprovalLink;
22
25
  readonly 'approval.policy': ApprovalPolicy;
23
26
  readonly 'approval.request': ApprovalRequest;
27
+ readonly 'approval.vote': ApprovalVote;
24
28
  readonly 'audit.event': AuditEvent;
25
29
  readonly 'auth.api_key': AuthApiKey;
26
30
  readonly 'auth.credential': AuthCredential;
@@ -30,6 +34,7 @@ export interface SchemaView {
30
34
  readonly 'auth.user_group': AuthUserGroup;
31
35
  readonly 'kosh.image': KoshImage;
32
36
  readonly 'kosh.saved_view': KoshSavedView;
37
+ readonly 'kosh.setting': KoshSetting;
33
38
  readonly 'mail.activity': MailActivity;
34
39
  readonly 'mail.activity.type': MailActivityType;
35
40
  readonly 'mail.channel': MailChannel;
@@ -58,6 +63,7 @@ export interface SchemaView {
58
63
  readonly 'res.currency': ResCurrency;
59
64
  readonly 'res.currency.rate': ResCurrencyRate;
60
65
  readonly 'res.partner': ResPartner;
66
+ readonly 'res.partner.tag': ResPartnerTag;
61
67
  readonly 'res.users': ResUsers;
62
68
  readonly 'storage.attachment': StorageAttachment;
63
69
  readonly 'uom.uom': UomUom;
@@ -93,6 +99,30 @@ export interface AccountAccount {
93
99
  export interface AccountAccountMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.account'> {
94
100
  }
95
101
 
102
+ /** `account.analytic` (owner: accounting). */
103
+ export interface AccountAnalytic {
104
+ readonly name: 'account.analytic';
105
+ readonly fields: {
106
+ readonly id: F.Id<'account.analytic'>;
107
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
108
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
109
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
110
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
111
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
112
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
113
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
114
+ readonly code: F.Char;
115
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
116
+ readonly parent: F.Many2one<'account.analytic'>;
117
+ readonly note: F.Text;
118
+ };
119
+ readonly methods: AccountAnalyticMethods;
120
+ }
121
+
122
+ /** Methods of `account.analytic`: declared ones and transitions. */
123
+ export interface AccountAnalyticMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.analytic'> {
124
+ }
125
+
96
126
  /** `account.fiscal.year` (owner: accounting). */
97
127
  export interface AccountFiscalYear {
98
128
  readonly name: 'account.fiscal.year';
@@ -248,6 +278,7 @@ export interface AccountMoveLine {
248
278
  readonly lineKind: F.Selection<'entry' | 'product' | 'tax' | 'counterpart', { readonly required: true; readonly default: true }>;
249
279
  readonly invoice: F.Many2one<'account.move', { readonly readonly: true; readonly compute: true; readonly store: true }>;
250
280
  readonly product: F.Many2one<'product.product'>;
281
+ readonly analytic: F.Many2one<'account.analytic'>;
251
282
  readonly quantity: F.Decimal<{ readonly default: true }>;
252
283
  readonly priceUnit: F.Decimal<{ readonly default: true }>;
253
284
  readonly discount: F.Decimal<{ readonly default: true }>;
@@ -489,6 +520,29 @@ export interface AccountWithholding {
489
520
  export interface AccountWithholdingMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.withholding'> {
490
521
  }
491
522
 
523
+ /** `approval.delegation` (owner: permissions). */
524
+ export interface ApprovalDelegation {
525
+ readonly name: 'approval.delegation';
526
+ readonly fields: {
527
+ readonly id: F.Id<'approval.delegation'>;
528
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
529
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
530
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
531
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
532
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
533
+ readonly user: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
534
+ readonly delegate: F.Many2one<'res.users', { readonly required: true }>;
535
+ readonly dateFrom: F.DateOnly<{ readonly required: true }>;
536
+ readonly dateTo: F.DateOnly<{ readonly required: true }>;
537
+ readonly note: F.Char;
538
+ };
539
+ readonly methods: ApprovalDelegationMethods;
540
+ }
541
+
542
+ /** Methods of `approval.delegation`: declared ones and transitions. */
543
+ export interface ApprovalDelegationMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.delegation'> {
544
+ }
545
+
492
546
  /** `approval.level` (owner: permissions). */
493
547
  export interface ApprovalLevel {
494
548
  readonly name: 'approval.level';
@@ -503,7 +557,14 @@ export interface ApprovalLevel {
503
557
  readonly sequence: F.Integer<{ readonly default: true }>;
504
558
  readonly name: F.Char<{ readonly required: true }>;
505
559
  readonly condition: F.Json;
506
- readonly approverRole: F.Char<{ readonly required: true }>;
560
+ readonly approverKind: F.Selection<'role' | 'users' | 'manager' | 'field', { readonly required: true; readonly default: true }>;
561
+ readonly approverRole: F.Char;
562
+ readonly approverUsers: F.Many2many<'res.users', { readonly required: true }>;
563
+ readonly approverField: F.Char;
564
+ readonly quorum: F.Selection<'any' | 'all' | 'count', { readonly required: true; readonly default: true }>;
565
+ readonly quorumCount: F.Integer;
566
+ readonly deadlineHours: F.Integer;
567
+ readonly escalateRole: F.Char;
507
568
  };
508
569
  readonly methods: ApprovalLevelMethods;
509
570
  }
@@ -512,6 +573,29 @@ export interface ApprovalLevel {
512
573
  export interface ApprovalLevelMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.level'> {
513
574
  }
514
575
 
576
+ /** `approval.link` (owner: permissions). */
577
+ export interface ApprovalLink {
578
+ readonly name: 'approval.link';
579
+ readonly fields: {
580
+ readonly id: F.Id<'approval.link'>;
581
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
582
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
583
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
584
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
585
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
586
+ readonly request: F.Many2one<'approval.request', { readonly required: true }>;
587
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
588
+ readonly tokenHash: F.Char<{ readonly required: true }>;
589
+ readonly expiresAt: F.Datetime<{ readonly required: true }>;
590
+ readonly usedAt: F.Datetime;
591
+ };
592
+ readonly methods: ApprovalLinkMethods;
593
+ }
594
+
595
+ /** Methods of `approval.link`: declared ones and transitions. */
596
+ export interface ApprovalLinkMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.link'> {
597
+ }
598
+
515
599
  /** `approval.policy` (owner: permissions). */
516
600
  export interface ApprovalPolicy {
517
601
  readonly name: 'approval.policy';
@@ -529,6 +613,9 @@ export interface ApprovalPolicy {
529
613
  readonly company: F.Many2one<'res.company'>;
530
614
  readonly onApproved: F.Char;
531
615
  readonly onRejected: F.Char;
616
+ readonly onSentBack: F.Char;
617
+ readonly onWithdrawn: F.Char;
618
+ readonly reasonRequired: F.Bool<{ readonly required: true; readonly default: true }>;
532
619
  readonly levels: F.One2many<'approval.level', { readonly required: true }>;
533
620
  };
534
621
  readonly methods: ApprovalPolicyMethods;
@@ -555,8 +642,16 @@ export interface ApprovalRequest {
555
642
  readonly targetModel: F.Char<{ readonly required: true }>;
556
643
  readonly targetId: F.Integer<{ readonly required: true }>;
557
644
  readonly company: F.Many2one<'res.company'>;
558
- readonly approverRole: F.Char<{ readonly required: true }>;
559
- readonly state: F.Selection<'pending' | 'approved' | 'rejected' | 'cancelled', { readonly required: true; readonly default: true }>;
645
+ readonly approverRole: F.Char;
646
+ readonly approvers: F.Many2many<'res.users', { readonly required: true }>;
647
+ readonly required: F.Integer<{ readonly required: true; readonly default: true }>;
648
+ readonly round: F.Integer<{ readonly required: true; readonly default: true }>;
649
+ readonly votes: F.One2many<'approval.vote', { readonly required: true }>;
650
+ readonly dueAt: F.Datetime;
651
+ readonly remindedAt: F.Datetime;
652
+ readonly escalatedTo: F.Char;
653
+ readonly escalatedAt: F.Datetime;
654
+ readonly state: F.Selection<'pending' | 'approved' | 'rejected' | 'sent_back' | 'cancelled', { readonly required: true; readonly default: true }>;
560
655
  readonly requestedBy: F.Many2one<'res.users'>;
561
656
  readonly decidedBy: F.Many2one<'res.users'>;
562
657
  readonly decidedAt: F.Datetime;
@@ -569,6 +664,31 @@ export interface ApprovalRequest {
569
664
  export interface ApprovalRequestMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.request'> {
570
665
  }
571
666
 
667
+ /** `approval.vote` (owner: permissions). */
668
+ export interface ApprovalVote {
669
+ readonly name: 'approval.vote';
670
+ readonly fields: {
671
+ readonly id: F.Id<'approval.vote'>;
672
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
673
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
674
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
675
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
676
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
677
+ readonly request: F.Many2one<'approval.request', { readonly required: true }>;
678
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
679
+ readonly decision: F.Selection<'approve' | 'reject' | 'send_back', { readonly required: true }>;
680
+ readonly comment: F.Text;
681
+ readonly at: F.Datetime<{ readonly required: true }>;
682
+ readonly onBehalfOf: F.Many2one<'res.users'>;
683
+ readonly ip: F.Char;
684
+ };
685
+ readonly methods: ApprovalVoteMethods;
686
+ }
687
+
688
+ /** Methods of `approval.vote`: declared ones and transitions. */
689
+ export interface ApprovalVoteMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.vote'> {
690
+ }
691
+
572
692
  /** `audit.event` (owner: base). */
573
693
  export interface AuditEvent {
574
694
  readonly name: 'audit.event';
@@ -785,6 +905,26 @@ export interface KoshSavedView {
785
905
  export interface KoshSavedViewMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'kosh.saved_view'> {
786
906
  }
787
907
 
908
+ /** `kosh.setting` (owner: base). */
909
+ export interface KoshSetting {
910
+ readonly name: 'kosh.setting';
911
+ readonly fields: {
912
+ readonly id: F.Id<'kosh.setting'>;
913
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
914
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
915
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
916
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
917
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
918
+ readonly key: F.Char<{ readonly required: true }>;
919
+ readonly value: F.Json;
920
+ };
921
+ readonly methods: KoshSettingMethods;
922
+ }
923
+
924
+ /** Methods of `kosh.setting`: declared ones and transitions. */
925
+ export interface KoshSettingMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'kosh.setting'> {
926
+ }
927
+
788
928
  /** `mail.activity` (owner: messaging). */
789
929
  export interface MailActivity {
790
930
  readonly name: 'mail.activity';
@@ -1100,7 +1240,7 @@ export interface PaymentTransaction {
1100
1240
  readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1101
1241
  readonly reference: F.Char<{ readonly required: true; readonly default: true }>;
1102
1242
  readonly provider: F.Many2one<'payment.provider', { readonly required: true }>;
1103
- readonly move: F.Many2one<'account.move', { readonly required: true }>;
1243
+ readonly move: F.Many2one<'account.move'>;
1104
1244
  readonly partner: F.Many2one<'res.partner'>;
1105
1245
  readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
1106
1246
  readonly amount: F.Monetary<'currency', { readonly required: true }>;
@@ -1109,6 +1249,7 @@ export interface PaymentTransaction {
1109
1249
  readonly payment: F.Many2one<'account.payment'>;
1110
1250
  readonly error: F.Text;
1111
1251
  readonly doneAt: F.Datetime;
1252
+ readonly returnUrl: F.Char;
1112
1253
  };
1113
1254
  readonly methods: PaymentTransactionMethods;
1114
1255
  }
@@ -1199,6 +1340,7 @@ export interface ProductCategory {
1199
1340
  readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1200
1341
  readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1201
1342
  readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1343
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1202
1344
  readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
1203
1345
  readonly parent: F.Many2one<'product.category'>;
1204
1346
  };
@@ -1226,6 +1368,7 @@ export interface ProductProduct {
1226
1368
  readonly category: F.Many2one<'product.category'>;
1227
1369
  readonly uom: F.Many2one<'uom.uom'>;
1228
1370
  readonly barcode: F.Char;
1371
+ readonly image: F.Many2one<'storage.attachment'>;
1229
1372
  readonly listPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
1230
1373
  readonly standardPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
1231
1374
  readonly saleOk: F.Bool<{ readonly required: true; readonly default: true }>;
@@ -1256,6 +1399,7 @@ export interface ReportDashboard {
1256
1399
  readonly name: F.Char<{ readonly required: true }>;
1257
1400
  readonly items: F.Json<unknown, { readonly required: true; readonly default: true }>;
1258
1401
  readonly shared: F.Bool<{ readonly required: true; readonly default: true }>;
1402
+ readonly key: F.Char;
1259
1403
  };
1260
1404
  readonly methods: ReportDashboardMethods;
1261
1405
  }
@@ -1396,7 +1540,7 @@ export interface ResBankAccount {
1396
1540
  export interface ResBankAccountMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'res.bank.account'> {
1397
1541
  }
1398
1542
 
1399
- /** `res.company` (owner: base; extended by: accounting). */
1543
+ /** `res.company` (owner: base; extended by: contacts, accounting). */
1400
1544
  export interface ResCompany {
1401
1545
  readonly name: 'res.company';
1402
1546
  readonly fields: {
@@ -1416,6 +1560,8 @@ export interface ResCompany {
1416
1560
  readonly email: F.Char;
1417
1561
  readonly phone: F.Char;
1418
1562
  readonly website: F.Char;
1563
+ readonly contactTaxIdRequired: F.Bool<{ readonly required: true; readonly default: true }>; // contacts
1564
+ readonly contactUniqueEmail: F.Bool<{ readonly required: true; readonly default: true }>; // contacts
1419
1565
  readonly fiscalYearStart: F.Integer<{ readonly required: true; readonly default: true }>; // accounting
1420
1566
  readonly chartTemplate: F.Char; // accounting
1421
1567
  readonly country: F.Char; // accounting
@@ -1432,7 +1578,7 @@ export interface ResCompany {
1432
1578
  }
1433
1579
 
1434
1580
  /** Methods of `res.company`: declared ones and transitions. */
1435
- export interface ResCompanyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'res.company'>, F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'res.company'> {
1581
+ export interface ResCompanyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'res.company'>, F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.company'>, F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'res.company'> {
1436
1582
  }
1437
1583
 
1438
1584
  /** `res.currency` (owner: base). */
@@ -1491,6 +1637,10 @@ export interface ResPartner {
1491
1637
  readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1492
1638
  readonly company: F.Many2one<'res.company', { readonly default: true }>;
1493
1639
  readonly name: F.Char<{ readonly required: true }>;
1640
+ readonly image: F.Many2one<'storage.attachment'>;
1641
+ readonly tags: F.Many2many<'res.partner.tag', { readonly required: true }>;
1642
+ readonly latitude: F.Decimal;
1643
+ readonly longitude: F.Decimal;
1494
1644
  readonly isCompany: F.Bool<{ readonly required: true; readonly default: true }>;
1495
1645
  readonly parent: F.Many2one<'res.partner'>;
1496
1646
  readonly contacts: F.One2many<'res.partner', { readonly required: true }>;
@@ -1518,6 +1668,25 @@ export interface ResPartner {
1518
1668
  export interface ResPartnerMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner'>, F.Methods<typeof import('../../portal/index.js').portalShutro, 'res.partner'>, F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'res.partner'> {
1519
1669
  }
1520
1670
 
1671
+ /** `res.partner.tag` (owner: contacts). */
1672
+ export interface ResPartnerTag {
1673
+ readonly name: 'res.partner.tag';
1674
+ readonly fields: {
1675
+ readonly id: F.Id<'res.partner.tag'>;
1676
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1677
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1678
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1679
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1680
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1681
+ readonly name: F.Char<{ readonly required: true }>;
1682
+ };
1683
+ readonly methods: ResPartnerTagMethods;
1684
+ }
1685
+
1686
+ /** Methods of `res.partner.tag`: declared ones and transitions. */
1687
+ export interface ResPartnerTagMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner.tag'> {
1688
+ }
1689
+
1521
1690
  /** `res.users` (owner: base; extended by: portal). */
1522
1691
  export interface ResUsers {
1523
1692
  readonly name: 'res.users';
@@ -1564,6 +1733,8 @@ export interface StorageAttachment {
1564
1733
  readonly key: F.Char<{ readonly required: true }>;
1565
1734
  readonly resModel: F.Char<{ readonly required: true }>;
1566
1735
  readonly resId: F.Integer<{ readonly required: true }>;
1736
+ readonly variantOf: F.Many2one<'storage.attachment'>;
1737
+ readonly width: F.Integer;
1567
1738
  };
1568
1739
  readonly methods: StorageAttachmentMethods;
1569
1740
  }
@@ -13,8 +13,12 @@
13
13
  * - `GET|POST /api/v1/payment/return/:reference` back from the provider: on to the portal
14
14
  *
15
15
  * The callbacks arrive at `POST /api/v1/hooks/<token>` (the provider's endpoint, made with its first payment).
16
+ * Other apps start payments with `startPayment` (`website_sale`: a shop's checkout) and say what a transaction pays by
17
+ * overriding `payable()` on `payment.transaction`.
16
18
  */
17
19
  import { type KoshModule } from '../modules-sdk/index.js';
20
+ import { type Decimal } from '../server/orm.js';
21
+ import type { Env } from './.kosh/bindings.js';
18
22
  import { type PaymentAdapter } from './providers.js';
19
23
  export { type BkashOptions, bkashAdapter, bkashFromEnvironment } from './bkash.js';
20
24
  export { newReference, PaymentProvider, PaymentTransaction, PROVIDERS, paymentShutro, } from './module.js';
@@ -32,6 +36,43 @@ export interface PaymentOptions {
32
36
  /** The API's public address: where providers call back (`SHUTRO_ERP_API_URL`). */
33
37
  readonly apiUrl?: string;
34
38
  }
39
+ export interface StartPayment {
40
+ /** A provider of the company, enabled. */
41
+ readonly provider: number;
42
+ /** The invoice paid; null when another app's document waits for it (its link in `values`). */
43
+ readonly move?: number | null;
44
+ readonly partner: {
45
+ readonly id: number;
46
+ readonly name: string;
47
+ readonly email?: string | null;
48
+ readonly phone?: string | null;
49
+ readonly mobile?: string | null;
50
+ readonly street?: string | null;
51
+ readonly city?: string | null;
52
+ readonly zip?: string | null;
53
+ readonly country?: unknown;
54
+ } | null;
55
+ readonly currency: {
56
+ readonly id: number;
57
+ readonly name: string;
58
+ readonly decimalPlaces?: number | null;
59
+ };
60
+ readonly amount: Decimal;
61
+ readonly company: number;
62
+ readonly description: string;
63
+ /** Where the customer goes back to (the portal's document when absent). */
64
+ readonly returnUrl?: string;
65
+ /** More fields of the transaction (another app's link: `saleOrder`). */
66
+ readonly values?: Readonly<Record<string, unknown>>;
67
+ }
68
+ /**
69
+ * Starts a payment as the system: a pending transaction for `amount` with the provider, and where to send the
70
+ * customer. The provider must be enabled, configured on this server, and the fake never live.
71
+ */
72
+ export declare function startPayment(su: Env, input: StartPayment): Promise<{
73
+ reference: string;
74
+ redirectUrl: string;
75
+ }>;
35
76
  /** Online payments with explicit options (tests, installations wiring their own adapters). */
36
77
  export declare function paymentModule(options?: PaymentOptions): KoshModule;
37
78
  /** Online payments (the fake adapter; addresses from the environment). */