shutro-erp 0.3.6 → 0.3.7

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 (623) hide show
  1. package/dist/account_asset/.kosh/bindings.js +1 -1
  2. package/dist/account_asset/.kosh/schema.d.ts +530 -8
  3. package/dist/account_asset/i18n/bn.d.ts +2 -0
  4. package/dist/account_asset/i18n/bn.js +97 -0
  5. package/dist/account_asset/index.js +2 -0
  6. package/dist/account_asset/module.d.ts +4899 -1445
  7. package/dist/account_budget/.kosh/bindings.js +1 -1
  8. package/dist/account_budget/.kosh/schema.d.ts +1130 -56
  9. package/dist/account_budget/i18n/bn.d.ts +2 -0
  10. package/dist/account_budget/i18n/bn.js +63 -0
  11. package/dist/account_budget/index.js +14 -0
  12. package/dist/account_budget/module.d.ts +17958 -4532
  13. package/dist/account_budget/module.js +15 -0
  14. package/dist/account_portal/.kosh/bindings.js +1 -1
  15. package/dist/account_portal/.kosh/schema.d.ts +530 -8
  16. package/dist/account_portal/i18n/bn.d.ts +2 -0
  17. package/dist/account_portal/i18n/bn.js +6 -0
  18. package/dist/account_portal/index.js +2 -0
  19. package/dist/account_portal/module.d.ts +5167 -1693
  20. package/dist/accounting/.kosh/bindings.js +1 -1
  21. package/dist/accounting/.kosh/schema.d.ts +530 -8
  22. package/dist/accounting/closing.js +1 -0
  23. package/dist/accounting/fiscal.d.ts +578 -0
  24. package/dist/accounting/fiscal.js +401 -0
  25. package/dist/accounting/followups.d.ts +618 -0
  26. package/dist/accounting/followups.js +420 -0
  27. package/dist/accounting/i18n/bn.d.ts +2 -0
  28. package/dist/accounting/i18n/bn.js +425 -0
  29. package/dist/accounting/index.d.ts +2 -0
  30. package/dist/accounting/index.js +649 -2
  31. package/dist/accounting/module.d.ts +4998 -1451
  32. package/dist/accounting/module.js +124 -18
  33. package/dist/accounting/statements.d.ts +878 -0
  34. package/dist/accounting/statements.js +728 -0
  35. package/dist/accounting/web/BankReconcilePage.d.ts +9 -0
  36. package/dist/accounting/web/BankReconcilePage.js +138 -0
  37. package/dist/accounting/web/FollowupsPage.d.ts +8 -0
  38. package/dist/accounting/web/FollowupsPage.js +54 -0
  39. package/dist/accounting/web/PostingPreview.d.ts +8 -0
  40. package/dist/accounting/web/PostingPreview.js +26 -0
  41. package/dist/accounting/web/index.d.ts +3 -0
  42. package/dist/accounting/web/index.js +9 -0
  43. package/dist/accounting/web/messages.js +140 -0
  44. package/dist/approvals/.kosh/bindings.js +1 -1
  45. package/dist/approvals/.kosh/schema.d.ts +272 -4
  46. package/dist/approvals/demo.d.ts +7 -0
  47. package/dist/approvals/demo.js +41 -0
  48. package/dist/approvals/i18n/bn.d.ts +2 -0
  49. package/dist/approvals/i18n/bn.js +133 -0
  50. package/dist/approvals/index.d.ts +19 -1
  51. package/dist/approvals/index.js +477 -7
  52. package/dist/approvals/mails.d.ts +7 -2
  53. package/dist/approvals/mails.js +8 -3
  54. package/dist/approvals/module.d.ts +2930 -1
  55. package/dist/approvals/module.js +468 -7
  56. package/dist/approvals/web/Config.d.ts +12 -0
  57. package/dist/approvals/web/Config.js +60 -0
  58. package/dist/approvals/web/Matrix.d.ts +9 -0
  59. package/dist/approvals/web/Matrix.js +26 -0
  60. package/dist/approvals/web/index.d.ts +3 -1
  61. package/dist/approvals/web/index.js +8 -1
  62. package/dist/approvals/web/messages.js +92 -0
  63. package/dist/approvals_purchase/.kosh/bindings.js +15 -0
  64. package/dist/approvals_purchase/.kosh/schema.d.ts +1997 -0
  65. package/dist/approvals_purchase/i18n/bn.d.ts +2 -0
  66. package/dist/approvals_purchase/i18n/bn.js +5 -0
  67. package/dist/approvals_purchase/index.d.ts +3 -0
  68. package/dist/approvals_purchase/index.js +47 -0
  69. package/dist/approvals_purchase/module.d.ts +12670 -0
  70. package/dist/approvals_purchase/module.js +84 -0
  71. package/dist/attendance/.kosh/bindings.js +1 -1
  72. package/dist/attendance/.kosh/schema.d.ts +59 -1
  73. package/dist/attendance/i18n/bn.d.ts +2 -0
  74. package/dist/attendance/i18n/bn.js +147 -0
  75. package/dist/attendance/index.js +3 -1
  76. package/dist/attendance/module.d.ts +452 -8
  77. package/dist/automation/engine.js +1 -1
  78. package/dist/calendar/.kosh/bindings.js +1 -1
  79. package/dist/calendar/.kosh/schema.d.ts +2 -1
  80. package/dist/calendar/i18n/bn.d.ts +2 -0
  81. package/dist/calendar/i18n/bn.js +80 -0
  82. package/dist/calendar/index.js +77 -0
  83. package/dist/calendar/module.d.ts +26 -0
  84. package/dist/calendar/module.js +14 -4
  85. package/dist/cli/apps.js +25 -5
  86. package/dist/cli/init.js +14 -4
  87. package/dist/cli/templates.d.ts +1 -1
  88. package/dist/cli/templates.js +34 -5
  89. package/dist/contacts/.kosh/bindings.js +1 -1
  90. package/dist/contacts/.kosh/schema.d.ts +2 -1
  91. package/dist/contacts/i18n/bn.d.ts +2 -0
  92. package/dist/contacts/i18n/bn.js +67 -0
  93. package/dist/contacts/index.js +3 -0
  94. package/dist/contacts/module.d.ts +42 -0
  95. package/dist/contacts/module.js +6 -1
  96. package/dist/crm/.kosh/bindings.js +1 -1
  97. package/dist/crm/.kosh/schema.d.ts +2 -1
  98. package/dist/crm/i18n/bn.d.ts +2 -0
  99. package/dist/crm/i18n/bn.js +80 -0
  100. package/dist/crm/index.js +22 -0
  101. package/dist/crm/module.d.ts +20 -0
  102. package/dist/crm/module.js +4 -2
  103. package/dist/documents/.kosh/bindings.js +1 -1
  104. package/dist/documents/.kosh/schema.d.ts +2 -1
  105. package/dist/documents/i18n/bn.d.ts +2 -0
  106. package/dist/documents/i18n/bn.js +83 -0
  107. package/dist/documents/index.js +128 -1
  108. package/dist/documents/module.d.ts +20 -0
  109. package/dist/documents/module.js +1 -0
  110. package/dist/event/.kosh/bindings.js +1 -1
  111. package/dist/event/.kosh/schema.d.ts +2 -1
  112. package/dist/event/i18n/bn.d.ts +2 -0
  113. package/dist/event/i18n/bn.js +101 -0
  114. package/dist/event/index.js +66 -0
  115. package/dist/event/module.d.ts +20 -0
  116. package/dist/event/module.js +8 -1
  117. package/dist/event_account/.kosh/bindings.js +1 -1
  118. package/dist/event_account/.kosh/schema.d.ts +530 -8
  119. package/dist/event_account/i18n/bn.d.ts +2 -0
  120. package/dist/event_account/i18n/bn.js +5 -0
  121. package/dist/event_account/index.js +2 -0
  122. package/dist/event_account/module.d.ts +4905 -1431
  123. package/dist/expense/.kosh/bindings.js +1 -1
  124. package/dist/expense/.kosh/schema.d.ts +323 -2
  125. package/dist/expense/i18n/bn.d.ts +2 -0
  126. package/dist/expense/i18n/bn.js +155 -0
  127. package/dist/expense/index.js +8 -1
  128. package/dist/expense/module.d.ts +2715 -694
  129. package/dist/expense/module.js +3 -1
  130. package/dist/expense_account/.kosh/bindings.js +1 -1
  131. package/dist/expense_account/.kosh/schema.d.ts +587 -8
  132. package/dist/expense_account/i18n/bn.d.ts +2 -0
  133. package/dist/expense_account/i18n/bn.js +15 -0
  134. package/dist/expense_account/index.js +2 -0
  135. package/dist/expense_account/module.d.ts +8094 -2619
  136. package/dist/helpdesk/.kosh/bindings.js +1 -1
  137. package/dist/helpdesk/.kosh/schema.d.ts +2 -1
  138. package/dist/helpdesk/i18n/bn.d.ts +2 -0
  139. package/dist/helpdesk/i18n/bn.js +127 -0
  140. package/dist/helpdesk/index.js +2 -0
  141. package/dist/helpdesk/module.d.ts +20 -0
  142. package/dist/hr/.kosh/bindings.js +1 -1
  143. package/dist/hr/.kosh/schema.d.ts +59 -1
  144. package/dist/hr/demo.js +11 -1
  145. package/dist/hr/i18n/bn.d.ts +2 -0
  146. package/dist/hr/i18n/bn.js +126 -0
  147. package/dist/hr/index.d.ts +1 -1
  148. package/dist/hr/index.js +158 -12
  149. package/dist/hr/module.d.ts +932 -59
  150. package/dist/hr/module.js +114 -17
  151. package/dist/{mrp → indent}/.kosh/bindings.js +2 -2
  152. package/dist/indent/.kosh/schema.d.ts +2084 -0
  153. package/dist/indent/demo.d.ts +7 -0
  154. package/dist/indent/demo.js +48 -0
  155. package/dist/indent/i18n/bn.d.ts +2 -0
  156. package/dist/indent/i18n/bn.js +143 -0
  157. package/dist/indent/index.d.ts +3 -0
  158. package/dist/indent/index.js +450 -0
  159. package/dist/{mrp → indent}/module.d.ts +7164 -3075
  160. package/dist/indent/module.js +792 -0
  161. package/dist/indent_purchase/.kosh/bindings.d.ts +22 -0
  162. package/dist/indent_purchase/.kosh/bindings.js +15 -0
  163. package/dist/indent_purchase/.kosh/schema.d.ts +2710 -0
  164. package/dist/indent_purchase/i18n/bn.d.ts +2 -0
  165. package/dist/indent_purchase/i18n/bn.js +13 -0
  166. package/dist/indent_purchase/index.d.ts +3 -0
  167. package/dist/indent_purchase/index.js +61 -0
  168. package/dist/indent_purchase/module.d.ts +27950 -0
  169. package/dist/indent_purchase/module.js +163 -0
  170. package/dist/l10n_bd/.kosh/bindings.js +1 -1
  171. package/dist/l10n_bd/.kosh/schema.d.ts +530 -8
  172. package/dist/l10n_bd/i18n/bn.d.ts +2 -0
  173. package/dist/l10n_bd/i18n/bn.js +69 -0
  174. package/dist/l10n_bd/index.js +2 -0
  175. package/dist/l10n_bd/module.d.ts +5167 -1693
  176. package/dist/l10n_bd_payroll/.kosh/bindings.js +1 -1
  177. package/dist/l10n_bd_payroll/.kosh/schema.d.ts +587 -8
  178. package/dist/l10n_bd_payroll/i18n/bn.d.ts +2 -0
  179. package/dist/l10n_bd_payroll/i18n/bn.js +4 -0
  180. package/dist/l10n_bd_payroll/index.js +2 -0
  181. package/dist/l10n_bd_payroll/module.d.ts +5910 -1548
  182. package/dist/l10n_bd_pos/.kosh/bindings.d.ts +22 -0
  183. package/dist/{mrp_account → l10n_bd_pos}/.kosh/bindings.js +2 -2
  184. package/dist/{mrp_account → l10n_bd_pos}/.kosh/schema.d.ts +693 -651
  185. package/dist/l10n_bd_pos/i18n/bn.d.ts +2 -0
  186. package/dist/l10n_bd_pos/i18n/bn.js +32 -0
  187. package/dist/l10n_bd_pos/index.d.ts +3 -0
  188. package/dist/l10n_bd_pos/index.js +111 -0
  189. package/dist/{mrp_account → l10n_bd_pos}/module.d.ts +7402 -7647
  190. package/dist/l10n_bd_pos/module.js +43 -0
  191. package/dist/l10n_in/.kosh/bindings.js +1 -1
  192. package/dist/l10n_in/.kosh/schema.d.ts +530 -8
  193. package/dist/l10n_in/i18n/bn.d.ts +2 -0
  194. package/dist/l10n_in/i18n/bn.js +95 -0
  195. package/dist/l10n_in/index.js +2 -0
  196. package/dist/l10n_in/module.d.ts +6703 -1652
  197. package/dist/l10n_in/module.js +25 -5
  198. package/dist/l10n_in/web/GstSettings.js +2 -2
  199. package/dist/mail/inbound/handle.js +2 -4
  200. package/dist/mail/inbound/models.js +5 -3
  201. package/dist/mail/index.d.ts +12 -1
  202. package/dist/mail/index.js +139 -2
  203. package/dist/mail/send.d.ts +56 -0
  204. package/dist/mail/send.js +394 -0
  205. package/dist/mail/web/SendButton.d.ts +9 -0
  206. package/dist/mail/web/SendButton.js +71 -0
  207. package/dist/mail/web/SendSelected.d.ts +8 -0
  208. package/dist/mail/web/SendSelected.js +33 -0
  209. package/dist/mail/web/index.d.ts +2 -0
  210. package/dist/mail/web/index.js +6 -0
  211. package/dist/mail/web/messages.js +36 -0
  212. package/dist/maintenance/.kosh/bindings.js +1 -1
  213. package/dist/maintenance/.kosh/schema.d.ts +2 -1
  214. package/dist/maintenance/i18n/bn.d.ts +2 -0
  215. package/dist/maintenance/i18n/bn.js +132 -0
  216. package/dist/maintenance/index.js +85 -0
  217. package/dist/maintenance/module.d.ts +25 -0
  218. package/dist/maintenance/module.js +27 -9
  219. package/dist/maintenance_stock/.kosh/bindings.js +1 -1
  220. package/dist/maintenance_stock/.kosh/schema.d.ts +298 -2
  221. package/dist/maintenance_stock/i18n/bn.d.ts +2 -0
  222. package/dist/maintenance_stock/i18n/bn.js +21 -0
  223. package/dist/maintenance_stock/index.js +2 -0
  224. package/dist/maintenance_stock/module.d.ts +5302 -1256
  225. package/dist/maintenance_stock/module.js +1 -0
  226. package/dist/modules-sdk/apps.d.ts +10 -0
  227. package/dist/modules-sdk/apps.js +32 -0
  228. package/dist/modules-sdk/index.d.ts +1 -1
  229. package/dist/modules-sdk/manifest.d.ts +68 -2
  230. package/dist/payment/.kosh/bindings.js +1 -1
  231. package/dist/payment/.kosh/schema.d.ts +530 -8
  232. package/dist/payment/i18n/bn.d.ts +2 -0
  233. package/dist/payment/i18n/bn.js +59 -0
  234. package/dist/payment/index.js +85 -0
  235. package/dist/payment/module.d.ts +5134 -1660
  236. package/dist/payment/module.js +17 -3
  237. package/dist/payment/settle.js +1 -0
  238. package/dist/payroll/.kosh/bindings.js +1 -1
  239. package/dist/payroll/.kosh/schema.d.ts +59 -1
  240. package/dist/payroll/i18n/bn.d.ts +2 -0
  241. package/dist/payroll/i18n/bn.js +206 -0
  242. package/dist/payroll/index.js +2 -0
  243. package/dist/payroll/module.d.ts +936 -48
  244. package/dist/payroll_account/.kosh/bindings.js +1 -1
  245. package/dist/payroll_account/.kosh/schema.d.ts +587 -8
  246. package/dist/payroll_account/i18n/bn.d.ts +2 -0
  247. package/dist/payroll_account/i18n/bn.js +10 -0
  248. package/dist/payroll_account/index.js +2 -0
  249. package/dist/payroll_account/module.d.ts +7534 -3192
  250. package/dist/permissions/approvals.d.ts +97 -4
  251. package/dist/permissions/approvals.js +780 -31
  252. package/dist/permissions/index.d.ts +1 -1
  253. package/dist/permissions/index.js +2 -2
  254. package/dist/permissions/models.js +177 -5
  255. package/dist/permissions/routes.d.ts +3 -0
  256. package/dist/permissions/routes.js +36 -2
  257. package/dist/permissions/web/ApprovalPanel.js +43 -5
  258. package/dist/permissions/web/messages.js +52 -0
  259. package/dist/portal/.kosh/bindings.js +1 -1
  260. package/dist/portal/.kosh/schema.d.ts +2 -1
  261. package/dist/portal/documents.d.ts +3 -0
  262. package/dist/portal/documents.js +21 -1
  263. package/dist/portal/i18n/bn.d.ts +2 -0
  264. package/dist/portal/i18n/bn.js +33 -0
  265. package/dist/portal/index.js +2 -0
  266. package/dist/portal/module.d.ts +20 -0
  267. package/dist/portal/routes-documents.js +76 -0
  268. package/dist/pos/.kosh/bindings.js +1 -1
  269. package/dist/pos/.kosh/schema.d.ts +531 -8
  270. package/dist/pos/i18n/bn.d.ts +2 -0
  271. package/dist/pos/i18n/bn.js +133 -0
  272. package/dist/pos/index.js +83 -1
  273. package/dist/pos/module.d.ts +6888 -1777
  274. package/dist/pos/module.js +49 -5
  275. package/dist/pos/routes.js +80 -7
  276. package/dist/pos/web/Register.js +2 -5
  277. package/dist/pos_stock/.kosh/bindings.js +1 -1
  278. package/dist/pos_stock/.kosh/schema.d.ts +626 -9
  279. package/dist/pos_stock/i18n/bn.d.ts +2 -0
  280. package/dist/pos_stock/i18n/bn.js +6 -0
  281. package/dist/pos_stock/index.js +2 -0
  282. package/dist/pos_stock/module.d.ts +10798 -3276
  283. package/dist/product/.kosh/bindings.js +1 -1
  284. package/dist/product/.kosh/schema.d.ts +202 -1
  285. package/dist/product/i18n/bn.d.ts +2 -0
  286. package/dist/product/i18n/bn.js +175 -0
  287. package/dist/product/index.d.ts +1 -0
  288. package/dist/product/index.js +288 -1
  289. package/dist/product/module.d.ts +1725 -0
  290. package/dist/product/module.js +66 -6
  291. package/dist/product/pricelist.d.ts +575 -0
  292. package/dist/product/pricelist.js +257 -0
  293. package/dist/product/variants.d.ts +908 -0
  294. package/dist/product/variants.js +251 -0
  295. package/dist/production/.kosh/bindings.d.ts +22 -0
  296. package/dist/production/.kosh/bindings.js +15 -0
  297. package/dist/production/.kosh/schema.d.ts +2345 -0
  298. package/dist/{mrp → production}/demo.d.ts +1 -1
  299. package/dist/{mrp → production}/demo.js +5 -5
  300. package/dist/production/depth.d.ts +790 -0
  301. package/dist/production/depth.js +262 -0
  302. package/dist/production/i18n/bn.d.ts +2 -0
  303. package/dist/production/i18n/bn.js +350 -0
  304. package/dist/production/index.d.ts +6 -0
  305. package/dist/production/index.js +1256 -0
  306. package/dist/production/module.d.ts +17327 -0
  307. package/dist/production/module.js +1333 -0
  308. package/dist/production/plan.d.ts +921 -0
  309. package/dist/production/plan.js +511 -0
  310. package/dist/production/schedule.d.ts +656 -0
  311. package/dist/production/schedule.js +309 -0
  312. package/dist/production_account/.kosh/bindings.d.ts +22 -0
  313. package/dist/production_account/.kosh/bindings.js +15 -0
  314. package/dist/production_account/.kosh/schema.d.ts +3496 -0
  315. package/dist/production_account/i18n/bn.d.ts +2 -0
  316. package/dist/production_account/i18n/bn.js +93 -0
  317. package/dist/production_account/index.d.ts +4 -0
  318. package/dist/production_account/index.js +246 -0
  319. package/dist/production_account/module.d.ts +1192 -0
  320. package/dist/{mrp_account → production_account}/module.js +72 -18
  321. package/dist/production_account/overhead.d.ts +1195 -0
  322. package/dist/production_account/overhead.js +554 -0
  323. package/dist/project/.kosh/bindings.js +1 -1
  324. package/dist/project/.kosh/schema.d.ts +65 -2
  325. package/dist/project/i18n/bn.d.ts +2 -0
  326. package/dist/project/i18n/bn.js +383 -0
  327. package/dist/project/index.js +123 -0
  328. package/dist/project/module.d.ts +20 -0
  329. package/dist/project/module.js +73 -14
  330. package/dist/project_account/.kosh/bindings.js +1 -1
  331. package/dist/project_account/.kosh/schema.d.ts +530 -8
  332. package/dist/project_account/i18n/bn.d.ts +2 -0
  333. package/dist/project_account/i18n/bn.js +6 -0
  334. package/dist/project_account/index.js +2 -0
  335. package/dist/project_account/module.d.ts +4926 -1452
  336. package/dist/project_portal/.kosh/bindings.js +1 -1
  337. package/dist/project_portal/.kosh/schema.d.ts +65 -2
  338. package/dist/project_portal/i18n/bn.d.ts +2 -0
  339. package/dist/project_portal/i18n/bn.js +6 -0
  340. package/dist/project_portal/index.js +2 -0
  341. package/dist/project_portal/module.d.ts +40 -0
  342. package/dist/project_purchase/.kosh/bindings.js +1 -1
  343. package/dist/project_purchase/.kosh/schema.d.ts +1126 -53
  344. package/dist/project_purchase/i18n/bn.d.ts +2 -0
  345. package/dist/project_purchase/i18n/bn.js +4 -0
  346. package/dist/project_purchase/index.js +2 -0
  347. package/dist/project_purchase/module.d.ts +17912 -4446
  348. package/dist/purchase/.kosh/bindings.js +1 -1
  349. package/dist/purchase/.kosh/schema.d.ts +813 -3
  350. package/dist/purchase/comparison.d.ts +993 -0
  351. package/dist/purchase/comparison.js +415 -0
  352. package/dist/purchase/extras.d.ts +1509 -0
  353. package/dist/purchase/extras.js +445 -0
  354. package/dist/purchase/i18n/bn.d.ts +2 -0
  355. package/dist/purchase/i18n/bn.js +413 -0
  356. package/dist/purchase/index.d.ts +5 -0
  357. package/dist/purchase/index.js +1280 -4
  358. package/dist/purchase/module.d.ts +7139 -398
  359. package/dist/purchase/module.js +295 -11
  360. package/dist/purchase/request.d.ts +696 -0
  361. package/dist/purchase/request.js +446 -0
  362. package/dist/purchase/tender.d.ts +1208 -0
  363. package/dist/purchase/tender.js +507 -0
  364. package/dist/purchase/vendorprice.d.ts +340 -0
  365. package/dist/purchase/vendorprice.js +153 -0
  366. package/dist/purchase_account/.kosh/bindings.js +1 -1
  367. package/dist/purchase_account/.kosh/schema.d.ts +1130 -57
  368. package/dist/purchase_account/i18n/bn.d.ts +2 -0
  369. package/dist/purchase_account/i18n/bn.js +22 -0
  370. package/dist/purchase_account/index.js +19 -0
  371. package/dist/purchase_account/module.d.ts +12276 -2247
  372. package/dist/purchase_account/module.js +241 -9
  373. package/dist/purchase_portal/.kosh/bindings.js +1 -1
  374. package/dist/purchase_portal/.kosh/schema.d.ts +813 -3
  375. package/dist/purchase_portal/i18n/bn.d.ts +2 -0
  376. package/dist/purchase_portal/i18n/bn.js +5 -0
  377. package/dist/purchase_portal/index.js +2 -0
  378. package/dist/purchase_portal/module.d.ts +6849 -353
  379. package/dist/purchase_stock/.kosh/bindings.js +1 -1
  380. package/dist/purchase_stock/.kosh/schema.d.ts +910 -4
  381. package/dist/purchase_stock/i18n/bn.d.ts +2 -0
  382. package/dist/purchase_stock/i18n/bn.js +19 -0
  383. package/dist/purchase_stock/index.d.ts +1 -1
  384. package/dist/purchase_stock/index.js +29 -0
  385. package/dist/purchase_stock/module.d.ts +12410 -1864
  386. package/dist/purchase_stock/module.js +81 -9
  387. package/dist/purchase_stock/scorecard.d.ts +22 -0
  388. package/dist/purchase_stock/scorecard.js +77 -0
  389. package/dist/purchase_stock/web/Scorecard.d.ts +7 -0
  390. package/dist/purchase_stock/web/Scorecard.js +22 -0
  391. package/dist/purchase_stock/web/index.d.ts +11 -0
  392. package/dist/purchase_stock/web/index.js +16 -0
  393. package/dist/purchase_stock/web/messages.d.ts +2 -0
  394. package/dist/purchase_stock/web/messages.js +27 -0
  395. package/dist/purchase_stock_account/.kosh/bindings.js +1 -1
  396. package/dist/purchase_stock_account/.kosh/schema.d.ts +1286 -58
  397. package/dist/purchase_stock_account/i18n/bn.d.ts +2 -0
  398. package/dist/purchase_stock_account/i18n/bn.js +8 -0
  399. package/dist/purchase_stock_account/index.js +18 -0
  400. package/dist/purchase_stock_account/module.d.ts +7 -37995
  401. package/dist/purchase_stock_account/module.js +24 -3
  402. package/dist/recruitment/.kosh/bindings.js +1 -1
  403. package/dist/recruitment/.kosh/schema.d.ts +59 -1
  404. package/dist/recruitment/i18n/bn.d.ts +2 -0
  405. package/dist/recruitment/i18n/bn.js +93 -0
  406. package/dist/recruitment/index.js +64 -0
  407. package/dist/recruitment/module.d.ts +458 -8
  408. package/dist/recruitment/module.js +11 -3
  409. package/dist/reporting/documents.d.ts +5 -0
  410. package/dist/reporting/documents.js +11 -1
  411. package/dist/reporting/index.d.ts +1 -1
  412. package/dist/reporting/index.js +1 -1
  413. package/dist/reporting/web/CalendarView.d.ts +18 -5
  414. package/dist/reporting/web/CalendarView.js +163 -29
  415. package/dist/reporting/web/messages.js +18 -0
  416. package/dist/sale_account/.kosh/bindings.js +1 -1
  417. package/dist/sale_account/.kosh/schema.d.ts +642 -16
  418. package/dist/sale_account/i18n/bn.d.ts +2 -0
  419. package/dist/sale_account/i18n/bn.js +48 -0
  420. package/dist/sale_account/index.d.ts +1 -1
  421. package/dist/sale_account/index.js +102 -4
  422. package/dist/sale_account/module.d.ts +8254 -2212
  423. package/dist/sale_account/module.js +535 -46
  424. package/dist/sale_crm/.kosh/bindings.d.ts +22 -0
  425. package/dist/sale_crm/.kosh/bindings.js +15 -0
  426. package/dist/{mrp → sale_crm}/.kosh/schema.d.ts +389 -567
  427. package/dist/sale_crm/i18n/bn.d.ts +2 -0
  428. package/dist/sale_crm/i18n/bn.js +9 -0
  429. package/dist/sale_crm/index.d.ts +7 -0
  430. package/dist/sale_crm/index.js +104 -0
  431. package/dist/sale_crm/module.d.ts +5609 -0
  432. package/dist/sale_crm/module.js +73 -0
  433. package/dist/sale_portal/.kosh/bindings.js +1 -1
  434. package/dist/sale_portal/.kosh/schema.d.ts +291 -4
  435. package/dist/sale_portal/i18n/bn.d.ts +2 -0
  436. package/dist/sale_portal/i18n/bn.js +7 -0
  437. package/dist/sale_portal/index.js +10 -0
  438. package/dist/sale_portal/module.d.ts +2564 -294
  439. package/dist/sale_project/.kosh/bindings.js +1 -1
  440. package/dist/sale_project/.kosh/schema.d.ts +354 -5
  441. package/dist/sale_project/i18n/bn.d.ts +2 -0
  442. package/dist/sale_project/i18n/bn.js +12 -0
  443. package/dist/sale_project/index.js +2 -0
  444. package/dist/sale_project/module.d.ts +6249 -2402
  445. package/dist/sale_stock/.kosh/bindings.js +1 -1
  446. package/dist/sale_stock/.kosh/schema.d.ts +387 -5
  447. package/dist/sale_stock/i18n/bn.d.ts +2 -0
  448. package/dist/sale_stock/i18n/bn.js +15 -0
  449. package/dist/sale_stock/index.js +2 -0
  450. package/dist/sale_stock/module.d.ts +8057 -1759
  451. package/dist/sale_stock/module.js +20 -3
  452. package/dist/sales/.kosh/bindings.js +1 -1
  453. package/dist/sales/.kosh/schema.d.ts +291 -4
  454. package/dist/sales/i18n/bn.d.ts +2 -0
  455. package/dist/sales/i18n/bn.js +128 -0
  456. package/dist/sales/index.js +120 -5
  457. package/dist/sales/module.d.ts +3567 -633
  458. package/dist/sales/module.js +306 -11
  459. package/dist/server/api/duplicate.d.ts +14 -0
  460. package/dist/server/api/duplicate.js +75 -0
  461. package/dist/server/api/explain.d.ts +70 -0
  462. package/dist/server/api/explain.js +111 -0
  463. package/dist/server/api/metadata.d.ts +2 -0
  464. package/dist/server/api/metadata.js +9 -0
  465. package/dist/server/api/openapi.js +15 -0
  466. package/dist/server/api/rest.d.ts +1 -0
  467. package/dist/server/api/rest.js +76 -12
  468. package/dist/server/api/views.js +1 -1
  469. package/dist/server/apps.d.ts +16 -1
  470. package/dist/server/apps.js +164 -2
  471. package/dist/server/auth/base.js +2 -0
  472. package/dist/server/auth/service.d.ts +8 -0
  473. package/dist/server/auth/service.js +19 -0
  474. package/dist/server/events.d.ts +13 -0
  475. package/dist/server/events.js +22 -0
  476. package/dist/server/i18n.d.ts +27 -0
  477. package/dist/server/i18n.js +143 -0
  478. package/dist/server/index.d.ts +2 -0
  479. package/dist/server/index.js +2 -0
  480. package/dist/server/server.js +6 -0
  481. package/dist/settings/company.d.ts +3 -1
  482. package/dist/settings/company.js +26 -5
  483. package/dist/settings/routes.d.ts +10 -0
  484. package/dist/settings/routes.js +19 -3
  485. package/dist/settings/web/AppsPage.d.ts +3 -2
  486. package/dist/settings/web/AppsPage.js +26 -8
  487. package/dist/settings/web/CompaniesPage.js +91 -6
  488. package/dist/settings/web/messages.js +64 -0
  489. package/dist/sign/.kosh/bindings.js +1 -1
  490. package/dist/sign/.kosh/schema.d.ts +2 -1
  491. package/dist/sign/i18n/bn.d.ts +2 -0
  492. package/dist/sign/i18n/bn.js +97 -0
  493. package/dist/sign/index.d.ts +15 -0
  494. package/dist/sign/index.js +129 -1
  495. package/dist/sign/module.d.ts +40 -0
  496. package/dist/sign/module.js +11 -2
  497. package/dist/stock/.kosh/bindings.js +1 -1
  498. package/dist/stock/.kosh/schema.d.ts +298 -2
  499. package/dist/stock/i18n/bn.d.ts +2 -0
  500. package/dist/stock/i18n/bn.js +311 -0
  501. package/dist/stock/index.d.ts +3 -1
  502. package/dist/stock/index.js +442 -3
  503. package/dist/stock/ledger.d.ts +78 -0
  504. package/dist/stock/ledger.js +582 -0
  505. package/dist/stock/module.d.ts +5280 -2044
  506. package/dist/stock/module.js +222 -23
  507. package/dist/stock/replenish.js +16 -1
  508. package/dist/stock/returns.d.ts +157 -0
  509. package/dist/stock/returns.js +163 -0
  510. package/dist/stock/web/Ledger.d.ts +9 -0
  511. package/dist/stock/web/Ledger.js +108 -0
  512. package/dist/stock/web/Operations.d.ts +8 -0
  513. package/dist/stock/web/Operations.js +33 -0
  514. package/dist/stock/web/ReturnButton.d.ts +7 -0
  515. package/dist/stock/web/ReturnButton.js +62 -0
  516. package/dist/stock/web/index.d.ts +3 -0
  517. package/dist/stock/web/index.js +9 -0
  518. package/dist/stock/web/messages.js +154 -0
  519. package/dist/stock_account/.kosh/bindings.js +1 -1
  520. package/dist/stock_account/.kosh/schema.d.ts +682 -9
  521. package/dist/stock_account/i18n/bn.d.ts +2 -0
  522. package/dist/stock_account/i18n/bn.js +73 -0
  523. package/dist/stock_account/index.d.ts +1 -0
  524. package/dist/stock_account/index.js +131 -3
  525. package/dist/stock_account/landed.d.ts +429 -0
  526. package/dist/stock_account/landed.js +335 -0
  527. package/dist/stock_account/module.d.ts +11247 -3363
  528. package/dist/stock_account/module.js +135 -6
  529. package/dist/stock_account/web/LandedPreview.d.ts +7 -0
  530. package/dist/stock_account/web/LandedPreview.js +23 -0
  531. package/dist/stock_account/web/index.d.ts +11 -0
  532. package/dist/stock_account/web/index.js +16 -0
  533. package/dist/stock_account/web/messages.d.ts +2 -0
  534. package/dist/stock_account/web/messages.js +27 -0
  535. package/dist/todo/i18n/bn.d.ts +2 -0
  536. package/dist/todo/i18n/bn.js +66 -0
  537. package/dist/todo/index.js +59 -0
  538. package/dist/todo/module.d.ts +5 -0
  539. package/dist/todo/module.js +5 -3
  540. package/dist/trade_finance/.kosh/bindings.js +1 -1
  541. package/dist/trade_finance/.kosh/schema.d.ts +2 -1
  542. package/dist/trade_finance/i18n/bn.d.ts +2 -0
  543. package/dist/trade_finance/i18n/bn.js +162 -0
  544. package/dist/trade_finance/index.js +93 -0
  545. package/dist/trade_finance/module.d.ts +26 -0
  546. package/dist/trade_finance/module.js +27 -8
  547. package/dist/trade_finance_account/.kosh/bindings.js +1 -1
  548. package/dist/trade_finance_account/.kosh/schema.d.ts +530 -8
  549. package/dist/trade_finance_account/i18n/bn.d.ts +2 -0
  550. package/dist/trade_finance_account/i18n/bn.js +27 -0
  551. package/dist/trade_finance_account/index.js +2 -0
  552. package/dist/trade_finance_account/module.d.ts +4906 -1432
  553. package/dist/trade_finance_account/module.js +1 -0
  554. package/dist/trade_finance_purchase/.kosh/bindings.js +1 -1
  555. package/dist/trade_finance_purchase/.kosh/schema.d.ts +813 -3
  556. package/dist/trade_finance_purchase/i18n/bn.d.ts +2 -0
  557. package/dist/trade_finance_purchase/i18n/bn.js +6 -0
  558. package/dist/trade_finance_purchase/index.js +2 -0
  559. package/dist/trade_finance_purchase/module.d.ts +6909 -413
  560. package/dist/trade_finance_sale/.kosh/bindings.js +1 -1
  561. package/dist/trade_finance_sale/.kosh/schema.d.ts +291 -4
  562. package/dist/trade_finance_sale/i18n/bn.d.ts +2 -0
  563. package/dist/trade_finance_sale/i18n/bn.js +6 -0
  564. package/dist/trade_finance_sale/index.js +2 -0
  565. package/dist/trade_finance_sale/module.d.ts +2601 -331
  566. package/dist/ui/api.d.ts +2 -0
  567. package/dist/ui/app.d.ts +9 -0
  568. package/dist/ui/app.js +24 -4
  569. package/dist/ui/components/AppIcon.js +2 -2
  570. package/dist/ui/components/Explain.d.ts +69 -0
  571. package/dist/ui/components/Explain.js +62 -0
  572. package/dist/ui/context.d.ts +8 -1
  573. package/dist/ui/context.js +34 -1
  574. package/dist/ui/i18n/messages.d.ts +36 -0
  575. package/dist/ui/i18n/messages.js +72 -0
  576. package/dist/ui/index.d.ts +2 -1
  577. package/dist/ui/index.js +1 -0
  578. package/dist/ui/registry.d.ts +14 -0
  579. package/dist/ui/registry.js +10 -0
  580. package/dist/ui/views/FormView.d.ts +6 -0
  581. package/dist/ui/views/FormView.js +47 -10
  582. package/dist/ui/views/ListView.d.ts +8 -0
  583. package/dist/ui/views/ListView.js +10 -3
  584. package/dist/ui/views/StatsRow.js +2 -1
  585. package/dist/views/extend.js +12 -0
  586. package/dist/views/types.d.ts +13 -2
  587. package/dist/views/validate.js +8 -1
  588. package/dist/website/.kosh/bindings.js +1 -1
  589. package/dist/website/.kosh/schema.d.ts +2 -1
  590. package/dist/website/i18n/bn.d.ts +2 -0
  591. package/dist/website/i18n/bn.js +113 -0
  592. package/dist/website/index.js +36 -0
  593. package/dist/website/module.d.ts +20 -0
  594. package/dist/website/module.js +29 -5
  595. package/dist/website_crm/.kosh/bindings.js +1 -1
  596. package/dist/website_crm/.kosh/schema.d.ts +2 -1
  597. package/dist/website_crm/i18n/bn.d.ts +2 -0
  598. package/dist/website_crm/i18n/bn.js +5 -0
  599. package/dist/website_crm/index.js +2 -0
  600. package/dist/website_crm/module.d.ts +40 -0
  601. package/dist/website_sale/.kosh/bindings.js +1 -1
  602. package/dist/website_sale/.kosh/schema.d.ts +642 -17
  603. package/dist/website_sale/i18n/bn.d.ts +2 -0
  604. package/dist/website_sale/i18n/bn.js +132 -0
  605. package/dist/website_sale/index.js +83 -1
  606. package/dist/website_sale/module.d.ts +18705 -5550
  607. package/dist/website_sale/module.js +32 -10
  608. package/dist/website_sale/shop.js +22 -9
  609. package/dist/website_sale_stock/.kosh/bindings.js +1 -1
  610. package/dist/website_sale_stock/.kosh/schema.d.ts +737 -18
  611. package/dist/website_sale_stock/i18n/bn.d.ts +2 -0
  612. package/dist/website_sale_stock/i18n/bn.js +4 -0
  613. package/dist/website_sale_stock/index.js +2 -0
  614. package/dist/website_sale_stock/module.d.ts +10 -24997
  615. package/dist/website_sale_stock/module.js +7 -3
  616. package/package.json +36 -8
  617. package/dist/mrp/index.d.ts +0 -3
  618. package/dist/mrp/index.js +0 -393
  619. package/dist/mrp/module.js +0 -757
  620. package/dist/mrp_account/index.d.ts +0 -3
  621. package/dist/mrp_account/index.js +0 -22
  622. /package/dist/{mrp → approvals_purchase}/.kosh/bindings.d.ts +0 -0
  623. /package/dist/{mrp_account → indent}/.kosh/bindings.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: ca38f511b762dc83
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 0f7011c7102c3704
2
2
  // Schema view of module `project_purchase` (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
 
@@ -6,7 +6,15 @@ import type { F } from '../../server/orm.js';
6
6
  export interface SchemaView {
7
7
  readonly 'account.account': AccountAccount;
8
8
  readonly 'account.analytic': AccountAnalytic;
9
+ readonly 'account.bank.statement': AccountBankStatement;
10
+ readonly 'account.bank.statement.line': AccountBankStatementLine;
11
+ readonly 'account.fiscal.position': AccountFiscalPosition;
12
+ readonly 'account.fiscal.position.account': AccountFiscalPositionAccount;
13
+ readonly 'account.fiscal.position.tax': AccountFiscalPositionTax;
9
14
  readonly 'account.fiscal.year': AccountFiscalYear;
15
+ readonly 'account.followup': AccountFollowup;
16
+ readonly 'account.followup.level': AccountFollowupLevel;
17
+ readonly 'account.followup.sent': AccountFollowupSent;
10
18
  readonly 'account.full.reconcile': AccountFullReconcile;
11
19
  readonly 'account.journal': AccountJournal;
12
20
  readonly 'account.move': AccountMove;
@@ -16,10 +24,12 @@ export interface SchemaView {
16
24
  readonly 'account.payment.term': AccountPaymentTerm;
17
25
  readonly 'account.payment.term.line': AccountPaymentTermLine;
18
26
  readonly 'account.payment.withholding': AccountPaymentWithholding;
27
+ readonly 'account.reconcile.rule': AccountReconcileRule;
19
28
  readonly 'account.tax': AccountTax;
20
29
  readonly 'account.tax.component': AccountTaxComponent;
21
30
  readonly 'account.withholding': AccountWithholding;
22
31
  readonly 'approval.delegation': ApprovalDelegation;
32
+ readonly 'approval.event': ApprovalEvent;
23
33
  readonly 'approval.level': ApprovalLevel;
24
34
  readonly 'approval.link': ApprovalLink;
25
35
  readonly 'approval.policy': ApprovalPolicy;
@@ -46,8 +56,16 @@ export interface SchemaView {
46
56
  readonly 'oauth.code': OauthCode;
47
57
  readonly 'oauth.grant': OauthGrant;
48
58
  readonly 'oauth.token': OauthToken;
59
+ readonly 'product.attribute': ProductAttribute;
60
+ readonly 'product.attribute.value': ProductAttributeValue;
49
61
  readonly 'product.category': ProductCategory;
62
+ readonly 'product.pricelist': ProductPricelist;
63
+ readonly 'product.pricelist.rule': ProductPricelistRule;
50
64
  readonly 'product.product': ProductProduct;
65
+ readonly 'product.template': ProductTemplate;
66
+ readonly 'product.template.exclusion': ProductTemplateExclusion;
67
+ readonly 'product.template.line': ProductTemplateLine;
68
+ readonly 'product.vendor.price': ProductVendorPrice;
51
69
  readonly 'project.budget.line': ProjectBudgetLine;
52
70
  readonly 'project.change': ProjectChange;
53
71
  readonly 'project.issue': ProjectIssue;
@@ -66,8 +84,23 @@ export interface SchemaView {
66
84
  readonly 'project.timesheet': ProjectTimesheet;
67
85
  readonly 'project.type': ProjectType;
68
86
  readonly 'project.work.package': ProjectWorkPackage;
87
+ readonly 'purchase.agreement': PurchaseAgreement;
88
+ readonly 'purchase.agreement.line': PurchaseAgreementLine;
89
+ readonly 'purchase.comparison': PurchaseComparison;
90
+ readonly 'purchase.comparison.line': PurchaseComparisonLine;
69
91
  readonly 'purchase.order': PurchaseOrder;
70
92
  readonly 'purchase.order.line': PurchaseOrderLine;
93
+ readonly 'purchase.request': PurchaseRequest;
94
+ readonly 'purchase.request.line': PurchaseRequestLine;
95
+ readonly 'purchase.technical.comparison': PurchaseTechnicalComparison;
96
+ readonly 'purchase.technical.comparison.line': PurchaseTechnicalComparisonLine;
97
+ readonly 'purchase.tender': PurchaseTender;
98
+ readonly 'purchase.tender.line': PurchaseTenderLine;
99
+ readonly 'purchase.tender.response': PurchaseTenderResponse;
100
+ readonly 'purchase.tender.response.line': PurchaseTenderResponseLine;
101
+ readonly 'purchase.vendor.request': PurchaseVendorRequest;
102
+ readonly 'purchase.work.acceptance': PurchaseWorkAcceptance;
103
+ readonly 'purchase.work.acceptance.line': PurchaseWorkAcceptanceLine;
71
104
  readonly 'report.dashboard': ReportDashboard;
72
105
  readonly 'report.output': ReportOutput;
73
106
  readonly 'report.schedule': ReportSchedule;
@@ -79,6 +112,7 @@ export interface SchemaView {
79
112
  readonly 'res.currency.rate': ResCurrencyRate;
80
113
  readonly 'res.partner': ResPartner;
81
114
  readonly 'res.partner.tag': ResPartnerTag;
115
+ readonly 'res.segment': ResSegment;
82
116
  readonly 'res.users': ResUsers;
83
117
  readonly 'storage.attachment': StorageAttachment;
84
118
  readonly 'uom.uom': UomUom;
@@ -134,6 +168,134 @@ export interface AccountAnalytic {
134
168
  export interface AccountAnalyticMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.analytic'> {
135
169
  }
136
170
 
171
+ /** `account.bank.statement` (owner: accounting). */
172
+ export interface AccountBankStatement {
173
+ readonly name: 'account.bank.statement';
174
+ readonly fields: {
175
+ readonly id: F.Id<'account.bank.statement'>;
176
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
177
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
178
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
179
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
180
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
181
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
182
+ readonly name: F.Char<{ readonly required: true }>;
183
+ readonly journal: F.Many2one<'account.journal', { readonly required: true }>;
184
+ readonly date: F.DateOnly<{ readonly required: true }>;
185
+ readonly balanceStart: F.Decimal<{ readonly default: true }>;
186
+ readonly balanceEnd: F.Decimal<{ readonly default: true }>;
187
+ readonly lines: F.One2many<'account.bank.statement.line', { readonly required: true }>;
188
+ readonly state: F.State<'open' | 'done', { readonly required: true; readonly readonly: true; readonly default: true }>;
189
+ };
190
+ readonly methods: AccountBankStatementMethods;
191
+ }
192
+
193
+ /** Methods of `account.bank.statement`: declared ones and transitions. */
194
+ export interface AccountBankStatementMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.bank.statement'> {
195
+ readonly 'close': () => Promise<void>;
196
+ readonly 'reopen': () => Promise<void>;
197
+ }
198
+
199
+ /** `account.bank.statement.line` (owner: accounting). */
200
+ export interface AccountBankStatementLine {
201
+ readonly name: 'account.bank.statement.line';
202
+ readonly fields: {
203
+ readonly id: F.Id<'account.bank.statement.line'>;
204
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
205
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
206
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
207
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
208
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
209
+ readonly statement: F.Many2one<'account.bank.statement', { readonly required: true }>;
210
+ readonly date: F.DateOnly<{ readonly required: true }>;
211
+ readonly label: F.Char<{ readonly required: true }>;
212
+ readonly reference: F.Char;
213
+ readonly partner: F.Many2one<'res.partner'>;
214
+ readonly amount: F.Decimal<{ readonly required: true }>;
215
+ readonly uniqueKey: F.Char;
216
+ readonly payment: F.Many2one<'account.payment'>;
217
+ readonly move: F.Many2one<'account.move'>;
218
+ readonly rule: F.Many2one<'account.reconcile.rule'>;
219
+ readonly state: F.Selection<'open' | 'matched', { readonly required: true; readonly default: true }>;
220
+ };
221
+ readonly methods: AccountBankStatementLineMethods;
222
+ }
223
+
224
+ /** Methods of `account.bank.statement.line`: declared ones and transitions. */
225
+ export interface AccountBankStatementLineMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.bank.statement.line'> {
226
+ }
227
+
228
+ /** `account.fiscal.position` (owner: accounting). */
229
+ export interface AccountFiscalPosition {
230
+ readonly name: 'account.fiscal.position';
231
+ readonly fields: {
232
+ readonly id: F.Id<'account.fiscal.position'>;
233
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
234
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
235
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
236
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
237
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
238
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
239
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
240
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
241
+ readonly sequence: F.Integer<{ readonly default: true }>;
242
+ readonly autoApply: F.Bool<{ readonly required: true; readonly default: true }>;
243
+ readonly countries: F.Char;
244
+ readonly states: F.Char;
245
+ readonly vatRequired: F.Selection<'any' | 'with' | 'without', { readonly required: true; readonly default: true }>;
246
+ readonly note: F.Text<{ readonly translate: true }>;
247
+ readonly taxes: F.One2many<'account.fiscal.position.tax', { readonly required: true }>;
248
+ readonly accounts: F.One2many<'account.fiscal.position.account', { readonly required: true }>;
249
+ };
250
+ readonly methods: AccountFiscalPositionMethods;
251
+ }
252
+
253
+ /** Methods of `account.fiscal.position`: declared ones and transitions. */
254
+ export interface AccountFiscalPositionMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.fiscal.position'> {
255
+ }
256
+
257
+ /** `account.fiscal.position.account` (owner: accounting). */
258
+ export interface AccountFiscalPositionAccount {
259
+ readonly name: 'account.fiscal.position.account';
260
+ readonly fields: {
261
+ readonly id: F.Id<'account.fiscal.position.account'>;
262
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
263
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
264
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
265
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
266
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
267
+ readonly position: F.Many2one<'account.fiscal.position', { readonly required: true }>;
268
+ readonly accountSrc: F.Many2one<'account.account', { readonly required: true }>;
269
+ readonly accountDest: F.Many2one<'account.account', { readonly required: true }>;
270
+ };
271
+ readonly methods: AccountFiscalPositionAccountMethods;
272
+ }
273
+
274
+ /** Methods of `account.fiscal.position.account`: declared ones and transitions. */
275
+ export interface AccountFiscalPositionAccountMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.fiscal.position.account'> {
276
+ }
277
+
278
+ /** `account.fiscal.position.tax` (owner: accounting). */
279
+ export interface AccountFiscalPositionTax {
280
+ readonly name: 'account.fiscal.position.tax';
281
+ readonly fields: {
282
+ readonly id: F.Id<'account.fiscal.position.tax'>;
283
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
284
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
285
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
286
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
287
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
288
+ readonly position: F.Many2one<'account.fiscal.position', { readonly required: true }>;
289
+ readonly taxSrc: F.Many2one<'account.tax', { readonly required: true }>;
290
+ readonly taxDest: F.Many2one<'account.tax'>;
291
+ };
292
+ readonly methods: AccountFiscalPositionTaxMethods;
293
+ }
294
+
295
+ /** Methods of `account.fiscal.position.tax`: declared ones and transitions. */
296
+ export interface AccountFiscalPositionTaxMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.fiscal.position.tax'> {
297
+ }
298
+
137
299
  /** `account.fiscal.year` (owner: accounting). */
138
300
  export interface AccountFiscalYear {
139
301
  readonly name: 'account.fiscal.year';
@@ -160,6 +322,84 @@ export interface AccountFiscalYear {
160
322
  export interface AccountFiscalYearMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.fiscal.year'> {
161
323
  }
162
324
 
325
+ /** `account.followup` (owner: accounting). */
326
+ export interface AccountFollowup {
327
+ readonly name: 'account.followup';
328
+ readonly fields: {
329
+ readonly id: F.Id<'account.followup'>;
330
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
331
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
332
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
333
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
334
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
335
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
336
+ readonly partner: F.Many2one<'res.partner', { readonly required: true }>;
337
+ readonly level: F.Many2one<'account.followup.level'>;
338
+ readonly sentAt: F.Datetime;
339
+ readonly pausedUntil: F.DateOnly;
340
+ readonly pauseNote: F.Char;
341
+ };
342
+ readonly methods: AccountFollowupMethods;
343
+ }
344
+
345
+ /** Methods of `account.followup`: declared ones and transitions. */
346
+ export interface AccountFollowupMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.followup'> {
347
+ }
348
+
349
+ /** `account.followup.level` (owner: accounting). */
350
+ export interface AccountFollowupLevel {
351
+ readonly name: 'account.followup.level';
352
+ readonly fields: {
353
+ readonly id: F.Id<'account.followup.level'>;
354
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
355
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
356
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
357
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
358
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
359
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
360
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
361
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
362
+ readonly days: F.Integer<{ readonly required: true; readonly default: true }>;
363
+ readonly sendEmail: F.Bool<{ readonly required: true; readonly default: true }>;
364
+ readonly sendSms: F.Bool<{ readonly required: true; readonly default: true }>;
365
+ readonly sendWhatsapp: F.Bool<{ readonly required: true; readonly default: true }>;
366
+ readonly subject: F.Char<{ readonly required: true; readonly translate: true }>;
367
+ readonly body: F.Text<{ readonly required: true; readonly translate: true }>;
368
+ readonly shortText: F.Char<{ readonly translate: true }>;
369
+ readonly blockSales: F.Bool<{ readonly required: true; readonly default: true }>;
370
+ };
371
+ readonly methods: AccountFollowupLevelMethods;
372
+ }
373
+
374
+ /** Methods of `account.followup.level`: declared ones and transitions. */
375
+ export interface AccountFollowupLevelMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.followup.level'> {
376
+ }
377
+
378
+ /** `account.followup.sent` (owner: accounting). */
379
+ export interface AccountFollowupSent {
380
+ readonly name: 'account.followup.sent';
381
+ readonly fields: {
382
+ readonly id: F.Id<'account.followup.sent'>;
383
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
384
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
385
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
386
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
387
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
388
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
389
+ readonly partner: F.Many2one<'res.partner', { readonly required: true }>;
390
+ readonly level: F.Many2one<'account.followup.level'>;
391
+ readonly amount: F.Char;
392
+ readonly invoices: F.Many2many<'account.move', { readonly required: true }>;
393
+ readonly channels: F.Char;
394
+ readonly automatic: F.Bool<{ readonly required: true; readonly default: true }>;
395
+ };
396
+ readonly methods: AccountFollowupSentMethods;
397
+ }
398
+
399
+ /** Methods of `account.followup.sent`: declared ones and transitions. */
400
+ export interface AccountFollowupSentMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.followup.sent'> {
401
+ }
402
+
163
403
  /** `account.full.reconcile` (owner: accounting). */
164
404
  export interface AccountFullReconcile {
165
405
  readonly name: 'account.full.reconcile';
@@ -197,6 +437,8 @@ export interface AccountJournal {
197
437
  readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
198
438
  readonly type: F.Selection<'sale' | 'purchase' | 'cash' | 'bank' | 'general', { readonly required: true; readonly default: true }>;
199
439
  readonly defaultAccount: F.Many2one<'account.account'>;
440
+ readonly bankFeed: F.Char;
441
+ readonly bankFeedCursor: F.Char;
200
442
  };
201
443
  readonly methods: AccountJournalMethods;
202
444
  }
@@ -238,6 +480,7 @@ export interface AccountMove {
238
480
  readonly dateDue: F.DateOnly;
239
481
  readonly paymentDetails: F.Text<{ readonly readonly: true; readonly compute: true }>;
240
482
  readonly paymentTerm: F.Many2one<'account.payment.term'>;
483
+ readonly fiscalPosition: F.Many2one<'account.fiscal.position'>;
241
484
  readonly invoiceOrigin: F.Char;
242
485
  readonly amountUntaxed: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
243
486
  readonly amountTax: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
@@ -266,7 +509,7 @@ export interface AccountMoveMethods extends F.Methods<typeof import('../../accou
266
509
  readonly 'submit': () => Promise<void>;
267
510
  }
268
511
 
269
- /** `account.move.line` (owner: accounting). */
512
+ /** `account.move.line` (owner: accounting; extended by: purchase_account). */
270
513
  export interface AccountMoveLine {
271
514
  readonly name: 'account.move.line';
272
515
  readonly fields: {
@@ -312,12 +555,14 @@ export interface AccountMoveLine {
312
555
  readonly amountResidual: F.Monetary<'companyCurrency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
313
556
  readonly amountResidualCurrency: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
314
557
  readonly reconciled: F.Bool<{ readonly required: true; readonly readonly: true; readonly default: true; readonly compute: true; readonly store: true }>;
558
+ readonly purchaseLine: F.Many2one<'purchase.order.line'>; // purchase_account
559
+ readonly matchNote: F.Char<{ readonly readonly: true; readonly compute: true }>; // purchase_account
315
560
  };
316
561
  readonly methods: AccountMoveLineMethods;
317
562
  }
318
563
 
319
564
  /** Methods of `account.move.line`: declared ones and transitions. */
320
- export interface AccountMoveLineMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.move.line'> {
565
+ export interface AccountMoveLineMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.move.line'>, F.Methods<typeof import('../../purchase_account/index.js').purchaseAccountShutro, 'account.move.line'> {
321
566
  }
322
567
 
323
568
  /** `account.partial.reconcile` (owner: accounting). */
@@ -446,6 +691,38 @@ export interface AccountPaymentWithholding {
446
691
  export interface AccountPaymentWithholdingMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.payment.withholding'> {
447
692
  }
448
693
 
694
+ /** `account.reconcile.rule` (owner: accounting). */
695
+ export interface AccountReconcileRule {
696
+ readonly name: 'account.reconcile.rule';
697
+ readonly fields: {
698
+ readonly id: F.Id<'account.reconcile.rule'>;
699
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
700
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
701
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
702
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
703
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
704
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
705
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
706
+ readonly name: F.Char<{ readonly required: true }>;
707
+ readonly sequence: F.Integer<{ readonly default: true }>;
708
+ readonly journals: F.Many2many<'account.journal', { readonly required: true }>;
709
+ readonly labelContains: F.Char;
710
+ readonly direction: F.Selection<'both' | 'in' | 'out', { readonly required: true; readonly default: true }>;
711
+ readonly amountMin: F.Decimal;
712
+ readonly amountMax: F.Decimal;
713
+ readonly partner: F.Many2one<'res.partner'>;
714
+ readonly outcome: F.Selection<'match' | 'write_off' | 'suggest', { readonly required: true; readonly default: true }>;
715
+ readonly writeOffAccount: F.Many2one<'account.account'>;
716
+ readonly writeOffLabel: F.Char;
717
+ readonly hits: F.Integer<{ readonly default: true }>;
718
+ };
719
+ readonly methods: AccountReconcileRuleMethods;
720
+ }
721
+
722
+ /** Methods of `account.reconcile.rule`: declared ones and transitions. */
723
+ export interface AccountReconcileRuleMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.reconcile.rule'> {
724
+ }
725
+
449
726
  /** `account.tax` (owner: product; extended by: accounting). */
450
727
  export interface AccountTax {
451
728
  readonly name: 'account.tax';
@@ -555,6 +832,29 @@ export interface ApprovalDelegation {
555
832
  export interface ApprovalDelegationMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.delegation'> {
556
833
  }
557
834
 
835
+ /** `approval.event` (owner: permissions). */
836
+ export interface ApprovalEvent {
837
+ readonly name: 'approval.event';
838
+ readonly fields: {
839
+ readonly id: F.Id<'approval.event'>;
840
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
841
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
842
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
843
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
844
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
845
+ readonly request: F.Many2one<'approval.request', { readonly required: true }>;
846
+ readonly at: F.Datetime<{ readonly required: true }>;
847
+ readonly user: F.Many2one<'res.users'>;
848
+ readonly kind: F.Selection<'created' | 'started' | 'voted' | 'approved' | 'rejected' | 'sent_back' | 'cancelled' | 'skipped' | 'reminded' | 'escalated' | 'auto' | 'reassigned' | 'synced' | 'notified', { readonly required: true }>;
849
+ readonly note: F.Text;
850
+ };
851
+ readonly methods: ApprovalEventMethods;
852
+ }
853
+
854
+ /** Methods of `approval.event`: declared ones and transitions. */
855
+ export interface ApprovalEventMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.event'> {
856
+ }
857
+
558
858
  /** `approval.level` (owner: permissions). */
559
859
  export interface ApprovalLevel {
560
860
  readonly name: 'approval.level';
@@ -569,7 +869,9 @@ export interface ApprovalLevel {
569
869
  readonly sequence: F.Integer<{ readonly default: true }>;
570
870
  readonly name: F.Char<{ readonly required: true }>;
571
871
  readonly condition: F.Json;
572
- readonly approverKind: F.Selection<'role' | 'users' | 'manager' | 'field', { readonly required: true; readonly default: true }>;
872
+ readonly approverKind: F.Selection<'role' | 'users' | 'manager' | 'department_head' | 'department_approvers' | 'employee' | 'field' | 'record', { readonly required: true; readonly default: true }>;
873
+ readonly extraUsers: F.Many2many<'res.users', { readonly required: true }>;
874
+ readonly backupUsers: F.Many2many<'res.users', { readonly required: true }>;
573
875
  readonly approverRole: F.Char;
574
876
  readonly approverUsers: F.Many2many<'res.users', { readonly required: true }>;
575
877
  readonly approverField: F.Char;
@@ -623,11 +925,18 @@ export interface ApprovalPolicy {
623
925
  readonly targetModel: F.Char<{ readonly required: true }>;
624
926
  readonly sequence: F.Integer<{ readonly default: true }>;
625
927
  readonly company: F.Many2one<'res.company'>;
928
+ readonly companies: F.Many2many<'res.company', { readonly required: true }>;
929
+ readonly segment: F.Many2one<'res.segment'>;
626
930
  readonly onApproved: F.Char;
627
931
  readonly onRejected: F.Char;
628
932
  readonly onSentBack: F.Char;
629
933
  readonly onWithdrawn: F.Char;
630
934
  readonly reasonRequired: F.Bool<{ readonly required: true; readonly default: true }>;
935
+ readonly condition: F.Json;
936
+ readonly whenNobody: F.Selection<'refuse' | 'admins' | 'skip', { readonly required: true; readonly default: true }>;
937
+ readonly skipDuplicates: F.Bool<{ readonly required: true; readonly default: true }>;
938
+ readonly syncPending: F.Selection<'off' | 'add' | 'replace', { readonly required: true; readonly default: true }>;
939
+ readonly notifyOnSync: F.Bool<{ readonly required: true; readonly default: true }>;
631
940
  readonly levels: F.One2many<'approval.level', { readonly required: true }>;
632
941
  };
633
942
  readonly methods: ApprovalPolicyMethods;
@@ -656,6 +965,7 @@ export interface ApprovalRequest {
656
965
  readonly company: F.Many2one<'res.company'>;
657
966
  readonly approverRole: F.Char;
658
967
  readonly approvers: F.Many2many<'res.users', { readonly required: true }>;
968
+ readonly backups: F.Many2many<'res.users', { readonly required: true }>;
659
969
  readonly required: F.Integer<{ readonly required: true; readonly default: true }>;
660
970
  readonly round: F.Integer<{ readonly required: true; readonly default: true }>;
661
971
  readonly votes: F.One2many<'approval.vote', { readonly required: true }>;
@@ -663,6 +973,8 @@ export interface ApprovalRequest {
663
973
  readonly remindedAt: F.Datetime;
664
974
  readonly escalatedTo: F.Char;
665
975
  readonly escalatedAt: F.Datetime;
976
+ readonly startedAt: F.Datetime;
977
+ readonly explanation: F.Text;
666
978
  readonly state: F.Selection<'pending' | 'approved' | 'rejected' | 'sent_back' | 'cancelled', { readonly required: true; readonly default: true }>;
667
979
  readonly requestedBy: F.Many2one<'res.users'>;
668
980
  readonly decidedBy: F.Many2one<'res.users'>;
@@ -693,6 +1005,8 @@ export interface ApprovalVote {
693
1005
  readonly at: F.Datetime<{ readonly required: true }>;
694
1006
  readonly onBehalfOf: F.Many2one<'res.users'>;
695
1007
  readonly ip: F.Char;
1008
+ readonly auto: F.Bool<{ readonly required: true; readonly default: true }>;
1009
+ readonly asBackup: F.Bool<{ readonly required: true; readonly default: true }>;
696
1010
  };
697
1011
  readonly methods: ApprovalVoteMethods;
698
1012
  }
@@ -1214,7 +1528,54 @@ export interface OauthToken {
1214
1528
  export interface OauthTokenMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.token'> {
1215
1529
  }
1216
1530
 
1217
- /** `product.category` (owner: product). */
1531
+ /** `product.attribute` (owner: product). */
1532
+ export interface ProductAttribute {
1533
+ readonly name: 'product.attribute';
1534
+ readonly fields: {
1535
+ readonly id: F.Id<'product.attribute'>;
1536
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1537
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1538
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1539
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1540
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1541
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1542
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
1543
+ readonly display: F.Selection<'list' | 'radio' | 'swatch' | 'size', { readonly required: true; readonly default: true }>;
1544
+ readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
1545
+ readonly values: F.One2many<'product.attribute.value', { readonly required: true }>;
1546
+ };
1547
+ readonly methods: ProductAttributeMethods;
1548
+ }
1549
+
1550
+ /** Methods of `product.attribute`: declared ones and transitions. */
1551
+ export interface ProductAttributeMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.attribute'> {
1552
+ }
1553
+
1554
+ /** `product.attribute.value` (owner: product). */
1555
+ export interface ProductAttributeValue {
1556
+ readonly name: 'product.attribute.value';
1557
+ readonly fields: {
1558
+ readonly id: F.Id<'product.attribute.value'>;
1559
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1560
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1561
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1562
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1563
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1564
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1565
+ readonly attribute: F.Many2one<'product.attribute', { readonly required: true }>;
1566
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
1567
+ readonly color: F.Char;
1568
+ readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
1569
+ readonly extraPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
1570
+ };
1571
+ readonly methods: ProductAttributeValueMethods;
1572
+ }
1573
+
1574
+ /** Methods of `product.attribute.value`: declared ones and transitions. */
1575
+ export interface ProductAttributeValueMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.attribute.value'> {
1576
+ }
1577
+
1578
+ /** `product.category` (owner: product; extended by: accounting). */
1218
1579
  export interface ProductCategory {
1219
1580
  readonly name: 'product.category';
1220
1581
  readonly fields: {
@@ -1227,15 +1588,78 @@ export interface ProductCategory {
1227
1588
  readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1228
1589
  readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
1229
1590
  readonly parent: F.Many2one<'product.category'>;
1591
+ readonly approvalUsers: F.Many2many<'res.users', { readonly required: true }>;
1592
+ readonly incomeAccount: F.Many2one<'account.account'>; // accounting
1593
+ readonly expenseAccount: F.Many2one<'account.account'>; // accounting
1230
1594
  };
1231
1595
  readonly methods: ProductCategoryMethods;
1232
1596
  }
1233
1597
 
1234
1598
  /** Methods of `product.category`: declared ones and transitions. */
1235
- export interface ProductCategoryMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.category'> {
1599
+ export interface ProductCategoryMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.category'>, F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'product.category'> {
1600
+ }
1601
+
1602
+ /** `product.pricelist` (owner: product). */
1603
+ export interface ProductPricelist {
1604
+ readonly name: 'product.pricelist';
1605
+ readonly fields: {
1606
+ readonly id: F.Id<'product.pricelist'>;
1607
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1608
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1609
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1610
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1611
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1612
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1613
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
1614
+ readonly sequence: F.Integer<{ readonly default: true }>;
1615
+ readonly currency: F.Many2one<'res.currency'>;
1616
+ readonly company: F.Many2one<'res.company'>;
1617
+ readonly rules: F.One2many<'product.pricelist.rule', { readonly required: true }>;
1618
+ readonly note: F.Text;
1619
+ };
1620
+ readonly methods: ProductPricelistMethods;
1621
+ }
1622
+
1623
+ /** Methods of `product.pricelist`: declared ones and transitions. */
1624
+ export interface ProductPricelistMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.pricelist'> {
1625
+ }
1626
+
1627
+ /** `product.pricelist.rule` (owner: product). */
1628
+ export interface ProductPricelistRule {
1629
+ readonly name: 'product.pricelist.rule';
1630
+ readonly fields: {
1631
+ readonly id: F.Id<'product.pricelist.rule'>;
1632
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1633
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1634
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1635
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1636
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1637
+ readonly pricelist: F.Many2one<'product.pricelist', { readonly required: true }>;
1638
+ readonly sequence: F.Integer<{ readonly default: true }>;
1639
+ readonly appliesTo: F.Selection<'all' | 'category' | 'product', { readonly required: true; readonly default: true }>;
1640
+ readonly product: F.Many2one<'product.product'>;
1641
+ readonly category: F.Many2one<'product.category'>;
1642
+ readonly minQuantity: F.Decimal<{ readonly default: true }>;
1643
+ readonly dateFrom: F.DateOnly;
1644
+ readonly dateTo: F.DateOnly;
1645
+ readonly compute: F.Selection<'fixed' | 'discount' | 'formula', { readonly required: true; readonly default: true }>;
1646
+ readonly fixedPrice: F.Decimal;
1647
+ readonly base: F.Selection<'list' | 'cost' | 'pricelist', { readonly required: true; readonly default: true }>;
1648
+ readonly basePricelist: F.Many2one<'product.pricelist'>;
1649
+ readonly discount: F.Decimal<{ readonly default: true }>;
1650
+ readonly surcharge: F.Decimal<{ readonly default: true }>;
1651
+ readonly rounding: F.Decimal<{ readonly default: true }>;
1652
+ readonly minMargin: F.Decimal;
1653
+ readonly maxMargin: F.Decimal;
1654
+ };
1655
+ readonly methods: ProductPricelistRuleMethods;
1236
1656
  }
1237
1657
 
1238
- /** `product.product` (owner: product). */
1658
+ /** Methods of `product.pricelist.rule`: declared ones and transitions. */
1659
+ export interface ProductPricelistRuleMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.pricelist.rule'> {
1660
+ }
1661
+
1662
+ /** `product.product` (owner: product; extended by: accounting). */
1239
1663
  export interface ProductProduct {
1240
1664
  readonly name: 'product.product';
1241
1665
  readonly fields: {
@@ -1250,8 +1674,11 @@ export interface ProductProduct {
1250
1674
  readonly code: F.Char<{ readonly readonly: true; readonly sequence: true }>;
1251
1675
  readonly kind: F.Selection<'goods' | 'service', { readonly required: true; readonly default: true }>;
1252
1676
  readonly category: F.Many2one<'product.category'>;
1677
+ readonly invoicePolicy: F.Selection<'ordered' | 'delivered', { readonly default: true }>;
1253
1678
  readonly uom: F.Many2one<'uom.uom'>;
1254
1679
  readonly barcode: F.Char;
1680
+ readonly weight: F.Decimal;
1681
+ readonly volume: F.Decimal;
1255
1682
  readonly image: F.Many2one<'storage.attachment'>;
1256
1683
  readonly listPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
1257
1684
  readonly standardPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
@@ -1262,74 +1689,192 @@ export interface ProductProduct {
1262
1689
  readonly tax: F.Many2one<'account.tax', { readonly readonly: true }>;
1263
1690
  readonly purchaseTax: F.Many2one<'account.tax', { readonly readonly: true }>;
1264
1691
  readonly description: F.Text<{ readonly translate: true }>;
1692
+ readonly template: F.Many2one<'product.template'>;
1693
+ readonly attributeValues: F.Many2many<'product.attribute.value', { readonly required: true }>;
1694
+ readonly followsTemplatePrice: F.Bool<{ readonly required: true; readonly default: true }>;
1695
+ readonly incomeAccount: F.Many2one<'account.account'>; // accounting
1696
+ readonly expenseAccount: F.Many2one<'account.account'>; // accounting
1265
1697
  };
1266
1698
  readonly methods: ProductProductMethods;
1267
1699
  }
1268
1700
 
1269
1701
  /** Methods of `product.product`: declared ones and transitions. */
1270
- export interface ProductProductMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.product'> {
1702
+ export interface ProductProductMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.product'>, F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'product.product'> {
1271
1703
  }
1272
1704
 
1273
- /** `project.budget.line` (owner: project). */
1274
- export interface ProjectBudgetLine {
1275
- readonly name: 'project.budget.line';
1705
+ /** `product.template` (owner: product). */
1706
+ export interface ProductTemplate {
1707
+ readonly name: 'product.template';
1276
1708
  readonly fields: {
1277
- readonly id: F.Id<'project.budget.line'>;
1709
+ readonly id: F.Id<'product.template'>;
1278
1710
  readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1279
1711
  readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1280
1712
  readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1281
1713
  readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1282
1714
  readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1283
- readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1284
- readonly project: F.Many2one<'project.project', { readonly required: true }>;
1285
- readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
1286
- readonly name: F.Char<{ readonly required: true }>;
1287
- readonly category: F.Selection<'labour' | 'materials' | 'services' | 'equipment' | 'other', { readonly required: true; readonly default: true }>;
1288
- readonly phase: F.Many2one<'project.phase'>;
1289
- readonly workPackage: F.Many2one<'project.work.package'>;
1290
- readonly planned: F.Decimal<{ readonly required: true; readonly default: true }>;
1715
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1716
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
1717
+ readonly kind: F.Selection<'goods' | 'service', { readonly required: true; readonly default: true }>;
1718
+ readonly category: F.Many2one<'product.category'>;
1719
+ readonly uom: F.Many2one<'uom.uom'>;
1720
+ readonly listPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
1721
+ readonly standardPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
1722
+ readonly saleOk: F.Bool<{ readonly required: true; readonly default: true }>;
1723
+ readonly purchaseOk: F.Bool<{ readonly required: true; readonly default: true }>;
1724
+ readonly taxes: F.Many2many<'account.tax', { readonly required: true }>;
1725
+ readonly purchaseTaxes: F.Many2many<'account.tax', { readonly required: true }>;
1726
+ readonly image: F.Many2one<'storage.attachment'>;
1727
+ readonly description: F.Text<{ readonly translate: true }>;
1728
+ readonly lines: F.One2many<'product.template.line', { readonly required: true }>;
1729
+ readonly exclusions: F.One2many<'product.template.exclusion', { readonly required: true }>;
1730
+ readonly variants: F.One2many<'product.product', { readonly required: true }>;
1731
+ readonly variantCount: F.Integer<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1732
+ readonly state: F.State<'draft' | 'ready', { readonly required: true; readonly readonly: true; readonly default: true }>;
1291
1733
  };
1292
- readonly methods: ProjectBudgetLineMethods;
1734
+ readonly methods: ProductTemplateMethods;
1293
1735
  }
1294
1736
 
1295
- /** Methods of `project.budget.line`: declared ones and transitions. */
1296
- export interface ProjectBudgetLineMethods extends F.Methods<typeof import('../../project/index.js').projectShutro, 'project.budget.line'> {
1737
+ /** Methods of `product.template`: declared ones and transitions. */
1738
+ export interface ProductTemplateMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.template'> {
1739
+ readonly 'generate': () => Promise<void>;
1297
1740
  }
1298
1741
 
1299
- /** `project.change` (owner: project). */
1300
- export interface ProjectChange {
1301
- readonly name: 'project.change';
1742
+ /** `product.template.exclusion` (owner: product). */
1743
+ export interface ProductTemplateExclusion {
1744
+ readonly name: 'product.template.exclusion';
1302
1745
  readonly fields: {
1303
- readonly id: F.Id<'project.change'>;
1746
+ readonly id: F.Id<'product.template.exclusion'>;
1304
1747
  readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1305
1748
  readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1306
1749
  readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1307
1750
  readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1308
1751
  readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1309
- readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1310
- readonly name: F.Char<{ readonly readonly: true; readonly sequence: true }>;
1311
- readonly project: F.Many2one<'project.project', { readonly required: true }>;
1312
- readonly title: F.Char<{ readonly required: true }>;
1313
- readonly requester: F.Many2one<'res.users', { readonly default: true }>;
1314
- readonly sponsor: F.Many2one<'res.users', { readonly readonly: true; readonly compute: true; readonly store: true }>;
1315
- readonly reason: F.Text<{ readonly required: true }>;
1316
- readonly impact: F.Text;
1317
- readonly newDateEnd: F.DateOnly;
1318
- readonly newBudget: F.Decimal;
1319
- readonly previousDateEnd: F.DateOnly;
1320
- readonly previousBaselineEnd: F.DateOnly;
1321
- readonly previousBudget: F.Decimal;
1322
- readonly appliedAt: F.Datetime;
1323
- readonly state: F.State<'draft' | 'submitted' | 'applied' | 'rejected' | 'cancelled', { readonly required: true; readonly readonly: true; readonly default: true }>;
1752
+ readonly template: F.Many2one<'product.template', { readonly required: true }>;
1753
+ readonly values: F.Many2many<'product.attribute.value', { readonly required: true }>;
1754
+ readonly note: F.Char;
1324
1755
  };
1325
- readonly methods: ProjectChangeMethods;
1756
+ readonly methods: ProductTemplateExclusionMethods;
1326
1757
  }
1327
1758
 
1328
- /** Methods of `project.change`: declared ones and transitions. */
1329
- export interface ProjectChangeMethods extends F.Methods<typeof import('../../project/index.js').projectShutro, 'project.change'> {
1330
- readonly 'approve': () => Promise<void>;
1331
- readonly 'cancel': () => Promise<void>;
1332
- readonly 'redraft': () => Promise<void>;
1759
+ /** Methods of `product.template.exclusion`: declared ones and transitions. */
1760
+ export interface ProductTemplateExclusionMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.template.exclusion'> {
1761
+ }
1762
+
1763
+ /** `product.template.line` (owner: product). */
1764
+ export interface ProductTemplateLine {
1765
+ readonly name: 'product.template.line';
1766
+ readonly fields: {
1767
+ readonly id: F.Id<'product.template.line'>;
1768
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1769
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1770
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1771
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1772
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1773
+ readonly template: F.Many2one<'product.template', { readonly required: true }>;
1774
+ readonly attribute: F.Many2one<'product.attribute', { readonly required: true }>;
1775
+ readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
1776
+ readonly values: F.Many2many<'product.attribute.value', { readonly required: true }>;
1777
+ };
1778
+ readonly methods: ProductTemplateLineMethods;
1779
+ }
1780
+
1781
+ /** Methods of `product.template.line`: declared ones and transitions. */
1782
+ export interface ProductTemplateLineMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.template.line'> {
1783
+ }
1784
+
1785
+ /** `product.vendor.price` (owner: purchase). */
1786
+ export interface ProductVendorPrice {
1787
+ readonly name: 'product.vendor.price';
1788
+ readonly fields: {
1789
+ readonly id: F.Id<'product.vendor.price'>;
1790
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1791
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1792
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1793
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1794
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1795
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1796
+ readonly company: F.Many2one<'res.company', { readonly default: true }>;
1797
+ readonly vendor: F.Many2one<'res.partner', { readonly required: true }>;
1798
+ readonly product: F.Many2one<'product.product'>;
1799
+ readonly category: F.Many2one<'product.category'>;
1800
+ readonly vendorCode: F.Char;
1801
+ readonly vendorName: F.Char;
1802
+ readonly currency: F.Many2one<'res.currency'>;
1803
+ readonly minQuantity: F.Decimal<{ readonly required: true; readonly default: true }>;
1804
+ readonly price: F.Decimal<{ readonly required: true }>;
1805
+ readonly dateFrom: F.DateOnly;
1806
+ readonly dateTo: F.DateOnly;
1807
+ readonly leadDays: F.Integer<{ readonly required: true; readonly default: true }>;
1808
+ readonly preferred: F.Bool<{ readonly required: true; readonly default: true }>;
1809
+ readonly sequence: F.Integer<{ readonly default: true }>;
1810
+ };
1811
+ readonly methods: ProductVendorPriceMethods;
1812
+ }
1813
+
1814
+ /** Methods of `product.vendor.price`: declared ones and transitions. */
1815
+ export interface ProductVendorPriceMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'product.vendor.price'> {
1816
+ }
1817
+
1818
+ /** `project.budget.line` (owner: project). */
1819
+ export interface ProjectBudgetLine {
1820
+ readonly name: 'project.budget.line';
1821
+ readonly fields: {
1822
+ readonly id: F.Id<'project.budget.line'>;
1823
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1824
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1825
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1826
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1827
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1828
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1829
+ readonly project: F.Many2one<'project.project', { readonly required: true }>;
1830
+ readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
1831
+ readonly name: F.Char<{ readonly required: true }>;
1832
+ readonly category: F.Selection<'labour' | 'materials' | 'services' | 'equipment' | 'other', { readonly required: true; readonly default: true }>;
1833
+ readonly phase: F.Many2one<'project.phase'>;
1834
+ readonly workPackage: F.Many2one<'project.work.package'>;
1835
+ readonly planned: F.Decimal<{ readonly required: true; readonly default: true }>;
1836
+ };
1837
+ readonly methods: ProjectBudgetLineMethods;
1838
+ }
1839
+
1840
+ /** Methods of `project.budget.line`: declared ones and transitions. */
1841
+ export interface ProjectBudgetLineMethods extends F.Methods<typeof import('../../project/index.js').projectShutro, 'project.budget.line'> {
1842
+ }
1843
+
1844
+ /** `project.change` (owner: project). */
1845
+ export interface ProjectChange {
1846
+ readonly name: 'project.change';
1847
+ readonly fields: {
1848
+ readonly id: F.Id<'project.change'>;
1849
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1850
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1851
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1852
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1853
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1854
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1855
+ readonly name: F.Char<{ readonly readonly: true; readonly sequence: true }>;
1856
+ readonly project: F.Many2one<'project.project', { readonly required: true }>;
1857
+ readonly title: F.Char<{ readonly required: true }>;
1858
+ readonly requester: F.Many2one<'res.users', { readonly default: true }>;
1859
+ readonly sponsor: F.Many2one<'res.users', { readonly readonly: true; readonly compute: true; readonly store: true }>;
1860
+ readonly reason: F.Text<{ readonly required: true }>;
1861
+ readonly impact: F.Text;
1862
+ readonly newDateEnd: F.DateOnly;
1863
+ readonly newBudget: F.Decimal;
1864
+ readonly previousDateEnd: F.DateOnly;
1865
+ readonly previousBaselineEnd: F.DateOnly;
1866
+ readonly previousBudget: F.Decimal;
1867
+ readonly appliedAt: F.Datetime;
1868
+ readonly state: F.State<'draft' | 'submitted' | 'applied' | 'rejected' | 'cancelled', { readonly required: true; readonly readonly: true; readonly default: true }>;
1869
+ };
1870
+ readonly methods: ProjectChangeMethods;
1871
+ }
1872
+
1873
+ /** Methods of `project.change`: declared ones and transitions. */
1874
+ export interface ProjectChangeMethods extends F.Methods<typeof import('../../project/index.js').projectShutro, 'project.change'> {
1875
+ readonly 'approve': () => Promise<void>;
1876
+ readonly 'cancel': () => Promise<void>;
1877
+ readonly 'redraft': () => Promise<void>;
1333
1878
  readonly 'reject': () => Promise<void>;
1334
1879
  readonly 'submit': () => Promise<void>;
1335
1880
  }
@@ -1859,6 +2404,131 @@ export interface ProjectWorkPackage {
1859
2404
  export interface ProjectWorkPackageMethods extends F.Methods<typeof import('../../project/index.js').projectShutro, 'project.work.package'> {
1860
2405
  }
1861
2406
 
2407
+ /** `purchase.agreement` (owner: purchase). */
2408
+ export interface PurchaseAgreement {
2409
+ readonly name: 'purchase.agreement';
2410
+ readonly fields: {
2411
+ readonly id: F.Id<'purchase.agreement'>;
2412
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2413
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2414
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2415
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2416
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2417
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
2418
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
2419
+ readonly vendor: F.Many2one<'res.partner', { readonly required: true }>;
2420
+ readonly buyer: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
2421
+ readonly kind: F.Selection<'blanket' | 'contract', { readonly required: true; readonly default: true }>;
2422
+ readonly reference: F.Char;
2423
+ readonly dateStart: F.DateOnly;
2424
+ readonly dateEnd: F.DateOnly;
2425
+ readonly currency: F.Many2one<'res.currency'>;
2426
+ readonly note: F.Text;
2427
+ readonly lines: F.One2many<'purchase.agreement.line', { readonly required: true }>;
2428
+ readonly orders: F.One2many<'purchase.order', { readonly required: true }>;
2429
+ readonly state: F.State<'draft' | 'confirmed' | 'closed' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
2430
+ };
2431
+ readonly methods: PurchaseAgreementMethods;
2432
+ }
2433
+
2434
+ /** Methods of `purchase.agreement`: declared ones and transitions. */
2435
+ export interface PurchaseAgreementMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.agreement'> {
2436
+ readonly 'cancel': () => Promise<void>;
2437
+ readonly 'close': () => Promise<void>;
2438
+ readonly 'confirm': () => Promise<void>;
2439
+ readonly 'redraft': () => Promise<void>;
2440
+ }
2441
+
2442
+ /** `purchase.agreement.line` (owner: purchase). */
2443
+ export interface PurchaseAgreementLine {
2444
+ readonly name: 'purchase.agreement.line';
2445
+ readonly fields: {
2446
+ readonly id: F.Id<'purchase.agreement.line'>;
2447
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2448
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2449
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2450
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2451
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2452
+ readonly agreement: F.Many2one<'purchase.agreement', { readonly required: true }>;
2453
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
2454
+ readonly name: F.Char;
2455
+ readonly quantity: F.Decimal;
2456
+ readonly uom: F.Many2one<'uom.uom'>;
2457
+ readonly priceUnit: F.Decimal<{ readonly required: true; readonly default: true }>;
2458
+ readonly qtyOrdered: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2459
+ };
2460
+ readonly methods: PurchaseAgreementLineMethods;
2461
+ }
2462
+
2463
+ /** Methods of `purchase.agreement.line`: declared ones and transitions. */
2464
+ export interface PurchaseAgreementLineMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.agreement.line'> {
2465
+ }
2466
+
2467
+ /** `purchase.comparison` (owner: purchase). */
2468
+ export interface PurchaseComparison {
2469
+ readonly name: 'purchase.comparison';
2470
+ readonly fields: {
2471
+ readonly id: F.Id<'purchase.comparison'>;
2472
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2473
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2474
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2475
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2476
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2477
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
2478
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
2479
+ readonly tender: F.Many2one<'purchase.tender', { readonly required: true }>;
2480
+ readonly date: F.DateOnly<{ readonly required: true; readonly default: true }>;
2481
+ readonly expiryDate: F.DateOnly;
2482
+ readonly dateDelivery: F.DateOnly;
2483
+ readonly multiVendor: F.Bool<{ readonly required: true; readonly default: true }>;
2484
+ readonly note: F.Text;
2485
+ readonly lines: F.One2many<'purchase.comparison.line', { readonly required: true }>;
2486
+ readonly amountTotal: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2487
+ readonly state: F.State<'draft' | 'submitted' | 'approved' | 'confirmed' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
2488
+ };
2489
+ readonly methods: PurchaseComparisonMethods;
2490
+ }
2491
+
2492
+ /** Methods of `purchase.comparison`: declared ones and transitions. */
2493
+ export interface PurchaseComparisonMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.comparison'> {
2494
+ readonly 'approve': () => Promise<void>;
2495
+ readonly 'cancel': () => Promise<void>;
2496
+ readonly 'confirm': () => Promise<void>;
2497
+ readonly 'fill': () => Promise<void>;
2498
+ readonly 'redraft': () => Promise<void>;
2499
+ readonly 'reject': () => Promise<void>;
2500
+ readonly 'submit': () => Promise<void>;
2501
+ }
2502
+
2503
+ /** `purchase.comparison.line` (owner: purchase). */
2504
+ export interface PurchaseComparisonLine {
2505
+ readonly name: 'purchase.comparison.line';
2506
+ readonly fields: {
2507
+ readonly id: F.Id<'purchase.comparison.line'>;
2508
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2509
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2510
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2511
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2512
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2513
+ readonly comparison: F.Many2one<'purchase.comparison', { readonly required: true }>;
2514
+ readonly tenderLine: F.Many2one<'purchase.tender.line', { readonly required: true }>;
2515
+ readonly response: F.Many2one<'purchase.tender.response', { readonly required: true }>;
2516
+ readonly csQty: F.Decimal<{ readonly required: true; readonly default: true }>;
2517
+ readonly quote: F.Decimal<{ readonly required: true; readonly default: true }>;
2518
+ readonly nego1: F.Decimal;
2519
+ readonly nego2: F.Decimal;
2520
+ readonly finalPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
2521
+ readonly total: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2522
+ readonly selected: F.Bool<{ readonly required: true; readonly default: true }>;
2523
+ readonly lowest: F.Bool<{ readonly required: true; readonly readonly: true; readonly default: true; readonly compute: true; readonly store: true }>;
2524
+ };
2525
+ readonly methods: PurchaseComparisonLineMethods;
2526
+ }
2527
+
2528
+ /** Methods of `purchase.comparison.line`: declared ones and transitions. */
2529
+ export interface PurchaseComparisonLineMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.comparison.line'> {
2530
+ }
2531
+
1862
2532
  /** `purchase.order` (owner: purchase; extended by: purchase_account). */
1863
2533
  export interface PurchaseOrder {
1864
2534
  readonly name: 'purchase.order';
@@ -1879,6 +2549,12 @@ export interface PurchaseOrder {
1879
2549
  readonly datePlanned: F.DateOnly;
1880
2550
  readonly origin: F.Char;
1881
2551
  readonly note: F.Text;
2552
+ readonly poType: F.Selection<'general' | 'service' | 'capital', { readonly required: true; readonly default: true }>;
2553
+ readonly sourcing: F.Selection<'local' | 'import', { readonly required: true; readonly default: true }>;
2554
+ readonly advancePercent: F.Decimal<{ readonly default: true }>;
2555
+ readonly agreement: F.Many2one<'purchase.agreement'>;
2556
+ readonly acceptances: F.One2many<'purchase.work.acceptance', { readonly required: true }>;
2557
+ readonly acceptanceCount: F.Integer<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1882
2558
  readonly lines: F.One2many<'purchase.order.line', { readonly required: true }>;
1883
2559
  readonly amountUntaxed: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
1884
2560
  readonly amountTax: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
@@ -1897,13 +2573,14 @@ export interface PurchaseOrderMethods extends F.Methods<typeof import('../../pur
1897
2573
  readonly 'confirm': () => Promise<void>;
1898
2574
  readonly 'lock': () => Promise<void>;
1899
2575
  readonly 'redraft': () => Promise<void>;
2576
+ readonly 'refund': () => Promise<void>;
1900
2577
  readonly 'reject': () => Promise<void>;
1901
2578
  readonly 'send': () => Promise<void>;
1902
2579
  readonly 'submit': () => Promise<void>;
1903
2580
  readonly 'unlock': () => Promise<void>;
1904
2581
  }
1905
2582
 
1906
- /** `purchase.order.line` (owner: purchase; extended by: purchase_account). */
2583
+ /** `purchase.order.line` (owner: purchase; extended by: purchase_account, purchase_account). */
1907
2584
  export interface PurchaseOrderLine {
1908
2585
  readonly name: 'purchase.order.line';
1909
2586
  readonly fields: {
@@ -1918,20 +2595,388 @@ export interface PurchaseOrderLine {
1918
2595
  readonly name: F.Char<{ readonly required: true }>;
1919
2596
  readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
1920
2597
  readonly uom: F.Many2one<'uom.uom'>;
1921
- readonly priceUnit: F.Decimal<{ readonly required: true; readonly default: true }>;
2598
+ readonly priceUnit: F.Decimal<{ readonly compute: true; readonly store: true; readonly inverse: true }>;
2599
+ readonly manualPrice: F.Decimal;
2600
+ readonly priceReason: F.Char<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2601
+ readonly vendorCode: F.Char<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1922
2602
  readonly taxes: F.Many2many<'account.tax', { readonly required: true }>;
1923
2603
  readonly tax: F.Many2one<'account.tax', { readonly readonly: true }>;
1924
2604
  readonly datePlanned: F.DateOnly;
2605
+ readonly acceptanceLines: F.One2many<'purchase.work.acceptance.line', { readonly required: true }>;
2606
+ readonly qtyAccepted: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2607
+ readonly requestLine: F.Many2one<'purchase.request.line'>;
1925
2608
  readonly currency: F.Many2one<'res.currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
1926
2609
  readonly subtotal: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
1927
2610
  readonly taxAmount: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
1928
2611
  readonly analytic: F.Many2one<'account.analytic'>; // purchase_account
2612
+ readonly billLines: F.One2many<'account.move.line', { readonly required: true }>; // purchase_account
2613
+ readonly qtyBilled: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>; // purchase_account
1929
2614
  };
1930
2615
  readonly methods: PurchaseOrderLineMethods;
1931
2616
  }
1932
2617
 
1933
2618
  /** Methods of `purchase.order.line`: declared ones and transitions. */
1934
- export interface PurchaseOrderLineMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.order.line'>, F.Methods<typeof import('../../purchase_account/index.js').purchaseAccountShutro, 'purchase.order.line'> {
2619
+ export interface PurchaseOrderLineMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.order.line'>, F.Methods<typeof import('../../purchase_account/index.js').purchaseAccountShutro, 'purchase.order.line'>, F.Methods<typeof import('../../purchase_account/index.js').purchaseAccountShutro, 'purchase.order.line'> {
2620
+ }
2621
+
2622
+ /** `purchase.request` (owner: purchase). */
2623
+ export interface PurchaseRequest {
2624
+ readonly name: 'purchase.request';
2625
+ readonly fields: {
2626
+ readonly id: F.Id<'purchase.request'>;
2627
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2628
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2629
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2630
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2631
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2632
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
2633
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
2634
+ readonly requester: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
2635
+ readonly date: F.DateOnly<{ readonly required: true; readonly default: true }>;
2636
+ readonly dateRequired: F.DateOnly<{ readonly required: true; readonly default: true }>;
2637
+ readonly priority: F.Selection<'normal' | 'high' | 'urgent' | 'critical', { readonly required: true; readonly default: true }>;
2638
+ readonly vendor: F.Many2one<'res.partner'>;
2639
+ readonly purpose: F.Text;
2640
+ readonly lines: F.One2many<'purchase.request.line', { readonly required: true }>;
2641
+ readonly amountEstimate: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2642
+ readonly rejectReason: F.Char;
2643
+ readonly state: F.State<'draft' | 'to_approve' | 'approved' | 'done' | 'rejected' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
2644
+ };
2645
+ readonly methods: PurchaseRequestMethods;
2646
+ }
2647
+
2648
+ /** Methods of `purchase.request`: declared ones and transitions. */
2649
+ export interface PurchaseRequestMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.request'> {
2650
+ readonly 'approve': () => Promise<void>;
2651
+ readonly 'cancel': () => Promise<void>;
2652
+ readonly 'close': () => Promise<void>;
2653
+ readonly 'redraft': () => Promise<void>;
2654
+ readonly 'reject': () => Promise<void>;
2655
+ readonly 'rfq': () => Promise<void>;
2656
+ readonly 'submit': () => Promise<void>;
2657
+ readonly 'tender': () => Promise<void>;
2658
+ }
2659
+
2660
+ /** `purchase.request.line` (owner: purchase). */
2661
+ export interface PurchaseRequestLine {
2662
+ readonly name: 'purchase.request.line';
2663
+ readonly fields: {
2664
+ readonly id: F.Id<'purchase.request.line'>;
2665
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2666
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2667
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2668
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2669
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2670
+ readonly request: F.Many2one<'purchase.request', { readonly required: true }>;
2671
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
2672
+ readonly name: F.Char;
2673
+ readonly uom: F.Many2one<'uom.uom'>;
2674
+ readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
2675
+ readonly qtyApproved: F.Decimal;
2676
+ readonly dateRequired: F.DateOnly;
2677
+ readonly buyers: F.Many2many<'res.users', { readonly required: true }>;
2678
+ readonly purchaseLines: F.One2many<'purchase.order.line', { readonly required: true }>;
2679
+ readonly tenderLines: F.One2many<'purchase.tender.line', { readonly required: true }>;
2680
+ readonly qtyOnRfq: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2681
+ readonly qtyOrdered: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2682
+ readonly qtyRemaining: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2683
+ readonly status: F.Selection<'draft' | 'to_approve' | 'approved' | 'rfq' | 'ordered' | 'done' | 'cancelled', { readonly readonly: true; readonly compute: true; readonly store: true }>;
2684
+ };
2685
+ readonly methods: PurchaseRequestLineMethods;
2686
+ }
2687
+
2688
+ /** Methods of `purchase.request.line`: declared ones and transitions. */
2689
+ export interface PurchaseRequestLineMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.request.line'> {
2690
+ }
2691
+
2692
+ /** `purchase.technical.comparison` (owner: purchase). */
2693
+ export interface PurchaseTechnicalComparison {
2694
+ readonly name: 'purchase.technical.comparison';
2695
+ readonly fields: {
2696
+ readonly id: F.Id<'purchase.technical.comparison'>;
2697
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2698
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2699
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2700
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2701
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2702
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
2703
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
2704
+ readonly tender: F.Many2one<'purchase.tender', { readonly required: true }>;
2705
+ readonly engineer: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
2706
+ readonly kind: F.Selection<'simple' | 'detailed', { readonly required: true; readonly default: true }>;
2707
+ readonly date: F.DateOnly<{ readonly required: true; readonly default: true }>;
2708
+ readonly remarks: F.Text;
2709
+ readonly lines: F.One2many<'purchase.technical.comparison.line', { readonly required: true }>;
2710
+ readonly state: F.State<'draft' | 'submitted' | 'approved' | 'confirmed' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
2711
+ };
2712
+ readonly methods: PurchaseTechnicalComparisonMethods;
2713
+ }
2714
+
2715
+ /** Methods of `purchase.technical.comparison`: declared ones and transitions. */
2716
+ export interface PurchaseTechnicalComparisonMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.technical.comparison'> {
2717
+ readonly 'approve': () => Promise<void>;
2718
+ readonly 'cancel': () => Promise<void>;
2719
+ readonly 'confirm': () => Promise<void>;
2720
+ readonly 'fill': () => Promise<void>;
2721
+ readonly 'redraft': () => Promise<void>;
2722
+ readonly 'submit': () => Promise<void>;
2723
+ }
2724
+
2725
+ /** `purchase.technical.comparison.line` (owner: purchase). */
2726
+ export interface PurchaseTechnicalComparisonLine {
2727
+ readonly name: 'purchase.technical.comparison.line';
2728
+ readonly fields: {
2729
+ readonly id: F.Id<'purchase.technical.comparison.line'>;
2730
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2731
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2732
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2733
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2734
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2735
+ readonly comparison: F.Many2one<'purchase.technical.comparison', { readonly required: true }>;
2736
+ readonly response: F.Many2one<'purchase.tender.response', { readonly required: true }>;
2737
+ readonly score: F.Decimal<{ readonly required: true; readonly default: true }>;
2738
+ readonly meetsSpecifications: F.Bool<{ readonly required: true; readonly default: true }>;
2739
+ readonly note: F.Char;
2740
+ };
2741
+ readonly methods: PurchaseTechnicalComparisonLineMethods;
2742
+ }
2743
+
2744
+ /** Methods of `purchase.technical.comparison.line`: declared ones and transitions. */
2745
+ export interface PurchaseTechnicalComparisonLineMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.technical.comparison.line'> {
2746
+ }
2747
+
2748
+ /** `purchase.tender` (owner: purchase). */
2749
+ export interface PurchaseTender {
2750
+ readonly name: 'purchase.tender';
2751
+ readonly fields: {
2752
+ readonly id: F.Id<'purchase.tender'>;
2753
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2754
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2755
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2756
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2757
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2758
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
2759
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
2760
+ readonly buyer: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
2761
+ readonly date: F.DateOnly<{ readonly required: true; readonly default: true }>;
2762
+ readonly deadline: F.DateOnly<{ readonly required: true }>;
2763
+ readonly dateDelivery: F.DateOnly;
2764
+ readonly sourcing: F.Selection<'local' | 'import', { readonly required: true; readonly default: true }>;
2765
+ readonly topic: F.Char;
2766
+ readonly vendors: F.Many2many<'res.partner', { readonly required: true }>;
2767
+ readonly currency: F.Many2one<'res.currency'>;
2768
+ readonly paymentTerms: F.Char;
2769
+ readonly technical: F.Bool<{ readonly required: true; readonly default: true }>;
2770
+ readonly note: F.Text;
2771
+ readonly request: F.Many2one<'purchase.request'>;
2772
+ readonly lines: F.One2many<'purchase.tender.line', { readonly required: true }>;
2773
+ readonly responses: F.One2many<'purchase.tender.response', { readonly required: true }>;
2774
+ readonly responseCount: F.Integer<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2775
+ readonly state: F.State<'draft' | 'sent' | 'received' | 'comparing' | 'selected' | 'ordered' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
2776
+ };
2777
+ readonly methods: PurchaseTenderMethods;
2778
+ }
2779
+
2780
+ /** Methods of `purchase.tender`: declared ones and transitions. */
2781
+ export interface PurchaseTenderMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.tender'> {
2782
+ readonly 'cancel': () => Promise<void>;
2783
+ readonly 'close': () => Promise<void>;
2784
+ readonly 'compare': () => Promise<void>;
2785
+ readonly 'order': () => Promise<void>;
2786
+ readonly 'redraft': () => Promise<void>;
2787
+ readonly 'select': () => Promise<void>;
2788
+ readonly 'send': () => Promise<void>;
2789
+ }
2790
+
2791
+ /** `purchase.tender.line` (owner: purchase). */
2792
+ export interface PurchaseTenderLine {
2793
+ readonly name: 'purchase.tender.line';
2794
+ readonly fields: {
2795
+ readonly id: F.Id<'purchase.tender.line'>;
2796
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2797
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2798
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2799
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2800
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2801
+ readonly tender: F.Many2one<'purchase.tender', { readonly required: true }>;
2802
+ readonly sequence: F.Integer<{ readonly default: true }>;
2803
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
2804
+ readonly name: F.Char;
2805
+ readonly uom: F.Many2one<'uom.uom'>;
2806
+ readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
2807
+ readonly requestLine: F.Many2one<'purchase.request.line'>;
2808
+ };
2809
+ readonly methods: PurchaseTenderLineMethods;
2810
+ }
2811
+
2812
+ /** Methods of `purchase.tender.line`: declared ones and transitions. */
2813
+ export interface PurchaseTenderLineMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.tender.line'> {
2814
+ }
2815
+
2816
+ /** `purchase.tender.response` (owner: purchase). */
2817
+ export interface PurchaseTenderResponse {
2818
+ readonly name: 'purchase.tender.response';
2819
+ readonly fields: {
2820
+ readonly id: F.Id<'purchase.tender.response'>;
2821
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2822
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2823
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2824
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2825
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2826
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
2827
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
2828
+ readonly tender: F.Many2one<'purchase.tender', { readonly required: true }>;
2829
+ readonly vendor: F.Many2one<'res.partner', { readonly required: true }>;
2830
+ readonly responseDate: F.Datetime;
2831
+ readonly dateDelivery: F.DateOnly;
2832
+ readonly paymentTerms: F.Char;
2833
+ readonly advancePercent: F.Decimal<{ readonly default: true }>;
2834
+ readonly technicalRank: F.Integer<{ readonly default: true }>;
2835
+ readonly remark: F.Text;
2836
+ readonly lines: F.One2many<'purchase.tender.response.line', { readonly required: true }>;
2837
+ readonly amountTotal: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2838
+ readonly tokenHash: F.Char;
2839
+ readonly tokenExpiresAt: F.Datetime;
2840
+ readonly state: F.State<'invited' | 'quoted' | 'submitted' | 'not_responded' | 'rejected', { readonly required: true; readonly readonly: true; readonly default: true }>;
2841
+ };
2842
+ readonly methods: PurchaseTenderResponseMethods;
2843
+ }
2844
+
2845
+ /** Methods of `purchase.tender.response`: declared ones and transitions. */
2846
+ export interface PurchaseTenderResponseMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.tender.response'> {
2847
+ readonly 'quote': () => Promise<void>;
2848
+ readonly 'reject': () => Promise<void>;
2849
+ readonly 'reopen': () => Promise<void>;
2850
+ readonly 'submit': () => Promise<void>;
2851
+ readonly 'unanswered': () => Promise<void>;
2852
+ }
2853
+
2854
+ /** `purchase.tender.response.line` (owner: purchase). */
2855
+ export interface PurchaseTenderResponseLine {
2856
+ readonly name: 'purchase.tender.response.line';
2857
+ readonly fields: {
2858
+ readonly id: F.Id<'purchase.tender.response.line'>;
2859
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2860
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2861
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2862
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2863
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2864
+ readonly response: F.Many2one<'purchase.tender.response', { readonly required: true }>;
2865
+ readonly tenderLine: F.Many2one<'purchase.tender.line', { readonly required: true }>;
2866
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
2867
+ readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
2868
+ readonly priceUnit: F.Decimal<{ readonly required: true; readonly default: true }>;
2869
+ readonly subtotal: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2870
+ readonly note: F.Char;
2871
+ };
2872
+ readonly methods: PurchaseTenderResponseLineMethods;
2873
+ }
2874
+
2875
+ /** Methods of `purchase.tender.response.line`: declared ones and transitions. */
2876
+ export interface PurchaseTenderResponseLineMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.tender.response.line'> {
2877
+ }
2878
+
2879
+ /** `purchase.vendor.request` (owner: purchase). */
2880
+ export interface PurchaseVendorRequest {
2881
+ readonly name: 'purchase.vendor.request';
2882
+ readonly fields: {
2883
+ readonly id: F.Id<'purchase.vendor.request'>;
2884
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2885
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2886
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2887
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2888
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2889
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
2890
+ readonly name: F.Char<{ readonly required: true }>;
2891
+ readonly kind: F.Selection<'vendor' | 'contractor' | 'service', { readonly required: true; readonly default: true }>;
2892
+ readonly street: F.Char;
2893
+ readonly street2: F.Char;
2894
+ readonly city: F.Char;
2895
+ readonly zip: F.Char;
2896
+ readonly country: F.Char<{ readonly default: true }>;
2897
+ readonly nid: F.Char;
2898
+ readonly tradeLicense: F.Char;
2899
+ readonly proprietorName: F.Char;
2900
+ readonly proprietorMobile: F.Char;
2901
+ readonly email: F.Char;
2902
+ readonly phone: F.Char;
2903
+ readonly requester: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
2904
+ readonly date: F.DateOnly<{ readonly required: true; readonly default: true }>;
2905
+ readonly partner: F.Many2one<'res.partner'>;
2906
+ readonly rejectReason: F.Char;
2907
+ readonly note: F.Text;
2908
+ readonly state: F.State<'draft' | 'to_approve' | 'approved' | 'rejected', { readonly required: true; readonly readonly: true; readonly default: true }>;
2909
+ };
2910
+ readonly methods: PurchaseVendorRequestMethods;
2911
+ }
2912
+
2913
+ /** Methods of `purchase.vendor.request`: declared ones and transitions. */
2914
+ export interface PurchaseVendorRequestMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.vendor.request'> {
2915
+ readonly 'approve': () => Promise<void>;
2916
+ readonly 'redraft': () => Promise<void>;
2917
+ readonly 'reject': () => Promise<void>;
2918
+ readonly 'submit': () => Promise<void>;
2919
+ }
2920
+
2921
+ /** `purchase.work.acceptance` (owner: purchase). */
2922
+ export interface PurchaseWorkAcceptance {
2923
+ readonly name: 'purchase.work.acceptance';
2924
+ readonly fields: {
2925
+ readonly id: F.Id<'purchase.work.acceptance'>;
2926
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2927
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2928
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2929
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2930
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2931
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
2932
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
2933
+ readonly vendor: F.Many2one<'res.partner', { readonly required: true }>;
2934
+ readonly order: F.Many2one<'purchase.order', { readonly required: true }>;
2935
+ readonly responsible: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
2936
+ readonly invoiceReference: F.Char;
2937
+ readonly dueDate: F.DateOnly<{ readonly required: true; readonly default: true }>;
2938
+ readonly acceptedOn: F.DateOnly;
2939
+ readonly currency: F.Many2one<'res.currency'>;
2940
+ readonly note: F.Text;
2941
+ readonly lines: F.One2many<'purchase.work.acceptance.line', { readonly required: true }>;
2942
+ readonly amountTotal: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2943
+ readonly state: F.State<'draft' | 'accepted' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
2944
+ };
2945
+ readonly methods: PurchaseWorkAcceptanceMethods;
2946
+ }
2947
+
2948
+ /** Methods of `purchase.work.acceptance`: declared ones and transitions. */
2949
+ export interface PurchaseWorkAcceptanceMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.work.acceptance'> {
2950
+ readonly 'accept': () => Promise<void>;
2951
+ readonly 'cancel': () => Promise<void>;
2952
+ readonly 'fill': () => Promise<void>;
2953
+ readonly 'redraft': () => Promise<void>;
2954
+ }
2955
+
2956
+ /** `purchase.work.acceptance.line` (owner: purchase). */
2957
+ export interface PurchaseWorkAcceptanceLine {
2958
+ readonly name: 'purchase.work.acceptance.line';
2959
+ readonly fields: {
2960
+ readonly id: F.Id<'purchase.work.acceptance.line'>;
2961
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2962
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2963
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2964
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2965
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2966
+ readonly acceptance: F.Many2one<'purchase.work.acceptance', { readonly required: true }>;
2967
+ readonly orderLine: F.Many2one<'purchase.order.line', { readonly required: true }>;
2968
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
2969
+ readonly name: F.Char;
2970
+ readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
2971
+ readonly uom: F.Many2one<'uom.uom'>;
2972
+ readonly priceUnit: F.Decimal<{ readonly required: true; readonly default: true }>;
2973
+ readonly subtotal: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2974
+ };
2975
+ readonly methods: PurchaseWorkAcceptanceLineMethods;
2976
+ }
2977
+
2978
+ /** Methods of `purchase.work.acceptance.line`: declared ones and transitions. */
2979
+ export interface PurchaseWorkAcceptanceLineMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.work.acceptance.line'> {
1935
2980
  }
1936
2981
 
1937
2982
  /** `report.dashboard` (owner: reporting). */
@@ -2179,7 +3224,7 @@ export interface ResCurrencyRate {
2179
3224
  export interface ResCurrencyRateMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'res.currency.rate'> {
2180
3225
  }
2181
3226
 
2182
- /** `res.partner` (owner: contacts; extended by: accounting). */
3227
+ /** `res.partner` (owner: contacts; extended by: accounting, accounting). */
2183
3228
  export interface ResPartner {
2184
3229
  readonly name: 'res.partner';
2185
3230
  readonly fields: {
@@ -2200,6 +3245,7 @@ export interface ResPartner {
2200
3245
  readonly parent: F.Many2one<'res.partner'>;
2201
3246
  readonly contacts: F.One2many<'res.partner', { readonly required: true }>;
2202
3247
  readonly email: F.Char;
3248
+ readonly lang: F.Selection<'en' | 'bn'>;
2203
3249
  readonly phone: F.Char;
2204
3250
  readonly mobile: F.Char;
2205
3251
  readonly website: F.Char;
@@ -2213,13 +3259,17 @@ export interface ResPartner {
2213
3259
  readonly isVendor: F.Bool<{ readonly required: true; readonly default: true }>;
2214
3260
  readonly currency: F.Many2one<'res.currency'>;
2215
3261
  readonly notes: F.Text;
3262
+ readonly sendInvoicesByEmail: F.Bool<{ readonly required: true; readonly default: true }>; // accounting
2216
3263
  readonly withholdings: F.Many2many<'account.withholding', { readonly required: true }>; // accounting
3264
+ readonly receivableAccount: F.Many2one<'account.account'>; // accounting
3265
+ readonly payableAccount: F.Many2one<'account.account'>; // accounting
3266
+ readonly fiscalPosition: F.Many2one<'account.fiscal.position'>; // accounting
2217
3267
  };
2218
3268
  readonly methods: ResPartnerMethods;
2219
3269
  }
2220
3270
 
2221
3271
  /** Methods of `res.partner`: declared ones and transitions. */
2222
- export interface ResPartnerMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner'>, F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'res.partner'> {
3272
+ export interface ResPartnerMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner'>, F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'res.partner'>, F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'res.partner'> {
2223
3273
  }
2224
3274
 
2225
3275
  /** `res.partner.tag` (owner: contacts). */
@@ -2241,6 +3291,29 @@ export interface ResPartnerTag {
2241
3291
  export interface ResPartnerTagMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner.tag'> {
2242
3292
  }
2243
3293
 
3294
+ /** `res.segment` (owner: permissions). */
3295
+ export interface ResSegment {
3296
+ readonly name: 'res.segment';
3297
+ readonly fields: {
3298
+ readonly id: F.Id<'res.segment'>;
3299
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
3300
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
3301
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
3302
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
3303
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
3304
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
3305
+ readonly name: F.Char<{ readonly required: true }>;
3306
+ readonly code: F.Char;
3307
+ readonly companies: F.Many2many<'res.company', { readonly required: true }>;
3308
+ readonly note: F.Text;
3309
+ };
3310
+ readonly methods: ResSegmentMethods;
3311
+ }
3312
+
3313
+ /** Methods of `res.segment`: declared ones and transitions. */
3314
+ export interface ResSegmentMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'res.segment'> {
3315
+ }
3316
+
2244
3317
  /** `res.users` (owner: base). */
2245
3318
  export interface ResUsers {
2246
3319
  readonly name: 'res.users';