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
@@ -0,0 +1,262 @@
1
+ /**
2
+ * Bills of materials in depth (RFC 0031 §3.2): the generic **specifications** a formula must reach (parameters such
3
+ * as protein or moisture, their values per product, the range a bill asks for and the value its lines reach), the
4
+ * **costing history** of each version, the **component eligibility** (which product categories may be components
5
+ * of each kind of bill in a company) and the **shifts** schedules run in (step 4). A company may require bills to
6
+ * be **approved** before use (its setting); then only active bills make products.
7
+ */
8
+ import { orm } from '../server/orm.js';
9
+ import { check, compute, defineModel, extendModel, f } from './.kosh/bindings.js';
10
+ const READ = ['read'];
11
+ const ALL = ['read', 'write', 'create', 'unlink'];
12
+ const zero = orm.toDecimal(0);
13
+ const TIME = /^([01]\d|2[0-3]):[0-5]\d$/;
14
+ export const BOM_KINDS = {
15
+ standard: 'Standard',
16
+ formula: 'Formula (shares of a batch)',
17
+ packaging: 'Packaging (a pack of the product)',
18
+ };
19
+ /** A parameter products are measured by (protein, moisture, energy…), with its unit. */
20
+ export const ProductionSpecParameter = defineModel('production.spec.parameter', {
21
+ label: 'Specification parameter',
22
+ recName: 'name',
23
+ order: ['name asc'],
24
+ archivable: true,
25
+ access: { 'production.user': READ, 'production.manager': [...ALL, 'export', 'import'] },
26
+ fields: {
27
+ name: f.char({ required: true, translate: true }),
28
+ unit: f.char({ size: 20, help: '%, kcal/kg, mg/kg…' }),
29
+ note: f.text(),
30
+ },
31
+ });
32
+ /** A product's value for a parameter (a raw material's protein, say). */
33
+ export const ProductionProductSpec = defineModel('production.product.spec', {
34
+ label: 'Product specification',
35
+ order: ['product asc', 'parameter asc'],
36
+ access: { 'production.user': READ, 'production.manager': [...ALL, 'export', 'import'] },
37
+ fields: {
38
+ product: f.many2one('product.product', { required: true, ondelete: 'cascade' }),
39
+ parameter: f.many2one('production.spec.parameter', { required: true, ondelete: 'restrict' }),
40
+ value: f.decimal({ scale: 4, required: true, default: '0' }),
41
+ },
42
+ sqlConstraints: {
43
+ once: {
44
+ unique: ['product', 'parameter'],
45
+ message: 'A product has one value per parameter.',
46
+ },
47
+ },
48
+ });
49
+ /** The values a product's specifications reach for a bill's lines, weighted by each line's share of the batch. */
50
+ export async function reachedValues(env, bomId) {
51
+ const [bom] = await env
52
+ .model('production.bom')
53
+ .browse([bomId])
54
+ .load({ lines: { product: true } });
55
+ const out = new Map();
56
+ if (bom === undefined)
57
+ return out;
58
+ const lines = [...bom.lines];
59
+ const total = lines.reduce((s, l) => s.plus(l.netQuantity ?? l.quantity), zero);
60
+ if (total.lte(0))
61
+ return out;
62
+ const specs = await (await env.model('production.product.spec').search({
63
+ where: { product: { in: lines.map((l) => l.product.id) } },
64
+ })).load({ product: true, parameter: true });
65
+ for (const s of specs) {
66
+ const line = lines.find((l) => l.product.id === s.product.id);
67
+ if (line === undefined)
68
+ continue;
69
+ const weight = (line.netQuantity ?? line.quantity).div(total);
70
+ const key = s.parameter.id;
71
+ out.set(key, (out.get(key) ?? zero).plus(s.value.times(weight)));
72
+ }
73
+ return out;
74
+ }
75
+ /** The range a bill asks for on a parameter, and the value its lines reach. */
76
+ export const ProductionBomSpec = defineModel('production.bom.spec', {
77
+ label: 'Bill specification',
78
+ order: ['bom asc', 'id asc'],
79
+ access: { 'production.user': READ, 'production.manager': ALL },
80
+ fields: {
81
+ bom: f.many2one('production.bom', { required: true, ondelete: 'cascade' }),
82
+ parameter: f.many2one('production.spec.parameter', { required: true, ondelete: 'restrict' }),
83
+ minimum: f.decimal({ scale: 4, label: 'Minimum' }),
84
+ maximum: f.decimal({ scale: 4, label: 'Maximum' }),
85
+ value: f.decimal({
86
+ scale: 4,
87
+ store: true,
88
+ label: 'Reached',
89
+ help: 'What the bill’s lines reach, each product’s value weighted by its share of the batch.',
90
+ ...compute('production.bom.spec', 'value', ['parameter', 'bom.lines.product', 'bom.lines.netQuantity', 'bom.lines.quantity'], async (specs) => {
91
+ const env = specs.env;
92
+ const cache = new Map();
93
+ for (const s of specs) {
94
+ const bomId = s.bom.id;
95
+ let values = cache.get(bomId);
96
+ if (values === undefined) {
97
+ values = await reachedValues(env, bomId);
98
+ cache.set(bomId, values);
99
+ }
100
+ s.value = values.get(s.parameter.id) ?? zero;
101
+ }
102
+ }),
103
+ }),
104
+ within: f.boolean({
105
+ store: true,
106
+ label: 'Within range',
107
+ help: 'The reached value is between the minimum and the maximum.',
108
+ ...compute('production.bom.spec', 'within', ['value', 'minimum', 'maximum'], (specs) => {
109
+ for (const s of specs) {
110
+ const v = s.value ?? zero;
111
+ s.within =
112
+ (s.minimum === null || v.gte(s.minimum)) && (s.maximum === null || v.lte(s.maximum));
113
+ }
114
+ }),
115
+ }),
116
+ },
117
+ sqlConstraints: {
118
+ range: {
119
+ check: orm.sql `minimum IS NULL OR maximum IS NULL OR maximum >= minimum`,
120
+ message: 'The maximum is at or above the minimum.',
121
+ },
122
+ },
123
+ });
124
+ /** The unit cost of a bill when it was activated or revised: the costing history. */
125
+ export const ProductionBomCost = defineModel('production.bom.cost', {
126
+ label: 'Bill cost',
127
+ order: ['bom asc', 'date desc', 'id desc'],
128
+ access: { 'production.user': READ, 'production.manager': READ },
129
+ fields: {
130
+ bom: f.many2one('production.bom', { required: true, ondelete: 'cascade' }),
131
+ date: f.date({ required: true }),
132
+ unitCost: f.decimal({ scale: 4, required: true, label: 'Unit cost' }),
133
+ note: f.char({ size: 200 }),
134
+ },
135
+ });
136
+ /** Which product categories may be components of a kind of bill in a company. */
137
+ export const ProductionBomEligibility = defineModel('production.bom.eligibility', {
138
+ label: 'Component eligibility',
139
+ recName: 'label',
140
+ order: ['kind asc', 'id asc'],
141
+ archivable: true,
142
+ companyScoped: { required: true },
143
+ access: { 'production.user': READ, 'production.manager': [...ALL, 'export', 'import'] },
144
+ fields: {
145
+ kind: f.selection(BOM_KINDS, {
146
+ required: true,
147
+ default: 'standard',
148
+ label: 'Kind of bill',
149
+ help: 'The kind of bill these categories may be components of.',
150
+ }),
151
+ categories: f.many2many('product.category', {
152
+ relation: 'production_elig_category',
153
+ label: 'Allowed component categories',
154
+ help: 'Products of these categories (and the categories inside them) may be components; others are refused.',
155
+ }),
156
+ note: f.text(),
157
+ label: f.char({
158
+ store: true,
159
+ label: 'Eligibility',
160
+ ...compute('production.bom.eligibility', 'label', ['kind'], (rules) => {
161
+ for (const r of rules)
162
+ r.label = `${BOM_KINDS[r.kind]} components`;
163
+ }),
164
+ }),
165
+ },
166
+ });
167
+ /**
168
+ * Why a product may not be a component of a bill in its company, or null: the eligibility rules of the bill's
169
+ * kind name categories, and the product's category (or one above it) is not among them.
170
+ */
171
+ export async function ineligible(env, company, kind, productId) {
172
+ const rules = await (await env
173
+ .model('production.bom.eligibility')
174
+ .search({ where: { company: company, kind: kind } })).load({ categories: true });
175
+ const allowed = new Set();
176
+ for (const r of rules)
177
+ for (const c of r.categories)
178
+ allowed.add(c.id);
179
+ if (rules.length === 0 || allowed.size === 0)
180
+ return null;
181
+ const [product] = await env
182
+ .model('product.product')
183
+ .browse([productId])
184
+ .load({ category: true });
185
+ let category = product?.category?.id ?? null;
186
+ for (let depth = 0; category !== null && depth < 10; depth += 1) {
187
+ if (allowed.has(category))
188
+ return null;
189
+ const [c] = await env
190
+ .model('product.category')
191
+ .browse([category])
192
+ .load({ parent: true });
193
+ category = c?.parent?.id ?? null;
194
+ }
195
+ const names = [
196
+ ...(await env
197
+ .model('product.category')
198
+ .browse([...allowed])
199
+ .load({})),
200
+ ]
201
+ .map((c) => c.name)
202
+ .join(', ');
203
+ return `${product?.name ?? productId} is not an allowed component of a ${BOM_KINDS[kind].toLowerCase()} bill (allowed: ${names}).`;
204
+ }
205
+ /** A shift of the day (schedules run in them, RFC 0031 step 4). */
206
+ export const ProductionShift = defineModel('production.shift', {
207
+ label: 'Shift',
208
+ recName: 'name',
209
+ order: ['start asc', 'name asc'],
210
+ archivable: true,
211
+ companyScoped: { required: true },
212
+ access: { 'production.user': READ, 'production.manager': [...ALL, 'export', 'import'] },
213
+ fields: {
214
+ name: f.char({ required: true, translate: true }),
215
+ start: f.char({ size: 5, required: true, default: '06:00', help: 'HH:MM, 24-hour.' }),
216
+ end: f.char({
217
+ size: 5,
218
+ required: true,
219
+ default: '14:00',
220
+ help: 'HH:MM; before the start for a shift over midnight.',
221
+ }),
222
+ hours: f.decimal({
223
+ scale: 2,
224
+ store: true,
225
+ label: 'Hours',
226
+ help: 'The shift’s length (over midnight when it ends before it starts).',
227
+ ...compute('production.shift', 'hours', ['start', 'end'], (shifts) => {
228
+ for (const s of shifts) {
229
+ const [sh, sm] = s.start.split(':').map(Number);
230
+ const [eh, em] = s.end.split(':').map(Number);
231
+ let minutes = eh * 60 + em - (sh * 60 + sm);
232
+ if (minutes <= 0)
233
+ minutes += 24 * 60;
234
+ s.hours = orm.toDecimal(minutes).div(60).toDecimalPlaces(2);
235
+ }
236
+ }),
237
+ }),
238
+ },
239
+ constraints: {
240
+ times: {
241
+ ...check('production.shift', ['start', 'end'], async (shifts) => [...shifts].filter((s) => !TIME.test(s.start) || !TIME.test(s.end)).map((s) => s.id)),
242
+ message: 'Times are HH:MM, 24-hour (06:00, 22:30).',
243
+ },
244
+ },
245
+ });
246
+ /** Whether bills must be approved before they make products (Settings › App settings › Production). */
247
+ export const CompanyProduction = extendModel('res.company', {
248
+ fields: {
249
+ bomApproval: f.boolean({
250
+ default: false,
251
+ label: 'Bills of materials need approval',
252
+ help: 'On: only active bills — submitted, reviewed and approved — make products; off: a draft bill is used as soon as it is written.',
253
+ }),
254
+ },
255
+ });
256
+ export async function bomsNeedApproval(env, company) {
257
+ const [c] = await env
258
+ .model('res.company')
259
+ .browse([company])
260
+ .load(['bomApproval']);
261
+ return c?.bomApproval === true;
262
+ }
@@ -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,350 @@
1
+ /** Bangla for the module's labels, keyed by their English text (RFC 0023 §3.1; `pnpm i18n:extract`). */
2
+ export const bn = {
3
+ '%, kcal/kg, mg/kg…': '%, কিলোক্যালরি/কেজি, মিগ্রা/কেজি…',
4
+ 'A batch makes a positive quantity.': 'ব্যাচে ধনাত্মক পরিমাণ উৎপাদন হতে হবে।',
5
+ 'A bill ends on or after it starts.': 'উপকরণ তালিকার শেষ তারিখ শুরুর তারিখে বা তার পরে হতে হবে।',
6
+ 'A bill makes a positive quantity.': 'উপকরণ তালিকায় ধনাত্মক পরিমাণ উৎপাদন হতে হবে।',
7
+ 'A bill under review has components, formula ratios adding up to 100 % and every specification within range.': 'পর্যালোচনাধীন বিলে উপাদান থাকে, ফর্মুলার অনুপাত মিলে ১০০ % হয় এবং প্রতিটি স্পেসিফিকেশন সীমার মধ্যে থাকে।',
8
+ 'A by-product is made in a positive quantity, with a share of the cost under 100 %.': 'উপজাত পণ্য ধনাত্মক পরিমাণে তৈরি হয়, আর খরচে এর অংশ ১০০ %-এর কম।',
9
+ 'A component is needed in a positive quantity.': 'উপাদানের প্রয়োজনীয় পরিমাণ ধনাত্মক হতে হবে।',
10
+ 'A confirmed order is checked with Check availability.': 'নিশ্চিত আদেশ "প্রাপ্যতা যাচাই করুন" দিয়ে যাচাই করা হয়।',
11
+ 'A confirmed order is ready once all its components are reserved, otherwise it is waiting.': 'নিশ্চিত আদেশের সব উপকরণ সংরক্ষিত হলে এটি প্রস্তুত, নইলে অপেক্ষমাণ।',
12
+ 'A formula’s lines are shares of the batch; a packaging bill packs the product; losses are covered by the gross quantities.': 'ফর্মুলার লাইন ব্যাচের অংশ; প্যাকেজিং বিল পণ্য প্যাক করে; ক্ষতি মোট পরিমাণে ধরা থাকে।',
13
+ 'A line goes beyond its work centre’s capacity: see the lines’ capacity notes.': 'কোনো লাইন তার কর্মকেন্দ্রের সক্ষমতা ছাড়িয়ে গেছে: লাইনের সক্ষমতা নোট দেখুন।',
14
+ 'A line makes a positive quantity.': 'লাইনে ধনাত্মক পরিমাণ উৎপাদন হতে হবে।',
15
+ 'A packaging bill has a pack size.': 'প্যাকেজিং বিলের প্যাকের আকার থাকে।',
16
+ 'A plan ends on or after it starts.': 'পরিকল্পনার শেষ তারিখ শুরুর তারিখে বা তার পরে হতে হবে।',
17
+ 'A produced lot expires this many days after its manufacturing date; empty: no expiry.': 'উৎপাদিত লট উৎপাদন তারিখের এত দিন পরে মেয়াদোত্তীর্ণ হয়; খালি থাকলে মেয়াদ নেই।',
18
+ 'A product has one value per parameter.': 'প্রতি প্যারামিটারে পণ্যের একটি মান থাকে।',
19
+ 'A product is not a component of itself.': 'কোনো পণ্য নিজের উপাদান হতে পারে না।',
20
+ 'A slot ends after it starts.': 'স্লটের শেষ সময় শুরুর পরে হতে হবে।',
21
+ 'A work centre works some hours a day, at a cost that is not negative.': 'কর্মকেন্দ্র দিনে নির্দিষ্ট কিছু ঘণ্টা কাজ করে, এবং এর খরচ ঋণাত্মক হতে পারে না।',
22
+ Active: 'সক্রিয়',
23
+ 'Add the products to make first.': 'আগে যে পণ্যগুলো তৈরি হবে তা যোগ করুন।',
24
+ 'After each batch.': 'প্রতিটি ব্যাচের পরে।',
25
+ 'Allowed component categories': 'অনুমোদিত উপাদান ক্যাটাগরি',
26
+ 'Alternative work centres': 'বিকল্প ওয়ার্ক সেন্টার',
27
+ Alternatives: 'বিকল্পসমূহ',
28
+ 'An order makes a positive quantity.': 'আদেশে ধনাত্মক পরিমাণ উৎপাদন হতে হবে।',
29
+ Approve: 'অনুমোদন করুন',
30
+ Approved: 'অনুমোদিত',
31
+ Available: 'প্রাপ্য',
32
+ 'Available beyond what is required.': 'প্রয়োজনের বাইরে যা প্রাপ্য।',
33
+ 'Back to draft': 'খসড়ায় ফেরত নিন',
34
+ Batch: 'ব্যাচ',
35
+ 'Batch {{name}}': 'ব্যাচ {{name}}',
36
+ 'Batch and yield': 'ব্যাচ ও ফলন',
37
+ 'Batch confirmed': 'ব্যাচ নিশ্চিত',
38
+ 'Batch done': 'ব্যাচ সম্পন্ন',
39
+ 'Batch label': 'ব্যাচ লেবেল',
40
+ 'Batch number': 'ব্যাচ নম্বর',
41
+ Batches: 'ব্যাচসমূহ',
42
+ 'Batches and effectiveness': 'ব্যাচ ও কার্যকারিতা',
43
+ 'Batches and labels': 'ব্যাচ ও লেবেল',
44
+ 'Before each batch.': 'প্রতিটি ব্যাচের আগে।',
45
+ 'Beyond capacity': 'সক্ষমতার বাইরে',
46
+ 'Beyond tolerance': 'সহনসীমার বাইরে',
47
+ 'Biggest open orders': 'সবচেয়ে বড় খোলা আদেশ',
48
+ 'Bill cost': 'বিলের খরচ',
49
+ 'Bill of materials': 'উপকরণ তালিকা',
50
+ 'Bill of materials {{label}}': 'উপকরণ তালিকা {{label}}',
51
+ 'Bill of materials activated': 'উপকরণ তালিকা সক্রিয় হয়েছে',
52
+ 'Bill of materials approvals': 'উপকরণ তালিকা অনুমোদন',
53
+ 'Bill of materials revised': 'উপকরণ তালিকা সংশোধিত',
54
+ 'Bill of materials submitted for review': 'উপকরণ তালিকা পর্যালোচনার জন্য জমা',
55
+ 'Bill reference': 'বিলের রেফারেন্স',
56
+ 'Bill specification': 'বিলের স্পেসিফিকেশন',
57
+ 'Bills of materials': 'উপকরণ তালিকা',
58
+ 'Bills of materials need approval': 'উপকরণ তালিকার অনুমোদন লাগে',
59
+ 'Bills of materials with versions, orders that show what is short and what they cost': 'সংস্করণসহ উপকরণ তালিকা, কী ঘাটতি আছে ও খরচ কত তা দেখানো আদেশ',
60
+ Bom: 'উপকরণ তালিকা',
61
+ 'By-product': 'উপজাত পণ্য',
62
+ 'By-products': 'উপজাত পণ্য',
63
+ 'By-products are other products than the one made, and their shares of the cost stay under 100 %.': 'উপজাত পণ্য উৎপাদিত পণ্য থেকে ভিন্ন হতে হবে, এবং খরচে এদের মোট অংশ ১০০ %-এর কম থাকবে।',
64
+ Cancel: 'বাতিল করুন',
65
+ 'Cancel this batch?': 'এই ব্যাচ বাতিল করবেন?',
66
+ 'Cancel this plan?': 'এই পরিকল্পনা বাতিল করবেন?',
67
+ Cancelled: 'বাতিল',
68
+ Capacity: 'সক্ষমতা',
69
+ 'Check availability': 'প্রাপ্যতা যাচাই করুন',
70
+ 'Check components': 'উপাদান যাচাই করুন',
71
+ 'Check stock': 'মজুত যাচাই করুন',
72
+ 'Choose a bill of materials that may be used: an active one (or a draft, when bills need no approval).': 'ব্যবহারযোগ্য উপকরণ তালিকা বাছুন: সক্রিয় একটি (বা খসড়া, যখন বিলের অনুমোদন লাগে না)।',
73
+ 'Cleanup (minutes)': 'পরিষ্কার (মিনিট)',
74
+ Code: 'কোড',
75
+ Company: 'প্রতিষ্ঠান',
76
+ Component: 'উপাদান',
77
+ 'Component eligibility': 'উপাদানের যোগ্যতা',
78
+ 'Component need': 'উপাদানের প্রয়োজন',
79
+ Components: 'উপাদান',
80
+ 'Components › Product': 'উপাদান › পণ্য',
81
+ 'Components › Quantity': 'উপাদান › পরিমাণ',
82
+ 'Components › Unit': 'উপাদান › একক',
83
+ 'Components are short: check availability, or wait for them to come in.': 'উপাদানে ঘাটতি আছে: প্রাপ্যতা যাচাই করুন, অথবা সেগুলো আসার অপেক্ষা করুন।',
84
+ 'Components short': 'উপাদান ঘাটতি',
85
+ 'Components the pre-flight finds short.': 'প্রাক-যাচাইয়ে যে উপাদান ঘাটতি পাওয়া গেছে।',
86
+ 'Components transfer': 'উপাদান স্থানান্তর',
87
+ Configuration: 'কনফিগারেশন',
88
+ Confirm: 'নিশ্চিত করুন',
89
+ 'Confirm? The production orders are made.': 'নিশ্চিত করবেন? উৎপাদন আদেশ তৈরি হবে।',
90
+ Confirmed: 'নিশ্চিত',
91
+ 'Confirmed, the components are reserved and the work orders scheduled; done, the product is made.': 'নিশ্চিত হলে উপকরণ সংরক্ষিত হয় ও কার্যাদেশের সময়সূচি হয়; সম্পন্ন হলে পণ্যটি তৈরি হয়ে গেছে।',
92
+ Consumed: 'ব্যবহৃত',
93
+ 'Consumed less produced (packs × the pack size for a pack order), once done; negative: a gain.': 'সম্পন্ন হলে ব্যবহৃত থেকে উৎপাদিত বাদ (প্যাক আদেশে প্যাক × প্যাকের আকার); ঋণাত্মক হলে লাভ।',
94
+ Cost: 'খরচ',
95
+ 'Cost per hour': 'ঘণ্টাপ্রতি খরচ',
96
+ 'Costing history': 'খরচের ইতিহাস',
97
+ 'Create revision': 'সংশোধনী তৈরি করুন',
98
+ 'Created At': 'তৈরির সময়',
99
+ 'Created By': 'তৈরি করেছেন',
100
+ Date: 'তারিখ',
101
+ Deficit: 'ঘাটতি',
102
+ 'Display Name': 'প্রদর্শিত নাম',
103
+ Done: 'সম্পন্ন',
104
+ Draft: 'খসড়া',
105
+ 'Drafted, forecast (its materials known), approved, scheduled into batches.': 'খসড়া, পূর্বাভাস (উপকরণ জানা), অনুমোদিত, ব্যাচে সূচিবদ্ধ।',
106
+ 'Drafted, its stock checked (the pre-flight), confirmed into orders, in progress once one starts, done when all are.': 'খসড়া, মজুত যাচাই (প্রাক-যাচাই), আদেশে নিশ্চিত, একটি শুরু হলে চলমান, সব শেষ হলে সম্পন্ন।',
107
+ 'Drafted, submitted for review, approved into active (the version used), set inactive when superseded; a revision copies it to the next version. A company that needs no approval uses drafts as well.': 'খসড়া, পর্যালোচনার জন্য জমা, অনুমোদিত হয়ে সক্রিয় (ব্যবহৃত সংস্করণ), প্রতিস্থাপিত হলে নিষ্ক্রিয়; সংশোধনী পরের সংস্করণে কপি করে। অনুমোদন না লাগা প্রতিষ্ঠান খসড়াও ব্যবহার করে।',
108
+ Eligibility: 'যোগ্যতা',
109
+ End: 'শেষ',
110
+ Execution: 'সম্পাদন',
111
+ 'Expected loss (%)': 'প্রত্যাশিত ক্ষতি (%)',
112
+ 'Expires on': 'মেয়াদ শেষ',
113
+ Finish: 'শেষ করুন',
114
+ Finished: 'শেষ হয়েছে',
115
+ 'For a formula: the component’s share of the batch; the ratios add up to 100 %.': 'ফর্মুলার জন্য: ব্যাচে উপাদানের অংশ; অনুপাতগুলো মিলে ১০০ %।',
116
+ 'For a pack order the bulk it packs; else the components in the product’s own unit (a formula’s shares).': 'প্যাক আদেশে যে বাল্ক প্যাক হয়; নইলে পণ্যের নিজস্ব এককে উপাদান (ফর্মুলার অংশ)।',
117
+ 'For a packaging bill: how much of the product one pack holds, in the product’s unit.': 'প্যাকেজিং বিলের জন্য: এক প্যাকে পণ্যের কতটা থাকে, পণ্যের এককে।',
118
+ Forecast: 'পূর্বাভাস',
119
+ 'Formula (shares of a batch)': 'ফর্মুলা (ব্যাচের অংশ)',
120
+ Formulas: 'ফর্মুলাসমূহ',
121
+ From: 'শুরু',
122
+ 'From the product’s shelf life, on the batch’s lot.': 'পণ্যের সংরক্ষণকাল থেকে, ব্যাচের লটে।',
123
+ 'Generate forecast': 'পূর্বাভাস তৈরি করুন',
124
+ 'Gross quantity': 'মোট পরিমাণ',
125
+ 'HH:MM, 24-hour.': 'HH:MM, ২৪ ঘণ্টা।',
126
+ 'HH:MM; before the start for a shift over midnight.': 'HH:MM; মধ্যরাত পার হওয়া শিফটে শুরুর আগে।',
127
+ Hours: 'ঘণ্টা',
128
+ 'Hours a day': 'দিনে ঘণ্টা',
129
+ 'How far the quantity made may stray from the batch before it is questioned.': 'উৎপাদিত পরিমাণ ব্যাচ থেকে কতটা সরলে প্রশ্ন ওঠে।',
130
+ 'How much more is needed than the warehouse had available when the order was last checked.': 'আদেশটি শেষবার যাচাইয়ের সময় গুদামে যা ছিল তার চেয়ে কতটা বেশি দরকার।',
131
+ ID: 'আইডি',
132
+ 'In progress': 'চলমান',
133
+ Inactive: 'নিষ্ক্রিয়',
134
+ Kind: 'ধরন',
135
+ 'Kind of bill': 'বিলের ধরন',
136
+ Line: 'লাইন',
137
+ 'Lines › End': 'লাইন › শেষ',
138
+ 'Lines › Product': 'লাইন › পণ্য',
139
+ 'Lines › Quantity': 'লাইন › পরিমাণ',
140
+ 'Lines › Start': 'লাইন › শুরু',
141
+ 'Lines › Work centre': 'লাইন › কর্মকেন্দ্র',
142
+ 'Lines of this kind of bill may only use products of these categories; others are refused with the reason.': 'এই ধরনের বিলের লাইনে শুধু এই ক্যাটাগরির পণ্য চলে; অন্যগুলো কারণসহ প্রত্যাখ্যাত হয়।',
143
+ 'Loss (%)': 'ক্ষতি (%)',
144
+ 'Loss %': 'ক্ষতি %',
145
+ 'Loss and tolerance are percentages.': 'ক্ষতি ও সহনসীমা শতাংশে।',
146
+ 'Made this month': 'এ মাসে উৎপাদিত',
147
+ 'Made, by product': 'পণ্য অনুযায়ী উৎপাদিত',
148
+ Make: 'তৈরি',
149
+ 'Make: the product from its components. Pack: packs of a made product, taken from its lot.': 'তৈরি: উপাদান থেকে পণ্য। প্যাক: তৈরি পণ্যের প্যাক, তার লট থেকে নেওয়া।',
150
+ Makes: 'যা উৎপাদন করে',
151
+ 'Manager (bills of materials, work centres, everything)': 'ব্যবস্থাপক (উপকরণ তালিকা, কর্মকেন্দ্র, সবকিছু)',
152
+ 'Manufactured on': 'উৎপাদন তারিখ',
153
+ 'Mark done': 'সম্পন্ন চিহ্নিত করুন',
154
+ Material: 'উপকরণ',
155
+ Materials: 'উপকরণ',
156
+ 'Materials short': 'ঘাটতির উপকরণ',
157
+ 'Materials the forecast finds short of what is on hand and on order.': 'মজুত ও ক্রয়াদেশের তুলনায় পূর্বাভাসে যে উপকরণ ঘাটতি পাওয়া গেছে।',
158
+ Maximum: 'সর্বোচ্চ',
159
+ 'Maximum batch': 'সর্বোচ্চ ব্যাচ',
160
+ 'Maximum retail price': 'সর্বোচ্চ খুচরা মূল্য',
161
+ Minimum: 'সর্বনিম্ন',
162
+ 'Minimum batch': 'সর্বনিম্ন ব্যাচ',
163
+ Minutes: 'মিনিট',
164
+ 'Minutes needed': 'প্রয়োজনীয় মিনিট',
165
+ 'Minutes taken': 'ব্যয়িত মিনিট',
166
+ Name: 'নাম',
167
+ 'Net quantity': 'নিট পরিমাণ',
168
+ Note: 'নোট',
169
+ 'Nothing is short.': 'কোনো ঘাটতি নেই।',
170
+ 'OEE target (%)': 'OEE লক্ষ্য (%)',
171
+ 'On hand': 'মজুত',
172
+ 'On hand and not reserved, in the warehouse.': 'গুদামে মজুত ও সংরক্ষিত নয়।',
173
+ 'On order': 'ক্রয়াদেশে',
174
+ 'On, a bill is submitted for review and approved before an order may use it; off, a draft bill is used at once.': 'চালু থাকলে বিল পর্যালোচনায় জমা ও অনুমোদিত হওয়ার পরে অর্ডারে ব্যবহার হয়; বন্ধ থাকলে খসড়া বিল সাথে সাথে ব্যবহার হয়।',
175
+ 'On: only active bills — submitted, reviewed and approved — make products; off: a draft bill is used as soon as it is written.': 'চালু: শুধু সক্রিয় বিল — জমা, পর্যালোচিত ও অনুমোদিত — পণ্য তৈরি করে; বন্ধ: খসড়া বিল লেখামাত্র ব্যবহার হয়।',
176
+ 'Once done: the loss against the bill’s expected loss, within its tolerance or beyond it.': 'সম্পন্ন হলে: বিলের প্রত্যাশিত ক্ষতির তুলনায় ক্ষতি, সহনসীমার মধ্যে বা বাইরে।',
177
+ Open: 'খোলা',
178
+ Operation: 'অপারেশন',
179
+ Operations: 'অপারেশন',
180
+ Operator: 'অপারেটর',
181
+ Order: 'আদেশ',
182
+ 'Ordered by': 'যে নথিতে আদেশ',
183
+ 'Ordered by Procure.': 'সংগ্রহ দিয়ে আদেশ করা হয়েছে।',
184
+ 'Orders by state': 'অবস্থা অনুযায়ী আদেশ',
185
+ 'Orders confirmed': 'নিশ্চিত আদেশ',
186
+ 'Output transfer': 'উৎপাদিত পণ্যের স্থানান্তর',
187
+ Overview: 'সারসংক্ষেপ',
188
+ Pack: 'প্যাক',
189
+ 'Pack size': 'প্যাকের আকার',
190
+ Packaging: 'প্যাকেজিং',
191
+ 'Packaging (a pack of the product)': 'প্যাকেজিং (পণ্যের একটি প্যাক)',
192
+ 'Packaging bill': 'প্যাকেজিং বিল',
193
+ 'Page {{page}} of {{pages}}': 'পৃষ্ঠা {{page}} / {{pages}}',
194
+ Parameter: 'প্যারামিটার',
195
+ Pending: 'অপেক্ষমাণ',
196
+ 'Per unit': 'প্রতি একক',
197
+ Plan: 'পরিকল্পনা',
198
+ 'Plan line': 'পরিকল্পনার লাইন',
199
+ 'Plan material': 'পরিকল্পনার উপকরণ',
200
+ 'Plan reference': 'পরিকল্পনার সূত্র',
201
+ 'Plan schedule': 'পরিকল্পনার সূচি',
202
+ 'Planned end': 'পরিকল্পিত শেষ',
203
+ 'Planned for': 'পরিকল্পিত তারিখ',
204
+ 'Planned minutes': 'পরিকল্পিত মিনিট',
205
+ 'Planned start': 'পরিকল্পিত শুরু',
206
+ 'Pre-flight': 'প্রাক-যাচাই',
207
+ 'Pre-flight line': 'প্রাক-যাচাই লাইন',
208
+ 'Printed on the batch label (MRP).': 'ব্যাচ লেবেলে ছাপা হয় (এমআরপি)।',
209
+ 'Process loss': 'প্রক্রিয়া ক্ষতি',
210
+ 'Procure the shortages': 'ঘাটতি সংগ্রহ করুন',
211
+ Procured: 'সংগৃহীত',
212
+ Produce: 'উৎপাদন করুন',
213
+ 'Produce? The components are consumed and the product enters stock.': 'উৎপাদন করবেন? উপাদানগুলো খরচ হবে এবং পণ্যটি মজুদে যোগ হবে।',
214
+ Produced: 'উৎপাদিত',
215
+ 'Produced lot': 'উৎপাদিত লট',
216
+ Product: 'পণ্য',
217
+ 'Product specification': 'পণ্যের স্পেসিফিকেশন',
218
+ 'Product specifications': 'পণ্যের স্পেসিফিকেশনসমূহ',
219
+ Production: 'উৎপাদন',
220
+ 'Production manager': 'উৎপাদন ব্যবস্থাপক',
221
+ 'Production order': 'উৎপাদন আদেশ',
222
+ 'Production order {{name}}': 'উৎপাদন আদেশ {{name}}',
223
+ 'Production order confirmed': 'উৎপাদন আদেশ নিশ্চিত',
224
+ 'Production order done': 'উৎপাদন আদেশ সম্পন্ন',
225
+ 'Production orders': 'উৎপাদন আদেশ',
226
+ 'Production plan': 'উৎপাদন পরিকল্পনা',
227
+ 'Production plan {{name}}': 'উৎপাদন পরিকল্পনা {{name}}',
228
+ 'Production plan approvals': 'উৎপাদন পরিকল্পনার অনুমোদন',
229
+ 'Production plan approved': 'উৎপাদন পরিকল্পনা অনুমোদিত',
230
+ 'Production plan scheduled into batches': 'উৎপাদন পরিকল্পনা ব্যাচে সূচিবদ্ধ',
231
+ 'Production plan submitted': 'উৎপাদন পরিকল্পনা জমা দেওয়া হয়েছে',
232
+ 'Production plans': 'উৎপাদন পরিকল্পনা',
233
+ 'Production schedule': 'উৎপাদন সূচি',
234
+ 'Production schedules': 'উৎপাদন সূচিসমূহ',
235
+ 'Production user': 'উৎপাদন ব্যবহারকারী',
236
+ 'Products of these categories (and the categories inside them) may be components; others are refused.': 'এই ক্যাটাগরির (ও এর ভেতরের ক্যাটাগরির) পণ্য উপাদান হতে পারে; অন্যগুলো প্রত্যাখ্যাত।',
237
+ Quantity: 'পরিমাণ',
238
+ 'Ratio (%)': 'অনুপাত (%)',
239
+ 'Ratios and losses are percentages.': 'অনুপাত ও ক্ষতি শতাংশে।',
240
+ Reached: 'অর্জিত',
241
+ Ready: 'প্রস্তুত',
242
+ Reference: 'রেফারেন্স',
243
+ Remaining: 'অবশিষ্ট',
244
+ Required: 'প্রয়োজনীয়',
245
+ 'Required beyond what is available.': 'প্রাপ্যের বাইরে যা প্রয়োজন।',
246
+ 'Required beyond what is on hand and on order.': 'মজুত ও ক্রয়াদেশের বাইরে যতটা প্রয়োজন।',
247
+ Schedule: 'সূচি',
248
+ 'Schedule the orders': 'আদেশ সূচিবদ্ধ করুন',
249
+ Scheduled: 'সূচিবদ্ধ',
250
+ Scraps: 'বাতিল মাল',
251
+ 'Send back': 'ফেরত পাঠান',
252
+ 'Set active': 'সক্রিয় করুন',
253
+ 'Set inactive': 'নিষ্ক্রিয় করুন',
254
+ 'Set to draft': 'খসড়ায় ফেরত নিন',
255
+ 'Setup (minutes)': 'সেটআপ (মিনিট)',
256
+ 'Share of the cost (%)': 'খরচে অংশ (%)',
257
+ 'Shelf life (days)': 'সংরক্ষণকাল (দিন)',
258
+ Shift: 'শিফট',
259
+ Shifts: 'শিফটসমূহ',
260
+ Short: 'ঘাটতি',
261
+ Shortage: 'ঘাটতি',
262
+ 'Source lot': 'উৎস লট',
263
+ 'Source order': 'উৎস আদেশ',
264
+ 'Specification parameter': 'স্পেসিফিকেশন প্যারামিটার',
265
+ 'Specification parameters': 'স্পেসিফিকেশন প্যারামিটারসমূহ',
266
+ Specifications: 'স্পেসিফিকেশনসমূহ',
267
+ Stage: 'ধাপ',
268
+ Standard: 'স্ট্যান্ডার্ড',
269
+ 'Standard: components in quantities. Formula: components as shares of the batch (ratios adding up to 100 %), scaled to any quantity. Packaging: a pack of the product made.': 'স্ট্যান্ডার্ড: পরিমাণে উপাদান। ফর্মুলা: ব্যাচের অংশ হিসেবে উপাদান (অনুপাত মিলে ১০০ %), যেকোনো পরিমাণে স্কেল করা। প্যাকেজিং: তৈরি পণ্যের একটি প্যাক।',
270
+ Start: 'শুরু করুন',
271
+ Started: 'শুরু হয়েছে',
272
+ 'Started and finished at the work centre; the minutes between them are recorded.': 'কর্মকেন্দ্রে শুরু ও শেষ করা হয়; মাঝের মিনিটগুলো লিপিবদ্ধ হয়।',
273
+ State: 'অবস্থা',
274
+ Status: 'অবস্থা',
275
+ 'Stock checked': 'মজুত যাচাই হয়েছে',
276
+ 'Submit for approval': 'অনুমোদনের জন্য জমা দিন',
277
+ 'Submit for review': 'পর্যালোচনার জন্য জমা দিন',
278
+ Surplus: 'উদ্বৃত্ত',
279
+ Target: 'লক্ষ্য',
280
+ 'The bill of materials is for another product.': 'এই উপকরণ তালিকা অন্য একটি পণ্যের জন্য।',
281
+ 'The bill’s operations for the quantity.': 'এই পরিমাণের জন্য বিলের কার্যক্রম।',
282
+ 'The centres the plan runs on; lines use one of them.': 'যে কেন্দ্রগুলোতে পরিকল্পনা চলে; প্রতিটি লাইন এর একটি ব্যবহার করে।',
283
+ 'The components (gross of their losses) at their cost and the operations at their work centres’ rates, per unit made.': 'উপাদানগুলো (ক্ষতিসহ মোট) তাদের খরচে ও অপারেশনগুলো ওয়ার্ক সেন্টারের হারে, তৈরি প্রতি এককে।',
284
+ 'The components needed at their cost.': 'প্রয়োজনীয় উপকরণ তাদের খরচে।',
285
+ 'The kind of bill these categories may be components of.': 'যে ধরনের বিলে এই ক্যাটাগরি উপাদান হতে পারে।',
286
+ 'The largest batch it runs at once.': 'এটি একসাথে যত বড় ব্যাচ চালায়।',
287
+ 'The lot a pack order takes its bulk from: the make order’s, once produced.': 'প্যাক আদেশ যে লট থেকে বাল্ক নেয়: তৈরি আদেশের, উৎপাদনের পরে।',
288
+ 'The lot the batch is produced into, for a tracked product.': 'ট্র্যাক করা পণ্যের জন্য ব্যাচ যে লটে উৎপাদিত হয়।',
289
+ 'The make order a pack order packs.': 'প্যাক আদেশ যে তৈরি আদেশ প্যাক করে।',
290
+ 'The materials and the operations together.': 'উপকরণ ও কার্যক্রমের খরচ একসাথে।',
291
+ 'The maximum is at or above the minimum.': 'সর্বোচ্চ সর্বনিম্নের সমান বা বেশি।',
292
+ 'The net quantity plus the loss: what the order consumes.': 'নিট পরিমাণ যোগ ক্ষতি: অর্ডার যা খরচ করে।',
293
+ 'The operations’ minutes for the quantity ordered at their work centres’ cost per hour.': 'আদেশকৃত পরিমাণের জন্য কার্যক্রমের মিনিট, কর্মকেন্দ্রের ঘণ্টাপ্রতি খরচে।',
294
+ 'The overall equipment effectiveness aimed at: availability × performance × quality.': 'লক্ষ্যমাত্রার সামগ্রিক যন্ত্র কার্যকারিতা: প্রাপ্যতা × কর্মক্ষমতা × মান।',
295
+ 'The packaging bill of a second stage (step 4): its materials are forecast too.': 'দ্বিতীয় ধাপের প্যাকেজিং বিল (ধাপ ৪): এর উপকরণও পূর্বাভাসে ধরা হয়।',
296
+ 'The process loss as a share of what was consumed.': 'ব্যবহৃত পরিমাণের অংশ হিসেবে প্রক্রিয়া ক্ষতি।',
297
+ 'The quantity needed at the component’s cost.': 'প্রয়োজনীয় পরিমাণ উপকরণের খরচে।',
298
+ 'The reached value is between the minimum and the maximum.': 'অর্জিত মান সর্বনিম্ন ও সর্বোচ্চের মধ্যে।',
299
+ 'The request for quotation or production order Procure made.': 'সংগ্রহ যে দরপত্র অনুরোধ বা উৎপাদন আদেশ তৈরি করেছে।',
300
+ 'The schedules made from the line, one per batch of its work centre.': 'লাইন থেকে তৈরি সূচি, কর্মকেন্দ্রের প্রতি ব্যাচে একটি।',
301
+ 'The shift’s length (over midnight when it ends before it starts).': 'শিফটের দৈর্ঘ্য (শুরুর আগে শেষ হলে মধ্যরাত পার হয়)।',
302
+ 'The smallest batch it runs.': 'এটি যত ছোট ব্যাচ চালায়।',
303
+ 'The target less what was produced.': 'লক্ষ্য থেকে উৎপাদিত বাদ।',
304
+ 'The total cost divided by the quantity made.': 'মোট খরচকে তৈরি পরিমাণ দিয়ে ভাগ করে।',
305
+ 'This product is not an allowed component of the bill’s kind.': 'এই পণ্য এই ধরনের বিলের অনুমোদিত উপাদান নয়।',
306
+ 'Times are HH:MM, 24-hour (06:00, 22:30).': 'সময় HH:MM, ২৪ ঘণ্টায় (06:00, 22:30)।',
307
+ To: 'শেষ',
308
+ 'To do': 'করণীয়',
309
+ 'Tolerance (±%)': 'সহনসীমা (±%)',
310
+ Total: 'মোট',
311
+ 'Total cost': 'মোট খরচ',
312
+ 'Under review': 'পর্যালোচনাধীন',
313
+ Unit: 'একক',
314
+ 'Unit cost': 'একক খরচ',
315
+ 'Updated At': 'হালনাগাদের সময়',
316
+ 'Updated By': 'হালনাগাদ করেছেন',
317
+ 'User (production orders)': 'ব্যবহারকারী (উৎপাদন আদেশ)',
318
+ 'Valid from': 'কার্যকর শুরু',
319
+ 'Valid until': 'কার্যকর পর্যন্ত',
320
+ Value: 'মান',
321
+ Version: 'সংস্করণ',
322
+ Waiting: 'অপেক্ষমাণ',
323
+ 'Waiting approval': 'অনুমোদনের অপেক্ষায়',
324
+ 'Waiting for approvals.': 'অনুমোদনের অপেক্ষায়।',
325
+ Warehouse: 'গুদাম',
326
+ 'What came out, set before producing; the quantity ordered when empty.': 'যা বেরিয়েছে, উৎপাদনের আগে নির্ধারিত; খালি থাকলে আদেশের পরিমাণ।',
327
+ 'What goes into the product: the quantity, or the ratio of the batch for a formula.': 'পণ্যে যা যায়: পরিমাণ, বা ফর্মুলায় ব্যাচের অনুপাত।',
328
+ 'What is lost making or packing a batch, as a share of it.': 'ব্যাচ তৈরি বা প্যাক করতে যা হারায়, এর অংশ হিসেবে।',
329
+ 'What is lost of this component in making (spillage, moisture): the gross quantity covers it.': 'তৈরিতে এই উপাদানের যা হারায় (ছিটকে পড়া, আর্দ্রতা): মোট পরিমাণ তা ধরে।',
330
+ 'What the batch’s make orders produced, once done.': 'ব্যাচের তৈরি আদেশগুলো সম্পন্ন হলে যা উৎপাদন করেছে।',
331
+ 'What the bill’s lines reach, each product’s value weighted by its share of the batch.': 'বিলের লাইন যা অর্জন করে, প্রতিটি পণ্যের মান ব্যাচে তার অংশ অনুযায়ী ওজন করে।',
332
+ 'What to make': 'কী তৈরি হবে',
333
+ 'When set, a second order packs what is made, by its lot.': 'নির্ধারিত থাকলে দ্বিতীয় আদেশ যা তৈরি হয়েছে তা লট অনুযায়ী প্যাক করে।',
334
+ 'Where and when': 'কোথায় ও কখন',
335
+ 'Where the products are made and the materials taken; empty: the company’s first warehouse.': 'যেখানে পণ্য তৈরি হয় ও উপকরণ নেওয়া হয়; খালি থাকলে কোম্পানির প্রথম গুদাম।',
336
+ 'Where the same operation may run when this centre is full.': 'এই সেন্টার ভরা থাকলে একই অপারেশন যেখানে চলতে পারে।',
337
+ 'Whether bills are approved before they make products.': 'পণ্য তৈরির আগে বিল অনুমোদিত হয় কি না।',
338
+ 'Why the slot does not fit its work centre — the batch limits, the minutes against its hours over the slot (setup and cleanup included) —; empty when it fits.': 'স্লট কেন কর্মকেন্দ্রে খাপ খায় না — ব্যাচের সীমা, স্লটজুড়ে ঘণ্টার তুলনায় মিনিট (সেটআপ ও পরিষ্কার সহ) —; খাপ খেলে খালি।',
339
+ 'With shortages': 'ঘাটতিসহ',
340
+ 'Within range': 'সীমার মধ্যে',
341
+ 'Within tolerance': 'সহনসীমার মধ্যে',
342
+ 'Work centre': 'কর্মকেন্দ্র',
343
+ 'Work centres': 'কর্মকেন্দ্র',
344
+ 'Work order': 'কার্যাদেশ',
345
+ 'Work orders': 'কার্যাদেশ',
346
+ 'Work orders in progress': 'চলমান কার্যাদেশ',
347
+ 'Work waiting by work centre': 'কর্মকেন্দ্র অনুযায়ী অপেক্ষমাণ কাজ',
348
+ Workcenter: 'কর্মকেন্দ্র',
349
+ Yield: 'ফলন',
350
+ };