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: a97150174a5194e7
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 2233e4bcc4bc0ead
2
2
  // Schema view of module `account_budget` (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,9 +6,17 @@ 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;
9
11
  readonly 'account.budget': AccountBudget;
10
12
  readonly 'account.budget.line': AccountBudgetLine;
13
+ readonly 'account.fiscal.position': AccountFiscalPosition;
14
+ readonly 'account.fiscal.position.account': AccountFiscalPositionAccount;
15
+ readonly 'account.fiscal.position.tax': AccountFiscalPositionTax;
11
16
  readonly 'account.fiscal.year': AccountFiscalYear;
17
+ readonly 'account.followup': AccountFollowup;
18
+ readonly 'account.followup.level': AccountFollowupLevel;
19
+ readonly 'account.followup.sent': AccountFollowupSent;
12
20
  readonly 'account.full.reconcile': AccountFullReconcile;
13
21
  readonly 'account.journal': AccountJournal;
14
22
  readonly 'account.move': AccountMove;
@@ -18,10 +26,12 @@ export interface SchemaView {
18
26
  readonly 'account.payment.term': AccountPaymentTerm;
19
27
  readonly 'account.payment.term.line': AccountPaymentTermLine;
20
28
  readonly 'account.payment.withholding': AccountPaymentWithholding;
29
+ readonly 'account.reconcile.rule': AccountReconcileRule;
21
30
  readonly 'account.tax': AccountTax;
22
31
  readonly 'account.tax.component': AccountTaxComponent;
23
32
  readonly 'account.withholding': AccountWithholding;
24
33
  readonly 'approval.delegation': ApprovalDelegation;
34
+ readonly 'approval.event': ApprovalEvent;
25
35
  readonly 'approval.level': ApprovalLevel;
26
36
  readonly 'approval.link': ApprovalLink;
27
37
  readonly 'approval.policy': ApprovalPolicy;
@@ -48,10 +58,33 @@ export interface SchemaView {
48
58
  readonly 'oauth.code': OauthCode;
49
59
  readonly 'oauth.grant': OauthGrant;
50
60
  readonly 'oauth.token': OauthToken;
61
+ readonly 'product.attribute': ProductAttribute;
62
+ readonly 'product.attribute.value': ProductAttributeValue;
51
63
  readonly 'product.category': ProductCategory;
64
+ readonly 'product.pricelist': ProductPricelist;
65
+ readonly 'product.pricelist.rule': ProductPricelistRule;
52
66
  readonly 'product.product': ProductProduct;
67
+ readonly 'product.template': ProductTemplate;
68
+ readonly 'product.template.exclusion': ProductTemplateExclusion;
69
+ readonly 'product.template.line': ProductTemplateLine;
70
+ readonly 'product.vendor.price': ProductVendorPrice;
71
+ readonly 'purchase.agreement': PurchaseAgreement;
72
+ readonly 'purchase.agreement.line': PurchaseAgreementLine;
73
+ readonly 'purchase.comparison': PurchaseComparison;
74
+ readonly 'purchase.comparison.line': PurchaseComparisonLine;
53
75
  readonly 'purchase.order': PurchaseOrder;
54
76
  readonly 'purchase.order.line': PurchaseOrderLine;
77
+ readonly 'purchase.request': PurchaseRequest;
78
+ readonly 'purchase.request.line': PurchaseRequestLine;
79
+ readonly 'purchase.technical.comparison': PurchaseTechnicalComparison;
80
+ readonly 'purchase.technical.comparison.line': PurchaseTechnicalComparisonLine;
81
+ readonly 'purchase.tender': PurchaseTender;
82
+ readonly 'purchase.tender.line': PurchaseTenderLine;
83
+ readonly 'purchase.tender.response': PurchaseTenderResponse;
84
+ readonly 'purchase.tender.response.line': PurchaseTenderResponseLine;
85
+ readonly 'purchase.vendor.request': PurchaseVendorRequest;
86
+ readonly 'purchase.work.acceptance': PurchaseWorkAcceptance;
87
+ readonly 'purchase.work.acceptance.line': PurchaseWorkAcceptanceLine;
55
88
  readonly 'report.dashboard': ReportDashboard;
56
89
  readonly 'report.output': ReportOutput;
57
90
  readonly 'report.schedule': ReportSchedule;
@@ -63,6 +96,7 @@ export interface SchemaView {
63
96
  readonly 'res.currency.rate': ResCurrencyRate;
64
97
  readonly 'res.partner': ResPartner;
65
98
  readonly 'res.partner.tag': ResPartnerTag;
99
+ readonly 'res.segment': ResSegment;
66
100
  readonly 'res.users': ResUsers;
67
101
  readonly 'storage.attachment': StorageAttachment;
68
102
  readonly 'uom.uom': UomUom;
@@ -118,6 +152,63 @@ export interface AccountAnalytic {
118
152
  export interface AccountAnalyticMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.analytic'> {
119
153
  }
120
154
 
155
+ /** `account.bank.statement` (owner: accounting). */
156
+ export interface AccountBankStatement {
157
+ readonly name: 'account.bank.statement';
158
+ readonly fields: {
159
+ readonly id: F.Id<'account.bank.statement'>;
160
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
161
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
162
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
163
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
164
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
165
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
166
+ readonly name: F.Char<{ readonly required: true }>;
167
+ readonly journal: F.Many2one<'account.journal', { readonly required: true }>;
168
+ readonly date: F.DateOnly<{ readonly required: true }>;
169
+ readonly balanceStart: F.Decimal<{ readonly default: true }>;
170
+ readonly balanceEnd: F.Decimal<{ readonly default: true }>;
171
+ readonly lines: F.One2many<'account.bank.statement.line', { readonly required: true }>;
172
+ readonly state: F.State<'open' | 'done', { readonly required: true; readonly readonly: true; readonly default: true }>;
173
+ };
174
+ readonly methods: AccountBankStatementMethods;
175
+ }
176
+
177
+ /** Methods of `account.bank.statement`: declared ones and transitions. */
178
+ export interface AccountBankStatementMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.bank.statement'> {
179
+ readonly 'close': () => Promise<void>;
180
+ readonly 'reopen': () => Promise<void>;
181
+ }
182
+
183
+ /** `account.bank.statement.line` (owner: accounting). */
184
+ export interface AccountBankStatementLine {
185
+ readonly name: 'account.bank.statement.line';
186
+ readonly fields: {
187
+ readonly id: F.Id<'account.bank.statement.line'>;
188
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
189
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
190
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
191
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
192
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
193
+ readonly statement: F.Many2one<'account.bank.statement', { readonly required: true }>;
194
+ readonly date: F.DateOnly<{ readonly required: true }>;
195
+ readonly label: F.Char<{ readonly required: true }>;
196
+ readonly reference: F.Char;
197
+ readonly partner: F.Many2one<'res.partner'>;
198
+ readonly amount: F.Decimal<{ readonly required: true }>;
199
+ readonly uniqueKey: F.Char;
200
+ readonly payment: F.Many2one<'account.payment'>;
201
+ readonly move: F.Many2one<'account.move'>;
202
+ readonly rule: F.Many2one<'account.reconcile.rule'>;
203
+ readonly state: F.Selection<'open' | 'matched', { readonly required: true; readonly default: true }>;
204
+ };
205
+ readonly methods: AccountBankStatementLineMethods;
206
+ }
207
+
208
+ /** Methods of `account.bank.statement.line`: declared ones and transitions. */
209
+ export interface AccountBankStatementLineMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.bank.statement.line'> {
210
+ }
211
+
121
212
  /** `account.budget` (owner: account_budget). */
122
213
  export interface AccountBudget {
123
214
  readonly name: 'account.budget';
@@ -174,6 +265,77 @@ export interface AccountBudgetLine {
174
265
  export interface AccountBudgetLineMethods extends F.Methods<typeof import('../module.js').accountBudgetShutro, 'account.budget.line'> {
175
266
  }
176
267
 
268
+ /** `account.fiscal.position` (owner: accounting). */
269
+ export interface AccountFiscalPosition {
270
+ readonly name: 'account.fiscal.position';
271
+ readonly fields: {
272
+ readonly id: F.Id<'account.fiscal.position'>;
273
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
274
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
275
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
276
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
277
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
278
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
279
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
280
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
281
+ readonly sequence: F.Integer<{ readonly default: true }>;
282
+ readonly autoApply: F.Bool<{ readonly required: true; readonly default: true }>;
283
+ readonly countries: F.Char;
284
+ readonly states: F.Char;
285
+ readonly vatRequired: F.Selection<'any' | 'with' | 'without', { readonly required: true; readonly default: true }>;
286
+ readonly note: F.Text<{ readonly translate: true }>;
287
+ readonly taxes: F.One2many<'account.fiscal.position.tax', { readonly required: true }>;
288
+ readonly accounts: F.One2many<'account.fiscal.position.account', { readonly required: true }>;
289
+ };
290
+ readonly methods: AccountFiscalPositionMethods;
291
+ }
292
+
293
+ /** Methods of `account.fiscal.position`: declared ones and transitions. */
294
+ export interface AccountFiscalPositionMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.fiscal.position'> {
295
+ }
296
+
297
+ /** `account.fiscal.position.account` (owner: accounting). */
298
+ export interface AccountFiscalPositionAccount {
299
+ readonly name: 'account.fiscal.position.account';
300
+ readonly fields: {
301
+ readonly id: F.Id<'account.fiscal.position.account'>;
302
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
303
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
304
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
305
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
306
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
307
+ readonly position: F.Many2one<'account.fiscal.position', { readonly required: true }>;
308
+ readonly accountSrc: F.Many2one<'account.account', { readonly required: true }>;
309
+ readonly accountDest: F.Many2one<'account.account', { readonly required: true }>;
310
+ };
311
+ readonly methods: AccountFiscalPositionAccountMethods;
312
+ }
313
+
314
+ /** Methods of `account.fiscal.position.account`: declared ones and transitions. */
315
+ export interface AccountFiscalPositionAccountMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.fiscal.position.account'> {
316
+ }
317
+
318
+ /** `account.fiscal.position.tax` (owner: accounting). */
319
+ export interface AccountFiscalPositionTax {
320
+ readonly name: 'account.fiscal.position.tax';
321
+ readonly fields: {
322
+ readonly id: F.Id<'account.fiscal.position.tax'>;
323
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
324
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
325
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
326
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
327
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
328
+ readonly position: F.Many2one<'account.fiscal.position', { readonly required: true }>;
329
+ readonly taxSrc: F.Many2one<'account.tax', { readonly required: true }>;
330
+ readonly taxDest: F.Many2one<'account.tax'>;
331
+ };
332
+ readonly methods: AccountFiscalPositionTaxMethods;
333
+ }
334
+
335
+ /** Methods of `account.fiscal.position.tax`: declared ones and transitions. */
336
+ export interface AccountFiscalPositionTaxMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.fiscal.position.tax'> {
337
+ }
338
+
177
339
  /** `account.fiscal.year` (owner: accounting). */
178
340
  export interface AccountFiscalYear {
179
341
  readonly name: 'account.fiscal.year';
@@ -200,6 +362,84 @@ export interface AccountFiscalYear {
200
362
  export interface AccountFiscalYearMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.fiscal.year'> {
201
363
  }
202
364
 
365
+ /** `account.followup` (owner: accounting). */
366
+ export interface AccountFollowup {
367
+ readonly name: 'account.followup';
368
+ readonly fields: {
369
+ readonly id: F.Id<'account.followup'>;
370
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
371
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
372
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
373
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
374
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
375
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
376
+ readonly partner: F.Many2one<'res.partner', { readonly required: true }>;
377
+ readonly level: F.Many2one<'account.followup.level'>;
378
+ readonly sentAt: F.Datetime;
379
+ readonly pausedUntil: F.DateOnly;
380
+ readonly pauseNote: F.Char;
381
+ };
382
+ readonly methods: AccountFollowupMethods;
383
+ }
384
+
385
+ /** Methods of `account.followup`: declared ones and transitions. */
386
+ export interface AccountFollowupMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.followup'> {
387
+ }
388
+
389
+ /** `account.followup.level` (owner: accounting). */
390
+ export interface AccountFollowupLevel {
391
+ readonly name: 'account.followup.level';
392
+ readonly fields: {
393
+ readonly id: F.Id<'account.followup.level'>;
394
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
395
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
396
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
397
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
398
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
399
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
400
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
401
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
402
+ readonly days: F.Integer<{ readonly required: true; readonly default: true }>;
403
+ readonly sendEmail: F.Bool<{ readonly required: true; readonly default: true }>;
404
+ readonly sendSms: F.Bool<{ readonly required: true; readonly default: true }>;
405
+ readonly sendWhatsapp: F.Bool<{ readonly required: true; readonly default: true }>;
406
+ readonly subject: F.Char<{ readonly required: true; readonly translate: true }>;
407
+ readonly body: F.Text<{ readonly required: true; readonly translate: true }>;
408
+ readonly shortText: F.Char<{ readonly translate: true }>;
409
+ readonly blockSales: F.Bool<{ readonly required: true; readonly default: true }>;
410
+ };
411
+ readonly methods: AccountFollowupLevelMethods;
412
+ }
413
+
414
+ /** Methods of `account.followup.level`: declared ones and transitions. */
415
+ export interface AccountFollowupLevelMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.followup.level'> {
416
+ }
417
+
418
+ /** `account.followup.sent` (owner: accounting). */
419
+ export interface AccountFollowupSent {
420
+ readonly name: 'account.followup.sent';
421
+ readonly fields: {
422
+ readonly id: F.Id<'account.followup.sent'>;
423
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
424
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
425
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
426
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
427
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
428
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
429
+ readonly partner: F.Many2one<'res.partner', { readonly required: true }>;
430
+ readonly level: F.Many2one<'account.followup.level'>;
431
+ readonly amount: F.Char;
432
+ readonly invoices: F.Many2many<'account.move', { readonly required: true }>;
433
+ readonly channels: F.Char;
434
+ readonly automatic: F.Bool<{ readonly required: true; readonly default: true }>;
435
+ };
436
+ readonly methods: AccountFollowupSentMethods;
437
+ }
438
+
439
+ /** Methods of `account.followup.sent`: declared ones and transitions. */
440
+ export interface AccountFollowupSentMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.followup.sent'> {
441
+ }
442
+
203
443
  /** `account.full.reconcile` (owner: accounting). */
204
444
  export interface AccountFullReconcile {
205
445
  readonly name: 'account.full.reconcile';
@@ -237,6 +477,8 @@ export interface AccountJournal {
237
477
  readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
238
478
  readonly type: F.Selection<'sale' | 'purchase' | 'cash' | 'bank' | 'general', { readonly required: true; readonly default: true }>;
239
479
  readonly defaultAccount: F.Many2one<'account.account'>;
480
+ readonly bankFeed: F.Char;
481
+ readonly bankFeedCursor: F.Char;
240
482
  };
241
483
  readonly methods: AccountJournalMethods;
242
484
  }
@@ -278,6 +520,7 @@ export interface AccountMove {
278
520
  readonly dateDue: F.DateOnly;
279
521
  readonly paymentDetails: F.Text<{ readonly readonly: true; readonly compute: true }>;
280
522
  readonly paymentTerm: F.Many2one<'account.payment.term'>;
523
+ readonly fiscalPosition: F.Many2one<'account.fiscal.position'>;
281
524
  readonly invoiceOrigin: F.Char;
282
525
  readonly amountUntaxed: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
283
526
  readonly amountTax: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
@@ -306,7 +549,7 @@ export interface AccountMoveMethods extends F.Methods<typeof import('../../accou
306
549
  readonly 'submit': () => Promise<void>;
307
550
  }
308
551
 
309
- /** `account.move.line` (owner: accounting). */
552
+ /** `account.move.line` (owner: accounting; extended by: purchase_account). */
310
553
  export interface AccountMoveLine {
311
554
  readonly name: 'account.move.line';
312
555
  readonly fields: {
@@ -352,12 +595,14 @@ export interface AccountMoveLine {
352
595
  readonly amountResidual: F.Monetary<'companyCurrency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
353
596
  readonly amountResidualCurrency: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
354
597
  readonly reconciled: F.Bool<{ readonly required: true; readonly readonly: true; readonly default: true; readonly compute: true; readonly store: true }>;
598
+ readonly purchaseLine: F.Many2one<'purchase.order.line'>; // purchase_account
599
+ readonly matchNote: F.Char<{ readonly readonly: true; readonly compute: true }>; // purchase_account
355
600
  };
356
601
  readonly methods: AccountMoveLineMethods;
357
602
  }
358
603
 
359
604
  /** Methods of `account.move.line`: declared ones and transitions. */
360
- export interface AccountMoveLineMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.move.line'> {
605
+ 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'> {
361
606
  }
362
607
 
363
608
  /** `account.partial.reconcile` (owner: accounting). */
@@ -486,6 +731,38 @@ export interface AccountPaymentWithholding {
486
731
  export interface AccountPaymentWithholdingMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.payment.withholding'> {
487
732
  }
488
733
 
734
+ /** `account.reconcile.rule` (owner: accounting). */
735
+ export interface AccountReconcileRule {
736
+ readonly name: 'account.reconcile.rule';
737
+ readonly fields: {
738
+ readonly id: F.Id<'account.reconcile.rule'>;
739
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
740
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
741
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
742
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
743
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
744
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
745
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
746
+ readonly name: F.Char<{ readonly required: true }>;
747
+ readonly sequence: F.Integer<{ readonly default: true }>;
748
+ readonly journals: F.Many2many<'account.journal', { readonly required: true }>;
749
+ readonly labelContains: F.Char;
750
+ readonly direction: F.Selection<'both' | 'in' | 'out', { readonly required: true; readonly default: true }>;
751
+ readonly amountMin: F.Decimal;
752
+ readonly amountMax: F.Decimal;
753
+ readonly partner: F.Many2one<'res.partner'>;
754
+ readonly outcome: F.Selection<'match' | 'write_off' | 'suggest', { readonly required: true; readonly default: true }>;
755
+ readonly writeOffAccount: F.Many2one<'account.account'>;
756
+ readonly writeOffLabel: F.Char;
757
+ readonly hits: F.Integer<{ readonly default: true }>;
758
+ };
759
+ readonly methods: AccountReconcileRuleMethods;
760
+ }
761
+
762
+ /** Methods of `account.reconcile.rule`: declared ones and transitions. */
763
+ export interface AccountReconcileRuleMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'account.reconcile.rule'> {
764
+ }
765
+
489
766
  /** `account.tax` (owner: product; extended by: accounting). */
490
767
  export interface AccountTax {
491
768
  readonly name: 'account.tax';
@@ -595,6 +872,29 @@ export interface ApprovalDelegation {
595
872
  export interface ApprovalDelegationMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.delegation'> {
596
873
  }
597
874
 
875
+ /** `approval.event` (owner: permissions). */
876
+ export interface ApprovalEvent {
877
+ readonly name: 'approval.event';
878
+ readonly fields: {
879
+ readonly id: F.Id<'approval.event'>;
880
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
881
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
882
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
883
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
884
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
885
+ readonly request: F.Many2one<'approval.request', { readonly required: true }>;
886
+ readonly at: F.Datetime<{ readonly required: true }>;
887
+ readonly user: F.Many2one<'res.users'>;
888
+ readonly kind: F.Selection<'created' | 'started' | 'voted' | 'approved' | 'rejected' | 'sent_back' | 'cancelled' | 'skipped' | 'reminded' | 'escalated' | 'auto' | 'reassigned' | 'synced' | 'notified', { readonly required: true }>;
889
+ readonly note: F.Text;
890
+ };
891
+ readonly methods: ApprovalEventMethods;
892
+ }
893
+
894
+ /** Methods of `approval.event`: declared ones and transitions. */
895
+ export interface ApprovalEventMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'approval.event'> {
896
+ }
897
+
598
898
  /** `approval.level` (owner: permissions). */
599
899
  export interface ApprovalLevel {
600
900
  readonly name: 'approval.level';
@@ -609,7 +909,9 @@ export interface ApprovalLevel {
609
909
  readonly sequence: F.Integer<{ readonly default: true }>;
610
910
  readonly name: F.Char<{ readonly required: true }>;
611
911
  readonly condition: F.Json;
612
- readonly approverKind: F.Selection<'role' | 'users' | 'manager' | 'field', { readonly required: true; readonly default: true }>;
912
+ readonly approverKind: F.Selection<'role' | 'users' | 'manager' | 'department_head' | 'department_approvers' | 'employee' | 'field' | 'record', { readonly required: true; readonly default: true }>;
913
+ readonly extraUsers: F.Many2many<'res.users', { readonly required: true }>;
914
+ readonly backupUsers: F.Many2many<'res.users', { readonly required: true }>;
613
915
  readonly approverRole: F.Char;
614
916
  readonly approverUsers: F.Many2many<'res.users', { readonly required: true }>;
615
917
  readonly approverField: F.Char;
@@ -663,11 +965,18 @@ export interface ApprovalPolicy {
663
965
  readonly targetModel: F.Char<{ readonly required: true }>;
664
966
  readonly sequence: F.Integer<{ readonly default: true }>;
665
967
  readonly company: F.Many2one<'res.company'>;
968
+ readonly companies: F.Many2many<'res.company', { readonly required: true }>;
969
+ readonly segment: F.Many2one<'res.segment'>;
666
970
  readonly onApproved: F.Char;
667
971
  readonly onRejected: F.Char;
668
972
  readonly onSentBack: F.Char;
669
973
  readonly onWithdrawn: F.Char;
670
974
  readonly reasonRequired: F.Bool<{ readonly required: true; readonly default: true }>;
975
+ readonly condition: F.Json;
976
+ readonly whenNobody: F.Selection<'refuse' | 'admins' | 'skip', { readonly required: true; readonly default: true }>;
977
+ readonly skipDuplicates: F.Bool<{ readonly required: true; readonly default: true }>;
978
+ readonly syncPending: F.Selection<'off' | 'add' | 'replace', { readonly required: true; readonly default: true }>;
979
+ readonly notifyOnSync: F.Bool<{ readonly required: true; readonly default: true }>;
671
980
  readonly levels: F.One2many<'approval.level', { readonly required: true }>;
672
981
  };
673
982
  readonly methods: ApprovalPolicyMethods;
@@ -696,6 +1005,7 @@ export interface ApprovalRequest {
696
1005
  readonly company: F.Many2one<'res.company'>;
697
1006
  readonly approverRole: F.Char;
698
1007
  readonly approvers: F.Many2many<'res.users', { readonly required: true }>;
1008
+ readonly backups: F.Many2many<'res.users', { readonly required: true }>;
699
1009
  readonly required: F.Integer<{ readonly required: true; readonly default: true }>;
700
1010
  readonly round: F.Integer<{ readonly required: true; readonly default: true }>;
701
1011
  readonly votes: F.One2many<'approval.vote', { readonly required: true }>;
@@ -703,6 +1013,8 @@ export interface ApprovalRequest {
703
1013
  readonly remindedAt: F.Datetime;
704
1014
  readonly escalatedTo: F.Char;
705
1015
  readonly escalatedAt: F.Datetime;
1016
+ readonly startedAt: F.Datetime;
1017
+ readonly explanation: F.Text;
706
1018
  readonly state: F.Selection<'pending' | 'approved' | 'rejected' | 'sent_back' | 'cancelled', { readonly required: true; readonly default: true }>;
707
1019
  readonly requestedBy: F.Many2one<'res.users'>;
708
1020
  readonly decidedBy: F.Many2one<'res.users'>;
@@ -733,6 +1045,8 @@ export interface ApprovalVote {
733
1045
  readonly at: F.Datetime<{ readonly required: true }>;
734
1046
  readonly onBehalfOf: F.Many2one<'res.users'>;
735
1047
  readonly ip: F.Char;
1048
+ readonly auto: F.Bool<{ readonly required: true; readonly default: true }>;
1049
+ readonly asBackup: F.Bool<{ readonly required: true; readonly default: true }>;
736
1050
  };
737
1051
  readonly methods: ApprovalVoteMethods;
738
1052
  }
@@ -1254,7 +1568,54 @@ export interface OauthToken {
1254
1568
  export interface OauthTokenMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.token'> {
1255
1569
  }
1256
1570
 
1257
- /** `product.category` (owner: product). */
1571
+ /** `product.attribute` (owner: product). */
1572
+ export interface ProductAttribute {
1573
+ readonly name: 'product.attribute';
1574
+ readonly fields: {
1575
+ readonly id: F.Id<'product.attribute'>;
1576
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1577
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1578
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1579
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1580
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1581
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1582
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
1583
+ readonly display: F.Selection<'list' | 'radio' | 'swatch' | 'size', { readonly required: true; readonly default: true }>;
1584
+ readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
1585
+ readonly values: F.One2many<'product.attribute.value', { readonly required: true }>;
1586
+ };
1587
+ readonly methods: ProductAttributeMethods;
1588
+ }
1589
+
1590
+ /** Methods of `product.attribute`: declared ones and transitions. */
1591
+ export interface ProductAttributeMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.attribute'> {
1592
+ }
1593
+
1594
+ /** `product.attribute.value` (owner: product). */
1595
+ export interface ProductAttributeValue {
1596
+ readonly name: 'product.attribute.value';
1597
+ readonly fields: {
1598
+ readonly id: F.Id<'product.attribute.value'>;
1599
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1600
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1601
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1602
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1603
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1604
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1605
+ readonly attribute: F.Many2one<'product.attribute', { readonly required: true }>;
1606
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
1607
+ readonly color: F.Char;
1608
+ readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
1609
+ readonly extraPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
1610
+ };
1611
+ readonly methods: ProductAttributeValueMethods;
1612
+ }
1613
+
1614
+ /** Methods of `product.attribute.value`: declared ones and transitions. */
1615
+ export interface ProductAttributeValueMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.attribute.value'> {
1616
+ }
1617
+
1618
+ /** `product.category` (owner: product; extended by: accounting). */
1258
1619
  export interface ProductCategory {
1259
1620
  readonly name: 'product.category';
1260
1621
  readonly fields: {
@@ -1267,15 +1628,78 @@ export interface ProductCategory {
1267
1628
  readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1268
1629
  readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
1269
1630
  readonly parent: F.Many2one<'product.category'>;
1631
+ readonly approvalUsers: F.Many2many<'res.users', { readonly required: true }>;
1632
+ readonly incomeAccount: F.Many2one<'account.account'>; // accounting
1633
+ readonly expenseAccount: F.Many2one<'account.account'>; // accounting
1270
1634
  };
1271
1635
  readonly methods: ProductCategoryMethods;
1272
1636
  }
1273
1637
 
1274
1638
  /** Methods of `product.category`: declared ones and transitions. */
1275
- export interface ProductCategoryMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.category'> {
1639
+ export interface ProductCategoryMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.category'>, F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'product.category'> {
1640
+ }
1641
+
1642
+ /** `product.pricelist` (owner: product). */
1643
+ export interface ProductPricelist {
1644
+ readonly name: 'product.pricelist';
1645
+ readonly fields: {
1646
+ readonly id: F.Id<'product.pricelist'>;
1647
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1648
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1649
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1650
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1651
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1652
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1653
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
1654
+ readonly sequence: F.Integer<{ readonly default: true }>;
1655
+ readonly currency: F.Many2one<'res.currency'>;
1656
+ readonly company: F.Many2one<'res.company'>;
1657
+ readonly rules: F.One2many<'product.pricelist.rule', { readonly required: true }>;
1658
+ readonly note: F.Text;
1659
+ };
1660
+ readonly methods: ProductPricelistMethods;
1661
+ }
1662
+
1663
+ /** Methods of `product.pricelist`: declared ones and transitions. */
1664
+ export interface ProductPricelistMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.pricelist'> {
1665
+ }
1666
+
1667
+ /** `product.pricelist.rule` (owner: product). */
1668
+ export interface ProductPricelistRule {
1669
+ readonly name: 'product.pricelist.rule';
1670
+ readonly fields: {
1671
+ readonly id: F.Id<'product.pricelist.rule'>;
1672
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1673
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1674
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1675
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1676
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1677
+ readonly pricelist: F.Many2one<'product.pricelist', { readonly required: true }>;
1678
+ readonly sequence: F.Integer<{ readonly default: true }>;
1679
+ readonly appliesTo: F.Selection<'all' | 'category' | 'product', { readonly required: true; readonly default: true }>;
1680
+ readonly product: F.Many2one<'product.product'>;
1681
+ readonly category: F.Many2one<'product.category'>;
1682
+ readonly minQuantity: F.Decimal<{ readonly default: true }>;
1683
+ readonly dateFrom: F.DateOnly;
1684
+ readonly dateTo: F.DateOnly;
1685
+ readonly compute: F.Selection<'fixed' | 'discount' | 'formula', { readonly required: true; readonly default: true }>;
1686
+ readonly fixedPrice: F.Decimal;
1687
+ readonly base: F.Selection<'list' | 'cost' | 'pricelist', { readonly required: true; readonly default: true }>;
1688
+ readonly basePricelist: F.Many2one<'product.pricelist'>;
1689
+ readonly discount: F.Decimal<{ readonly default: true }>;
1690
+ readonly surcharge: F.Decimal<{ readonly default: true }>;
1691
+ readonly rounding: F.Decimal<{ readonly default: true }>;
1692
+ readonly minMargin: F.Decimal;
1693
+ readonly maxMargin: F.Decimal;
1694
+ };
1695
+ readonly methods: ProductPricelistRuleMethods;
1696
+ }
1697
+
1698
+ /** Methods of `product.pricelist.rule`: declared ones and transitions. */
1699
+ export interface ProductPricelistRuleMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.pricelist.rule'> {
1276
1700
  }
1277
1701
 
1278
- /** `product.product` (owner: product). */
1702
+ /** `product.product` (owner: product; extended by: accounting). */
1279
1703
  export interface ProductProduct {
1280
1704
  readonly name: 'product.product';
1281
1705
  readonly fields: {
@@ -1290,8 +1714,11 @@ export interface ProductProduct {
1290
1714
  readonly code: F.Char<{ readonly readonly: true; readonly sequence: true }>;
1291
1715
  readonly kind: F.Selection<'goods' | 'service', { readonly required: true; readonly default: true }>;
1292
1716
  readonly category: F.Many2one<'product.category'>;
1717
+ readonly invoicePolicy: F.Selection<'ordered' | 'delivered', { readonly default: true }>;
1293
1718
  readonly uom: F.Many2one<'uom.uom'>;
1294
1719
  readonly barcode: F.Char;
1720
+ readonly weight: F.Decimal;
1721
+ readonly volume: F.Decimal;
1295
1722
  readonly image: F.Many2one<'storage.attachment'>;
1296
1723
  readonly listPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
1297
1724
  readonly standardPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
@@ -1302,89 +1729,708 @@ export interface ProductProduct {
1302
1729
  readonly tax: F.Many2one<'account.tax', { readonly readonly: true }>;
1303
1730
  readonly purchaseTax: F.Many2one<'account.tax', { readonly readonly: true }>;
1304
1731
  readonly description: F.Text<{ readonly translate: true }>;
1732
+ readonly template: F.Many2one<'product.template'>;
1733
+ readonly attributeValues: F.Many2many<'product.attribute.value', { readonly required: true }>;
1734
+ readonly followsTemplatePrice: F.Bool<{ readonly required: true; readonly default: true }>;
1735
+ readonly incomeAccount: F.Many2one<'account.account'>; // accounting
1736
+ readonly expenseAccount: F.Many2one<'account.account'>; // accounting
1305
1737
  };
1306
1738
  readonly methods: ProductProductMethods;
1307
1739
  }
1308
1740
 
1309
1741
  /** Methods of `product.product`: declared ones and transitions. */
1310
- export interface ProductProductMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.product'> {
1742
+ export interface ProductProductMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.product'>, F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'product.product'> {
1311
1743
  }
1312
1744
 
1313
- /** `purchase.order` (owner: purchase; extended by: purchase_account, account_budget). */
1314
- export interface PurchaseOrder {
1315
- readonly name: 'purchase.order';
1745
+ /** `product.template` (owner: product). */
1746
+ export interface ProductTemplate {
1747
+ readonly name: 'product.template';
1316
1748
  readonly fields: {
1317
- readonly id: F.Id<'purchase.order'>;
1749
+ readonly id: F.Id<'product.template'>;
1318
1750
  readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1319
1751
  readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1320
1752
  readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1321
1753
  readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1322
1754
  readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1323
- readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1324
- readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
1325
- readonly user: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
1326
- readonly partner: F.Many2one<'res.partner', { readonly required: true }>;
1327
- readonly partnerReference: F.Char;
1328
- readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
1329
- readonly dateOrder: F.DateOnly<{ readonly required: true; readonly default: true }>;
1330
- readonly datePlanned: F.DateOnly;
1331
- readonly origin: F.Char;
1332
- readonly note: F.Text;
1333
- readonly lines: F.One2many<'purchase.order.line', { readonly required: true }>;
1334
- readonly amountUntaxed: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
1335
- readonly amountTax: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
1336
- readonly amountTotal: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
1337
- readonly state: F.State<'draft' | 'sent' | 'to_approve' | 'purchase' | 'done' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
1338
- readonly bills: F.One2many<'account.move', { readonly required: true }>; // purchase_account
1339
- readonly billState: F.Selection<'no' | 'to_bill' | 'billed', { readonly readonly: true; readonly compute: true; readonly store: true }>; // purchase_account
1340
- readonly overBudget: F.Bool<{ readonly required: true; readonly default: true }>; // account_budget
1341
- readonly budgetNote: F.Text; // account_budget
1755
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1756
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
1757
+ readonly kind: F.Selection<'goods' | 'service', { readonly required: true; readonly default: true }>;
1758
+ readonly category: F.Many2one<'product.category'>;
1759
+ readonly uom: F.Many2one<'uom.uom'>;
1760
+ readonly listPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
1761
+ readonly standardPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
1762
+ readonly saleOk: F.Bool<{ readonly required: true; readonly default: true }>;
1763
+ readonly purchaseOk: F.Bool<{ readonly required: true; readonly default: true }>;
1764
+ readonly taxes: F.Many2many<'account.tax', { readonly required: true }>;
1765
+ readonly purchaseTaxes: F.Many2many<'account.tax', { readonly required: true }>;
1766
+ readonly image: F.Many2one<'storage.attachment'>;
1767
+ readonly description: F.Text<{ readonly translate: true }>;
1768
+ readonly lines: F.One2many<'product.template.line', { readonly required: true }>;
1769
+ readonly exclusions: F.One2many<'product.template.exclusion', { readonly required: true }>;
1770
+ readonly variants: F.One2many<'product.product', { readonly required: true }>;
1771
+ readonly variantCount: F.Integer<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1772
+ readonly state: F.State<'draft' | 'ready', { readonly required: true; readonly readonly: true; readonly default: true }>;
1342
1773
  };
1343
- readonly methods: PurchaseOrderMethods;
1774
+ readonly methods: ProductTemplateMethods;
1344
1775
  }
1345
1776
 
1346
- /** Methods of `purchase.order`: declared ones and transitions. */
1347
- export interface PurchaseOrderMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.order'>, F.Methods<typeof import('../../purchase_account/index.js').purchaseAccountShutro, 'purchase.order'>, F.Methods<typeof import('../module.js').accountBudgetShutro, 'purchase.order'> {
1348
- readonly 'bill': () => Promise<void>;
1349
- readonly 'cancel': () => Promise<void>;
1350
- readonly 'confirm': () => Promise<void>;
1351
- readonly 'lock': () => Promise<void>;
1352
- readonly 'redraft': () => Promise<void>;
1353
- readonly 'reject': () => Promise<void>;
1354
- readonly 'send': () => Promise<void>;
1355
- readonly 'submit': () => Promise<void>;
1356
- readonly 'unlock': () => Promise<void>;
1777
+ /** Methods of `product.template`: declared ones and transitions. */
1778
+ export interface ProductTemplateMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.template'> {
1779
+ readonly 'generate': () => Promise<void>;
1357
1780
  }
1358
1781
 
1359
- /** `purchase.order.line` (owner: purchase; extended by: purchase_account). */
1360
- export interface PurchaseOrderLine {
1361
- readonly name: 'purchase.order.line';
1782
+ /** `product.template.exclusion` (owner: product). */
1783
+ export interface ProductTemplateExclusion {
1784
+ readonly name: 'product.template.exclusion';
1362
1785
  readonly fields: {
1363
- readonly id: F.Id<'purchase.order.line'>;
1786
+ readonly id: F.Id<'product.template.exclusion'>;
1364
1787
  readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1365
1788
  readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1366
1789
  readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1367
1790
  readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1368
1791
  readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1369
- readonly order: F.Many2one<'purchase.order', { readonly required: true }>;
1370
- readonly product: F.Many2one<'product.product', { readonly required: true }>;
1371
- readonly name: F.Char<{ readonly required: true }>;
1372
- readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
1373
- readonly uom: F.Many2one<'uom.uom'>;
1374
- readonly priceUnit: F.Decimal<{ readonly required: true; readonly default: true }>;
1792
+ readonly template: F.Many2one<'product.template', { readonly required: true }>;
1793
+ readonly values: F.Many2many<'product.attribute.value', { readonly required: true }>;
1794
+ readonly note: F.Char;
1795
+ };
1796
+ readonly methods: ProductTemplateExclusionMethods;
1797
+ }
1798
+
1799
+ /** Methods of `product.template.exclusion`: declared ones and transitions. */
1800
+ export interface ProductTemplateExclusionMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.template.exclusion'> {
1801
+ }
1802
+
1803
+ /** `product.template.line` (owner: product). */
1804
+ export interface ProductTemplateLine {
1805
+ readonly name: 'product.template.line';
1806
+ readonly fields: {
1807
+ readonly id: F.Id<'product.template.line'>;
1808
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1809
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1810
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1811
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1812
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1813
+ readonly template: F.Many2one<'product.template', { readonly required: true }>;
1814
+ readonly attribute: F.Many2one<'product.attribute', { readonly required: true }>;
1815
+ readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
1816
+ readonly values: F.Many2many<'product.attribute.value', { readonly required: true }>;
1817
+ };
1818
+ readonly methods: ProductTemplateLineMethods;
1819
+ }
1820
+
1821
+ /** Methods of `product.template.line`: declared ones and transitions. */
1822
+ export interface ProductTemplateLineMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.template.line'> {
1823
+ }
1824
+
1825
+ /** `product.vendor.price` (owner: purchase). */
1826
+ export interface ProductVendorPrice {
1827
+ readonly name: 'product.vendor.price';
1828
+ readonly fields: {
1829
+ readonly id: F.Id<'product.vendor.price'>;
1830
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1831
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1832
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1833
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1834
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1835
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1836
+ readonly company: F.Many2one<'res.company', { readonly default: true }>;
1837
+ readonly vendor: F.Many2one<'res.partner', { readonly required: true }>;
1838
+ readonly product: F.Many2one<'product.product'>;
1839
+ readonly category: F.Many2one<'product.category'>;
1840
+ readonly vendorCode: F.Char;
1841
+ readonly vendorName: F.Char;
1842
+ readonly currency: F.Many2one<'res.currency'>;
1843
+ readonly minQuantity: F.Decimal<{ readonly required: true; readonly default: true }>;
1844
+ readonly price: F.Decimal<{ readonly required: true }>;
1845
+ readonly dateFrom: F.DateOnly;
1846
+ readonly dateTo: F.DateOnly;
1847
+ readonly leadDays: F.Integer<{ readonly required: true; readonly default: true }>;
1848
+ readonly preferred: F.Bool<{ readonly required: true; readonly default: true }>;
1849
+ readonly sequence: F.Integer<{ readonly default: true }>;
1850
+ };
1851
+ readonly methods: ProductVendorPriceMethods;
1852
+ }
1853
+
1854
+ /** Methods of `product.vendor.price`: declared ones and transitions. */
1855
+ export interface ProductVendorPriceMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'product.vendor.price'> {
1856
+ }
1857
+
1858
+ /** `purchase.agreement` (owner: purchase). */
1859
+ export interface PurchaseAgreement {
1860
+ readonly name: 'purchase.agreement';
1861
+ readonly fields: {
1862
+ readonly id: F.Id<'purchase.agreement'>;
1863
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1864
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1865
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1866
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1867
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1868
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1869
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
1870
+ readonly vendor: F.Many2one<'res.partner', { readonly required: true }>;
1871
+ readonly buyer: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
1872
+ readonly kind: F.Selection<'blanket' | 'contract', { readonly required: true; readonly default: true }>;
1873
+ readonly reference: F.Char;
1874
+ readonly dateStart: F.DateOnly;
1875
+ readonly dateEnd: F.DateOnly;
1876
+ readonly currency: F.Many2one<'res.currency'>;
1877
+ readonly note: F.Text;
1878
+ readonly lines: F.One2many<'purchase.agreement.line', { readonly required: true }>;
1879
+ readonly orders: F.One2many<'purchase.order', { readonly required: true }>;
1880
+ readonly state: F.State<'draft' | 'confirmed' | 'closed' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
1881
+ };
1882
+ readonly methods: PurchaseAgreementMethods;
1883
+ }
1884
+
1885
+ /** Methods of `purchase.agreement`: declared ones and transitions. */
1886
+ export interface PurchaseAgreementMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.agreement'> {
1887
+ readonly 'cancel': () => Promise<void>;
1888
+ readonly 'close': () => Promise<void>;
1889
+ readonly 'confirm': () => Promise<void>;
1890
+ readonly 'redraft': () => Promise<void>;
1891
+ }
1892
+
1893
+ /** `purchase.agreement.line` (owner: purchase). */
1894
+ export interface PurchaseAgreementLine {
1895
+ readonly name: 'purchase.agreement.line';
1896
+ readonly fields: {
1897
+ readonly id: F.Id<'purchase.agreement.line'>;
1898
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1899
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1900
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1901
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1902
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1903
+ readonly agreement: F.Many2one<'purchase.agreement', { readonly required: true }>;
1904
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
1905
+ readonly name: F.Char;
1906
+ readonly quantity: F.Decimal;
1907
+ readonly uom: F.Many2one<'uom.uom'>;
1908
+ readonly priceUnit: F.Decimal<{ readonly required: true; readonly default: true }>;
1909
+ readonly qtyOrdered: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1910
+ };
1911
+ readonly methods: PurchaseAgreementLineMethods;
1912
+ }
1913
+
1914
+ /** Methods of `purchase.agreement.line`: declared ones and transitions. */
1915
+ export interface PurchaseAgreementLineMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.agreement.line'> {
1916
+ }
1917
+
1918
+ /** `purchase.comparison` (owner: purchase). */
1919
+ export interface PurchaseComparison {
1920
+ readonly name: 'purchase.comparison';
1921
+ readonly fields: {
1922
+ readonly id: F.Id<'purchase.comparison'>;
1923
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1924
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1925
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1926
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1927
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1928
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1929
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
1930
+ readonly tender: F.Many2one<'purchase.tender', { readonly required: true }>;
1931
+ readonly date: F.DateOnly<{ readonly required: true; readonly default: true }>;
1932
+ readonly expiryDate: F.DateOnly;
1933
+ readonly dateDelivery: F.DateOnly;
1934
+ readonly multiVendor: F.Bool<{ readonly required: true; readonly default: true }>;
1935
+ readonly note: F.Text;
1936
+ readonly lines: F.One2many<'purchase.comparison.line', { readonly required: true }>;
1937
+ readonly amountTotal: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1938
+ readonly state: F.State<'draft' | 'submitted' | 'approved' | 'confirmed' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
1939
+ };
1940
+ readonly methods: PurchaseComparisonMethods;
1941
+ }
1942
+
1943
+ /** Methods of `purchase.comparison`: declared ones and transitions. */
1944
+ export interface PurchaseComparisonMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.comparison'> {
1945
+ readonly 'approve': () => Promise<void>;
1946
+ readonly 'cancel': () => Promise<void>;
1947
+ readonly 'confirm': () => Promise<void>;
1948
+ readonly 'fill': () => Promise<void>;
1949
+ readonly 'redraft': () => Promise<void>;
1950
+ readonly 'reject': () => Promise<void>;
1951
+ readonly 'submit': () => Promise<void>;
1952
+ }
1953
+
1954
+ /** `purchase.comparison.line` (owner: purchase). */
1955
+ export interface PurchaseComparisonLine {
1956
+ readonly name: 'purchase.comparison.line';
1957
+ readonly fields: {
1958
+ readonly id: F.Id<'purchase.comparison.line'>;
1959
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1960
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1961
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1962
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1963
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1964
+ readonly comparison: F.Many2one<'purchase.comparison', { readonly required: true }>;
1965
+ readonly tenderLine: F.Many2one<'purchase.tender.line', { readonly required: true }>;
1966
+ readonly response: F.Many2one<'purchase.tender.response', { readonly required: true }>;
1967
+ readonly csQty: F.Decimal<{ readonly required: true; readonly default: true }>;
1968
+ readonly quote: F.Decimal<{ readonly required: true; readonly default: true }>;
1969
+ readonly nego1: F.Decimal;
1970
+ readonly nego2: F.Decimal;
1971
+ readonly finalPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
1972
+ readonly total: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1973
+ readonly selected: F.Bool<{ readonly required: true; readonly default: true }>;
1974
+ readonly lowest: F.Bool<{ readonly required: true; readonly readonly: true; readonly default: true; readonly compute: true; readonly store: true }>;
1975
+ };
1976
+ readonly methods: PurchaseComparisonLineMethods;
1977
+ }
1978
+
1979
+ /** Methods of `purchase.comparison.line`: declared ones and transitions. */
1980
+ export interface PurchaseComparisonLineMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.comparison.line'> {
1981
+ }
1982
+
1983
+ /** `purchase.order` (owner: purchase; extended by: purchase_account, account_budget). */
1984
+ export interface PurchaseOrder {
1985
+ readonly name: 'purchase.order';
1986
+ readonly fields: {
1987
+ readonly id: F.Id<'purchase.order'>;
1988
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1989
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1990
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1991
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1992
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1993
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
1994
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
1995
+ readonly user: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
1996
+ readonly partner: F.Many2one<'res.partner', { readonly required: true }>;
1997
+ readonly partnerReference: F.Char;
1998
+ readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
1999
+ readonly dateOrder: F.DateOnly<{ readonly required: true; readonly default: true }>;
2000
+ readonly datePlanned: F.DateOnly;
2001
+ readonly origin: F.Char;
2002
+ readonly note: F.Text;
2003
+ readonly poType: F.Selection<'general' | 'service' | 'capital', { readonly required: true; readonly default: true }>;
2004
+ readonly sourcing: F.Selection<'local' | 'import', { readonly required: true; readonly default: true }>;
2005
+ readonly advancePercent: F.Decimal<{ readonly default: true }>;
2006
+ readonly agreement: F.Many2one<'purchase.agreement'>;
2007
+ readonly acceptances: F.One2many<'purchase.work.acceptance', { readonly required: true }>;
2008
+ readonly acceptanceCount: F.Integer<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2009
+ readonly lines: F.One2many<'purchase.order.line', { readonly required: true }>;
2010
+ readonly amountUntaxed: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
2011
+ readonly amountTax: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
2012
+ readonly amountTotal: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
2013
+ readonly state: F.State<'draft' | 'sent' | 'to_approve' | 'purchase' | 'done' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
2014
+ readonly bills: F.One2many<'account.move', { readonly required: true }>; // purchase_account
2015
+ readonly billState: F.Selection<'no' | 'to_bill' | 'billed', { readonly readonly: true; readonly compute: true; readonly store: true }>; // purchase_account
2016
+ readonly overBudget: F.Bool<{ readonly required: true; readonly default: true }>; // account_budget
2017
+ readonly budgetNote: F.Text; // account_budget
2018
+ };
2019
+ readonly methods: PurchaseOrderMethods;
2020
+ }
2021
+
2022
+ /** Methods of `purchase.order`: declared ones and transitions. */
2023
+ export interface PurchaseOrderMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.order'>, F.Methods<typeof import('../../purchase_account/index.js').purchaseAccountShutro, 'purchase.order'>, F.Methods<typeof import('../module.js').accountBudgetShutro, 'purchase.order'> {
2024
+ readonly 'bill': () => Promise<void>;
2025
+ readonly 'budget': () => Promise<void>;
2026
+ readonly 'cancel': () => Promise<void>;
2027
+ readonly 'confirm': () => Promise<void>;
2028
+ readonly 'lock': () => Promise<void>;
2029
+ readonly 'redraft': () => Promise<void>;
2030
+ readonly 'refund': () => Promise<void>;
2031
+ readonly 'reject': () => Promise<void>;
2032
+ readonly 'send': () => Promise<void>;
2033
+ readonly 'submit': () => Promise<void>;
2034
+ readonly 'unlock': () => Promise<void>;
2035
+ }
2036
+
2037
+ /** `purchase.order.line` (owner: purchase; extended by: purchase_account, purchase_account). */
2038
+ export interface PurchaseOrderLine {
2039
+ readonly name: 'purchase.order.line';
2040
+ readonly fields: {
2041
+ readonly id: F.Id<'purchase.order.line'>;
2042
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2043
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2044
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2045
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2046
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2047
+ readonly order: F.Many2one<'purchase.order', { readonly required: true }>;
2048
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
2049
+ readonly name: F.Char<{ readonly required: true }>;
2050
+ readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
2051
+ readonly uom: F.Many2one<'uom.uom'>;
2052
+ readonly priceUnit: F.Decimal<{ readonly compute: true; readonly store: true; readonly inverse: true }>;
2053
+ readonly manualPrice: F.Decimal;
2054
+ readonly priceReason: F.Char<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2055
+ readonly vendorCode: F.Char<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
1375
2056
  readonly taxes: F.Many2many<'account.tax', { readonly required: true }>;
1376
2057
  readonly tax: F.Many2one<'account.tax', { readonly readonly: true }>;
1377
2058
  readonly datePlanned: F.DateOnly;
2059
+ readonly acceptanceLines: F.One2many<'purchase.work.acceptance.line', { readonly required: true }>;
2060
+ readonly qtyAccepted: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2061
+ readonly requestLine: F.Many2one<'purchase.request.line'>;
1378
2062
  readonly currency: F.Many2one<'res.currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
1379
2063
  readonly subtotal: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
1380
2064
  readonly taxAmount: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
1381
2065
  readonly analytic: F.Many2one<'account.analytic'>; // purchase_account
2066
+ readonly billLines: F.One2many<'account.move.line', { readonly required: true }>; // purchase_account
2067
+ readonly qtyBilled: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>; // purchase_account
1382
2068
  };
1383
2069
  readonly methods: PurchaseOrderLineMethods;
1384
2070
  }
1385
2071
 
1386
2072
  /** Methods of `purchase.order.line`: declared ones and transitions. */
1387
- 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'> {
2073
+ 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'> {
2074
+ }
2075
+
2076
+ /** `purchase.request` (owner: purchase). */
2077
+ export interface PurchaseRequest {
2078
+ readonly name: 'purchase.request';
2079
+ readonly fields: {
2080
+ readonly id: F.Id<'purchase.request'>;
2081
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2082
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2083
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2084
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2085
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2086
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
2087
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
2088
+ readonly requester: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
2089
+ readonly date: F.DateOnly<{ readonly required: true; readonly default: true }>;
2090
+ readonly dateRequired: F.DateOnly<{ readonly required: true; readonly default: true }>;
2091
+ readonly priority: F.Selection<'normal' | 'high' | 'urgent' | 'critical', { readonly required: true; readonly default: true }>;
2092
+ readonly vendor: F.Many2one<'res.partner'>;
2093
+ readonly purpose: F.Text;
2094
+ readonly lines: F.One2many<'purchase.request.line', { readonly required: true }>;
2095
+ readonly amountEstimate: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2096
+ readonly rejectReason: F.Char;
2097
+ readonly state: F.State<'draft' | 'to_approve' | 'approved' | 'done' | 'rejected' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
2098
+ };
2099
+ readonly methods: PurchaseRequestMethods;
2100
+ }
2101
+
2102
+ /** Methods of `purchase.request`: declared ones and transitions. */
2103
+ export interface PurchaseRequestMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.request'> {
2104
+ readonly 'approve': () => Promise<void>;
2105
+ readonly 'cancel': () => Promise<void>;
2106
+ readonly 'close': () => Promise<void>;
2107
+ readonly 'redraft': () => Promise<void>;
2108
+ readonly 'reject': () => Promise<void>;
2109
+ readonly 'rfq': () => Promise<void>;
2110
+ readonly 'submit': () => Promise<void>;
2111
+ readonly 'tender': () => Promise<void>;
2112
+ }
2113
+
2114
+ /** `purchase.request.line` (owner: purchase). */
2115
+ export interface PurchaseRequestLine {
2116
+ readonly name: 'purchase.request.line';
2117
+ readonly fields: {
2118
+ readonly id: F.Id<'purchase.request.line'>;
2119
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2120
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2121
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2122
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2123
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2124
+ readonly request: F.Many2one<'purchase.request', { readonly required: true }>;
2125
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
2126
+ readonly name: F.Char;
2127
+ readonly uom: F.Many2one<'uom.uom'>;
2128
+ readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
2129
+ readonly qtyApproved: F.Decimal;
2130
+ readonly dateRequired: F.DateOnly;
2131
+ readonly buyers: F.Many2many<'res.users', { readonly required: true }>;
2132
+ readonly purchaseLines: F.One2many<'purchase.order.line', { readonly required: true }>;
2133
+ readonly tenderLines: F.One2many<'purchase.tender.line', { readonly required: true }>;
2134
+ readonly qtyOnRfq: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2135
+ readonly qtyOrdered: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2136
+ readonly qtyRemaining: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2137
+ readonly status: F.Selection<'draft' | 'to_approve' | 'approved' | 'rfq' | 'ordered' | 'done' | 'cancelled', { readonly readonly: true; readonly compute: true; readonly store: true }>;
2138
+ };
2139
+ readonly methods: PurchaseRequestLineMethods;
2140
+ }
2141
+
2142
+ /** Methods of `purchase.request.line`: declared ones and transitions. */
2143
+ export interface PurchaseRequestLineMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.request.line'> {
2144
+ }
2145
+
2146
+ /** `purchase.technical.comparison` (owner: purchase). */
2147
+ export interface PurchaseTechnicalComparison {
2148
+ readonly name: 'purchase.technical.comparison';
2149
+ readonly fields: {
2150
+ readonly id: F.Id<'purchase.technical.comparison'>;
2151
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2152
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2153
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2154
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2155
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2156
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
2157
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
2158
+ readonly tender: F.Many2one<'purchase.tender', { readonly required: true }>;
2159
+ readonly engineer: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
2160
+ readonly kind: F.Selection<'simple' | 'detailed', { readonly required: true; readonly default: true }>;
2161
+ readonly date: F.DateOnly<{ readonly required: true; readonly default: true }>;
2162
+ readonly remarks: F.Text;
2163
+ readonly lines: F.One2many<'purchase.technical.comparison.line', { readonly required: true }>;
2164
+ readonly state: F.State<'draft' | 'submitted' | 'approved' | 'confirmed' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
2165
+ };
2166
+ readonly methods: PurchaseTechnicalComparisonMethods;
2167
+ }
2168
+
2169
+ /** Methods of `purchase.technical.comparison`: declared ones and transitions. */
2170
+ export interface PurchaseTechnicalComparisonMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.technical.comparison'> {
2171
+ readonly 'approve': () => Promise<void>;
2172
+ readonly 'cancel': () => Promise<void>;
2173
+ readonly 'confirm': () => Promise<void>;
2174
+ readonly 'fill': () => Promise<void>;
2175
+ readonly 'redraft': () => Promise<void>;
2176
+ readonly 'submit': () => Promise<void>;
2177
+ }
2178
+
2179
+ /** `purchase.technical.comparison.line` (owner: purchase). */
2180
+ export interface PurchaseTechnicalComparisonLine {
2181
+ readonly name: 'purchase.technical.comparison.line';
2182
+ readonly fields: {
2183
+ readonly id: F.Id<'purchase.technical.comparison.line'>;
2184
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2185
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2186
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2187
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2188
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2189
+ readonly comparison: F.Many2one<'purchase.technical.comparison', { readonly required: true }>;
2190
+ readonly response: F.Many2one<'purchase.tender.response', { readonly required: true }>;
2191
+ readonly score: F.Decimal<{ readonly required: true; readonly default: true }>;
2192
+ readonly meetsSpecifications: F.Bool<{ readonly required: true; readonly default: true }>;
2193
+ readonly note: F.Char;
2194
+ };
2195
+ readonly methods: PurchaseTechnicalComparisonLineMethods;
2196
+ }
2197
+
2198
+ /** Methods of `purchase.technical.comparison.line`: declared ones and transitions. */
2199
+ export interface PurchaseTechnicalComparisonLineMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.technical.comparison.line'> {
2200
+ }
2201
+
2202
+ /** `purchase.tender` (owner: purchase). */
2203
+ export interface PurchaseTender {
2204
+ readonly name: 'purchase.tender';
2205
+ readonly fields: {
2206
+ readonly id: F.Id<'purchase.tender'>;
2207
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2208
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2209
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2210
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2211
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2212
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
2213
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
2214
+ readonly buyer: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
2215
+ readonly date: F.DateOnly<{ readonly required: true; readonly default: true }>;
2216
+ readonly deadline: F.DateOnly<{ readonly required: true }>;
2217
+ readonly dateDelivery: F.DateOnly;
2218
+ readonly sourcing: F.Selection<'local' | 'import', { readonly required: true; readonly default: true }>;
2219
+ readonly topic: F.Char;
2220
+ readonly vendors: F.Many2many<'res.partner', { readonly required: true }>;
2221
+ readonly currency: F.Many2one<'res.currency'>;
2222
+ readonly paymentTerms: F.Char;
2223
+ readonly technical: F.Bool<{ readonly required: true; readonly default: true }>;
2224
+ readonly note: F.Text;
2225
+ readonly request: F.Many2one<'purchase.request'>;
2226
+ readonly lines: F.One2many<'purchase.tender.line', { readonly required: true }>;
2227
+ readonly responses: F.One2many<'purchase.tender.response', { readonly required: true }>;
2228
+ readonly responseCount: F.Integer<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2229
+ readonly state: F.State<'draft' | 'sent' | 'received' | 'comparing' | 'selected' | 'ordered' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
2230
+ };
2231
+ readonly methods: PurchaseTenderMethods;
2232
+ }
2233
+
2234
+ /** Methods of `purchase.tender`: declared ones and transitions. */
2235
+ export interface PurchaseTenderMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.tender'> {
2236
+ readonly 'cancel': () => Promise<void>;
2237
+ readonly 'close': () => Promise<void>;
2238
+ readonly 'compare': () => Promise<void>;
2239
+ readonly 'order': () => Promise<void>;
2240
+ readonly 'redraft': () => Promise<void>;
2241
+ readonly 'select': () => Promise<void>;
2242
+ readonly 'send': () => Promise<void>;
2243
+ }
2244
+
2245
+ /** `purchase.tender.line` (owner: purchase). */
2246
+ export interface PurchaseTenderLine {
2247
+ readonly name: 'purchase.tender.line';
2248
+ readonly fields: {
2249
+ readonly id: F.Id<'purchase.tender.line'>;
2250
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2251
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2252
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2253
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2254
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2255
+ readonly tender: F.Many2one<'purchase.tender', { readonly required: true }>;
2256
+ readonly sequence: F.Integer<{ readonly default: true }>;
2257
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
2258
+ readonly name: F.Char;
2259
+ readonly uom: F.Many2one<'uom.uom'>;
2260
+ readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
2261
+ readonly requestLine: F.Many2one<'purchase.request.line'>;
2262
+ };
2263
+ readonly methods: PurchaseTenderLineMethods;
2264
+ }
2265
+
2266
+ /** Methods of `purchase.tender.line`: declared ones and transitions. */
2267
+ export interface PurchaseTenderLineMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.tender.line'> {
2268
+ }
2269
+
2270
+ /** `purchase.tender.response` (owner: purchase). */
2271
+ export interface PurchaseTenderResponse {
2272
+ readonly name: 'purchase.tender.response';
2273
+ readonly fields: {
2274
+ readonly id: F.Id<'purchase.tender.response'>;
2275
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2276
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2277
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2278
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2279
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2280
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
2281
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
2282
+ readonly tender: F.Many2one<'purchase.tender', { readonly required: true }>;
2283
+ readonly vendor: F.Many2one<'res.partner', { readonly required: true }>;
2284
+ readonly responseDate: F.Datetime;
2285
+ readonly dateDelivery: F.DateOnly;
2286
+ readonly paymentTerms: F.Char;
2287
+ readonly advancePercent: F.Decimal<{ readonly default: true }>;
2288
+ readonly technicalRank: F.Integer<{ readonly default: true }>;
2289
+ readonly remark: F.Text;
2290
+ readonly lines: F.One2many<'purchase.tender.response.line', { readonly required: true }>;
2291
+ readonly amountTotal: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2292
+ readonly tokenHash: F.Char;
2293
+ readonly tokenExpiresAt: F.Datetime;
2294
+ readonly state: F.State<'invited' | 'quoted' | 'submitted' | 'not_responded' | 'rejected', { readonly required: true; readonly readonly: true; readonly default: true }>;
2295
+ };
2296
+ readonly methods: PurchaseTenderResponseMethods;
2297
+ }
2298
+
2299
+ /** Methods of `purchase.tender.response`: declared ones and transitions. */
2300
+ export interface PurchaseTenderResponseMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.tender.response'> {
2301
+ readonly 'quote': () => Promise<void>;
2302
+ readonly 'reject': () => Promise<void>;
2303
+ readonly 'reopen': () => Promise<void>;
2304
+ readonly 'submit': () => Promise<void>;
2305
+ readonly 'unanswered': () => Promise<void>;
2306
+ }
2307
+
2308
+ /** `purchase.tender.response.line` (owner: purchase). */
2309
+ export interface PurchaseTenderResponseLine {
2310
+ readonly name: 'purchase.tender.response.line';
2311
+ readonly fields: {
2312
+ readonly id: F.Id<'purchase.tender.response.line'>;
2313
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2314
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2315
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2316
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2317
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2318
+ readonly response: F.Many2one<'purchase.tender.response', { readonly required: true }>;
2319
+ readonly tenderLine: F.Many2one<'purchase.tender.line', { readonly required: true }>;
2320
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
2321
+ readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
2322
+ readonly priceUnit: F.Decimal<{ readonly required: true; readonly default: true }>;
2323
+ readonly subtotal: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2324
+ readonly note: F.Char;
2325
+ };
2326
+ readonly methods: PurchaseTenderResponseLineMethods;
2327
+ }
2328
+
2329
+ /** Methods of `purchase.tender.response.line`: declared ones and transitions. */
2330
+ export interface PurchaseTenderResponseLineMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.tender.response.line'> {
2331
+ }
2332
+
2333
+ /** `purchase.vendor.request` (owner: purchase). */
2334
+ export interface PurchaseVendorRequest {
2335
+ readonly name: 'purchase.vendor.request';
2336
+ readonly fields: {
2337
+ readonly id: F.Id<'purchase.vendor.request'>;
2338
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2339
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2340
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2341
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2342
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2343
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
2344
+ readonly name: F.Char<{ readonly required: true }>;
2345
+ readonly kind: F.Selection<'vendor' | 'contractor' | 'service', { readonly required: true; readonly default: true }>;
2346
+ readonly street: F.Char;
2347
+ readonly street2: F.Char;
2348
+ readonly city: F.Char;
2349
+ readonly zip: F.Char;
2350
+ readonly country: F.Char<{ readonly default: true }>;
2351
+ readonly nid: F.Char;
2352
+ readonly tradeLicense: F.Char;
2353
+ readonly proprietorName: F.Char;
2354
+ readonly proprietorMobile: F.Char;
2355
+ readonly email: F.Char;
2356
+ readonly phone: F.Char;
2357
+ readonly requester: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
2358
+ readonly date: F.DateOnly<{ readonly required: true; readonly default: true }>;
2359
+ readonly partner: F.Many2one<'res.partner'>;
2360
+ readonly rejectReason: F.Char;
2361
+ readonly note: F.Text;
2362
+ readonly state: F.State<'draft' | 'to_approve' | 'approved' | 'rejected', { readonly required: true; readonly readonly: true; readonly default: true }>;
2363
+ };
2364
+ readonly methods: PurchaseVendorRequestMethods;
2365
+ }
2366
+
2367
+ /** Methods of `purchase.vendor.request`: declared ones and transitions. */
2368
+ export interface PurchaseVendorRequestMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.vendor.request'> {
2369
+ readonly 'approve': () => Promise<void>;
2370
+ readonly 'redraft': () => Promise<void>;
2371
+ readonly 'reject': () => Promise<void>;
2372
+ readonly 'submit': () => Promise<void>;
2373
+ }
2374
+
2375
+ /** `purchase.work.acceptance` (owner: purchase). */
2376
+ export interface PurchaseWorkAcceptance {
2377
+ readonly name: 'purchase.work.acceptance';
2378
+ readonly fields: {
2379
+ readonly id: F.Id<'purchase.work.acceptance'>;
2380
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2381
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2382
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2383
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2384
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2385
+ readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
2386
+ readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
2387
+ readonly vendor: F.Many2one<'res.partner', { readonly required: true }>;
2388
+ readonly order: F.Many2one<'purchase.order', { readonly required: true }>;
2389
+ readonly responsible: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
2390
+ readonly invoiceReference: F.Char;
2391
+ readonly dueDate: F.DateOnly<{ readonly required: true; readonly default: true }>;
2392
+ readonly acceptedOn: F.DateOnly;
2393
+ readonly currency: F.Many2one<'res.currency'>;
2394
+ readonly note: F.Text;
2395
+ readonly lines: F.One2many<'purchase.work.acceptance.line', { readonly required: true }>;
2396
+ readonly amountTotal: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2397
+ readonly state: F.State<'draft' | 'accepted' | 'cancel', { readonly required: true; readonly readonly: true; readonly default: true }>;
2398
+ };
2399
+ readonly methods: PurchaseWorkAcceptanceMethods;
2400
+ }
2401
+
2402
+ /** Methods of `purchase.work.acceptance`: declared ones and transitions. */
2403
+ export interface PurchaseWorkAcceptanceMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.work.acceptance'> {
2404
+ readonly 'accept': () => Promise<void>;
2405
+ readonly 'cancel': () => Promise<void>;
2406
+ readonly 'fill': () => Promise<void>;
2407
+ readonly 'redraft': () => Promise<void>;
2408
+ }
2409
+
2410
+ /** `purchase.work.acceptance.line` (owner: purchase). */
2411
+ export interface PurchaseWorkAcceptanceLine {
2412
+ readonly name: 'purchase.work.acceptance.line';
2413
+ readonly fields: {
2414
+ readonly id: F.Id<'purchase.work.acceptance.line'>;
2415
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2416
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2417
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2418
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2419
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2420
+ readonly acceptance: F.Many2one<'purchase.work.acceptance', { readonly required: true }>;
2421
+ readonly orderLine: F.Many2one<'purchase.order.line', { readonly required: true }>;
2422
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
2423
+ readonly name: F.Char;
2424
+ readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
2425
+ readonly uom: F.Many2one<'uom.uom'>;
2426
+ readonly priceUnit: F.Decimal<{ readonly required: true; readonly default: true }>;
2427
+ readonly subtotal: F.Decimal<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
2428
+ };
2429
+ readonly methods: PurchaseWorkAcceptanceLineMethods;
2430
+ }
2431
+
2432
+ /** Methods of `purchase.work.acceptance.line`: declared ones and transitions. */
2433
+ export interface PurchaseWorkAcceptanceLineMethods extends F.Methods<typeof import('../../purchase/index.js').purchaseShutro, 'purchase.work.acceptance.line'> {
1388
2434
  }
1389
2435
 
1390
2436
  /** `report.dashboard` (owner: reporting). */
@@ -1626,7 +2672,7 @@ export interface ResCurrencyRate {
1626
2672
  export interface ResCurrencyRateMethods extends F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'res.currency.rate'> {
1627
2673
  }
1628
2674
 
1629
- /** `res.partner` (owner: contacts; extended by: accounting). */
2675
+ /** `res.partner` (owner: contacts; extended by: accounting, accounting). */
1630
2676
  export interface ResPartner {
1631
2677
  readonly name: 'res.partner';
1632
2678
  readonly fields: {
@@ -1647,6 +2693,7 @@ export interface ResPartner {
1647
2693
  readonly parent: F.Many2one<'res.partner'>;
1648
2694
  readonly contacts: F.One2many<'res.partner', { readonly required: true }>;
1649
2695
  readonly email: F.Char;
2696
+ readonly lang: F.Selection<'en' | 'bn'>;
1650
2697
  readonly phone: F.Char;
1651
2698
  readonly mobile: F.Char;
1652
2699
  readonly website: F.Char;
@@ -1660,13 +2707,17 @@ export interface ResPartner {
1660
2707
  readonly isVendor: F.Bool<{ readonly required: true; readonly default: true }>;
1661
2708
  readonly currency: F.Many2one<'res.currency'>;
1662
2709
  readonly notes: F.Text;
2710
+ readonly sendInvoicesByEmail: F.Bool<{ readonly required: true; readonly default: true }>; // accounting
1663
2711
  readonly withholdings: F.Many2many<'account.withholding', { readonly required: true }>; // accounting
2712
+ readonly receivableAccount: F.Many2one<'account.account'>; // accounting
2713
+ readonly payableAccount: F.Many2one<'account.account'>; // accounting
2714
+ readonly fiscalPosition: F.Many2one<'account.fiscal.position'>; // accounting
1664
2715
  };
1665
2716
  readonly methods: ResPartnerMethods;
1666
2717
  }
1667
2718
 
1668
2719
  /** Methods of `res.partner`: declared ones and transitions. */
1669
- export interface ResPartnerMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner'>, F.Methods<typeof import('../../accounting/index.js').accountingShutro, 'res.partner'> {
2720
+ 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'> {
1670
2721
  }
1671
2722
 
1672
2723
  /** `res.partner.tag` (owner: contacts). */
@@ -1688,6 +2739,29 @@ export interface ResPartnerTag {
1688
2739
  export interface ResPartnerTagMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner.tag'> {
1689
2740
  }
1690
2741
 
2742
+ /** `res.segment` (owner: permissions). */
2743
+ export interface ResSegment {
2744
+ readonly name: 'res.segment';
2745
+ readonly fields: {
2746
+ readonly id: F.Id<'res.segment'>;
2747
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2748
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
2749
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
2750
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
2751
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
2752
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
2753
+ readonly name: F.Char<{ readonly required: true }>;
2754
+ readonly code: F.Char;
2755
+ readonly companies: F.Many2many<'res.company', { readonly required: true }>;
2756
+ readonly note: F.Text;
2757
+ };
2758
+ readonly methods: ResSegmentMethods;
2759
+ }
2760
+
2761
+ /** Methods of `res.segment`: declared ones and transitions. */
2762
+ export interface ResSegmentMethods extends F.Methods<typeof import('../../permissions/index.js').permissionsShutro, 'res.segment'> {
2763
+ }
2764
+
1691
2765
  /** `res.users` (owner: base). */
1692
2766
  export interface ResUsers {
1693
2767
  readonly name: 'res.users';