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
@@ -18,9 +18,13 @@ import { messagingShutro } from '../messaging/index.js';
18
18
  import { approvalGuard, permissionsShutro, requestApprovals } from '../permissions/index.js';
19
19
  import { computeTaxes, productShutro, taxRule } from '../product/index.js';
20
20
  import { reportingShutro } from '../reporting/index.js';
21
+ import { emitting } from '../server/index.js';
21
22
  import { orm } from '../server/orm.js';
22
23
  import { check, compute, defineModel, defineModule, extendModel, f, method, onchange, record, records, ref, } from './.kosh/bindings.js';
24
+ import { AccountFiscalPosition, AccountFiscalPositionAccount, AccountFiscalPositionTax, applyFiscalPositions, CategoryAccounts, determineAccounts, PartnerAccounts, ProductAccounts, } from './fiscal.js';
25
+ import { AccountFollowup, AccountFollowupLevel, AccountFollowupSent } from './followups.js';
23
26
  import { postPayments } from './payments.js';
27
+ import { AccountBankStatement, AccountBankStatementLine, AccountReconcileRule, } from './statements.js';
24
28
  const READ = ['read'];
25
29
  const WRITE = ['read', 'write', 'create'];
26
30
  const ALL = ['read', 'write', 'create', 'unlink', 'export', 'import'];
@@ -164,7 +168,10 @@ export const AccountAccount = defineModel('account.account', {
164
168
  a.displayName = `${a.code} ${a.name}`;
165
169
  }),
166
170
  }),
167
- type: f.selection(ACCOUNT_TYPES, { required: true }),
171
+ type: f.selection(ACCOUNT_TYPES, {
172
+ required: true,
173
+ help: 'Where the account appears in the balance sheet or the profit and loss, and whether it holds receivables, payables or money.',
174
+ }),
168
175
  /** Lines on this account are matched against each other (receivables, payables, suspense). */
169
176
  reconcile: f.boolean({ default: false, label: 'Allow reconciliation' }),
170
177
  currency: f.many2one('res.currency', { label: 'Account currency' }),
@@ -186,9 +193,17 @@ export const AccountJournal = defineModel('account.journal', {
186
193
  fields: {
187
194
  code: f.char({ required: true, size: 8 }),
188
195
  name: f.char({ required: true, translate: true }),
189
- type: f.selection(JOURNAL_TYPES, { required: true, default: 'general' }),
196
+ type: f.selection(JOURNAL_TYPES, {
197
+ required: true,
198
+ default: 'general',
199
+ help: 'What the journal records: sales, purchases, cash, bank or miscellaneous entries.',
200
+ }),
190
201
  /** Cash and bank journals: the account of the money; sales and purchases: the default income / expense. */
191
202
  defaultAccount: f.many2one('account.account', { checkCompany: true, label: 'Default account' }),
203
+ /** A bank feed adapter's name (RFC 0029 §3.1): its lines are pulled into statements. */
204
+ bankFeed: f.char({ label: 'Bank feed' }),
205
+ /** Where the feed's last pull ended. */
206
+ bankFeedCursor: f.char({ label: 'Feed cursor' }),
192
207
  },
193
208
  sqlConstraints: {
194
209
  codeUnique: {
@@ -229,7 +244,11 @@ export const AccountFiscalYear = defineModel('account.fiscal.year', {
229
244
  name: f.char({ required: true }),
230
245
  dateFrom: f.date({ required: true, label: 'From' }),
231
246
  dateTo: f.date({ required: true, label: 'To' }),
232
- state: f.selection({ open: 'Open', closed: 'Closed' }, { required: true, default: 'open' }),
247
+ state: f.selection({ open: 'Open', closed: 'Closed' }, {
248
+ required: true,
249
+ default: 'open',
250
+ help: 'A closed year has its result moved to retained earnings and accepts no more entries on or before its lock date.',
251
+ }),
233
252
  /** Set when the year closes: nothing is posted on or before it. */
234
253
  lockDate: f.date({ label: 'Lock date' }),
235
254
  /** The entry that moved the year's result to retained earnings (closing.ts). */
@@ -379,7 +398,11 @@ export const AccountTaxComponent = defineModel('account.tax.component', {
379
398
  name: f.char({ required: true, translate: true }),
380
399
  /** Its part of the tax's amount: 0.5 for half. */
381
400
  share: f.decimal({ scale: 4, required: true, default: '1' }),
382
- scope: f.selection({ always: 'Always', intra: 'Within the state', inter: 'Between states or abroad' }, { required: true, default: 'always' }),
401
+ scope: f.selection({ always: 'Always', intra: 'Within the state', inter: 'Between states or abroad' }, {
402
+ required: true,
403
+ default: 'always',
404
+ help: 'When this part of the tax applies: always, only for supplies within the state, or only between states and abroad.',
405
+ }),
383
406
  /** What the returns call it: CGST, SGST, IGST, CESS. */
384
407
  code: f.char({ size: 16 }),
385
408
  account: f.many2one('account.account'),
@@ -508,7 +531,12 @@ export const AccountMove = defineModel('account.move', {
508
531
  }),
509
532
  journal: f.many2one('account.journal', { required: true, checkCompany: true }),
510
533
  date: f.date({ required: true, default: (env) => env.today() }),
511
- kind: f.selection(MOVE_KINDS, { required: true, default: 'entry', label: 'Type' }),
534
+ kind: f.selection(MOVE_KINDS, {
535
+ required: true,
536
+ default: 'entry',
537
+ label: 'Type',
538
+ help: 'A journal entry, or the kind of document: customer or vendor invoice, credit note or debit note.',
539
+ }),
512
540
  partner: f.many2one('res.partner', { checkCompany: true }),
513
541
  ref: f.char({ label: 'Reference' }),
514
542
  currency: f.many2one('res.currency', { required: true }),
@@ -530,12 +558,14 @@ export const AccountMove = defineModel('account.move', {
530
558
  currency: 'companyCurrency',
531
559
  store: true,
532
560
  label: 'Debit',
561
+ help: 'The sum of the debits of the entry’s lines, in the company currency.',
533
562
  ...moveTotals,
534
563
  }),
535
564
  amountCredit: f.monetary({
536
565
  currency: 'companyCurrency',
537
566
  store: true,
538
567
  label: 'Credit',
568
+ help: 'The sum of the credits of the entry’s lines, in the company currency.',
539
569
  ...moveTotals,
540
570
  }),
541
571
  // Documents
@@ -572,18 +602,33 @@ export const AccountMove = defineModel('account.move', {
572
602
  }),
573
603
  }),
574
604
  paymentTerm: f.many2one('account.payment.term', { label: 'Payment terms' }),
605
+ /** Maps taxes and accounts when posted (RFC 0029 §3.5); empty: the partner's, or one that applies by itself. */
606
+ fiscalPosition: f.many2one('account.fiscal.position', {
607
+ ondelete: 'restrict',
608
+ checkCompany: true,
609
+ label: 'Fiscal position',
610
+ help: 'Maps taxes and accounts when posted; empty: the partner’s, or one that applies by itself.',
611
+ }),
575
612
  invoiceOrigin: f.char({ label: 'Source document' }),
576
613
  amountUntaxed: f.monetary({
577
614
  currency: 'currency',
578
615
  store: true,
579
616
  label: 'Untaxed',
617
+ help: 'The sum of the product lines before taxes, in the document’s currency.',
618
+ ...documentTotals,
619
+ }),
620
+ amountTax: f.monetary({
621
+ currency: 'currency',
622
+ store: true,
623
+ label: 'Taxes',
624
+ help: 'The taxes of the product lines, in the document’s currency.',
580
625
  ...documentTotals,
581
626
  }),
582
- amountTax: f.monetary({ currency: 'currency', store: true, label: 'Taxes', ...documentTotals }),
583
627
  amountTotal: f.monetary({
584
628
  currency: 'currency',
585
629
  store: true,
586
630
  label: 'Total',
631
+ help: 'The untaxed amount plus the taxes: what the document is for.',
587
632
  ...documentTotals,
588
633
  }),
589
634
  /** What is still due on a posted document, in its currency. */
@@ -591,6 +636,7 @@ export const AccountMove = defineModel('account.move', {
591
636
  currency: 'currency',
592
637
  store: true,
593
638
  label: 'Amount due',
639
+ help: 'What is still to be paid on the posted document after the payments and credit notes matched with it.',
594
640
  ...moveResidual,
595
641
  }),
596
642
  paymentState: f.selection({
@@ -598,7 +644,12 @@ export const AccountMove = defineModel('account.move', {
598
644
  not_paid: 'Not paid',
599
645
  partial: 'Partially paid',
600
646
  paid: 'Paid',
601
- }, { store: true, label: 'Payment', ...moveResidual }),
647
+ }, {
648
+ store: true,
649
+ label: 'Payment',
650
+ help: 'Whether the posted document is not paid, partially paid or paid, from what is still due on it.',
651
+ ...moveResidual,
652
+ }),
602
653
  payments: f.many2many('account.payment', { label: 'Paid by' }),
603
654
  state: f.state({
604
655
  states: {
@@ -608,6 +659,7 @@ export const AccountMove = defineModel('account.move', {
608
659
  cancel: 'Cancelled',
609
660
  },
610
661
  initial: 'draft',
662
+ help: 'A draft can be changed; a bill may wait for approval; a posted entry is in the books and is corrected only by a reversal.',
611
663
  transitions: {
612
664
  /** Bills: ask the approvers the amount needs (none needed: post right after). */
613
665
  submit: {
@@ -795,7 +847,12 @@ export const AccountMoveLine = defineModel('account.move.line', {
795
847
  product: 'Product',
796
848
  tax: 'Tax',
797
849
  counterpart: 'Receivable / payable',
798
- }, { required: true, default: 'entry', label: 'Kind' }),
850
+ }, {
851
+ required: true,
852
+ default: 'entry',
853
+ label: 'Kind',
854
+ help: 'A line of a journal entry, a product line of a document, or a tax or receivable / payable line made at posting.',
855
+ }),
799
856
  /** The document this is a product line of (null on entry lines and generated lines). */
800
857
  invoice: f.many2one('account.move', {
801
858
  store: true,
@@ -824,6 +881,7 @@ export const AccountMoveLine = defineModel('account.move.line', {
824
881
  currency: 'currency',
825
882
  store: true,
826
883
  label: 'Subtotal',
884
+ help: 'Quantity times unit price less the discount, before taxes, in the document’s currency.',
827
885
  ...compute('account.move.line', 'subtotal', [
828
886
  'lineKind',
829
887
  'quantity',
@@ -846,6 +904,7 @@ export const AccountMoveLine = defineModel('account.move.line', {
846
904
  currency: 'currency',
847
905
  store: true,
848
906
  label: 'Tax',
907
+ help: 'The taxes of this product line, in the document’s currency.',
849
908
  ...compute('account.move.line', 'taxAmount', [
850
909
  'lineKind',
851
910
  'quantity',
@@ -875,6 +934,7 @@ export const AccountMoveLine = defineModel('account.move.line', {
875
934
  balance: f.monetary({
876
935
  currency: 'companyCurrency',
877
936
  store: true,
937
+ help: 'Debit minus credit, in the company currency.',
878
938
  // companyCurrency too: money reads are null until it is stored, and the sides may never change again.
879
939
  ...compute('account.move.line', 'balance', ['debit', 'credit', 'companyCurrency'], (lines) => {
880
940
  for (const l of lines)
@@ -894,6 +954,7 @@ export const AccountMoveLine = defineModel('account.move.line', {
894
954
  accountType: f.selection(ACCOUNT_TYPES, {
895
955
  store: true,
896
956
  label: 'Account type',
957
+ help: 'The type of the line’s account, for grouping in the reports.',
897
958
  ...compute('account.move.line', 'accountType', ['account.type'], (lines) => {
898
959
  for (const l of lines)
899
960
  l.accountType = l.account?.type ?? null;
@@ -917,12 +978,14 @@ export const AccountMoveLine = defineModel('account.move.line', {
917
978
  currency: 'companyCurrency',
918
979
  store: true,
919
980
  label: 'Residual',
981
+ help: 'What is still unmatched on this receivable or payable line, in the company currency.',
920
982
  ...lineResiduals,
921
983
  }),
922
984
  amountResidualCurrency: f.monetary({
923
985
  currency: 'currency',
924
986
  store: true,
925
987
  label: 'Residual in currency',
988
+ help: 'What is still unmatched on this receivable or payable line, in the entry’s currency.',
926
989
  ...lineResiduals,
927
990
  }),
928
991
  reconciled: f.boolean({ store: true, ...lineResiduals }),
@@ -979,6 +1042,8 @@ async function currentTx(env) {
979
1042
  */
980
1043
  async function postMoves(moves) {
981
1044
  const env = moves.env;
1045
+ // The fiscal position of each document, and its taxes mapped, before anything is computed (RFC 0029 §3.5).
1046
+ await applyFiscalPositions(env, moves.ids);
982
1047
  const loaded = await moves.load({
983
1048
  lines: { taxes: { components: true } },
984
1049
  partner: true,
@@ -1041,8 +1106,10 @@ async function postMoves(moves) {
1041
1106
  .model('account.move')
1042
1107
  .browse([m.id])
1043
1108
  .productLineAccounts();
1109
+ // Each line's account: its own, an app's, the product's, its category's or the journal's, then the position.
1110
+ const determined = await determineAccounts(env, m.id, proposed);
1044
1111
  for (const l of products) {
1045
- const account = l.account?.id ?? proposed.get(l.id) ?? m.journal.defaultAccount?.id ?? null;
1112
+ const account = determined.lines.get(l.id)?.account ?? null;
1046
1113
  if (account === null)
1047
1114
  throw fail(['lines'], `Line "${l.name ?? ''}" has no account and the journal ${m.journal.code} has no default account.`, 'Set the account on the line, or a default account on the journal.');
1048
1115
  const subtotal = round(l.subtotal?.amount ?? orm.toDecimal(0));
@@ -1151,7 +1218,8 @@ async function postMoves(moves) {
1151
1218
  }
1152
1219
  }
1153
1220
  // Customers' documents settle on the receivable account, vendors' on the payable one.
1154
- const counterpart = customer ? m.company.accountReceivable : m.company.accountPayable;
1221
+ // The partner's account, else the company's, through the fiscal position.
1222
+ const counterpart = determined.counterpart.account === null ? null : { id: determined.counterpart.account };
1155
1223
  if (counterpart === null)
1156
1224
  throw fail(['partner'], `The company has no ${customer ? 'receivable' : 'payable'} account.`, 'Install a chart of accounts (Accounting › Configuration), or set the account on the company.');
1157
1225
  // One counterpart line per payment term part, the whole rounded total allocated between them.
@@ -1175,7 +1243,7 @@ async function postMoves(moves) {
1175
1243
  {
1176
1244
  move: m.id,
1177
1245
  lineKind: 'counterpart',
1178
- account: counterpart.id,
1246
+ account: orm.asId(counterpart.id, 'account.account'),
1179
1247
  partner: m.partner.id,
1180
1248
  name: m.ref ?? m.invoiceOrigin ?? m.name,
1181
1249
  dateMaturity: due,
@@ -1284,8 +1352,17 @@ export const AccountWithholding = defineModel('account.withholding', {
1284
1352
  fields: {
1285
1353
  name: f.char({ required: true, translate: true }),
1286
1354
  sequence: f.integer({ required: true, default: 10 }),
1287
- direction: f.selection({ vendor: 'We withhold when paying vendors', customer: 'Customers withhold from us' }, { required: true, default: 'vendor' }),
1288
- base: f.selection({ untaxed: 'Untaxed amount', tax: 'Tax amount', total: 'Total' }, { required: true, default: 'untaxed', label: 'Computed on' }),
1355
+ direction: f.selection({ vendor: 'We withhold when paying vendors', customer: 'Customers withhold from us' }, {
1356
+ required: true,
1357
+ default: 'vendor',
1358
+ help: 'Whether we keep the amount back when paying vendors, or customers keep it back when paying us.',
1359
+ }),
1360
+ base: f.selection({ untaxed: 'Untaxed amount', tax: 'Tax amount', total: 'Total' }, {
1361
+ required: true,
1362
+ default: 'untaxed',
1363
+ label: 'Computed on',
1364
+ help: 'The part of the document the rate is applied to: the untaxed amount, the tax or the total.',
1365
+ }),
1289
1366
  /** 0.05 for 5 %. */
1290
1367
  rate: f.decimal({ scale: 4, required: true, default: '0' }),
1291
1368
  /** A document whose total is below it is not withheld from. */
@@ -1307,6 +1384,12 @@ export const AccountWithholding = defineModel('account.withholding', {
1307
1384
  /** The withholdings that apply to a partner (vendor or customer): what a payment of their documents proposes. */
1308
1385
  export const PartnerWithholdings = extendModel('res.partner', {
1309
1386
  fields: {
1387
+ /** Invoices and credit notes emailed with their PDF once posted (RFC 0029 §3.3). */
1388
+ sendInvoicesByEmail: f.boolean({
1389
+ default: false,
1390
+ label: 'Send invoices by email',
1391
+ help: 'Each invoice and credit note is emailed with its PDF when it is posted.',
1392
+ }),
1310
1393
  withholdings: f.many2many('account.withholding', {
1311
1394
  relation: 'res_partner_withholding_rel',
1312
1395
  label: 'Withholdings',
@@ -1355,7 +1438,12 @@ export const AccountPayment = defineModel('account.payment', {
1355
1438
  p.name = p.move?.name ?? orm.UNNUMBERED;
1356
1439
  }),
1357
1440
  }),
1358
- kind: f.selection({ inbound: 'Receive', outbound: 'Send' }, { required: true, default: 'inbound', label: 'Direction' }),
1441
+ kind: f.selection({ inbound: 'Receive', outbound: 'Send' }, {
1442
+ required: true,
1443
+ default: 'inbound',
1444
+ label: 'Direction',
1445
+ help: 'Whether the money is received from the partner or sent to them.',
1446
+ }),
1359
1447
  partner: f.many2one('res.partner', { required: true, checkCompany: true }),
1360
1448
  journal: f.many2one('account.journal', { required: true, checkCompany: true }),
1361
1449
  date: f.date({ required: true, default: (env) => env.today() }),
@@ -1370,6 +1458,7 @@ export const AccountPayment = defineModel('account.payment', {
1370
1458
  currency: 'currency',
1371
1459
  store: true,
1372
1460
  label: 'Withheld',
1461
+ help: 'The sum of the amounts withheld (VDS, TDS); with the amount paid, it settles the documents.',
1373
1462
  ...compute('account.payment', 'amountWithheld', ['withholdings.amount'], (payments) => {
1374
1463
  for (const p of payments)
1375
1464
  p.amountWithheld = p.withholdings.sum('amount', p.currency);
@@ -1379,12 +1468,13 @@ export const AccountPayment = defineModel('account.payment', {
1379
1468
  state: f.state({
1380
1469
  states: { draft: 'Draft', posted: 'Posted', cancel: 'Cancelled' },
1381
1470
  initial: 'draft',
1471
+ help: 'A draft payment can be changed; posting records it in the journal and matches it with the documents it pays.',
1382
1472
  transitions: {
1383
- post: {
1473
+ post: emitting('account.payment.posted', {
1384
1474
  from: ['draft'],
1385
1475
  to: 'posted',
1386
1476
  before: records('account.payment', (payments) => postPayments(payments)),
1387
- },
1477
+ }),
1388
1478
  cancel: { from: ['draft'], to: 'cancel' },
1389
1479
  redraft: { from: ['cancel'], to: 'draft' },
1390
1480
  },
@@ -1404,7 +1494,7 @@ const sequence = (type, prefix) => orm.defineSequence({
1404
1494
  });
1405
1495
  export const accountingShutro = defineModule({
1406
1496
  name: 'accounting',
1407
- version: '0.4.0',
1497
+ version: '0.8.0',
1408
1498
  migrations: [
1409
1499
  {
1410
1500
  version: '0.2.0',
@@ -1437,6 +1527,15 @@ export const accountingShutro = defineModule({
1437
1527
  sequence('general', 'MISC'),
1438
1528
  ],
1439
1529
  models: [
1530
+ AccountBankStatement,
1531
+ AccountBankStatementLine,
1532
+ AccountReconcileRule,
1533
+ AccountFollowupLevel,
1534
+ AccountFollowup,
1535
+ AccountFollowupSent,
1536
+ AccountFiscalPosition,
1537
+ AccountFiscalPositionTax,
1538
+ AccountFiscalPositionAccount,
1440
1539
  ResCurrencyRate,
1441
1540
  ResBankAccount,
1442
1541
  AccountWithholding,
@@ -1484,5 +1583,12 @@ export const accountingShutro = defineModule({
1484
1583
  record('account.payment.term.line', 'term_half_now', { term: ref('account.payment.term', 'accounting.term_half'), days: 0, percent: '50' }, { noupdate: true }),
1485
1584
  record('account.payment.term.line', 'term_half_later', { term: ref('account.payment.term', 'accounting.term_half'), days: 30, percent: '50' }, { noupdate: true }),
1486
1585
  ],
1487
- extensions: [CompanyAccounting, TaxAccounts, PartnerWithholdings],
1586
+ extensions: [
1587
+ CompanyAccounting,
1588
+ TaxAccounts,
1589
+ PartnerWithholdings,
1590
+ PartnerAccounts,
1591
+ ProductAccounts,
1592
+ CategoryAccounts,
1593
+ ],
1488
1594
  });