shutro-erp 0.3.5 → 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 (768) hide show
  1. package/dist/account_asset/.kosh/bindings.js +15 -0
  2. package/dist/{mrp_account → account_asset}/.kosh/schema.d.ts +785 -614
  3. package/dist/account_asset/board.d.ts +61 -0
  4. package/dist/account_asset/board.js +86 -0
  5. package/dist/account_asset/books.d.ts +42 -0
  6. package/dist/account_asset/books.js +398 -0
  7. package/dist/account_asset/demo.d.ts +7 -0
  8. package/dist/account_asset/demo.js +72 -0
  9. package/dist/account_asset/i18n/bn.d.ts +2 -0
  10. package/dist/account_asset/i18n/bn.js +97 -0
  11. package/dist/account_asset/index.d.ts +9 -0
  12. package/dist/account_asset/index.js +337 -0
  13. package/dist/account_asset/module.d.ts +11076 -0
  14. package/dist/account_asset/module.js +230 -0
  15. package/dist/account_budget/.kosh/bindings.js +15 -0
  16. package/dist/account_budget/.kosh/schema.d.ts +2841 -0
  17. package/dist/account_budget/budget.d.ts +5 -0
  18. package/dist/account_budget/budget.js +142 -0
  19. package/dist/account_budget/demo.d.ts +6 -0
  20. package/dist/account_budget/demo.js +30 -0
  21. package/dist/account_budget/i18n/bn.d.ts +2 -0
  22. package/dist/account_budget/i18n/bn.js +63 -0
  23. package/dist/account_budget/index.d.ts +4 -0
  24. package/dist/account_budget/index.js +237 -0
  25. package/dist/account_budget/module.d.ts +27289 -0
  26. package/dist/account_budget/module.js +182 -0
  27. package/dist/account_portal/.kosh/bindings.js +1 -1
  28. package/dist/account_portal/.kosh/schema.d.ts +651 -10
  29. package/dist/account_portal/i18n/bn.d.ts +2 -0
  30. package/dist/account_portal/i18n/bn.js +6 -0
  31. package/dist/account_portal/index.js +2 -0
  32. package/dist/account_portal/module.d.ts +5212 -1592
  33. package/dist/accounting/.kosh/bindings.js +1 -1
  34. package/dist/accounting/.kosh/schema.d.ts +651 -10
  35. package/dist/accounting/closing.js +1 -0
  36. package/dist/accounting/fiscal.d.ts +578 -0
  37. package/dist/accounting/fiscal.js +401 -0
  38. package/dist/accounting/followups.d.ts +618 -0
  39. package/dist/accounting/followups.js +420 -0
  40. package/dist/accounting/i18n/bn.d.ts +2 -0
  41. package/dist/accounting/i18n/bn.js +425 -0
  42. package/dist/accounting/index.d.ts +3 -1
  43. package/dist/accounting/index.js +780 -5
  44. package/dist/accounting/module.d.ts +5386 -1543
  45. package/dist/accounting/module.js +155 -18
  46. package/dist/accounting/statements.d.ts +878 -0
  47. package/dist/accounting/statements.js +728 -0
  48. package/dist/accounting/web/BankReconcilePage.d.ts +9 -0
  49. package/dist/accounting/web/BankReconcilePage.js +138 -0
  50. package/dist/accounting/web/FollowupsPage.d.ts +8 -0
  51. package/dist/accounting/web/FollowupsPage.js +54 -0
  52. package/dist/accounting/web/PostingPreview.d.ts +8 -0
  53. package/dist/accounting/web/PostingPreview.js +26 -0
  54. package/dist/accounting/web/index.d.ts +3 -0
  55. package/dist/accounting/web/index.js +9 -0
  56. package/dist/accounting/web/messages.js +140 -0
  57. package/dist/approvals/.kosh/bindings.d.ts +22 -0
  58. package/dist/approvals/.kosh/bindings.js +15 -0
  59. package/dist/approvals/.kosh/schema.d.ts +879 -0
  60. package/dist/approvals/demo.d.ts +7 -0
  61. package/dist/approvals/demo.js +41 -0
  62. package/dist/approvals/i18n/bn.d.ts +2 -0
  63. package/dist/approvals/i18n/bn.js +133 -0
  64. package/dist/approvals/index.d.ts +36 -0
  65. package/dist/approvals/index.js +772 -0
  66. package/dist/approvals/mails.d.ts +30 -0
  67. package/dist/approvals/mails.js +87 -0
  68. package/dist/approvals/module.d.ts +2930 -0
  69. package/dist/approvals/module.js +473 -0
  70. package/dist/approvals/web/Config.d.ts +12 -0
  71. package/dist/approvals/web/Config.js +60 -0
  72. package/dist/approvals/web/History.d.ts +4 -0
  73. package/dist/approvals/web/History.js +13 -0
  74. package/dist/approvals/web/Inbox.d.ts +9 -0
  75. package/dist/approvals/web/Inbox.js +114 -0
  76. package/dist/approvals/web/Matrix.d.ts +9 -0
  77. package/dist/approvals/web/Matrix.js +26 -0
  78. package/dist/approvals/web/Mine.d.ts +7 -0
  79. package/dist/approvals/web/Mine.js +27 -0
  80. package/dist/approvals/web/index.d.ts +15 -0
  81. package/dist/approvals/web/index.js +29 -0
  82. package/dist/approvals/web/messages.d.ts +2 -0
  83. package/dist/approvals/web/messages.js +211 -0
  84. package/dist/approvals/web/shared.d.ts +59 -0
  85. package/dist/approvals/web/shared.js +46 -0
  86. package/dist/approvals_purchase/.kosh/bindings.d.ts +22 -0
  87. package/dist/approvals_purchase/.kosh/bindings.js +15 -0
  88. package/dist/approvals_purchase/.kosh/schema.d.ts +1997 -0
  89. package/dist/approvals_purchase/i18n/bn.d.ts +2 -0
  90. package/dist/approvals_purchase/i18n/bn.js +5 -0
  91. package/dist/approvals_purchase/index.d.ts +3 -0
  92. package/dist/approvals_purchase/index.js +47 -0
  93. package/dist/approvals_purchase/module.d.ts +12670 -0
  94. package/dist/approvals_purchase/module.js +84 -0
  95. package/dist/attendance/.kosh/bindings.d.ts +22 -0
  96. package/dist/attendance/.kosh/bindings.js +15 -0
  97. package/dist/attendance/.kosh/schema.d.ts +1106 -0
  98. package/dist/attendance/days.d.ts +96 -0
  99. package/dist/attendance/days.js +430 -0
  100. package/dist/attendance/demo.d.ts +7 -0
  101. package/dist/attendance/demo.js +58 -0
  102. package/dist/attendance/i18n/bn.d.ts +2 -0
  103. package/dist/attendance/i18n/bn.js +147 -0
  104. package/dist/attendance/index.d.ts +4 -0
  105. package/dist/attendance/index.js +515 -0
  106. package/dist/attendance/module.d.ts +4413 -0
  107. package/dist/attendance/module.js +412 -0
  108. package/dist/attendance/routes.d.ts +16 -0
  109. package/dist/attendance/routes.js +266 -0
  110. package/dist/attendance/web/Check.d.ts +8 -0
  111. package/dist/attendance/web/Check.js +40 -0
  112. package/dist/attendance/web/Kiosk.d.ts +8 -0
  113. package/dist/attendance/web/Kiosk.js +62 -0
  114. package/dist/attendance/web/PinButton.d.ts +7 -0
  115. package/dist/attendance/web/PinButton.js +29 -0
  116. package/dist/attendance/web/index.d.ts +13 -0
  117. package/dist/attendance/web/index.js +22 -0
  118. package/dist/attendance/web/messages.d.ts +2 -0
  119. package/dist/attendance/web/messages.js +61 -0
  120. package/dist/automation/engine.js +1 -1
  121. package/dist/calendar/.kosh/bindings.js +1 -1
  122. package/dist/calendar/.kosh/schema.d.ts +2 -1
  123. package/dist/calendar/i18n/bn.d.ts +2 -0
  124. package/dist/calendar/i18n/bn.js +80 -0
  125. package/dist/calendar/index.js +77 -0
  126. package/dist/calendar/module.d.ts +26 -0
  127. package/dist/calendar/module.js +14 -4
  128. package/dist/cli/apps.js +25 -5
  129. package/dist/cli/init.js +46 -4
  130. package/dist/cli/templates.d.ts +1 -1
  131. package/dist/cli/templates.js +123 -5
  132. package/dist/contacts/.kosh/bindings.js +1 -1
  133. package/dist/contacts/.kosh/schema.d.ts +2 -1
  134. package/dist/contacts/i18n/bn.d.ts +2 -0
  135. package/dist/contacts/i18n/bn.js +67 -0
  136. package/dist/contacts/index.js +3 -0
  137. package/dist/contacts/module.d.ts +42 -0
  138. package/dist/contacts/module.js +19 -3
  139. package/dist/crm/.kosh/bindings.js +1 -1
  140. package/dist/crm/.kosh/schema.d.ts +3 -1
  141. package/dist/crm/i18n/bn.d.ts +2 -0
  142. package/dist/crm/i18n/bn.js +80 -0
  143. package/dist/crm/index.js +22 -0
  144. package/dist/crm/module.d.ts +22 -0
  145. package/dist/crm/module.js +6 -3
  146. package/dist/documents/.kosh/bindings.d.ts +22 -0
  147. package/dist/documents/.kosh/bindings.js +15 -0
  148. package/dist/documents/.kosh/schema.d.ts +863 -0
  149. package/dist/documents/demo.d.ts +6 -0
  150. package/dist/documents/demo.js +22 -0
  151. package/dist/documents/documents.d.ts +98 -0
  152. package/dist/documents/documents.js +318 -0
  153. package/dist/documents/i18n/bn.d.ts +2 -0
  154. package/dist/documents/i18n/bn.js +83 -0
  155. package/dist/documents/index.d.ts +30 -0
  156. package/dist/documents/index.js +569 -0
  157. package/dist/documents/module.d.ts +2801 -0
  158. package/dist/documents/module.js +215 -0
  159. package/dist/documents/web/Versions.d.ts +7 -0
  160. package/dist/documents/web/Versions.js +45 -0
  161. package/dist/documents/web/index.d.ts +11 -0
  162. package/dist/documents/web/index.js +16 -0
  163. package/dist/documents/web/messages.d.ts +2 -0
  164. package/dist/documents/web/messages.js +21 -0
  165. package/dist/event/.kosh/bindings.js +1 -1
  166. package/dist/event/.kosh/schema.d.ts +2 -1
  167. package/dist/event/i18n/bn.d.ts +2 -0
  168. package/dist/event/i18n/bn.js +101 -0
  169. package/dist/event/index.js +66 -0
  170. package/dist/event/module.d.ts +20 -0
  171. package/dist/event/module.js +8 -1
  172. package/dist/event_account/.kosh/bindings.js +1 -1
  173. package/dist/event_account/.kosh/schema.d.ts +651 -10
  174. package/dist/event_account/i18n/bn.d.ts +2 -0
  175. package/dist/event_account/i18n/bn.js +5 -0
  176. package/dist/event_account/index.js +2 -0
  177. package/dist/event_account/module.d.ts +5133 -1513
  178. package/dist/expense/.kosh/bindings.d.ts +22 -0
  179. package/dist/expense/.kosh/bindings.js +15 -0
  180. package/dist/expense/.kosh/schema.d.ts +1620 -0
  181. package/dist/expense/demo.d.ts +7 -0
  182. package/dist/expense/demo.js +69 -0
  183. package/dist/expense/i18n/bn.d.ts +2 -0
  184. package/dist/expense/i18n/bn.js +155 -0
  185. package/dist/expense/index.d.ts +3 -0
  186. package/dist/expense/index.js +502 -0
  187. package/dist/expense/module.d.ts +6768 -0
  188. package/dist/expense/module.js +649 -0
  189. package/dist/expense_account/.kosh/bindings.d.ts +22 -0
  190. package/dist/expense_account/.kosh/bindings.js +15 -0
  191. package/dist/expense_account/.kosh/schema.d.ts +2515 -0
  192. package/dist/expense_account/i18n/bn.d.ts +2 -0
  193. package/dist/expense_account/i18n/bn.js +15 -0
  194. package/dist/expense_account/index.d.ts +3 -0
  195. package/dist/expense_account/index.js +76 -0
  196. package/dist/expense_account/module.d.ts +14628 -0
  197. package/dist/expense_account/module.js +318 -0
  198. package/dist/helpdesk/.kosh/bindings.d.ts +22 -0
  199. package/dist/helpdesk/.kosh/bindings.js +15 -0
  200. package/dist/helpdesk/.kosh/schema.d.ts +886 -0
  201. package/dist/helpdesk/demo.d.ts +7 -0
  202. package/dist/helpdesk/demo.js +65 -0
  203. package/dist/helpdesk/hours.d.ts +17 -0
  204. package/dist/helpdesk/hours.js +94 -0
  205. package/dist/helpdesk/i18n/bn.d.ts +2 -0
  206. package/dist/helpdesk/i18n/bn.js +127 -0
  207. package/dist/helpdesk/index.d.ts +10 -0
  208. package/dist/helpdesk/index.js +463 -0
  209. package/dist/helpdesk/module.d.ts +2960 -0
  210. package/dist/helpdesk/module.js +326 -0
  211. package/dist/helpdesk/routes.d.ts +12 -0
  212. package/dist/helpdesk/routes.js +132 -0
  213. package/dist/helpdesk/sla.d.ts +37 -0
  214. package/dist/helpdesk/sla.js +226 -0
  215. package/dist/hr/.kosh/bindings.js +1 -1
  216. package/dist/hr/.kosh/schema.d.ts +59 -1
  217. package/dist/hr/demo.js +11 -1
  218. package/dist/hr/i18n/bn.d.ts +2 -0
  219. package/dist/hr/i18n/bn.js +126 -0
  220. package/dist/hr/index.d.ts +1 -1
  221. package/dist/hr/index.js +158 -12
  222. package/dist/hr/module.d.ts +932 -59
  223. package/dist/hr/module.js +114 -17
  224. package/dist/indent/.kosh/bindings.d.ts +22 -0
  225. package/dist/indent/.kosh/bindings.js +15 -0
  226. package/dist/indent/.kosh/schema.d.ts +2084 -0
  227. package/dist/indent/demo.d.ts +7 -0
  228. package/dist/indent/demo.js +48 -0
  229. package/dist/indent/i18n/bn.d.ts +2 -0
  230. package/dist/indent/i18n/bn.js +143 -0
  231. package/dist/indent/index.d.ts +3 -0
  232. package/dist/indent/index.js +450 -0
  233. package/dist/indent/module.d.ts +13424 -0
  234. package/dist/indent/module.js +792 -0
  235. package/dist/indent_purchase/.kosh/bindings.d.ts +22 -0
  236. package/dist/indent_purchase/.kosh/bindings.js +15 -0
  237. package/dist/indent_purchase/.kosh/schema.d.ts +2710 -0
  238. package/dist/indent_purchase/i18n/bn.d.ts +2 -0
  239. package/dist/indent_purchase/i18n/bn.js +13 -0
  240. package/dist/indent_purchase/index.d.ts +3 -0
  241. package/dist/indent_purchase/index.js +61 -0
  242. package/dist/indent_purchase/module.d.ts +27950 -0
  243. package/dist/indent_purchase/module.js +163 -0
  244. package/dist/l10n_bd/.kosh/bindings.js +1 -1
  245. package/dist/l10n_bd/.kosh/schema.d.ts +651 -10
  246. package/dist/l10n_bd/i18n/bn.d.ts +2 -0
  247. package/dist/l10n_bd/i18n/bn.js +69 -0
  248. package/dist/l10n_bd/index.js +2 -0
  249. package/dist/l10n_bd/module.d.ts +5212 -1592
  250. package/dist/l10n_bd_payroll/.kosh/bindings.d.ts +22 -0
  251. package/dist/l10n_bd_payroll/.kosh/bindings.js +15 -0
  252. package/dist/l10n_bd_payroll/.kosh/schema.d.ts +2891 -0
  253. package/dist/l10n_bd_payroll/data.d.ts +47 -0
  254. package/dist/l10n_bd_payroll/data.js +347 -0
  255. package/dist/l10n_bd_payroll/i18n/bn.d.ts +2 -0
  256. package/dist/l10n_bd_payroll/i18n/bn.js +4 -0
  257. package/dist/l10n_bd_payroll/index.d.ts +4 -0
  258. package/dist/l10n_bd_payroll/index.js +26 -0
  259. package/dist/l10n_bd_payroll/module.d.ts +17294 -0
  260. package/dist/l10n_bd_payroll/module.js +86 -0
  261. package/dist/l10n_bd_pos/.kosh/bindings.d.ts +22 -0
  262. package/dist/{mrp_account → l10n_bd_pos}/.kosh/bindings.js +2 -2
  263. package/dist/l10n_bd_pos/.kosh/schema.d.ts +2341 -0
  264. package/dist/l10n_bd_pos/i18n/bn.d.ts +2 -0
  265. package/dist/l10n_bd_pos/i18n/bn.js +32 -0
  266. package/dist/l10n_bd_pos/index.d.ts +3 -0
  267. package/dist/l10n_bd_pos/index.js +111 -0
  268. package/dist/{mrp_account → l10n_bd_pos}/module.d.ts +9047 -6981
  269. package/dist/l10n_bd_pos/module.js +43 -0
  270. package/dist/l10n_in/.kosh/bindings.js +1 -1
  271. package/dist/l10n_in/.kosh/schema.d.ts +651 -10
  272. package/dist/l10n_in/i18n/bn.d.ts +2 -0
  273. package/dist/l10n_in/i18n/bn.js +95 -0
  274. package/dist/l10n_in/index.js +2 -0
  275. package/dist/l10n_in/module.d.ts +6778 -1580
  276. package/dist/l10n_in/module.js +25 -5
  277. package/dist/l10n_in/web/GstSettings.js +2 -2
  278. package/dist/mail/inbound/handle.js +8 -5
  279. package/dist/mail/inbound/models.js +5 -3
  280. package/dist/mail/index.d.ts +12 -1
  281. package/dist/mail/index.js +139 -2
  282. package/dist/mail/send.d.ts +56 -0
  283. package/dist/mail/send.js +394 -0
  284. package/dist/mail/web/SendButton.d.ts +9 -0
  285. package/dist/mail/web/SendButton.js +71 -0
  286. package/dist/mail/web/SendSelected.d.ts +8 -0
  287. package/dist/mail/web/SendSelected.js +33 -0
  288. package/dist/mail/web/index.d.ts +2 -0
  289. package/dist/mail/web/index.js +6 -0
  290. package/dist/mail/web/messages.js +36 -0
  291. package/dist/maintenance/.kosh/bindings.js +1 -1
  292. package/dist/maintenance/.kosh/schema.d.ts +2 -1
  293. package/dist/maintenance/i18n/bn.d.ts +2 -0
  294. package/dist/maintenance/i18n/bn.js +132 -0
  295. package/dist/maintenance/index.js +85 -0
  296. package/dist/maintenance/module.d.ts +25 -0
  297. package/dist/maintenance/module.js +27 -9
  298. package/dist/maintenance_stock/.kosh/bindings.js +1 -1
  299. package/dist/maintenance_stock/.kosh/schema.d.ts +374 -3
  300. package/dist/maintenance_stock/i18n/bn.d.ts +2 -0
  301. package/dist/maintenance_stock/i18n/bn.js +21 -0
  302. package/dist/maintenance_stock/index.js +2 -0
  303. package/dist/maintenance_stock/module.d.ts +6095 -1327
  304. package/dist/maintenance_stock/module.js +1 -0
  305. package/dist/modules-sdk/apps.d.ts +10 -0
  306. package/dist/modules-sdk/apps.js +32 -0
  307. package/dist/modules-sdk/index.d.ts +1 -1
  308. package/dist/modules-sdk/manifest.d.ts +105 -2
  309. package/dist/payment/.kosh/bindings.js +1 -1
  310. package/dist/payment/.kosh/schema.d.ts +653 -11
  311. package/dist/payment/i18n/bn.d.ts +2 -0
  312. package/dist/payment/i18n/bn.js +59 -0
  313. package/dist/payment/index.d.ts +41 -0
  314. package/dist/payment/index.js +216 -74
  315. package/dist/payment/module.d.ts +5353 -1675
  316. package/dist/payment/module.js +36 -6
  317. package/dist/payment/settle.js +11 -1
  318. package/dist/payroll/.kosh/bindings.d.ts +22 -0
  319. package/dist/payroll/.kosh/bindings.js +15 -0
  320. package/dist/payroll/.kosh/schema.d.ts +1448 -0
  321. package/dist/payroll/compute.d.ts +35 -0
  322. package/dist/payroll/compute.js +398 -0
  323. package/dist/payroll/demo.d.ts +55 -0
  324. package/dist/payroll/demo.js +121 -0
  325. package/dist/payroll/formula.d.ts +62 -0
  326. package/dist/payroll/formula.js +320 -0
  327. package/dist/payroll/i18n/bn.d.ts +2 -0
  328. package/dist/payroll/i18n/bn.js +206 -0
  329. package/dist/payroll/index.d.ts +230 -0
  330. package/dist/payroll/index.js +715 -0
  331. package/dist/{mrp → payroll}/module.d.ts +4294 -2624
  332. package/dist/payroll/module.js +606 -0
  333. package/dist/payroll/routes.d.ts +10 -0
  334. package/dist/payroll/routes.js +112 -0
  335. package/dist/payroll_account/.kosh/bindings.d.ts +22 -0
  336. package/dist/payroll_account/.kosh/bindings.js +15 -0
  337. package/dist/payroll_account/.kosh/schema.d.ts +2887 -0
  338. package/dist/payroll_account/i18n/bn.d.ts +2 -0
  339. package/dist/payroll_account/i18n/bn.js +10 -0
  340. package/dist/payroll_account/index.d.ts +3 -0
  341. package/dist/payroll_account/index.js +42 -0
  342. package/dist/payroll_account/module.d.ts +16738 -0
  343. package/dist/payroll_account/module.js +256 -0
  344. package/dist/permissions/approvals.d.ts +227 -12
  345. package/dist/permissions/approvals.js +1421 -67
  346. package/dist/permissions/index.d.ts +1 -1
  347. package/dist/permissions/index.js +2 -2
  348. package/dist/permissions/models.js +364 -13
  349. package/dist/permissions/routes.d.ts +9 -1
  350. package/dist/permissions/routes.js +72 -5
  351. package/dist/permissions/web/ApprovalPanel.d.ts +5 -4
  352. package/dist/permissions/web/ApprovalPanel.js +75 -11
  353. package/dist/permissions/web/index.d.ts +6 -4
  354. package/dist/permissions/web/index.js +13 -4
  355. package/dist/permissions/web/messages.d.ts +2 -0
  356. package/dist/permissions/web/messages.js +95 -0
  357. package/dist/portal/.kosh/bindings.js +1 -1
  358. package/dist/portal/.kosh/schema.d.ts +2 -1
  359. package/dist/portal/documents.d.ts +3 -0
  360. package/dist/portal/documents.js +21 -1
  361. package/dist/portal/i18n/bn.d.ts +2 -0
  362. package/dist/portal/i18n/bn.js +33 -0
  363. package/dist/portal/index.js +3 -1
  364. package/dist/portal/module.d.ts +20 -0
  365. package/dist/portal/routes-documents.js +76 -0
  366. package/dist/pos/.kosh/bindings.js +1 -1
  367. package/dist/pos/.kosh/schema.d.ts +652 -10
  368. package/dist/pos/i18n/bn.d.ts +2 -0
  369. package/dist/pos/i18n/bn.js +133 -0
  370. package/dist/pos/index.js +87 -1
  371. package/dist/pos/module.d.ts +6967 -1709
  372. package/dist/pos/module.js +49 -5
  373. package/dist/pos/routes.js +80 -7
  374. package/dist/pos/web/Register.js +2 -5
  375. package/dist/pos_stock/.kosh/bindings.js +1 -1
  376. package/dist/pos_stock/.kosh/schema.d.ts +822 -12
  377. package/dist/pos_stock/i18n/bn.d.ts +2 -0
  378. package/dist/pos_stock/i18n/bn.js +6 -0
  379. package/dist/pos_stock/index.js +2 -0
  380. package/dist/pos_stock/module.d.ts +11241 -2851
  381. package/dist/product/.kosh/bindings.js +1 -1
  382. package/dist/product/.kosh/schema.d.ts +203 -1
  383. package/dist/product/i18n/bn.d.ts +2 -0
  384. package/dist/product/i18n/bn.js +175 -0
  385. package/dist/product/index.d.ts +1 -0
  386. package/dist/product/index.js +301 -1
  387. package/dist/product/module.d.ts +1727 -0
  388. package/dist/product/module.js +67 -6
  389. package/dist/product/pricelist.d.ts +575 -0
  390. package/dist/product/pricelist.js +257 -0
  391. package/dist/product/variants.d.ts +908 -0
  392. package/dist/product/variants.js +251 -0
  393. package/dist/production/.kosh/bindings.d.ts +22 -0
  394. package/dist/production/.kosh/bindings.js +15 -0
  395. package/dist/production/.kosh/schema.d.ts +2345 -0
  396. package/dist/{mrp → production}/demo.d.ts +1 -1
  397. package/dist/{mrp → production}/demo.js +5 -5
  398. package/dist/production/depth.d.ts +790 -0
  399. package/dist/production/depth.js +262 -0
  400. package/dist/production/i18n/bn.d.ts +2 -0
  401. package/dist/production/i18n/bn.js +350 -0
  402. package/dist/production/index.d.ts +6 -0
  403. package/dist/production/index.js +1256 -0
  404. package/dist/production/module.d.ts +17327 -0
  405. package/dist/production/module.js +1333 -0
  406. package/dist/production/plan.d.ts +921 -0
  407. package/dist/production/plan.js +511 -0
  408. package/dist/production/schedule.d.ts +656 -0
  409. package/dist/production/schedule.js +309 -0
  410. package/dist/production_account/.kosh/bindings.d.ts +22 -0
  411. package/dist/production_account/.kosh/bindings.js +15 -0
  412. package/dist/production_account/.kosh/schema.d.ts +3496 -0
  413. package/dist/production_account/i18n/bn.d.ts +2 -0
  414. package/dist/production_account/i18n/bn.js +93 -0
  415. package/dist/production_account/index.d.ts +4 -0
  416. package/dist/production_account/index.js +246 -0
  417. package/dist/production_account/module.d.ts +1192 -0
  418. package/dist/{mrp_account → production_account}/module.js +72 -18
  419. package/dist/production_account/overhead.d.ts +1195 -0
  420. package/dist/production_account/overhead.js +554 -0
  421. package/dist/project/.kosh/bindings.js +1 -1
  422. package/dist/project/.kosh/schema.d.ts +735 -1
  423. package/dist/project/i18n/bn.d.ts +2 -0
  424. package/dist/project/i18n/bn.js +383 -0
  425. package/dist/project/index.d.ts +3 -1
  426. package/dist/project/index.js +1024 -14
  427. package/dist/project/module.d.ts +9912 -390
  428. package/dist/project/module.js +1590 -14
  429. package/dist/project/routes.d.ts +44 -0
  430. package/dist/project/routes.js +314 -0
  431. package/dist/project/schedule.d.ts +72 -0
  432. package/dist/project/schedule.js +192 -0
  433. package/dist/project/web/Refresh.d.ts +8 -0
  434. package/dist/project/web/Refresh.js +29 -0
  435. package/dist/project/web/Schedule.d.ts +9 -0
  436. package/dist/project/web/Schedule.js +93 -0
  437. package/dist/project/web/Structure.d.ts +8 -0
  438. package/dist/project/web/Structure.js +86 -0
  439. package/dist/project/web/Workload.d.ts +8 -0
  440. package/dist/project/web/Workload.js +43 -0
  441. package/dist/project/web/index.d.ts +14 -0
  442. package/dist/project/web/index.js +25 -0
  443. package/dist/project/web/messages.d.ts +2 -0
  444. package/dist/project/web/messages.js +85 -0
  445. package/dist/project_account/.kosh/bindings.d.ts +22 -0
  446. package/dist/project_account/.kosh/bindings.js +15 -0
  447. package/dist/project_account/.kosh/schema.d.ts +2763 -0
  448. package/dist/project_account/i18n/bn.d.ts +2 -0
  449. package/dist/project_account/i18n/bn.js +6 -0
  450. package/dist/project_account/index.d.ts +3 -0
  451. package/dist/project_account/index.js +29 -0
  452. package/dist/project_account/module.d.ts +15013 -0
  453. package/dist/project_account/module.js +76 -0
  454. package/dist/project_portal/.kosh/bindings.js +1 -1
  455. package/dist/project_portal/.kosh/schema.d.ts +735 -1
  456. package/dist/project_portal/i18n/bn.d.ts +2 -0
  457. package/dist/project_portal/i18n/bn.js +6 -0
  458. package/dist/project_portal/index.js +2 -0
  459. package/dist/project_portal/module.d.ts +4796 -87
  460. package/dist/project_purchase/.kosh/bindings.d.ts +22 -0
  461. package/dist/project_purchase/.kosh/bindings.js +15 -0
  462. package/dist/project_purchase/.kosh/schema.d.ts +3393 -0
  463. package/dist/project_purchase/i18n/bn.d.ts +2 -0
  464. package/dist/project_purchase/i18n/bn.js +4 -0
  465. package/dist/project_purchase/index.d.ts +9 -0
  466. package/dist/project_purchase/index.js +24 -0
  467. package/dist/project_purchase/module.d.ts +38613 -0
  468. package/dist/project_purchase/module.js +56 -0
  469. package/dist/purchase/.kosh/bindings.js +1 -1
  470. package/dist/purchase/.kosh/schema.d.ts +908 -5
  471. package/dist/purchase/comparison.d.ts +993 -0
  472. package/dist/purchase/comparison.js +415 -0
  473. package/dist/purchase/extras.d.ts +1509 -0
  474. package/dist/purchase/extras.js +445 -0
  475. package/dist/purchase/i18n/bn.d.ts +2 -0
  476. package/dist/purchase/i18n/bn.js +413 -0
  477. package/dist/purchase/index.d.ts +5 -0
  478. package/dist/purchase/index.js +1280 -4
  479. package/dist/purchase/module.d.ts +7147 -395
  480. package/dist/purchase/module.js +303 -10
  481. package/dist/purchase/request.d.ts +696 -0
  482. package/dist/purchase/request.js +446 -0
  483. package/dist/purchase/tender.d.ts +1208 -0
  484. package/dist/purchase/tender.js +507 -0
  485. package/dist/purchase/vendorprice.d.ts +340 -0
  486. package/dist/purchase/vendorprice.js +153 -0
  487. package/dist/purchase_account/.kosh/bindings.js +1 -1
  488. package/dist/purchase_account/.kosh/schema.d.ts +1209 -16
  489. package/dist/purchase_account/i18n/bn.d.ts +2 -0
  490. package/dist/purchase_account/i18n/bn.js +22 -0
  491. package/dist/purchase_account/index.js +20 -0
  492. package/dist/purchase_account/module.d.ts +12232 -2028
  493. package/dist/purchase_account/module.js +252 -9
  494. package/dist/purchase_portal/.kosh/bindings.js +1 -1
  495. package/dist/purchase_portal/.kosh/schema.d.ts +908 -5
  496. package/dist/purchase_portal/i18n/bn.d.ts +2 -0
  497. package/dist/purchase_portal/i18n/bn.js +5 -0
  498. package/dist/purchase_portal/index.js +2 -0
  499. package/dist/purchase_portal/module.d.ts +6853 -352
  500. package/dist/purchase_stock/.kosh/bindings.js +1 -1
  501. package/dist/purchase_stock/.kosh/schema.d.ts +1096 -21
  502. package/dist/purchase_stock/i18n/bn.d.ts +2 -0
  503. package/dist/purchase_stock/i18n/bn.js +19 -0
  504. package/dist/purchase_stock/index.d.ts +2 -2
  505. package/dist/purchase_stock/index.js +38 -2
  506. package/dist/purchase_stock/module.d.ts +12930 -1612
  507. package/dist/purchase_stock/module.js +317 -9
  508. package/dist/purchase_stock/scorecard.d.ts +22 -0
  509. package/dist/purchase_stock/scorecard.js +77 -0
  510. package/dist/purchase_stock/web/Scorecard.d.ts +7 -0
  511. package/dist/purchase_stock/web/Scorecard.js +22 -0
  512. package/dist/purchase_stock/web/index.d.ts +11 -0
  513. package/dist/purchase_stock/web/index.js +16 -0
  514. package/dist/purchase_stock/web/messages.d.ts +2 -0
  515. package/dist/purchase_stock/web/messages.js +27 -0
  516. package/dist/purchase_stock_account/.kosh/bindings.js +1 -1
  517. package/dist/purchase_stock_account/.kosh/schema.d.ts +1444 -20
  518. package/dist/purchase_stock_account/i18n/bn.d.ts +2 -0
  519. package/dist/purchase_stock_account/i18n/bn.js +8 -0
  520. package/dist/purchase_stock_account/index.js +18 -0
  521. package/dist/purchase_stock_account/module.d.ts +7 -35346
  522. package/dist/purchase_stock_account/module.js +35 -8
  523. package/dist/recruitment/.kosh/bindings.js +1 -1
  524. package/dist/recruitment/.kosh/schema.d.ts +60 -1
  525. package/dist/recruitment/i18n/bn.d.ts +2 -0
  526. package/dist/recruitment/i18n/bn.js +93 -0
  527. package/dist/recruitment/index.js +64 -0
  528. package/dist/recruitment/module.d.ts +460 -8
  529. package/dist/recruitment/module.js +13 -4
  530. package/dist/reporting/documents.d.ts +5 -0
  531. package/dist/reporting/documents.js +11 -1
  532. package/dist/reporting/index.d.ts +1 -1
  533. package/dist/reporting/index.js +1 -1
  534. package/dist/reporting/web/CalendarView.d.ts +18 -5
  535. package/dist/reporting/web/CalendarView.js +163 -29
  536. package/dist/reporting/web/messages.js +18 -0
  537. package/dist/sale_account/.kosh/bindings.js +1 -1
  538. package/dist/sale_account/.kosh/schema.d.ts +763 -18
  539. package/dist/sale_account/i18n/bn.d.ts +2 -0
  540. package/dist/sale_account/i18n/bn.js +48 -0
  541. package/dist/sale_account/index.d.ts +1 -1
  542. package/dist/sale_account/index.js +102 -4
  543. package/dist/sale_account/module.d.ts +8241 -2052
  544. package/dist/sale_account/module.js +535 -46
  545. package/dist/sale_crm/.kosh/bindings.d.ts +22 -0
  546. package/dist/sale_crm/.kosh/bindings.js +15 -0
  547. package/dist/{mrp → sale_crm}/.kosh/schema.d.ts +391 -494
  548. package/dist/sale_crm/i18n/bn.d.ts +2 -0
  549. package/dist/sale_crm/i18n/bn.js +9 -0
  550. package/dist/sale_crm/index.d.ts +7 -0
  551. package/dist/sale_crm/index.js +104 -0
  552. package/dist/sale_crm/module.d.ts +5609 -0
  553. package/dist/sale_crm/module.js +73 -0
  554. package/dist/sale_portal/.kosh/bindings.js +1 -1
  555. package/dist/sale_portal/.kosh/schema.d.ts +292 -4
  556. package/dist/sale_portal/i18n/bn.d.ts +2 -0
  557. package/dist/sale_portal/i18n/bn.js +7 -0
  558. package/dist/sale_portal/index.js +10 -0
  559. package/dist/sale_portal/module.d.ts +2563 -292
  560. package/dist/sale_project/.kosh/bindings.js +1 -1
  561. package/dist/sale_project/.kosh/schema.d.ts +1025 -4
  562. package/dist/sale_project/i18n/bn.d.ts +2 -0
  563. package/dist/sale_project/i18n/bn.js +12 -0
  564. package/dist/sale_project/index.js +2 -0
  565. package/dist/sale_project/module.d.ts +9280 -762
  566. package/dist/sale_project/module.js +17 -1
  567. package/dist/sale_stock/.kosh/bindings.js +1 -1
  568. package/dist/sale_stock/.kosh/schema.d.ts +463 -6
  569. package/dist/sale_stock/i18n/bn.d.ts +2 -0
  570. package/dist/sale_stock/i18n/bn.js +15 -0
  571. package/dist/sale_stock/index.js +2 -0
  572. package/dist/sale_stock/module.d.ts +8355 -1334
  573. package/dist/sale_stock/module.js +20 -3
  574. package/dist/sales/.kosh/bindings.js +1 -1
  575. package/dist/sales/.kosh/schema.d.ts +292 -4
  576. package/dist/sales/i18n/bn.d.ts +2 -0
  577. package/dist/sales/i18n/bn.js +128 -0
  578. package/dist/sales/index.js +124 -5
  579. package/dist/sales/module.d.ts +3568 -633
  580. package/dist/sales/module.js +306 -11
  581. package/dist/server/api/duplicate.d.ts +14 -0
  582. package/dist/server/api/duplicate.js +75 -0
  583. package/dist/server/api/explain.d.ts +70 -0
  584. package/dist/server/api/explain.js +111 -0
  585. package/dist/server/api/metadata.d.ts +2 -0
  586. package/dist/server/api/metadata.js +9 -0
  587. package/dist/server/api/openapi.js +15 -0
  588. package/dist/server/api/rest.d.ts +1 -0
  589. package/dist/server/api/rest.js +76 -12
  590. package/dist/server/api/views.js +1 -1
  591. package/dist/server/apps.d.ts +16 -1
  592. package/dist/server/apps.js +164 -2
  593. package/dist/server/auth/base.js +2 -0
  594. package/dist/server/auth/service.d.ts +8 -0
  595. package/dist/server/auth/service.js +19 -0
  596. package/dist/server/events.d.ts +13 -0
  597. package/dist/server/events.js +22 -0
  598. package/dist/server/i18n.d.ts +27 -0
  599. package/dist/server/i18n.js +143 -0
  600. package/dist/server/index.d.ts +2 -0
  601. package/dist/server/index.js +2 -0
  602. package/dist/server/server.js +6 -0
  603. package/dist/settings/company.d.ts +3 -1
  604. package/dist/settings/company.js +26 -5
  605. package/dist/settings/routes.d.ts +10 -0
  606. package/dist/settings/routes.js +19 -3
  607. package/dist/settings/web/AppsPage.d.ts +3 -2
  608. package/dist/settings/web/AppsPage.js +26 -8
  609. package/dist/settings/web/CompaniesPage.js +91 -6
  610. package/dist/settings/web/messages.js +64 -0
  611. package/dist/sign/.kosh/bindings.d.ts +22 -0
  612. package/dist/{mrp → sign}/.kosh/bindings.js +2 -2
  613. package/dist/sign/.kosh/schema.d.ts +991 -0
  614. package/dist/sign/i18n/bn.d.ts +2 -0
  615. package/dist/sign/i18n/bn.js +97 -0
  616. package/dist/sign/index.d.ts +29 -0
  617. package/dist/sign/index.js +478 -0
  618. package/dist/sign/module.d.ts +4518 -0
  619. package/dist/sign/module.js +167 -0
  620. package/dist/sign/sign.d.ts +82 -0
  621. package/dist/sign/sign.js +474 -0
  622. package/dist/stock/.kosh/bindings.js +1 -1
  623. package/dist/stock/.kosh/schema.d.ts +374 -3
  624. package/dist/stock/demo.d.ts +2 -1
  625. package/dist/stock/demo.js +28 -1
  626. package/dist/stock/i18n/bn.d.ts +2 -0
  627. package/dist/stock/i18n/bn.js +311 -0
  628. package/dist/stock/index.d.ts +4 -1
  629. package/dist/stock/index.js +674 -6
  630. package/dist/stock/ledger.d.ts +78 -0
  631. package/dist/stock/ledger.js +582 -0
  632. package/dist/stock/module.d.ts +6142 -1380
  633. package/dist/stock/module.js +780 -26
  634. package/dist/stock/replenish.d.ts +38 -0
  635. package/dist/stock/replenish.js +191 -0
  636. package/dist/stock/returns.d.ts +157 -0
  637. package/dist/stock/returns.js +163 -0
  638. package/dist/stock/web/Ledger.d.ts +9 -0
  639. package/dist/stock/web/Ledger.js +108 -0
  640. package/dist/stock/web/Operations.d.ts +8 -0
  641. package/dist/stock/web/Operations.js +33 -0
  642. package/dist/stock/web/Replenishment.d.ts +8 -0
  643. package/dist/stock/web/Replenishment.js +84 -0
  644. package/dist/stock/web/ReturnButton.d.ts +7 -0
  645. package/dist/stock/web/ReturnButton.js +62 -0
  646. package/dist/stock/web/index.d.ts +7 -2
  647. package/dist/stock/web/index.js +15 -2
  648. package/dist/stock/web/messages.js +206 -0
  649. package/dist/stock_account/.kosh/bindings.js +1 -1
  650. package/dist/stock_account/.kosh/schema.d.ts +878 -12
  651. package/dist/stock_account/i18n/bn.d.ts +2 -0
  652. package/dist/stock_account/i18n/bn.js +73 -0
  653. package/dist/stock_account/index.d.ts +1 -0
  654. package/dist/stock_account/index.js +141 -3
  655. package/dist/stock_account/landed.d.ts +429 -0
  656. package/dist/stock_account/landed.js +335 -0
  657. package/dist/stock_account/module.d.ts +12143 -3391
  658. package/dist/stock_account/module.js +135 -6
  659. package/dist/stock_account/web/LandedPreview.d.ts +7 -0
  660. package/dist/stock_account/web/LandedPreview.js +23 -0
  661. package/dist/stock_account/web/index.d.ts +11 -0
  662. package/dist/stock_account/web/index.js +16 -0
  663. package/dist/stock_account/web/messages.d.ts +2 -0
  664. package/dist/stock_account/web/messages.js +27 -0
  665. package/dist/todo/i18n/bn.d.ts +2 -0
  666. package/dist/todo/i18n/bn.js +66 -0
  667. package/dist/todo/index.js +59 -0
  668. package/dist/todo/module.d.ts +5 -0
  669. package/dist/todo/module.js +5 -3
  670. package/dist/trade_finance/.kosh/bindings.js +1 -1
  671. package/dist/trade_finance/.kosh/schema.d.ts +2 -1
  672. package/dist/trade_finance/i18n/bn.d.ts +2 -0
  673. package/dist/trade_finance/i18n/bn.js +162 -0
  674. package/dist/trade_finance/index.js +95 -0
  675. package/dist/trade_finance/module.d.ts +26 -0
  676. package/dist/trade_finance/module.js +29 -8
  677. package/dist/trade_finance_account/.kosh/bindings.js +1 -1
  678. package/dist/trade_finance_account/.kosh/schema.d.ts +651 -10
  679. package/dist/trade_finance_account/i18n/bn.d.ts +2 -0
  680. package/dist/trade_finance_account/i18n/bn.js +27 -0
  681. package/dist/trade_finance_account/index.js +3 -0
  682. package/dist/trade_finance_account/module.d.ts +5129 -1509
  683. package/dist/trade_finance_account/module.js +2 -0
  684. package/dist/trade_finance_purchase/.kosh/bindings.js +1 -1
  685. package/dist/trade_finance_purchase/.kosh/schema.d.ts +908 -5
  686. package/dist/trade_finance_purchase/i18n/bn.d.ts +2 -0
  687. package/dist/trade_finance_purchase/i18n/bn.js +6 -0
  688. package/dist/trade_finance_purchase/index.js +2 -0
  689. package/dist/trade_finance_purchase/module.d.ts +6909 -408
  690. package/dist/trade_finance_sale/.kosh/bindings.js +1 -1
  691. package/dist/trade_finance_sale/.kosh/schema.d.ts +292 -4
  692. package/dist/trade_finance_sale/i18n/bn.d.ts +2 -0
  693. package/dist/trade_finance_sale/i18n/bn.js +6 -0
  694. package/dist/trade_finance_sale/index.js +2 -0
  695. package/dist/trade_finance_sale/module.d.ts +2602 -331
  696. package/dist/ui/api.d.ts +2 -0
  697. package/dist/ui/app.d.ts +9 -0
  698. package/dist/ui/app.js +47 -15
  699. package/dist/ui/components/AppIcon.js +9 -2
  700. package/dist/ui/components/Explain.d.ts +69 -0
  701. package/dist/ui/components/Explain.js +62 -0
  702. package/dist/ui/context.d.ts +8 -1
  703. package/dist/ui/context.js +34 -1
  704. package/dist/ui/i18n/messages.d.ts +40 -0
  705. package/dist/ui/i18n/messages.js +80 -0
  706. package/dist/ui/index.d.ts +2 -1
  707. package/dist/ui/index.js +1 -0
  708. package/dist/ui/registry.d.ts +14 -0
  709. package/dist/ui/registry.js +10 -0
  710. package/dist/ui/views/FormView.d.ts +6 -0
  711. package/dist/ui/views/FormView.js +51 -12
  712. package/dist/ui/views/KanbanView.js +9 -1
  713. package/dist/ui/views/ListView.d.ts +8 -0
  714. package/dist/ui/views/ListView.js +14 -5
  715. package/dist/ui/views/StatsRow.js +2 -1
  716. package/dist/ui/views/widgets.js +7 -1
  717. package/dist/views/extend.js +12 -0
  718. package/dist/views/types.d.ts +13 -2
  719. package/dist/views/validate.js +8 -1
  720. package/dist/website/.kosh/bindings.js +1 -1
  721. package/dist/website/.kosh/schema.d.ts +2 -1
  722. package/dist/website/i18n/bn.d.ts +2 -0
  723. package/dist/website/i18n/bn.js +113 -0
  724. package/dist/website/index.js +37 -0
  725. package/dist/website/module.d.ts +20 -0
  726. package/dist/website/module.js +30 -5
  727. package/dist/website_crm/.kosh/bindings.js +1 -1
  728. package/dist/website_crm/.kosh/schema.d.ts +3 -1
  729. package/dist/website_crm/i18n/bn.d.ts +2 -0
  730. package/dist/website_crm/i18n/bn.js +5 -0
  731. package/dist/website_crm/index.js +2 -0
  732. package/dist/website_crm/module.d.ts +41 -0
  733. package/dist/website_sale/.kosh/bindings.d.ts +22 -0
  734. package/dist/website_sale/.kosh/bindings.js +15 -0
  735. package/dist/website_sale/.kosh/schema.d.ts +2909 -0
  736. package/dist/website_sale/couriers.d.ts +50 -0
  737. package/dist/website_sale/couriers.js +59 -0
  738. package/dist/website_sale/demo.d.ts +7 -0
  739. package/dist/website_sale/demo.js +90 -0
  740. package/dist/website_sale/growth.d.ts +31 -0
  741. package/dist/website_sale/growth.js +163 -0
  742. package/dist/website_sale/i18n/bn.d.ts +2 -0
  743. package/dist/website_sale/i18n/bn.js +132 -0
  744. package/dist/website_sale/index.d.ts +49 -0
  745. package/dist/website_sale/index.js +620 -0
  746. package/dist/website_sale/module.d.ts +35182 -0
  747. package/dist/website_sale/module.js +419 -0
  748. package/dist/website_sale/shipments.d.ts +16 -0
  749. package/dist/website_sale/shipments.js +113 -0
  750. package/dist/website_sale/shop.d.ts +81 -0
  751. package/dist/website_sale/shop.js +662 -0
  752. package/dist/website_sale_stock/.kosh/bindings.d.ts +22 -0
  753. package/dist/website_sale_stock/.kosh/bindings.js +15 -0
  754. package/dist/website_sale_stock/.kosh/schema.d.ts +3400 -0
  755. package/dist/website_sale_stock/i18n/bn.d.ts +2 -0
  756. package/dist/website_sale_stock/i18n/bn.js +4 -0
  757. package/dist/website_sale_stock/index.d.ts +9 -0
  758. package/dist/website_sale_stock/index.js +22 -0
  759. package/dist/website_sale_stock/module.d.ts +11 -0
  760. package/dist/website_sale_stock/module.js +32 -0
  761. package/package.json +117 -8
  762. package/dist/mrp/index.d.ts +0 -3
  763. package/dist/mrp/index.js +0 -392
  764. package/dist/mrp/module.js +0 -695
  765. package/dist/mrp_account/index.d.ts +0 -3
  766. package/dist/mrp_account/index.js +0 -22
  767. /package/dist/{mrp → account_asset}/.kosh/bindings.d.ts +0 -0
  768. /package/dist/{mrp_account → account_budget}/.kosh/bindings.d.ts +0 -0
@@ -0,0 +1,226 @@
1
+ /**
2
+ * The Helpdesk clock (RFC 0024 §2.4), refreshed every few minutes on the server and on request:
3
+ *
4
+ * - each open ticket gets its **SLA policy** (the first, by sequence, of its team or every team, from its priority,
5
+ * for its customer or every customer) and its **deadlines** in the team's business hours — the first reply from
6
+ * the ticket's opening, the resolution pushed back by the time spent waiting on the customer;
7
+ * - the **first reply** is the first message (not a note) an agent posted on it;
8
+ * - a ticket waiting on the customer **resumes** when the customer writes back (a message by email);
9
+ * - unassigned tickets of teams that assign get their **agent**: in turn, or the one with the fewest open tickets;
10
+ * - the **status**: met (solved in time), breached (a target passed), at risk (less than a fifth left), on track.
11
+ *
12
+ * A solved ticket asks its customer for a **rating** through a link (`/api/v1/public/helpdesk/rate`).
13
+ */
14
+ import { randomBytes } from 'node:crypto';
15
+ import { mailerFromEnv } from '../mail/index.js';
16
+ import { installationSetting } from '../server/index.js';
17
+ import { orm } from '../server/orm.js';
18
+ import { addBusinessMinutes, businessMinutesBetween, WEEKENDS } from './hours.js';
19
+ import { RANK } from './module.js';
20
+ /** The installation's time zone for business hours (App settings › Helpdesk). */
21
+ export async function timeZoneOf(env) {
22
+ const tz = String(await installationSetting(env, 'helpdesk.timezone', 'Asia/Dhaka'));
23
+ try {
24
+ new Intl.DateTimeFormat('en-US', { timeZone: tz });
25
+ return tz;
26
+ }
27
+ catch {
28
+ return 'Asia/Dhaka';
29
+ }
30
+ }
31
+ /** A team's business hours; without a team, every day from 09:00 to 18:00. */
32
+ export async function hoursOf(env, team) {
33
+ return {
34
+ open: team?.open ?? '09:00',
35
+ close: team?.close ?? '18:00',
36
+ weekend: WEEKENDS[team?.weekend ?? 'none'] ?? [],
37
+ tz: await timeZoneOf(env),
38
+ };
39
+ }
40
+ /** The working minutes a ticket has been waiting on the customer, up to `now`. */
41
+ export async function pausedSince(env, ticket, now) {
42
+ if (ticket.waitingSince === null)
43
+ return 0;
44
+ return businessMinutesBetween(ticket.waitingSince, now, await hoursOf(env, ticket.team));
45
+ }
46
+ /** Refreshes the tickets given (every open, waiting and just-solved ticket when none). */
47
+ export async function refreshSla(env, ids, now = new Date()) {
48
+ const chosen = ids ??
49
+ (await env.model('helpdesk.ticket').search({
50
+ where: {
51
+ or: [
52
+ { state: { in: ['open', 'waiting'] } },
53
+ { state: 'solved', slaStatus: { in: ['on_track', 'at_risk'] } },
54
+ ],
55
+ },
56
+ })).ids;
57
+ const tickets = [
58
+ ...(await env
59
+ .model('helpdesk.ticket')
60
+ .browse(chosen)
61
+ .load({ team: { members: true }, sla: true, partner: true })),
62
+ ];
63
+ const policies = [
64
+ ...(await (await env.model('helpdesk.sla').search({ where: {}, order: ['sequence asc', 'id asc'] })).load({
65
+ team: true,
66
+ partner: true,
67
+ })),
68
+ ];
69
+ for (const t of tickets) {
70
+ const changes = {};
71
+ // The agent, for teams that assign.
72
+ if (t.assignee === null &&
73
+ t.team !== null &&
74
+ t.team.assignment !== 'manual' &&
75
+ t.team.members.length > 0) {
76
+ const members = [...t.team.members].sort((a, b) => a.id - b.id);
77
+ let chosen = members[0];
78
+ if (t.team.assignment === 'load') {
79
+ let fewest = Number.POSITIVE_INFINITY;
80
+ for (const m of members) {
81
+ const open = (await env.model('helpdesk.ticket').search({
82
+ where: { assignee: m.id, state: { in: ['open', 'waiting'] } },
83
+ })).length;
84
+ if (open < fewest) {
85
+ fewest = open;
86
+ chosen = m;
87
+ }
88
+ }
89
+ }
90
+ else {
91
+ // In turn: the member after the one given the team's latest ticket.
92
+ const [last] = await (await env.model('helpdesk.ticket').search({
93
+ where: { team: t.team.id, assignee: { isNull: false }, id: { ne: t.id } },
94
+ order: ['id desc'],
95
+ limit: 1,
96
+ })).load({ assignee: true });
97
+ const at = members.findIndex((m) => m.id === last?.assignee?.id);
98
+ chosen = members[(at + 1) % members.length];
99
+ }
100
+ if (chosen !== undefined)
101
+ changes['assignee'] = chosen.id;
102
+ }
103
+ // The policy.
104
+ let sla = t.sla;
105
+ if (sla === null) {
106
+ sla =
107
+ policies.find((p) => (p.team === null || p.team.id === t.team?.id) &&
108
+ (p.partner === null || p.partner.id === t.partner?.id) &&
109
+ (p.priority === null || (RANK[t.priority] ?? 1) >= (RANK[p.priority] ?? 0))) ?? null;
110
+ if (sla !== null)
111
+ changes['sla'] = sla.id;
112
+ }
113
+ // The first reply: the first message (not a note) an agent posted.
114
+ let firstReplied = t.firstRepliedAt;
115
+ const messages = [
116
+ ...(await (await env.model('mail.message').search({
117
+ where: { resModel: 'helpdesk.ticket', resId: t.id, kind: 'comment' },
118
+ order: ['id asc'],
119
+ })).load(['author', 'authorEmail', 'createdAt'])),
120
+ ];
121
+ if (firstReplied === null) {
122
+ const reply = messages.find((m) => m.author !== null && (m.authorEmail ?? '') === '');
123
+ if (reply !== undefined) {
124
+ firstReplied = reply.createdAt;
125
+ changes['firstRepliedAt'] = reply.createdAt;
126
+ }
127
+ }
128
+ // A customer's email while waiting resumes the ticket.
129
+ let state = t.state;
130
+ let paused = t.pausedMinutes;
131
+ if (state === 'waiting' && t.waitingSince !== null) {
132
+ const since = t.waitingSince;
133
+ const answer = messages.find((m) => m.author === null && (m.authorEmail ?? '') !== '' && m.createdAt > since);
134
+ if (answer !== undefined) {
135
+ paused += await pausedSince(env, t, answer.createdAt);
136
+ changes['pausedMinutes'] = paused;
137
+ changes['waitingSince'] = null;
138
+ state = 'open';
139
+ }
140
+ }
141
+ // Deadlines and the status.
142
+ if (sla !== null) {
143
+ const hours = await hoursOf(env, t.team);
144
+ const opened = t.createdAt;
145
+ const firstBy = addBusinessMinutes(opened, Number(sla.firstReplyHours) * 60, hours);
146
+ const waitingNow = state === 'waiting' && t.waitingSince !== null ? await pausedSince(env, t, now) : 0;
147
+ const solveBy = addBusinessMinutes(opened, Number(sla.resolveHours) * 60 + paused + waitingNow, hours);
148
+ changes['firstReplyDeadline'] = firstBy;
149
+ changes['resolveDeadline'] = solveBy;
150
+ const solvedAt = t.solvedAt;
151
+ // Late for the first reply: replied after the target, or not yet (or never, when solved) past it.
152
+ const firstLate = (firstReplied ?? solvedAt ?? now) > firstBy;
153
+ let status;
154
+ if (solvedAt !== null)
155
+ status = solvedAt <= solveBy && !firstLate ? 'met' : 'breached';
156
+ else if (firstLate || now > solveBy)
157
+ status = 'breached';
158
+ else {
159
+ const total = businessMinutesBetween(opened, solveBy, hours);
160
+ const left = businessMinutesBetween(now, solveBy, hours);
161
+ status = total > 0 && left < total / 5 ? 'at_risk' : 'on_track';
162
+ }
163
+ changes['slaStatus'] = status;
164
+ }
165
+ if (Object.keys(changes).length > 0)
166
+ await env
167
+ .model('helpdesk.ticket')
168
+ .browse([t.id])
169
+ .write(changes);
170
+ if (state === 'open' && t.state === 'waiting') {
171
+ await env.flush();
172
+ await env.model('helpdesk.ticket').browse([t.id]).resume();
173
+ }
174
+ }
175
+ await env.flush();
176
+ return tickets.length;
177
+ }
178
+ /** Solved tickets of teams that ask: a rating link for the customer, sent by email when a mailer is set. */
179
+ export async function askRating(env, ids) {
180
+ const mailer = mailerFromEnv();
181
+ const base = process.env['KOSH_BASE_URL'] ?? '';
182
+ for (const t of await env
183
+ .model('helpdesk.ticket')
184
+ .browse(ids)
185
+ .load({ team: true, partner: true })) {
186
+ if (t.team !== null && !t.team.rating)
187
+ continue;
188
+ const token = randomBytes(24).toString('base64url');
189
+ await env
190
+ .model('helpdesk.ticket')
191
+ .browse([t.id])
192
+ .write({ ratingToken: token });
193
+ const to = t.partner?.email ?? t.email;
194
+ if (mailer === undefined || to === null || to === '')
195
+ continue;
196
+ const link = (score) => `${base}/api/v1/public/helpdesk/rate?token=${token}&score=${score}`;
197
+ const escapeHtml = (x) => x.replace(/[&<>"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;' })[c]);
198
+ const intro = `Your request ${t.name} (“${t.subject}”) is solved. How was the help?`;
199
+ await mailer
200
+ .send({
201
+ to,
202
+ subject: `How did we do? ${t.name}: ${t.subject}`,
203
+ text: [intro, ...[5, 4, 3, 2, 1].map((s) => `${'★'.repeat(s)} ${link(s)}`)].join('\n'),
204
+ html: `<p>${escapeHtml(intro)}</p><p>${[5, 4, 3, 2, 1]
205
+ .map((s) => `<a href="${escapeHtml(link(s))}">${'★'.repeat(s)}</a>`)
206
+ .join('<br>')}</p>`,
207
+ })
208
+ .catch(() => undefined);
209
+ }
210
+ await env.flush();
211
+ }
212
+ /** A rating from the link, once. @returns the ticket's reference, or `null` for an unknown or used link */
213
+ export async function rate(env, token, score, comment) {
214
+ if (!Number.isInteger(score) || score < 1 || score > 5)
215
+ return null;
216
+ const [t] = await (await env.model('helpdesk.ticket').search({ where: { ratingToken: token }, limit: 1 })).load(['name', 'rating']);
217
+ if (t === undefined || t.rating !== null)
218
+ return null;
219
+ await env
220
+ .model('helpdesk.ticket')
221
+ .browse([t.id])
222
+ .write({ rating: score, ratingComment: comment, ratingToken: null });
223
+ await env.flush();
224
+ return t.name;
225
+ }
226
+ export { orm };
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: cdc9a3771c938a7f
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 54ccb51df47a730e
2
2
  // Bindings of module `hr`: 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: cdc9a3771c938a7f
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 54ccb51df47a730e
2
2
  // Schema view of module `hr` (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
 
@@ -12,8 +12,10 @@ export interface SchemaView {
12
12
  readonly 'auth.user_grant': AuthUserGrant;
13
13
  readonly 'auth.user_group': AuthUserGroup;
14
14
  readonly 'hr.contract': HrContract;
15
+ readonly 'hr.contract.type': HrContractType;
15
16
  readonly 'hr.department': HrDepartment;
16
17
  readonly 'hr.employee': HrEmployee;
18
+ readonly 'hr.employee.tag': HrEmployeeTag;
17
19
  readonly 'hr.job': HrJob;
18
20
  readonly 'hr.leave': HrLeave;
19
21
  readonly 'hr.leave.type': HrLeaveType;
@@ -221,6 +223,7 @@ export interface HrContract {
221
223
  readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
222
224
  readonly name: F.Char<{ readonly required: true }>;
223
225
  readonly employee: F.Many2one<'hr.employee', { readonly required: true }>;
226
+ readonly employmentType: F.Many2one<'hr.contract.type'>;
224
227
  readonly kind: F.Selection<'permanent' | 'fixed' | 'probation' | 'intern', { readonly required: true; readonly default: true }>;
225
228
  readonly dateStart: F.DateOnly<{ readonly required: true }>;
226
229
  readonly dateEnd: F.DateOnly;
@@ -237,6 +240,29 @@ export interface HrContractMethods extends F.Methods<typeof import('../module.js
237
240
  readonly 'start': () => Promise<void>;
238
241
  }
239
242
 
243
+ /** `hr.contract.type` (owner: hr). */
244
+ export interface HrContractType {
245
+ readonly name: 'hr.contract.type';
246
+ readonly fields: {
247
+ readonly id: F.Id<'hr.contract.type'>;
248
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
249
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
250
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
251
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
252
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
253
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
254
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
255
+ readonly code: F.Char;
256
+ readonly country: F.Char;
257
+ readonly sequence: F.Integer<{ readonly default: true }>;
258
+ };
259
+ readonly methods: HrContractTypeMethods;
260
+ }
261
+
262
+ /** Methods of `hr.contract.type`: declared ones and transitions. */
263
+ export interface HrContractTypeMethods extends F.Methods<typeof import('../module.js').hrShutro, 'hr.contract.type'> {
264
+ }
265
+
240
266
  /** `hr.department` (owner: hr). */
241
267
  export interface HrDepartment {
242
268
  readonly name: 'hr.department';
@@ -252,6 +278,7 @@ export interface HrDepartment {
252
278
  readonly name: F.Char<{ readonly required: true }>;
253
279
  readonly parent: F.Many2one<'hr.department'>;
254
280
  readonly head: F.Many2one<'hr.employee'>;
281
+ readonly approvalUsers: F.Many2many<'res.users', { readonly required: true }>;
255
282
  };
256
283
  readonly methods: HrDepartmentMethods;
257
284
  }
@@ -273,13 +300,22 @@ export interface HrEmployee {
273
300
  readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
274
301
  readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
275
302
  readonly name: F.Char<{ readonly required: true }>;
303
+ readonly jobTitle: F.Char;
276
304
  readonly user: F.Many2one<'res.users'>;
277
305
  readonly department: F.Many2one<'hr.department'>;
278
306
  readonly job: F.Many2one<'hr.job'>;
279
307
  readonly manager: F.Many2one<'hr.employee'>;
280
308
  readonly team: F.One2many<'hr.employee', { readonly required: true }>;
309
+ readonly unitHead: F.Many2one<'hr.employee'>;
310
+ readonly coach: F.Many2one<'hr.employee'>;
311
+ readonly property: F.Char;
312
+ readonly tags: F.Many2many<'hr.employee.tag', { readonly required: true }>;
281
313
  readonly workEmail: F.Char;
282
314
  readonly workPhone: F.Char;
315
+ readonly mobile: F.Char;
316
+ readonly expenseApprover: F.Many2one<'res.users'>;
317
+ readonly leaveApprover: F.Many2one<'res.users'>;
318
+ readonly timezone: F.Char<{ readonly default: true }>;
283
319
  readonly hireDate: F.DateOnly;
284
320
  readonly birthday: F.DateOnly;
285
321
  readonly nationalId: F.Char;
@@ -293,6 +329,27 @@ export interface HrEmployee {
293
329
  export interface HrEmployeeMethods extends F.Methods<typeof import('../module.js').hrShutro, 'hr.employee'> {
294
330
  }
295
331
 
332
+ /** `hr.employee.tag` (owner: hr). */
333
+ export interface HrEmployeeTag {
334
+ readonly name: 'hr.employee.tag';
335
+ readonly fields: {
336
+ readonly id: F.Id<'hr.employee.tag'>;
337
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
338
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
339
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
340
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
341
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
342
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
343
+ readonly name: F.Char<{ readonly required: true; readonly translate: true }>;
344
+ readonly color: F.Integer<{ readonly default: true }>;
345
+ };
346
+ readonly methods: HrEmployeeTagMethods;
347
+ }
348
+
349
+ /** Methods of `hr.employee.tag`: declared ones and transitions. */
350
+ export interface HrEmployeeTagMethods extends F.Methods<typeof import('../module.js').hrShutro, 'hr.employee.tag'> {
351
+ }
352
+
296
353
  /** `hr.job` (owner: hr). */
297
354
  export interface HrJob {
298
355
  readonly name: 'hr.job';
@@ -782,6 +839,7 @@ export interface ResPartner {
782
839
  readonly parent: F.Many2one<'res.partner'>;
783
840
  readonly contacts: F.One2many<'res.partner', { readonly required: true }>;
784
841
  readonly email: F.Char;
842
+ readonly lang: F.Selection<'en' | 'bn'>;
785
843
  readonly phone: F.Char;
786
844
  readonly mobile: F.Char;
787
845
  readonly website: F.Char;
package/dist/hr/demo.js CHANGED
@@ -43,7 +43,17 @@ export async function hrDemo(ctx) {
43
43
  await ctx.as(RAHIM, async (raw) => {
44
44
  const env = raw;
45
45
  const casual = await idByName(env, 'hr.leave.type', 'Casual leave');
46
- const day = await workday(ctx, env, 30);
46
+ // A working day about a month ahead on which Rahim has no leave yet.
47
+ let day = await workday(ctx, env, 30);
48
+ for (let from = 31;; from += 1) {
49
+ const taken = await env.model('hr.leave').search({
50
+ where: { employee: rahim, dateFrom: { lte: day }, dateTo: { gte: day } },
51
+ limit: 1,
52
+ });
53
+ if (taken.ids.length === 0)
54
+ break;
55
+ day = await workday(ctx, env, from);
56
+ }
47
57
  const made = await env.model('hr.leave').create([
48
58
  {
49
59
  employee: rahim,
@@ -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,126 @@
1
+ /** Bangla for the module's labels, keyed by their English text (RFC 0023 §3.1; `pnpm i18n:extract`). */
2
+ export const bn = {
3
+ 'A contract ends after it starts.': 'চুক্তি শুরুর পরে শেষ হয়।',
4
+ 'A contract runs once started, until it is ended or cancelled.': 'শুরু করার পর চুক্তিটি চলমান থাকে, যতক্ষণ না তা শেষ বা বাতিল করা হয়।',
5
+ 'A leave ends on or after it starts.': 'ছুটি শুরুর দিন বা তার পরে শেষ হয়।',
6
+ 'A request waits once submitted, and someone other than the requester approves or refuses it.': 'জমা দেওয়ার পর অনুরোধটি অপেক্ষায় থাকে, এবং অনুরোধকারী ছাড়া অন্য কেউ তা অনুমোদন বা নামঞ্জুর করেন।',
7
+ 'A short code used in reports and payroll files.': 'রিপোর্ট ও বেতনের ফাইলে ব্যবহৃত সংক্ষিপ্ত কোড।',
8
+ Active: 'সক্রিয়',
9
+ 'An IANA time zone (Asia/Dhaka, Asia/Kolkata): the person’s working hours and reminders follow it.': 'একটি IANA সময় অঞ্চল (Asia/Dhaka, Asia/Kolkata): ব্যক্তির কর্মঘণ্টা ও রিমাইন্ডার এটি অনুসরণ করে।',
10
+ Approve: 'অনুমোদন করুন',
11
+ Approved: 'অনুমোদিত',
12
+ Approvers: 'অনুমোদনকারী',
13
+ 'Approves this person’s expense reports first (else the Spend approvers).': 'এই ব্যক্তির খরচের প্রতিবেদন প্রথমে অনুমোদন করেন (না থাকলে খরচ অনুমোদনকারীরা)।',
14
+ 'As printed on cards and letters; the position may differ.': 'কার্ড ও চিঠিতে যেভাবে ছাপা হয়; পদ আলাদা হতে পারে।',
15
+ 'Back to draft': 'খসড়ায় ফেরত নিন',
16
+ Birthday: 'জন্মদিন',
17
+ 'By department': 'বিভাগ অনুযায়ী',
18
+ Cancel: 'বাতিল করুন',
19
+ 'Cancel this contract?': 'এই চুক্তি বাতিল করবেন?',
20
+ Cancelled: 'বাতিল',
21
+ Coach: 'কোচ',
22
+ Code: 'কোড',
23
+ Colour: 'রং',
24
+ Company: 'প্রতিষ্ঠান',
25
+ Configuration: 'কনফিগারেশন',
26
+ Contract: 'চুক্তি',
27
+ Contracts: 'চুক্তিসমূহ',
28
+ Country: 'দেশ',
29
+ 'Created At': 'তৈরির সময়',
30
+ 'Created By': 'তৈরি করেছেন',
31
+ 'Days per year': 'বছরে দিন',
32
+ 'Decides this person’s leave beside HR managers.': 'এইচআর ব্যবস্থাপকদের পাশাপাশি এই ব্যক্তির ছুটির সিদ্ধান্ত নেন।',
33
+ Department: 'বিভাগ',
34
+ Departments: 'বিভাগসমূহ',
35
+ 'Display Name': 'প্রদর্শিত নাম',
36
+ Draft: 'খসড়া',
37
+ 'Emergency contact': 'জরুরি যোগাযোগ',
38
+ Employee: 'কর্মী',
39
+ 'Employee (directory, own leave, team’s leave)': 'কর্মী (তালিকা, নিজের ছুটি, দলের ছুটি)',
40
+ 'Employee tag': 'কর্মী ট্যাগ',
41
+ 'Employee tags': 'কর্মী ট্যাগসমূহ',
42
+ Employees: 'কর্মীবৃন্দ',
43
+ 'Employees, the org chart, contracts and leave': 'কর্মী, সাংগঠনিক কাঠামো, চুক্তি ও ছুটি',
44
+ 'Employment type': 'চাকরির ধরন',
45
+ 'Employment types': 'চাকরির ধরনসমূহ',
46
+ End: 'শেষ',
47
+ Ended: 'শেষ হয়েছে',
48
+ Ends: 'শেষ',
49
+ 'Expense approver': 'খরচ অনুমোদনকারী',
50
+ 'Fixed term': 'নির্দিষ্ট মেয়াদি',
51
+ From: 'থেকে',
52
+ Head: 'প্রধান',
53
+ 'Home address': 'বাসার ঠিকানা',
54
+ 'HR manager': 'মানবসম্পদ ব্যবস্থাপক',
55
+ 'HR manager (everything, personal data)': 'মানবসম্পদ ব্যবস্থাপক (সবকিছু, ব্যক্তিগত তথ্য)',
56
+ ID: 'আইডি',
57
+ Internship: 'ইন্টার্নশিপ',
58
+ 'Job title': 'পদবি',
59
+ Joined: 'যোগদান',
60
+ 'Joined by month': 'মাস অনুযায়ী যোগদান',
61
+ Leave: 'ছুটি',
62
+ 'Leave already requested keeps its days; new requests count by this week.': 'আগে চাওয়া ছুটির দিন যেমন আছে থাকবে; নতুন আবেদন এই সপ্তাহ অনুযায়ী গণনা হবে।',
63
+ 'Leave approver': 'ছুটি অনুমোদনকারী',
64
+ 'Leave days by person': 'ব্যক্তি অনুযায়ী ছুটির দিন',
65
+ 'Leave days taken': 'নেওয়া ছুটির দিন',
66
+ 'Leave days this month': 'এ মাসের ছুটির দিন',
67
+ 'Leave type': 'ছুটির ধরন',
68
+ 'Leave types': 'ছুটির ধরনসমূহ',
69
+ 'Leave waiting approval': 'অনুমোদনের অপেক্ষায় ছুটি',
70
+ Manager: 'ব্যবস্থাপক',
71
+ Mine: 'আমার',
72
+ 'Monthly wage': 'মাসিক মজুরি',
73
+ 'My team': 'আমার দল',
74
+ Name: 'নাম',
75
+ 'National ID': 'জাতীয় পরিচয়পত্র',
76
+ 'Not enough days left of this leave type this year.': 'এ বছর এই ধরনের ছুটির যথেষ্ট দিন বাকি নেই।',
77
+ Overview: 'সারসংক্ষেপ',
78
+ 'Part of': 'অন্তর্ভুক্ত',
79
+ People: 'জনবল',
80
+ 'People who approve for this department when an approval level asks for the department’s approvers.': 'অনুমোদনের কোনো ধাপ বিভাগের অনুমোদনকারী চাইলে যাঁরা এই বিভাগের পক্ষে অনুমোদন দেন।',
81
+ Permanent: 'স্থায়ী',
82
+ Position: 'পদ',
83
+ Positions: 'পদসমূহ',
84
+ Probation: 'শিক্ষানবিশ',
85
+ Property: 'প্রপার্টি',
86
+ Reason: 'কারণ',
87
+ Reference: 'রেফারেন্স',
88
+ Refuse: 'নামঞ্জুর করুন',
89
+ Refused: 'নামঞ্জুর',
90
+ 'Reports to': 'যাঁর কাছে জবাবদিহি',
91
+ Running: 'চলমান',
92
+ 'Running contracts': 'চলমান চুক্তি',
93
+ Schedule: 'সময়সূচি',
94
+ Sequence: 'ক্রম',
95
+ Start: 'শুরু',
96
+ Starts: 'শুরু',
97
+ State: 'অবস্থা',
98
+ Submit: 'জমা দিন',
99
+ Tags: 'ট্যাগ',
100
+ Team: 'দল',
101
+ 'The country whose labour law the type follows, as its two-letter code (BD, IN); empty: any.': 'যে দেশের শ্রম আইন এই ধরন অনুসরণ করে, দুই অক্ষরের কোডে (BD, IN); খালি: যেকোনো।',
102
+ 'The head of the person’s unit (a plant, a depot, a farm), beside the line manager; approvals may ask them.': 'ব্যক্তির ইউনিটের প্রধান (কারখানা, ডিপো, খামার), লাইন ম্যানেজারের পাশাপাশি; অনুমোদনে তাঁকে চাওয়া হতে পারে।',
103
+ 'The kind of employment the contract is for: permanent, a fixed term, probation or an internship.': 'চুক্তিটি কোন ধরনের চাকরির জন্য: স্থায়ী, নির্দিষ্ট মেয়াদি, শিক্ষানবিশ বা ইন্টার্নশিপ।',
104
+ 'The property or unit the person works for (a mill, a farm, a depot).': 'ব্যক্তি যে প্রপার্টি বা ইউনিটে কাজ করেন (মিল, খামার, ডিপো)।',
105
+ 'The working days do not match the dates (or none falls on a working day).': 'কর্মদিবস তারিখের সাথে মেলে না (অথবা কোনো দিনই কর্মদিবস নয়)।',
106
+ 'This person already has leave on some of these days.': 'এই ব্যক্তির এর মধ্যে কিছু দিনে আগেই ছুটি আছে।',
107
+ 'This user is already another employee.': 'এই ব্যবহারকারী ইতিমধ্যে অন্য একজন কর্মী।',
108
+ 'Time zone': 'সময় অঞ্চল',
109
+ To: 'পর্যন্ত',
110
+ Type: 'ধরন',
111
+ 'Unit head': 'ইউনিট প্রধান',
112
+ 'Updated At': 'হালনাগাদের সময়',
113
+ 'Updated By': 'হালনাগাদ করেছেন',
114
+ User: 'ব্যবহারকারী',
115
+ Waiting: 'অপেক্ষমাণ',
116
+ Weekend: 'সাপ্তাহিক ছুটি',
117
+ 'Which days are the weekend: leave counts working days only.': 'কোন দিনগুলো সাপ্তাহিক ছুটি: ছুটিতে শুধু কর্মদিবস গণনা হয়।',
118
+ 'Who approves this person’s expenses and leave first.': 'এই ব্যক্তির খরচ ও ছুটি প্রথমে কে অনুমোদন করেন।',
119
+ 'Work email': 'অফিসের ইমেইল',
120
+ 'Work mobile': 'অফিসের মোবাইল',
121
+ 'Work phone': 'অফিসের ফোন',
122
+ Workforce: 'ওয়ার্কফোর্স',
123
+ 'Working days': 'কর্মদিবস',
124
+ 'Working week': 'কর্মসপ্তাহ',
125
+ 'Your own leave is decided by someone else; others’ by an HR manager or their leave approver.': 'আপনার নিজের ছুটির সিদ্ধান্ত অন্য কেউ নেন; অন্যদেরটা এইচআর ব্যবস্থাপক বা তাঁদের ছুটি অনুমোদনকারী।',
126
+ };
@@ -1,3 +1,3 @@
1
1
  import { defineModule } from '../modules-sdk/index.js';
2
- export { HrContract, HrDepartment, HrEmployee, HrJob, HrLeave, HrLeaveType, hrShutro, WEEKENDS, workingDays, } from './module.js';
2
+ export { HrContract, HrContractType, HrDepartment, HrEmployee, HrEmployeeTag, HrJob, HrLeave, HrLeaveType, hrShutro, WEEKENDS, weekendOf, workingDays, } from './module.js';
3
3
  export declare const hr: ReturnType<typeof defineModule>;