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
@@ -38,17 +38,34 @@ export const MoveSale = extendModel('stock.move', {
38
38
  });
39
39
  export const LineDelivered = extendModel('sale.order.line', {
40
40
  fields: {
41
+ /** What came back from the customer by validated returns (RFC 0030 §3.2), in the line's unit. */
42
+ qtyReturned: f.decimal({
43
+ scale: 3,
44
+ store: true,
45
+ label: 'Returned',
46
+ help: 'What the customer sent back by validated returns of its deliveries.',
47
+ ...compute('sale.order.line', 'qtyReturned', ['moves.quantity', 'moves.quantityDone', 'moves.picking.state', 'moves.returnOf'], (lines) => {
48
+ for (const l of lines)
49
+ l.qtyReturned = [...l.moves]
50
+ .filter((m) => m.picking.state === 'done' && m.returnOf !== null)
51
+ .reduce((s, m) => s.plus(m.quantityDone ?? m.quantity), zero);
52
+ }),
53
+ }),
41
54
  moves: f.one2many('stock.move', 'saleLine'),
42
55
  /** Delivered by validated deliveries, in the line's unit. */
43
56
  qtyDelivered: f.decimal({
44
57
  scale: 3,
45
58
  store: true,
46
59
  label: 'Delivered',
47
- ...compute('sale.order.line', 'qtyDelivered', ['moves.quantity', 'moves.quantityDone', 'moves.picking.state'], (lines) => {
60
+ ...compute('sale.order.line', 'qtyDelivered', ['moves.quantity', 'moves.quantityDone', 'moves.picking.state', 'moves.returnOf'], (lines) => {
61
+ // What came back (a return of a delivery, RFC 0030 §3.2) is not delivered any more.
48
62
  for (const l of lines)
49
63
  l.qtyDelivered = [...l.moves]
50
64
  .filter((m) => m.picking.state === 'done')
51
- .reduce((s, m) => s.plus(m.quantityDone ?? m.quantity), zero);
65
+ .reduce((s, m) => {
66
+ const qty = m.quantityDone ?? m.quantity;
67
+ return m.returnOf === null ? s.plus(qty) : s.minus(qty);
68
+ }, zero);
52
69
  }),
53
70
  }),
54
71
  },
@@ -132,7 +149,7 @@ export async function createDeliveryFor(env, orderId) {
132
149
  }
133
150
  export const saleStockShutro = defineModule({
134
151
  name: 'sale_stock',
135
- version: '0.1.0',
152
+ version: '0.2.0',
136
153
  depends: [salesShutro, stockShutro, productShutro],
137
154
  groups: [
138
155
  orm.defineGroup({
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: a6ff09639ec1931e
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: fb480959b726ab2a
2
2
  // Bindings of module `sales`: import the definition API from here to get types scoped to what it can see.
3
3
  export { defineModel, defineModule, extendModel, f, replace } from '../../server/orm.js';
4
4
  import { definitions } from '../../server/orm.js';
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: a6ff09639ec1931e
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: fb480959b726ab2a
2
2
  // Schema view of module `sales` (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
 
@@ -26,8 +26,15 @@ export interface SchemaView {
26
26
  readonly 'oauth.code': OauthCode;
27
27
  readonly 'oauth.grant': OauthGrant;
28
28
  readonly 'oauth.token': OauthToken;
29
+ readonly 'product.attribute': ProductAttribute;
30
+ readonly 'product.attribute.value': ProductAttributeValue;
29
31
  readonly 'product.category': ProductCategory;
32
+ readonly 'product.pricelist': ProductPricelist;
33
+ readonly 'product.pricelist.rule': ProductPricelistRule;
30
34
  readonly 'product.product': ProductProduct;
35
+ readonly 'product.template': ProductTemplate;
36
+ readonly 'product.template.exclusion': ProductTemplateExclusion;
37
+ readonly 'product.template.line': ProductTemplateLine;
31
38
  readonly 'res.company': ResCompany;
32
39
  readonly 'res.currency': ResCurrency;
33
40
  readonly 'res.partner': ResPartner;
@@ -35,6 +42,9 @@ export interface SchemaView {
35
42
  readonly 'res.users': ResUsers;
36
43
  readonly 'sale.order': SaleOrder;
37
44
  readonly 'sale.order.line': SaleOrderLine;
45
+ readonly 'sale.order.option': SaleOrderOption;
46
+ readonly 'sale.order.template': SaleOrderTemplate;
47
+ readonly 'sale.order.template.line': SaleOrderTemplateLine;
38
48
  readonly 'storage.attachment': StorageAttachment;
39
49
  readonly 'uom.uom': UomUom;
40
50
  }
@@ -580,6 +590,53 @@ export interface OauthToken {
580
590
  export interface OauthTokenMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.token'> {
581
591
  }
582
592
 
593
+ /** `product.attribute` (owner: product). */
594
+ export interface ProductAttribute {
595
+ readonly name: 'product.attribute';
596
+ readonly fields: {
597
+ readonly id: F.Id<'product.attribute'>;
598
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
599
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
600
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
601
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
602
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
603
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
604
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
605
+ readonly display: F.Selection<'list' | 'radio' | 'swatch' | 'size', { readonly required: true; readonly default: true }>;
606
+ readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
607
+ readonly values: F.One2many<'product.attribute.value', { readonly required: true }>;
608
+ };
609
+ readonly methods: ProductAttributeMethods;
610
+ }
611
+
612
+ /** Methods of `product.attribute`: declared ones and transitions. */
613
+ export interface ProductAttributeMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.attribute'> {
614
+ }
615
+
616
+ /** `product.attribute.value` (owner: product). */
617
+ export interface ProductAttributeValue {
618
+ readonly name: 'product.attribute.value';
619
+ readonly fields: {
620
+ readonly id: F.Id<'product.attribute.value'>;
621
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
622
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
623
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
624
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
625
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
626
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
627
+ readonly attribute: F.Many2one<'product.attribute', { readonly required: true }>;
628
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
629
+ readonly color: F.Char;
630
+ readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
631
+ readonly extraPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
632
+ };
633
+ readonly methods: ProductAttributeValueMethods;
634
+ }
635
+
636
+ /** Methods of `product.attribute.value`: declared ones and transitions. */
637
+ export interface ProductAttributeValueMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.attribute.value'> {
638
+ }
639
+
583
640
  /** `product.category` (owner: product). */
584
641
  export interface ProductCategory {
585
642
  readonly name: 'product.category';
@@ -593,6 +650,7 @@ export interface ProductCategory {
593
650
  readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
594
651
  readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
595
652
  readonly parent: F.Many2one<'product.category'>;
653
+ readonly approvalUsers: F.Many2many<'res.users', { readonly required: true }>;
596
654
  };
597
655
  readonly methods: ProductCategoryMethods;
598
656
  }
@@ -601,6 +659,66 @@ export interface ProductCategory {
601
659
  export interface ProductCategoryMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.category'> {
602
660
  }
603
661
 
662
+ /** `product.pricelist` (owner: product). */
663
+ export interface ProductPricelist {
664
+ readonly name: 'product.pricelist';
665
+ readonly fields: {
666
+ readonly id: F.Id<'product.pricelist'>;
667
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
668
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
669
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
670
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
671
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
672
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
673
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
674
+ readonly sequence: F.Integer<{ readonly default: true }>;
675
+ readonly currency: F.Many2one<'res.currency'>;
676
+ readonly company: F.Many2one<'res.company'>;
677
+ readonly rules: F.One2many<'product.pricelist.rule', { readonly required: true }>;
678
+ readonly note: F.Text;
679
+ };
680
+ readonly methods: ProductPricelistMethods;
681
+ }
682
+
683
+ /** Methods of `product.pricelist`: declared ones and transitions. */
684
+ export interface ProductPricelistMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.pricelist'> {
685
+ }
686
+
687
+ /** `product.pricelist.rule` (owner: product). */
688
+ export interface ProductPricelistRule {
689
+ readonly name: 'product.pricelist.rule';
690
+ readonly fields: {
691
+ readonly id: F.Id<'product.pricelist.rule'>;
692
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
693
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
694
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
695
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
696
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
697
+ readonly pricelist: F.Many2one<'product.pricelist', { readonly required: true }>;
698
+ readonly sequence: F.Integer<{ readonly default: true }>;
699
+ readonly appliesTo: F.Selection<'all' | 'category' | 'product', { readonly required: true; readonly default: true }>;
700
+ readonly product: F.Many2one<'product.product'>;
701
+ readonly category: F.Many2one<'product.category'>;
702
+ readonly minQuantity: F.Decimal<{ readonly default: true }>;
703
+ readonly dateFrom: F.DateOnly;
704
+ readonly dateTo: F.DateOnly;
705
+ readonly compute: F.Selection<'fixed' | 'discount' | 'formula', { readonly required: true; readonly default: true }>;
706
+ readonly fixedPrice: F.Decimal;
707
+ readonly base: F.Selection<'list' | 'cost' | 'pricelist', { readonly required: true; readonly default: true }>;
708
+ readonly basePricelist: F.Many2one<'product.pricelist'>;
709
+ readonly discount: F.Decimal<{ readonly default: true }>;
710
+ readonly surcharge: F.Decimal<{ readonly default: true }>;
711
+ readonly rounding: F.Decimal<{ readonly default: true }>;
712
+ readonly minMargin: F.Decimal;
713
+ readonly maxMargin: F.Decimal;
714
+ };
715
+ readonly methods: ProductPricelistRuleMethods;
716
+ }
717
+
718
+ /** Methods of `product.pricelist.rule`: declared ones and transitions. */
719
+ export interface ProductPricelistRuleMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.pricelist.rule'> {
720
+ }
721
+
604
722
  /** `product.product` (owner: product). */
605
723
  export interface ProductProduct {
606
724
  readonly name: 'product.product';
@@ -616,8 +734,11 @@ export interface ProductProduct {
616
734
  readonly code: F.Char<{ readonly readonly: true; readonly sequence: true }>;
617
735
  readonly kind: F.Selection<'goods' | 'service', { readonly required: true; readonly default: true }>;
618
736
  readonly category: F.Many2one<'product.category'>;
737
+ readonly invoicePolicy: F.Selection<'ordered' | 'delivered', { readonly default: true }>;
619
738
  readonly uom: F.Many2one<'uom.uom'>;
620
739
  readonly barcode: F.Char;
740
+ readonly weight: F.Decimal;
741
+ readonly volume: F.Decimal;
621
742
  readonly image: F.Many2one<'storage.attachment'>;
622
743
  readonly listPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
623
744
  readonly standardPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
@@ -628,6 +749,9 @@ export interface ProductProduct {
628
749
  readonly tax: F.Many2one<'account.tax', { readonly readonly: true }>;
629
750
  readonly purchaseTax: F.Many2one<'account.tax', { readonly readonly: true }>;
630
751
  readonly description: F.Text<{ readonly translate: true }>;
752
+ readonly template: F.Many2one<'product.template'>;
753
+ readonly attributeValues: F.Many2many<'product.attribute.value', { readonly required: true }>;
754
+ readonly followsTemplatePrice: F.Bool<{ readonly required: true; readonly default: true }>;
631
755
  };
632
756
  readonly methods: ProductProductMethods;
633
757
  }
@@ -636,6 +760,86 @@ export interface ProductProduct {
636
760
  export interface ProductProductMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.product'> {
637
761
  }
638
762
 
763
+ /** `product.template` (owner: product). */
764
+ export interface ProductTemplate {
765
+ readonly name: 'product.template';
766
+ readonly fields: {
767
+ readonly id: F.Id<'product.template'>;
768
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
769
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
770
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
771
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
772
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
773
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
774
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
775
+ readonly kind: F.Selection<'goods' | 'service', { readonly required: true; readonly default: true }>;
776
+ readonly category: F.Many2one<'product.category'>;
777
+ readonly uom: F.Many2one<'uom.uom'>;
778
+ readonly listPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
779
+ readonly standardPrice: F.Decimal<{ readonly required: true; readonly default: true }>;
780
+ readonly saleOk: F.Bool<{ readonly required: true; readonly default: true }>;
781
+ readonly purchaseOk: F.Bool<{ readonly required: true; readonly default: true }>;
782
+ readonly taxes: F.Many2many<'account.tax', { readonly required: true }>;
783
+ readonly purchaseTaxes: F.Many2many<'account.tax', { readonly required: true }>;
784
+ readonly image: F.Many2one<'storage.attachment'>;
785
+ readonly description: F.Text<{ readonly translate: true }>;
786
+ readonly lines: F.One2many<'product.template.line', { readonly required: true }>;
787
+ readonly exclusions: F.One2many<'product.template.exclusion', { readonly required: true }>;
788
+ readonly variants: F.One2many<'product.product', { readonly required: true }>;
789
+ readonly variantCount: F.Integer<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
790
+ readonly state: F.State<'draft' | 'ready', { readonly required: true; readonly readonly: true; readonly default: true }>;
791
+ };
792
+ readonly methods: ProductTemplateMethods;
793
+ }
794
+
795
+ /** Methods of `product.template`: declared ones and transitions. */
796
+ export interface ProductTemplateMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.template'> {
797
+ readonly 'generate': () => Promise<void>;
798
+ }
799
+
800
+ /** `product.template.exclusion` (owner: product). */
801
+ export interface ProductTemplateExclusion {
802
+ readonly name: 'product.template.exclusion';
803
+ readonly fields: {
804
+ readonly id: F.Id<'product.template.exclusion'>;
805
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
806
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
807
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
808
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
809
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
810
+ readonly template: F.Many2one<'product.template', { readonly required: true }>;
811
+ readonly values: F.Many2many<'product.attribute.value', { readonly required: true }>;
812
+ readonly note: F.Char;
813
+ };
814
+ readonly methods: ProductTemplateExclusionMethods;
815
+ }
816
+
817
+ /** Methods of `product.template.exclusion`: declared ones and transitions. */
818
+ export interface ProductTemplateExclusionMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.template.exclusion'> {
819
+ }
820
+
821
+ /** `product.template.line` (owner: product). */
822
+ export interface ProductTemplateLine {
823
+ readonly name: 'product.template.line';
824
+ readonly fields: {
825
+ readonly id: F.Id<'product.template.line'>;
826
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
827
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
828
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
829
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
830
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
831
+ readonly template: F.Many2one<'product.template', { readonly required: true }>;
832
+ readonly attribute: F.Many2one<'product.attribute', { readonly required: true }>;
833
+ readonly sequence: F.Integer<{ readonly required: true; readonly default: true }>;
834
+ readonly values: F.Many2many<'product.attribute.value', { readonly required: true }>;
835
+ };
836
+ readonly methods: ProductTemplateLineMethods;
837
+ }
838
+
839
+ /** Methods of `product.template.line`: declared ones and transitions. */
840
+ export interface ProductTemplateLineMethods extends F.Methods<typeof import('../../product/index.js').productShutro, 'product.template.line'> {
841
+ }
842
+
639
843
  /** `res.company` (owner: base; extended by: contacts, sales). */
640
844
  export interface ResCompany {
641
845
  readonly name: 'res.company';
@@ -689,7 +893,7 @@ export interface ResCurrency {
689
893
  export interface ResCurrencyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'res.currency'> {
690
894
  }
691
895
 
692
- /** `res.partner` (owner: contacts). */
896
+ /** `res.partner` (owner: contacts; extended by: sales). */
693
897
  export interface ResPartner {
694
898
  readonly name: 'res.partner';
695
899
  readonly fields: {
@@ -710,6 +914,7 @@ export interface ResPartner {
710
914
  readonly parent: F.Many2one<'res.partner'>;
711
915
  readonly contacts: F.One2many<'res.partner', { readonly required: true }>;
712
916
  readonly email: F.Char;
917
+ readonly lang: F.Selection<'en' | 'bn'>;
713
918
  readonly phone: F.Char;
714
919
  readonly mobile: F.Char;
715
920
  readonly website: F.Char;
@@ -723,12 +928,13 @@ export interface ResPartner {
723
928
  readonly isVendor: F.Bool<{ readonly required: true; readonly default: true }>;
724
929
  readonly currency: F.Many2one<'res.currency'>;
725
930
  readonly notes: F.Text;
931
+ readonly pricelist: F.Many2one<'product.pricelist'>; // sales
726
932
  };
727
933
  readonly methods: ResPartnerMethods;
728
934
  }
729
935
 
730
936
  /** Methods of `res.partner`: declared ones and transitions. */
731
- export interface ResPartnerMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner'> {
937
+ export interface ResPartnerMethods extends F.Methods<typeof import('../../contacts/index.js').contactsShutro, 'res.partner'>, F.Methods<typeof import('../module.js').salesShutro, 'res.partner'> {
732
938
  }
733
939
 
734
940
  /** `res.partner.tag` (owner: contacts). */
@@ -792,12 +998,17 @@ export interface SaleOrder {
792
998
  readonly name: F.Char<{ readonly required: true; readonly readonly: true; readonly sequence: true }>;
793
999
  readonly user: F.Many2one<'res.users', { readonly required: true; readonly default: true }>;
794
1000
  readonly partner: F.Many2one<'res.partner', { readonly required: true }>;
1001
+ readonly partnerInvoice: F.Many2one<'res.partner'>;
1002
+ readonly partnerShipping: F.Many2one<'res.partner'>;
1003
+ readonly pricelist: F.Many2one<'product.pricelist'>;
795
1004
  readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
796
1005
  readonly dateOrder: F.DateOnly<{ readonly required: true; readonly default: true }>;
797
1006
  readonly validityDate: F.DateOnly;
798
1007
  readonly clientReference: F.Char;
799
1008
  readonly note: F.Text;
800
1009
  readonly lines: F.One2many<'sale.order.line', { readonly required: true }>;
1010
+ readonly template: F.Many2one<'sale.order.template'>;
1011
+ readonly options: F.One2many<'sale.order.option', { readonly required: true }>;
801
1012
  readonly amountUntaxed: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
802
1013
  readonly amountTax: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
803
1014
  readonly amountTotal: F.Monetary<'currency', { readonly readonly: true; readonly compute: true; readonly store: true }>;
@@ -812,6 +1023,7 @@ export interface SaleOrder {
812
1023
  export interface SaleOrderMethods extends F.Methods<typeof import('../module.js').salesShutro, 'sale.order'> {
813
1024
  readonly 'cancel': () => Promise<void>;
814
1025
  readonly 'confirm': () => Promise<void>;
1026
+ readonly 'fill': () => Promise<void>;
815
1027
  readonly 'lock': () => Promise<void>;
816
1028
  readonly 'redraft': () => Promise<void>;
817
1029
  readonly 'send': () => Promise<void>;
@@ -833,7 +1045,9 @@ export interface SaleOrderLine {
833
1045
  readonly name: F.Char<{ readonly required: true }>;
834
1046
  readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
835
1047
  readonly uom: F.Many2one<'uom.uom'>;
836
- readonly priceUnit: F.Decimal<{ readonly required: true; readonly default: true }>;
1048
+ readonly priceUnit: F.Decimal<{ readonly compute: true; readonly store: true; readonly inverse: true }>;
1049
+ readonly manualPrice: F.Decimal;
1050
+ readonly priceReason: F.Char<{ readonly readonly: true; readonly compute: true; readonly store: true }>;
837
1051
  readonly discount: F.Decimal<{ readonly required: true; readonly default: true }>;
838
1052
  readonly taxes: F.Many2many<'account.tax', { readonly required: true }>;
839
1053
  readonly tax: F.Many2one<'account.tax', { readonly readonly: true }>;
@@ -849,6 +1063,79 @@ export interface SaleOrderLine {
849
1063
  export interface SaleOrderLineMethods extends F.Methods<typeof import('../module.js').salesShutro, 'sale.order.line'> {
850
1064
  }
851
1065
 
1066
+ /** `sale.order.option` (owner: sales). */
1067
+ export interface SaleOrderOption {
1068
+ readonly name: 'sale.order.option';
1069
+ readonly fields: {
1070
+ readonly id: F.Id<'sale.order.option'>;
1071
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1072
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1073
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1074
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1075
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1076
+ readonly order: F.Many2one<'sale.order', { readonly required: true }>;
1077
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
1078
+ readonly name: F.Char<{ readonly required: true }>;
1079
+ readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
1080
+ readonly priceUnit: F.Decimal;
1081
+ readonly line: F.Many2one<'sale.order.line'>;
1082
+ readonly state: F.State<'offered' | 'added', { readonly required: true; readonly readonly: true; readonly default: true }>;
1083
+ };
1084
+ readonly methods: SaleOrderOptionMethods;
1085
+ }
1086
+
1087
+ /** Methods of `sale.order.option`: declared ones and transitions. */
1088
+ export interface SaleOrderOptionMethods extends F.Methods<typeof import('../module.js').salesShutro, 'sale.order.option'> {
1089
+ readonly 'add': () => Promise<void>;
1090
+ }
1091
+
1092
+ /** `sale.order.template` (owner: sales). */
1093
+ export interface SaleOrderTemplate {
1094
+ readonly name: 'sale.order.template';
1095
+ readonly fields: {
1096
+ readonly id: F.Id<'sale.order.template'>;
1097
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1098
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1099
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1100
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1101
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1102
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
1103
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
1104
+ readonly validityDays: F.Integer<{ readonly default: true }>;
1105
+ readonly note: F.Text;
1106
+ readonly lines: F.One2many<'sale.order.template.line', { readonly required: true }>;
1107
+ };
1108
+ readonly methods: SaleOrderTemplateMethods;
1109
+ }
1110
+
1111
+ /** Methods of `sale.order.template`: declared ones and transitions. */
1112
+ export interface SaleOrderTemplateMethods extends F.Methods<typeof import('../module.js').salesShutro, 'sale.order.template'> {
1113
+ }
1114
+
1115
+ /** `sale.order.template.line` (owner: sales). */
1116
+ export interface SaleOrderTemplateLine {
1117
+ readonly name: 'sale.order.template.line';
1118
+ readonly fields: {
1119
+ readonly id: F.Id<'sale.order.template.line'>;
1120
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1121
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1122
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1123
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1124
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1125
+ readonly template: F.Many2one<'sale.order.template', { readonly required: true }>;
1126
+ readonly sequence: F.Integer<{ readonly default: true }>;
1127
+ readonly product: F.Many2one<'product.product', { readonly required: true }>;
1128
+ readonly name: F.Char<{ readonly required: true }>;
1129
+ readonly quantity: F.Decimal<{ readonly required: true; readonly default: true }>;
1130
+ readonly optional: F.Bool<{ readonly required: true; readonly default: true }>;
1131
+ };
1132
+ readonly methods: SaleOrderTemplateLineMethods;
1133
+ }
1134
+
1135
+ /** Methods of `sale.order.template.line`: declared ones and transitions. */
1136
+ export interface SaleOrderTemplateLineMethods extends F.Methods<typeof import('../module.js').salesShutro, 'sale.order.template.line'> {
1137
+ }
1138
+
852
1139
  /** `storage.attachment` (owner: storage). */
853
1140
  export interface StorageAttachment {
854
1141
  readonly name: 'storage.attachment';
@@ -0,0 +1,2 @@
1
+ /** Bangla for the module's labels, keyed by their English text (RFC 0023 §3.1; `pnpm i18n:extract`). */
2
+ export declare const bn: Readonly<Record<string, string>>;
@@ -0,0 +1,128 @@
1
+ /** Bangla for the module's labels, keyed by their English text (RFC 0023 §3.1; `pnpm i18n:extract`). */
2
+ export const bn = {
3
+ '“Fill from template” fills the quotation’s lines, options, validity and terms from it.': '“টেমপ্লেট থেকে পূরণ” এর থেকে কোটেশনের লাইন, অপশন, মেয়াদ ও শর্ত পূরণ করে।',
4
+ 'A discount is between 0 and 100 %.': 'ছাড় ০ থেকে ১০০ %-এর মধ্যে হতে হবে।',
5
+ 'A new quotation is valid until its date plus these days; 0 leaves it open.': 'নতুন উদ্ধৃতি তার তারিখ থেকে এত দিন পর্যন্ত বৈধ থাকে; ০ দিলে কোনো সীমা থাকে না।',
6
+ 'A quotation filled from the template gets its lines, its optional products (offered to the customer), its validity and its terms.': 'টেমপ্লেট থেকে পূরণ করা কোটেশন এর লাইন, ঐচ্ছিক পণ্য (গ্রাহককে দেওয়া প্রস্তাব), মেয়াদ ও শর্ত পায়।',
7
+ 'A quotation until it is confirmed as a sales order, which can then be locked or cancelled.': 'বিক্রয় আদেশ হিসেবে নিশ্চিত না হওয়া পর্যন্ত এটি উদ্ধৃতি; এরপর তা লক বা বাতিল করা যায়।',
8
+ Active: 'সক্রিয়',
9
+ 'Add at least one line before confirming the order.': 'অর্ডার নিশ্চিত করার আগে অন্তত একটি লাইন যোগ করুন।',
10
+ Added: 'যোগ হয়েছে',
11
+ 'Added as': 'যে লাইনে যোগ হয়েছে',
12
+ 'Average order': 'গড় অর্ডার',
13
+ 'Biggest open quotations': 'সবচেয়ে বড় খোলা উদ্ধৃতি',
14
+ 'By salesperson': 'বিক্রয়কর্মী অনুযায়ী',
15
+ Cancel: 'বাতিল করুন',
16
+ 'Cancel this order?': 'এই অর্ডার বাতিল করবেন?',
17
+ Cancelled: 'বাতিল',
18
+ 'Choose a quotation template first.': 'আগে একটি কোটেশন টেমপ্লেট বাছুন।',
19
+ Company: 'প্রতিষ্ঠান',
20
+ Configuration: 'কনফিগারেশন',
21
+ Confirm: 'নিশ্চিত করুন',
22
+ 'Created At': 'তৈরির সময়',
23
+ 'Created By': 'তৈরি করেছেন',
24
+ Currency: 'মুদ্রা',
25
+ Customer: 'গ্রাহক',
26
+ 'Customer reference': 'গ্রাহকের রেফারেন্স',
27
+ Customers: 'গ্রাহক',
28
+ 'Default terms and conditions': 'ডিফল্ট শর্তাবলি',
29
+ 'Deliver to': 'সরবরাহের ঠিকানা',
30
+ Description: 'বিবরণ',
31
+ 'Discount %': 'ছাড় %',
32
+ 'Display Name': 'প্রদর্শিত নাম',
33
+ 'Fill from template': 'টেমপ্লেট থেকে পূরণ',
34
+ 'Filled in on new quotations; each can still be changed.': 'নতুন উদ্ধৃতিতে আপনা-আপনি বসে; প্রতিটিতে পরে বদলানো যায়।',
35
+ 'How long new quotations stay valid, and the terms they start with.': 'নতুন উদ্ধৃতি কত দিন বৈধ থাকবে, এবং কোন শর্তাবলি নিয়ে শুরু হবে।',
36
+ ID: 'আইডি',
37
+ 'Invoice to': 'চালানের ঠিকানা',
38
+ 'Line quantities must be positive.': 'লাইনের পরিমাণ শূন্যের বেশি হতে হবে।',
39
+ Lines: 'লাইন',
40
+ 'Lines › Description': 'লাইন › বিবরণ',
41
+ 'Lines › Product': 'লাইন › পণ্য',
42
+ 'Lines › Quantity': 'লাইন › পরিমাণ',
43
+ 'Lines › Unit': 'লাইন › একক',
44
+ 'Lines › Unit price': 'লাইন › একক মূল্য',
45
+ 'Lines without a price typed in are priced by this list; each line says why.': 'হাতে মূল্য লেখা না থাকা লাইনের মূল্য এই তালিকা থেকে হয়; প্রতিটি লাইন কারণ জানায়।',
46
+ Lock: 'লক করুন',
47
+ Locked: 'লক করা',
48
+ 'Manager (all orders)': 'ব্যবস্থাপক (সব অর্ডার)',
49
+ Margin: 'মার্জিন',
50
+ 'Margin (%)': 'মার্জিন (%)',
51
+ 'Margin this month': 'এ মাসের মার্জিন',
52
+ 'Mark as sent': 'পাঠানো হিসেবে চিহ্নিত করুন',
53
+ 'My orders': 'আমার অর্ডার',
54
+ Name: 'নাম',
55
+ Number: 'নম্বর',
56
+ Offered: 'প্রস্তাবিত',
57
+ 'Offered until it is added to the quotation as a line.': 'কোটেশনে লাইন হিসেবে যোগ না হওয়া পর্যন্ত প্রস্তাবিত।',
58
+ 'Offered with the quotation; the customer adds it, or not.': 'কোটেশনের সঙ্গে প্রস্তাবিত; গ্রাহক যোগ করতে পারেন, না-ও পারেন।',
59
+ 'Open quotations': 'খোলা উদ্ধৃতি',
60
+ Optional: 'ঐচ্ছিক',
61
+ 'Optional product': 'ঐচ্ছিক পণ্য',
62
+ 'Optional products': 'ঐচ্ছিক পণ্য',
63
+ 'Options are added while the quotation is open.': 'কোটেশন খোলা থাকতেই অপশন যোগ করা যায়।',
64
+ Order: 'অর্ডার',
65
+ 'Order date': 'অর্ডারের তারিখ',
66
+ 'Order line': 'অর্ডার লাইন',
67
+ 'Orders for this customer start on this price list.': 'এই গ্রাহকের অর্ডার এই মূল্যতালিকা দিয়ে শুরু হয়।',
68
+ 'Orders this month': 'এ মাসের অর্ডার',
69
+ Overview: 'সারসংক্ষেপ',
70
+ 'Page {{page}} of {{pages}}': 'পৃষ্ঠা {{page}} / {{pages}}',
71
+ 'Price list': 'মূল্যতালিকা',
72
+ 'Price typed in': 'হাতে লেখা মূল্য',
73
+ Product: 'পণ্য',
74
+ Quantity: 'পরিমাণ',
75
+ Quotation: 'উদ্ধৃতি',
76
+ 'Quotation sent': 'উদ্ধৃতি পাঠানো হয়েছে',
77
+ 'Quotation template': 'কোটেশন টেমপ্লেট',
78
+ 'Quotation templates': 'কোটেশন টেমপ্লেট',
79
+ Quotations: 'উদ্ধৃতি',
80
+ 'Quotations valid for (days, 0: no limit)': 'উদ্ধৃতির মেয়াদ (দিন, ০: সীমাহীন)',
81
+ 'Quotations, sales orders, discounts and taxes': 'উদ্ধৃতি, বিক্রয় আদেশ, ছাড় ও কর',
82
+ 'Records must reference shared records or records of their own company.': 'রেকর্ড কেবল শেয়ার করা রেকর্ড বা নিজের প্রতিষ্ঠানের রেকর্ড উল্লেখ করতে পারে।',
83
+ Sales: 'বিক্রয়',
84
+ 'Sales by month': 'মাসভিত্তিক বিক্রয়',
85
+ 'Sales manager': 'বিক্রয় ব্যবস্থাপক',
86
+ 'Sales order': 'বিক্রয় আদেশ',
87
+ 'Sales order cancelled': 'বিক্রয় অর্ডার বাতিল',
88
+ 'Sales order confirmed': 'বিক্রয় আদেশ নিশ্চিত হয়েছে',
89
+ 'Sales orders': 'বিক্রয় আদেশ',
90
+ 'Sales this month': 'এ মাসের বিক্রয়',
91
+ Salesperson: 'বিক্রয়কর্মী',
92
+ 'Salesperson (own orders)': 'বিক্রয়কর্মী (নিজের অর্ডার)',
93
+ Sequence: 'ক্রম',
94
+ 'Set to quotation': 'উদ্ধৃতিতে ফেরত নিন',
95
+ Sold: 'বিক্রীত',
96
+ State: 'অবস্থা',
97
+ Subtotal: 'উপমোট',
98
+ Tax: 'কর',
99
+ 'Tax (before 0.2.0)': 'কর (0.2.0-এর আগে)',
100
+ Taxes: 'কর',
101
+ Template: 'টেমপ্লেট',
102
+ 'Template line': 'টেমপ্লেটের লাইন',
103
+ 'Terms and conditions': 'শর্তাবলি',
104
+ 'The contact the invoice is addressed to; empty: the customer.': 'চালান যে যোগাযোগের নামে; খালি: গ্রাহক।',
105
+ 'The line’s amount before taxes: the quantity times the unit price, less the discount and any tax included in the price.': 'লাইনের করবিহীন অঙ্ক: পরিমাণ গুণ একক মূল্য, ছাড় ও মূল্যে অন্তর্ভুক্ত কর বাদ দিয়ে।',
106
+ 'The margin as a percentage of the untaxed amount.': 'করবিহীন অঙ্কের শতাংশ হিসেবে মার্জিন।',
107
+ 'The price typed in, else the order’s price list’s (see why on the line), else the product’s list price.': 'হাতে লেখা মূল্য, নইলে অর্ডারের মূল্যতালিকার (কারণ লাইনে দেখুন), নইলে পণ্যের তালিকা মূল্য।',
108
+ 'The quotation is valid until its date plus these days; 0 keeps the quotation’s own.': 'কোটেশনটি এর তারিখের সঙ্গে এই কয়দিন পর্যন্ত বৈধ; ০ হলে কোটেশনের নিজের মেয়াদ থাকে।',
109
+ 'The sum of the lines’ amounts before taxes.': 'লাইনগুলোর করবিহীন অঙ্কের যোগফল।',
110
+ 'The sum of the taxes on the lines.': 'লাইনগুলোর করের যোগফল।',
111
+ 'The taxes on this line, computed from its amount and its taxes.': 'এই লাইনের কর, লাইনের অঙ্ক ও তার কর থেকে হিসাব করা।',
112
+ 'Top customers': 'শীর্ষ গ্রাহক',
113
+ Total: 'মোট',
114
+ Totals: 'মোট',
115
+ Unit: 'একক',
116
+ 'Unit price': 'একক মূল্য',
117
+ Unlock: 'আনলক করুন',
118
+ Untaxed: 'করবিহীন',
119
+ 'Updated At': 'হালনাগাদের সময়',
120
+ 'Updated By': 'হালনাগাদ করেছেন',
121
+ 'Valid for (days)': 'বৈধতা (দিন)',
122
+ 'Valid until': 'বৈধ থাকবে',
123
+ 'What the customer pays: the untaxed amount plus the taxes.': 'গ্রাহক যা পরিশোধ করেন: করবিহীন অঙ্কের সাথে কর যোগ করে।',
124
+ 'What the line earns: its untaxed amount less its product’s cost for the quantity.': 'লাইনটি যা আয় করে: করবিহীন অঙ্ক থেকে পরিমাণ অনুযায়ী পণ্যের খরচ বাদ দিয়ে।',
125
+ 'What the order earns: its lines’ untaxed amounts less their products’ cost.': 'অর্ডারটি যা আয় করে: লাইনগুলোর করবিহীন অঙ্ক থেকে তাদের পণ্যের খরচ বাদ দিয়ে।',
126
+ 'Where the goods go; empty: the customer’s address.': 'পণ্য যেখানে যাবে; খালি: গ্রাহকের ঠিকানা।',
127
+ 'Why this price': 'এই মূল্য কেন',
128
+ };