flexbiz-server 12.7.1 → 12.7.5

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 (890) hide show
  1. package/package.json +6 -6
  2. package/server/app.js +23 -348
  3. package/server/auths/local.js +41 -40
  4. package/server/auths/rateLimiterMiddleware.js +11 -0
  5. package/server/cluster.js +1 -5
  6. package/server/global.js +12 -17
  7. package/server/libs/mongooseSecurityPlugin.js +9 -7
  8. package/server/libs/utils.js +3 -1
  9. package/server/models/account.js +7 -0
  10. package/server/models/actionLog.js +2 -0
  11. package/server/models/afflink.js +2 -0
  12. package/server/models/aimemory.js +1 -0
  13. package/server/models/app.js +16 -0
  14. package/server/models/approve.js +95 -0
  15. package/server/models/assabcihandler.js +35 -0
  16. package/server/models/assbank.js +19 -0
  17. package/server/models/assbooking.js +4 -0
  18. package/server/models/assbuy.js +3 -0
  19. package/server/models/asscashwithdraw.js +4 -0
  20. package/server/models/assfindhash.js +2 -0
  21. package/server/models/assinvestment.js +13 -0
  22. package/server/models/assissue.js +2 -0
  23. package/server/models/asskey.js +15 -0
  24. package/server/models/assneedtobuy.js +6 -0
  25. package/server/models/assperiod.js +7 -0
  26. package/server/models/assproduct.js +13 -0
  27. package/server/models/assprofitsharing.js +4 -0
  28. package/server/models/assreceiver.js +2 -0
  29. package/server/models/assrequest.js +10 -0
  30. package/server/models/asssell.js +7 -0
  31. package/server/models/asstransaction.js +3 -0
  32. package/server/models/asstransfer.js +4 -0
  33. package/server/models/assuser_identity.js +4 -0
  34. package/server/models/asswithdraw.js +4 -0
  35. package/server/models/attend.js +2 -0
  36. package/server/models/banggiaban.js +8 -0
  37. package/server/models/bangtinhluong.js +5 -0
  38. package/server/models/base.js +1 -0
  39. package/server/models/bg1.js +9 -0
  40. package/server/models/bg2.js +10 -0
  41. package/server/models/cache.js +3 -0
  42. package/server/models/cacheDataReport.js +2 -0
  43. package/server/models/cacheSessionReport.js +5 -0
  44. package/server/models/calllog.js +4 -0
  45. package/server/models/cart.js +5 -0
  46. package/server/models/cddiem.js +2 -0
  47. package/server/models/cddt.js +3 -0
  48. package/server/models/cdkh.js +5 -0
  49. package/server/models/cdkhtheongay.js +5 -0
  50. package/server/models/cdnphep.js +2 -0
  51. package/server/models/cdtk.js +3 -0
  52. package/server/models/cdtktheongay.js +3 -0
  53. package/server/models/cdvt.js +5 -0
  54. package/server/models/cdvtnpp.js +6 -0
  55. package/server/models/cdvttheongay.js +5 -0
  56. package/server/models/chamcong.js +7 -0
  57. package/server/models/chat_message.js +2 -0
  58. package/server/models/chat_session.js +2 -0
  59. package/server/models/checkin.js +4 -0
  60. package/server/models/checkinactivity.js +3 -0
  61. package/server/models/checkinkpi.js +4 -0
  62. package/server/models/checkinlocation.js +2 -0
  63. package/server/models/chitietluongds.js +12 -0
  64. package/server/models/chitieukpi.js +3 -0
  65. package/server/models/chudethaoluan.js +3 -0
  66. package/server/models/ckgtluong.js +2 -0
  67. package/server/models/colleague.js +2 -0
  68. package/server/models/comment.js +4 -0
  69. package/server/models/congdoansx.js +4 -0
  70. package/server/models/congtacvien.js +4 -0
  71. package/server/models/congthuctinhgiaban.js +8 -0
  72. package/server/models/consultant.js +4 -0
  73. package/server/models/contract.js +6 -0
  74. package/server/models/counter.js +2 -0
  75. package/server/models/csluongtheods.js +3 -0
  76. package/server/models/csphucap.js +2 -0
  77. package/server/models/ctds.js +5 -0
  78. package/server/models/ctds2.js +7 -0
  79. package/server/models/currency.js +3 -0
  80. package/server/models/custom_report.js +1 -0
  81. package/server/models/customer.js +31 -0
  82. package/server/models/customer_care.js +2 -0
  83. package/server/models/data_list_config.js +7 -0
  84. package/server/models/databanle.js +8 -0
  85. package/server/models/datlich.js +4 -0
  86. package/server/models/deal.js +2 -0
  87. package/server/models/dh2.js +20 -0
  88. package/server/models/diagram.js +2 -0
  89. package/server/models/dinhmucsx.js +8 -0
  90. package/server/models/dkhoc.js +6 -0
  91. package/server/models/dknphep.js +2 -0
  92. package/server/models/dmban.js +3 -0
  93. package/server/models/dmbp.js +12 -0
  94. package/server/models/dmca.js +2 -0
  95. package/server/models/dmchietkhau.js +8 -0
  96. package/server/models/dmchietkhauhd.js +19 -0
  97. package/server/models/dmchinhanh.js +2 -0
  98. package/server/models/dmcpmh.js +2 -0
  99. package/server/models/dmdiemthuong.js +3 -0
  100. package/server/models/dmdoi.js +4 -0
  101. package/server/models/dmdoituongdanhgia.js +2 -0
  102. package/server/models/dmdt.js +8 -0
  103. package/server/models/dmdvt.js +3 -0
  104. package/server/models/dmgiaban.js +9 -0
  105. package/server/models/dmgiamua.js +5 -0
  106. package/server/models/dmgiathitruong.js +5 -0
  107. package/server/models/dmgiathitruong_ngay.js +2 -0
  108. package/server/models/dmgiathitruong_theodoi.js +2 -0
  109. package/server/models/dmhoahonghd.js +8 -0
  110. package/server/models/dmhoahongnpp.js +8 -0
  111. package/server/models/dmkc.js +3 -0
  112. package/server/models/dmkho.js +7 -0
  113. package/server/models/dmkhuyenmai.js +9 -0
  114. package/server/models/dmkhuyenmaihd.js +11 -0
  115. package/server/models/dmletet.js +2 -0
  116. package/server/models/dmlo.js +4 -0
  117. package/server/models/dmloaicong.js +4 -0
  118. package/server/models/dmloaitask.js +2 -0
  119. package/server/models/dmloaits.js +2 -0
  120. package/server/models/dmnckkm.js +4 -0
  121. package/server/models/dmnghiepvu.js +4 -0
  122. package/server/models/dmnguonvon.js +2 -0
  123. package/server/models/dmnhnv.js +4 -0
  124. package/server/models/dmnv.js +17 -0
  125. package/server/models/dmnvt.js +10 -0
  126. package/server/models/dmphi.js +3 -0
  127. package/server/models/dmqct.js +3 -0
  128. package/server/models/dmqddvt.js +3 -0
  129. package/server/models/dmtanggiamts.js +3 -0
  130. package/server/models/dmto.js +4 -0
  131. package/server/models/dmtt.js +6 -0
  132. package/server/models/dmvt.js +17 -0
  133. package/server/models/dmyt.js +4 -0
  134. package/server/models/dn0.js +13 -0
  135. package/server/models/dnm.js +11 -0
  136. package/server/models/dokho.js +2 -0
  137. package/server/models/domain.js +2 -0
  138. package/server/models/dvcs.js +3 -0
  139. package/server/models/ecomcategories.js +3 -0
  140. package/server/models/ecomcategories_cty.js +3 -0
  141. package/server/models/ecomproductlines.js +2 -0
  142. package/server/models/ecompromotion_flashsales.js +2 -0
  143. package/server/models/ecompromotion_freeships.js +2 -0
  144. package/server/models/email.js +2 -0
  145. package/server/models/endpoint.js +1 -0
  146. package/server/models/events.js +3 -0
  147. package/server/models/evoucher.js +5 -0
  148. package/server/models/experiencejourney.js +2 -0
  149. package/server/models/experiencejourneydata.js +4 -0
  150. package/server/models/experiencejourneypersona.js +3 -0
  151. package/server/models/experiencejourneystage.js +2 -0
  152. package/server/models/exportexceltemplate.js +2 -0
  153. package/server/models/fbconversation.js +15 -0
  154. package/server/models/fbmessage.js +2 -0
  155. package/server/models/fbpage.js +2 -0
  156. package/server/models/fbpost.js +2 -0
  157. package/server/models/fieldright.js +2 -0
  158. package/server/models/fifo_dk.js +2 -0
  159. package/server/models/fifo_lot.js +3 -0
  160. package/server/models/fifo_trace.js +4 -0
  161. package/server/models/file.js +4 -0
  162. package/server/models/filechunk.js +2 -0
  163. package/server/models/financialroadmap.js +3 -0
  164. package/server/models/flow.js +2 -0
  165. package/server/models/flowdata.js +3 -0
  166. package/server/models/flowpending.js +2 -0
  167. package/server/models/folder.js +4 -0
  168. package/server/models/follow.js +2 -0
  169. package/server/models/forminfo.js +5 -0
  170. package/server/models/giaoca.js +3 -0
  171. package/server/models/giatb.js +3 -0
  172. package/server/models/group.js +9 -0
  173. package/server/models/gt_ctgt.js +4 -0
  174. package/server/models/gt_hspb.js +3 -0
  175. package/server/models/gt_sltk.js +3 -0
  176. package/server/models/gt_thcppstk.js +3 -0
  177. package/server/models/hanmucton.js +4 -0
  178. package/server/models/hd1.js +11 -0
  179. package/server/models/hd2.js +26 -0
  180. package/server/models/hd3.js +17 -0
  181. package/server/models/hd4.js +13 -0
  182. package/server/models/hd7.js +17 -0
  183. package/server/models/hd8.js +12 -0
  184. package/server/models/hde.js +11 -0
  185. package/server/models/hmcn.js +3 -0
  186. package/server/models/hmcnct.js +2 -0
  187. package/server/models/hspbts.js +4 -0
  188. package/server/models/htl.js +13 -0
  189. package/server/models/importexceltemplate.js +2 -0
  190. package/server/models/introducebonus.js +4 -0
  191. package/server/models/introducecode.js +3 -0
  192. package/server/models/introducer.js +4 -0
  193. package/server/models/kbbtpb.js +7 -0
  194. package/server/models/kbmPttct.js +4 -0
  195. package/server/models/kbmTkgtgt.js +5 -0
  196. package/server/models/kbm_bcdkt_old.js +4 -0
  197. package/server/models/kbm_kqhdkd_old.js +3 -0
  198. package/server/models/kbm_lcttgt_old.js +5 -0
  199. package/server/models/kbm_lctttt_old.js +4 -0
  200. package/server/models/kbm_pttct_old.js +4 -0
  201. package/server/models/kbm_tkgtgt_old.js +5 -0
  202. package/server/models/kbmbcdkt.js +4 -0
  203. package/server/models/kbmbcqt.js +4 -0
  204. package/server/models/kbmkqhdkd.js +3 -0
  205. package/server/models/kbmlcttgt.js +6 -0
  206. package/server/models/kbmlctttt.js +4 -0
  207. package/server/models/kbmtmbctc.js +4 -0
  208. package/server/models/kehoachdtcp.js +3 -0
  209. package/server/models/kehoachmh.js +8 -0
  210. package/server/models/keyresult.js +7 -0
  211. package/server/models/khunghangthanhvien.js +3 -0
  212. package/server/models/label.js +2 -0
  213. package/server/models/labelinfo.js +2 -0
  214. package/server/models/lenhcapphat.js +8 -0
  215. package/server/models/lenhsx.js +8 -0
  216. package/server/models/lienhe.js +4 -0
  217. package/server/models/like_module.js +2 -0
  218. package/server/models/link.js +2 -0
  219. package/server/models/listinfo.js +1365 -0
  220. package/server/models/loaidiem.js +2 -0
  221. package/server/models/lock.js +2 -0
  222. package/server/models/log.js +8 -0
  223. package/server/models/mailaccount.js +3 -0
  224. package/server/models/mailgroup.js +3 -0
  225. package/server/models/mailreceived.js +2 -0
  226. package/server/models/mailsent.js +2 -0
  227. package/server/models/mailtemplate.js +2 -0
  228. package/server/models/maudanhgia.js +2 -0
  229. package/server/models/menuinfo.js +2 -0
  230. package/server/models/message.js +8 -0
  231. package/server/models/message2.js +4 -0
  232. package/server/models/message2setting.js +3 -0
  233. package/server/models/moduleinfo.js +4 -0
  234. package/server/models/momo.js +18 -0
  235. package/server/models/news.js +3 -0
  236. package/server/models/newsfeed.js +4 -0
  237. package/server/models/note.js +2 -0
  238. package/server/models/notification.js +8 -0
  239. package/server/models/okr.js +4 -0
  240. package/server/models/okrdiagram.js +3 -0
  241. package/server/models/onepay.js +24 -0
  242. package/server/models/opportunity.js +4 -0
  243. package/server/models/options.js +2 -0
  244. package/server/models/originimportid.js +1 -0
  245. package/server/models/otp.js +1 -0
  246. package/server/models/parameter.js +2 -0
  247. package/server/models/participant.js +21 -0
  248. package/server/models/partner.js +1 -0
  249. package/server/models/payload.js +1 -0
  250. package/server/models/pbl.js +16 -0
  251. package/server/models/pc0.js +13 -0
  252. package/server/models/pc1.js +14 -0
  253. package/server/models/pc2.js +13 -0
  254. package/server/models/pc3.js +13 -0
  255. package/server/models/pc5.js +8 -0
  256. package/server/models/pc6.js +14 -0
  257. package/server/models/pcl.js +6 -0
  258. package/server/models/pdn.js +9 -0
  259. package/server/models/pdx.js +9 -0
  260. package/server/models/pgh.js +5 -0
  261. package/server/models/phieudanhgia.js +3 -0
  262. package/server/models/pht.js +8 -0
  263. package/server/models/phucap.js +4 -0
  264. package/server/models/pkc.js +6 -0
  265. package/server/models/pkh.js +6 -0
  266. package/server/models/pkk.js +10 -0
  267. package/server/models/pkt.js +12 -0
  268. package/server/models/pn1.js +18 -0
  269. package/server/models/pn2.js +12 -0
  270. package/server/models/pn3.js +13 -0
  271. package/server/models/pn5.js +14 -0
  272. package/server/models/pn6.js +14 -0
  273. package/server/models/pn9.js +17 -0
  274. package/server/models/pnc.js +9 -0
  275. package/server/models/pnh.js +11 -0
  276. package/server/models/pnk.js +10 -0
  277. package/server/models/po1.js +19 -0
  278. package/server/models/ppb.js +6 -0
  279. package/server/models/productcode.js +2 -0
  280. package/server/models/profile.js +4 -0
  281. package/server/models/pt1.js +12 -0
  282. package/server/models/pt5.js +8 -0
  283. package/server/models/ptl.js +5 -0
  284. package/server/models/ptthanhtoan.js +6 -0
  285. package/server/models/purchase_contract.js +17 -0
  286. package/server/models/pxc.js +9 -0
  287. package/server/models/pxh.js +11 -0
  288. package/server/models/pxk.js +9 -0
  289. package/server/models/qts.js +14 -0
  290. package/server/models/qts_dieuchinh.js +3 -0
  291. package/server/models/qts_dieuchuyen.js +4 -0
  292. package/server/models/quanhuyen.js +2 -0
  293. package/server/models/reason.js +2 -0
  294. package/server/models/receivedinvoice.js +2 -0
  295. package/server/models/reportinfo.js +5 -0
  296. package/server/models/right.js +4 -0
  297. package/server/models/rpt.js +2 -0
  298. package/server/models/rptform.js +3 -0
  299. package/server/models/rptobject.js +2 -0
  300. package/server/models/sale_contract.js +9 -0
  301. package/server/models/schedule.js +18 -0
  302. package/server/models/schedule_log.js +2 -0
  303. package/server/models/shipbook.js +12 -0
  304. package/server/models/shortcut.js +2 -0
  305. package/server/models/smsaccount.js +10 -0
  306. package/server/models/smssend.js +2 -0
  307. package/server/models/so1.js +22 -0
  308. package/server/models/so5.js +15 -0
  309. package/server/models/so9.js +19 -0
  310. package/server/models/socai.js +28 -0
  311. package/server/models/socainpp.js +18 -0
  312. package/server/models/socaitc.js +6 -0
  313. package/server/models/socaitmp.js +16 -0
  314. package/server/models/socaitt.js +4 -0
  315. package/server/models/sodiemthuong.js +4 -0
  316. package/server/models/sokho.js +27 -0
  317. package/server/models/sokhocapphat.js +18 -0
  318. package/server/models/sokhokhongton.js +19 -0
  319. package/server/models/sokhonpp.js +19 -0
  320. package/server/models/sokhotc.js +8 -0
  321. package/server/models/sokhott.js +18 -0
  322. package/server/models/sophanbokh.js +3 -0
  323. package/server/models/sosanxuat.js +5 -0
  324. package/server/models/sotinhkh.js +2 -0
  325. package/server/models/spdd_ck.js +3 -0
  326. package/server/models/spdd_dk.js +3 -0
  327. package/server/models/step.js +2 -0
  328. package/server/models/strategicdiagram.js +3 -0
  329. package/server/models/strategicgoal.js +4 -0
  330. package/server/models/strategickpi.js +6 -0
  331. package/server/models/strategicobjective.js +5 -0
  332. package/server/models/strategicplan.js +5 -0
  333. package/server/models/subscribe.js +2 -0
  334. package/server/models/support.js +2 -0
  335. package/server/models/synctime.js +2 -0
  336. package/server/models/sys_job_queue_book_keeping.js +2 -0
  337. package/server/models/sysconfig.js +2 -0
  338. package/server/models/sysgroup.js +2 -0
  339. package/server/models/tableinfo.js +3 -0
  340. package/server/models/task.js +9 -0
  341. package/server/models/tc.js +2 -0
  342. package/server/models/tdttco.js +9 -0
  343. package/server/models/tdttco_tt.js +5 -0
  344. package/server/models/tdttno.js +9 -0
  345. package/server/models/tdttno_tt.js +5 -0
  346. package/server/models/templaterpt.js +2 -0
  347. package/server/models/templatestore.js +3 -0
  348. package/server/models/templatevoucher.js +3 -0
  349. package/server/models/tinhthanh.js +2 -0
  350. package/server/models/tokens.js +3 -0
  351. package/server/models/tontucthoi.js +9 -0
  352. package/server/models/trangthai.js +4 -0
  353. package/server/models/trangthaiapp.js +4 -0
  354. package/server/models/transaction.js +16 -0
  355. package/server/models/trialinfo.js +2 -0
  356. package/server/models/user.js +40 -0
  357. package/server/models/usergroup.js +7 -0
  358. package/server/models/vanchuyen.js +12 -0
  359. package/server/models/vat.js +3 -0
  360. package/server/models/vatra.js +6 -0
  361. package/server/models/vatvao.js +6 -0
  362. package/server/models/versioninfo.js +2 -0
  363. package/server/models/vietqrbanks.js +2 -0
  364. package/server/models/vsocai.js +6 -0
  365. package/server/models/wallet.js +8 -0
  366. package/server/models/warranty.js +3 -0
  367. package/server/models/warrantyclaim.js +2 -0
  368. package/server/models/warrantypolicy.js +1 -0
  369. package/server/models/workflow.js +4 -0
  370. package/server/models/xaphuong.js +2 -0
  371. package/server/models/xhd.js +10 -0
  372. package/server/models/ytdd_ck.js +4 -0
  373. package/server/models/ytdd_dk.js +4 -0
  374. package/server/models/zalo.js +17 -0
  375. package/server/modules/lists/bg-cddiem.js +6 -0
  376. package/server/modules/lists/bg-cddt.js +7 -0
  377. package/server/modules/lists/bg-cdkh.js +11 -0
  378. package/server/modules/lists/bg-cdnphep.js +6 -0
  379. package/server/modules/lists/bg-cdtk.js +9 -0
  380. package/server/modules/lists/bg-cdvt.js +8 -0
  381. package/server/modules/lists/bg-cdvtnpp.js +8 -0
  382. package/server/modules/lists/bg-fifo_dk.js +8 -0
  383. package/server/modules/lists/ls-account.js +4 -0
  384. package/server/modules/lists/ls-afflink.js +3 -0
  385. package/server/modules/lists/ls-approve.js +5 -0
  386. package/server/modules/lists/ls-assabcihandler.js +3 -0
  387. package/server/modules/lists/ls-assbank.js +3 -0
  388. package/server/modules/lists/ls-assbooking.js +20 -0
  389. package/server/modules/lists/ls-assbuy.js +8 -0
  390. package/server/modules/lists/ls-asscashwithdraw.js +8 -0
  391. package/server/modules/lists/ls-assinvestment.js +31 -0
  392. package/server/modules/lists/ls-assissue.js +3 -0
  393. package/server/modules/lists/ls-asskey.js +41 -0
  394. package/server/modules/lists/ls-assneedtobuy.js +10 -0
  395. package/server/modules/lists/ls-assperiod.js +19 -0
  396. package/server/modules/lists/ls-assproduct.js +9 -0
  397. package/server/modules/lists/ls-assprofitsharing.js +8 -0
  398. package/server/modules/lists/ls-assreceiver.js +3 -0
  399. package/server/modules/lists/ls-assrequest.js +4 -0
  400. package/server/modules/lists/ls-asssell.js +13 -0
  401. package/server/modules/lists/ls-asstransaction.js +3 -0
  402. package/server/modules/lists/ls-asstransfer.js +3 -0
  403. package/server/modules/lists/ls-assuser_identity.js +1 -0
  404. package/server/modules/lists/ls-asswithdraw.js +12 -0
  405. package/server/modules/lists/ls-bangtinhluong.js +2 -0
  406. package/server/modules/lists/ls-calllog.js +4 -0
  407. package/server/modules/lists/ls-cart.js +14 -0
  408. package/server/modules/lists/ls-chamcong.js +3 -0
  409. package/server/modules/lists/ls-chat_session.js +5 -0
  410. package/server/modules/lists/ls-checkin.js +24 -0
  411. package/server/modules/lists/ls-checkinactivity.js +8 -0
  412. package/server/modules/lists/ls-checkinkpi.js +3 -0
  413. package/server/modules/lists/ls-checkinlocation.js +1 -0
  414. package/server/modules/lists/ls-chitietluongds.js +4 -0
  415. package/server/modules/lists/ls-chitieukpi.js +1 -0
  416. package/server/modules/lists/ls-chudethaoluan.js +1 -0
  417. package/server/modules/lists/ls-ckgtluong.js +1 -0
  418. package/server/modules/lists/ls-comment.js +9 -0
  419. package/server/modules/lists/ls-congdoansx.js +3 -0
  420. package/server/modules/lists/ls-congtacvien.js +5 -0
  421. package/server/modules/lists/ls-consultant.js +2 -0
  422. package/server/modules/lists/ls-contract.js +7 -0
  423. package/server/modules/lists/ls-csluongtheods.js +1 -0
  424. package/server/modules/lists/ls-csphucap.js +1 -0
  425. package/server/modules/lists/ls-ctds.js +4 -0
  426. package/server/modules/lists/ls-ctds2.js +4 -0
  427. package/server/modules/lists/ls-currency.js +1 -0
  428. package/server/modules/lists/ls-customer.js +22 -0
  429. package/server/modules/lists/ls-customer_care.js +1 -0
  430. package/server/modules/lists/ls-datlich.js +9 -0
  431. package/server/modules/lists/ls-dckhauhaots.js +3 -0
  432. package/server/modules/lists/ls-deal.js +3 -0
  433. package/server/modules/lists/ls-diagram.js +1 -0
  434. package/server/modules/lists/ls-dkhoc.js +6 -0
  435. package/server/modules/lists/ls-dknphep.js +1 -0
  436. package/server/modules/lists/ls-dmban.js +4 -0
  437. package/server/modules/lists/ls-dmbp.js +7 -0
  438. package/server/modules/lists/ls-dmca.js +1 -0
  439. package/server/modules/lists/ls-dmchietkhau.js +19 -0
  440. package/server/modules/lists/ls-dmchietkhauhd.js +4 -0
  441. package/server/modules/lists/ls-dmchinhanh.js +1 -0
  442. package/server/modules/lists/ls-dmchucvu.js +2 -0
  443. package/server/modules/lists/ls-dmcpmh.js +1 -0
  444. package/server/modules/lists/ls-dmdiemthuong.js +4 -0
  445. package/server/modules/lists/ls-dmdoi.js +4 -0
  446. package/server/modules/lists/ls-dmdoituongdanhgia.js +1 -0
  447. package/server/modules/lists/ls-dmdt.js +11 -0
  448. package/server/modules/lists/ls-dmdvt.js +2 -0
  449. package/server/modules/lists/ls-dmgiaban.js +4 -0
  450. package/server/modules/lists/ls-dmgiamua.js +4 -0
  451. package/server/modules/lists/ls-dmgiathitruong.js +15 -0
  452. package/server/modules/lists/ls-dmgiathitruong_ngay.js +2 -0
  453. package/server/modules/lists/ls-dmgiathitruong_theodoi.js +1 -0
  454. package/server/modules/lists/ls-dmhoahonghd.js +1 -0
  455. package/server/modules/lists/ls-dmhoahongnpp.js +1 -0
  456. package/server/modules/lists/ls-dmkc.js +3 -0
  457. package/server/modules/lists/ls-dmkho.js +7 -0
  458. package/server/modules/lists/ls-dmkhuyenmai.js +5 -0
  459. package/server/modules/lists/ls-dmkhuyenmaihd.js +3 -0
  460. package/server/modules/lists/ls-dmletet.js +1 -0
  461. package/server/modules/lists/ls-dmlo.js +1 -0
  462. package/server/modules/lists/ls-dmloaicong.js +1 -0
  463. package/server/modules/lists/ls-dmloaits.js +1 -0
  464. package/server/modules/lists/ls-dmnckkm.js +7 -0
  465. package/server/modules/lists/ls-dmnghiepvu.js +1 -0
  466. package/server/modules/lists/ls-dmnguonvon.js +1 -0
  467. package/server/modules/lists/ls-dmnhnv.js +6 -0
  468. package/server/modules/lists/ls-dmnhtask.js +5 -0
  469. package/server/modules/lists/ls-dmnkh.js +6 -0
  470. package/server/modules/lists/ls-dmntt.js +6 -0
  471. package/server/modules/lists/ls-dmnv.js +14 -0
  472. package/server/modules/lists/ls-dmnvt.js +7 -0
  473. package/server/modules/lists/ls-dmphi.js +6 -0
  474. package/server/modules/lists/ls-dmqct.js +2 -0
  475. package/server/modules/lists/ls-dmqddvt.js +3 -0
  476. package/server/modules/lists/ls-dmtanggiamts.js +1 -0
  477. package/server/modules/lists/ls-dmto.js +5 -0
  478. package/server/modules/lists/ls-dmtt.js +7 -0
  479. package/server/modules/lists/ls-dmvt.js +52 -0
  480. package/server/modules/lists/ls-dmyt.js +1 -0
  481. package/server/modules/lists/ls-dokho.js +1 -0
  482. package/server/modules/lists/ls-dvcs.js +1 -0
  483. package/server/modules/lists/ls-ecomcategories.js +5 -0
  484. package/server/modules/lists/ls-ecomcategories_cty.js +5 -0
  485. package/server/modules/lists/ls-email.js +4 -0
  486. package/server/modules/lists/ls-events.js +3 -0
  487. package/server/modules/lists/ls-evoucher.js +3 -0
  488. package/server/modules/lists/ls-experiencejourney.js +1 -0
  489. package/server/modules/lists/ls-experiencejourneydata.js +3 -0
  490. package/server/modules/lists/ls-experiencejourneypersona.js +4 -0
  491. package/server/modules/lists/ls-experiencejourneystage.js +1 -0
  492. package/server/modules/lists/ls-fbconversation.js +2 -0
  493. package/server/modules/lists/ls-fbmessage.js +2 -0
  494. package/server/modules/lists/ls-fbpage.js +11 -0
  495. package/server/modules/lists/ls-fbpost.js +2 -0
  496. package/server/modules/lists/ls-file.js +38 -0
  497. package/server/modules/lists/ls-financialroadmap.js +3 -0
  498. package/server/modules/lists/ls-flow.js +6 -0
  499. package/server/modules/lists/ls-flowdata.js +1 -0
  500. package/server/modules/lists/ls-flowpending.js +3 -0
  501. package/server/modules/lists/ls-folder.js +1 -0
  502. package/server/modules/lists/ls-forminfo.js +1 -0
  503. package/server/modules/lists/ls-giaoca.js +5 -0
  504. package/server/modules/lists/ls-group.js +5 -0
  505. package/server/modules/lists/ls-hmcn.js +2 -0
  506. package/server/modules/lists/ls-hspbts.js +3 -0
  507. package/server/modules/lists/ls-introducebonus.js +4 -0
  508. package/server/modules/lists/ls-introducecode.js +10 -0
  509. package/server/modules/lists/ls-introducer.js +21 -0
  510. package/server/modules/lists/ls-kbm-bcdkt.js +1 -0
  511. package/server/modules/lists/ls-kbm-bcqt.js +5 -0
  512. package/server/modules/lists/ls-kbm-kqhdkd.js +1 -0
  513. package/server/modules/lists/ls-kbm-lcttgt.js +1 -0
  514. package/server/modules/lists/ls-kbm-lctttt.js +1 -0
  515. package/server/modules/lists/ls-kbm-pttct.js +3 -0
  516. package/server/modules/lists/ls-kbm-tkgtgt.js +3 -0
  517. package/server/modules/lists/ls-kbm-tmbctc.js +3 -0
  518. package/server/modules/lists/ls-kehoachdtcp.js +4 -0
  519. package/server/modules/lists/ls-keyresult.js +7 -0
  520. package/server/modules/lists/ls-khunghangthanhvien.js +1 -0
  521. package/server/modules/lists/ls-label.js +1 -0
  522. package/server/modules/lists/ls-lienhe.js +4 -0
  523. package/server/modules/lists/ls-like-module.js +1 -0
  524. package/server/modules/lists/ls-link.js +1 -0
  525. package/server/modules/lists/ls-loaidiem.js +1 -0
  526. package/server/modules/lists/ls-lock.js +1 -0
  527. package/server/modules/lists/ls-log.js +3 -0
  528. package/server/modules/lists/ls-mailaccount.js +5 -0
  529. package/server/modules/lists/ls-mailreceived.js +5 -0
  530. package/server/modules/lists/ls-mailsent.js +4 -0
  531. package/server/modules/lists/ls-mailtemplate.js +4 -0
  532. package/server/modules/lists/ls-maudanhgia.js +3 -0
  533. package/server/modules/lists/ls-message2.js +8 -0
  534. package/server/modules/lists/ls-message2setting.js +5 -0
  535. package/server/modules/lists/ls-news.js +7 -0
  536. package/server/modules/lists/ls-newsfeed.js +4 -0
  537. package/server/modules/lists/ls-note.js +6 -0
  538. package/server/modules/lists/ls-okr.js +5 -0
  539. package/server/modules/lists/ls-okrdiagram.js +1 -0
  540. package/server/modules/lists/ls-opportunity.js +5 -0
  541. package/server/modules/lists/ls-options.js +4 -0
  542. package/server/modules/lists/ls-parameter.js +3 -0
  543. package/server/modules/lists/ls-participant.js +12 -0
  544. package/server/modules/lists/ls-phieudanhgia.js +7 -0
  545. package/server/modules/lists/ls-phucap.js +2 -0
  546. package/server/modules/lists/ls-productcode.js +9 -0
  547. package/server/modules/lists/ls-profile.js +1 -0
  548. package/server/modules/lists/ls-ptthanhtoan.js +3 -0
  549. package/server/modules/lists/ls-qts-dieuchinh.js +2 -0
  550. package/server/modules/lists/ls-qts-dieuchuyen.js +8 -0
  551. package/server/modules/lists/ls-reason.js +1 -0
  552. package/server/modules/lists/ls-rpt.js +5 -0
  553. package/server/modules/lists/ls-rptform.js +3 -0
  554. package/server/modules/lists/ls-shortcut.js +1 -0
  555. package/server/modules/lists/ls-smsaccount.js +1 -0
  556. package/server/modules/lists/ls-smssend.js +3 -0
  557. package/server/modules/lists/ls-sosanxuat.js +4 -0
  558. package/server/modules/lists/ls-step.js +1 -0
  559. package/server/modules/lists/ls-strategicdiagram.js +1 -0
  560. package/server/modules/lists/ls-strategicgoal.js +3 -0
  561. package/server/modules/lists/ls-strategickpi.js +7 -0
  562. package/server/modules/lists/ls-strategicobjective.js +3 -0
  563. package/server/modules/lists/ls-strategicplan.js +6 -0
  564. package/server/modules/lists/ls-support.js +3 -0
  565. package/server/modules/lists/ls-task.js +28 -0
  566. package/server/modules/lists/ls-tc.js +1 -0
  567. package/server/modules/lists/ls-templaterpt.js +5 -0
  568. package/server/modules/lists/ls-templatevoucher.js +1 -0
  569. package/server/modules/lists/ls-tontucthoi.js +3 -0
  570. package/server/modules/lists/ls-trangthaiapp.js +3 -0
  571. package/server/modules/lists/ls-transaction.js +4 -0
  572. package/server/modules/lists/ls-usergroup.js +7 -0
  573. package/server/modules/lists/ls-vat.js +1 -0
  574. package/server/modules/lists/ls-vatra.js +5 -0
  575. package/server/modules/lists/ls-vatvao.js +6 -0
  576. package/server/modules/lists/ls-warranty.js +3 -0
  577. package/server/modules/lists/ls-workflow.js +1 -0
  578. package/server/modules/lists/ls_hanmucton.js +3 -0
  579. package/server/modules/lists/ls_hspb.js +4 -0
  580. package/server/modules/lists/ls_spdd_ck.js +3 -0
  581. package/server/modules/lists/ls_spdd_dk.js +3 -0
  582. package/server/modules/lists/ls_ytdd_ck.js +4 -0
  583. package/server/modules/lists/ls_ytdd_dk.js +4 -0
  584. package/server/modules/lists/sys-attend.js +4 -0
  585. package/server/modules/lists/sys-follow.js +4 -0
  586. package/server/modules/lists/sys-right.js +2 -0
  587. package/server/modules/public/app.js +4 -0
  588. package/server/modules/public/approve.js +37 -0
  589. package/server/modules/public/callin.js +7 -0
  590. package/server/modules/public/comment.js +5 -0
  591. package/server/modules/public/dmnvt.js +4 -0
  592. package/server/modules/public/dmvt.js +9 -0
  593. package/server/modules/public/file.js +11 -0
  594. package/server/modules/public/forminfo.js +1 -0
  595. package/server/modules/public/group.js +4 -0
  596. package/server/modules/public/introducecode.js +1 -0
  597. package/server/modules/public/listinfo.js +1 -0
  598. package/server/modules/public/media-webhook.js +1 -0
  599. package/server/modules/public/partner.js +1 -0
  600. package/server/modules/public/paymentCallback.js +32 -0
  601. package/server/modules/public/province.js +1 -0
  602. package/server/modules/public/ptthanhtoan.js +4 -0
  603. package/server/modules/public/subscribe.js +30 -0
  604. package/server/modules/public/support.js +3 -0
  605. package/server/modules/public/tableinfo.js +1 -0
  606. package/server/modules/public/trialinfo.js +4 -0
  607. package/server/modules/public/versioninfo.js +1 -0
  608. package/server/modules/reports/calc-tinhgiafifo.js +8 -0
  609. package/server/modules/reports/calc-tinhgiatb.js +7 -0
  610. package/server/modules/reports/calc-tinhgiathanh.js +7 -0
  611. package/server/modules/reports/calc-tinhkhauhaots.js +3 -0
  612. package/server/modules/reports/calc-tinhluong.js +68 -0
  613. package/server/modules/reports/rp-analyzedata.js +6 -0
  614. package/server/modules/reports/rp-assbonus.js +4 -0
  615. package/server/modules/reports/rp-assinterest.js +8 -0
  616. package/server/modules/reports/rp-assproductowners.js +3 -0
  617. package/server/modules/reports/rp-asssupply.js +1 -0
  618. package/server/modules/reports/rp-asstransferlog.js +10 -0
  619. package/server/modules/reports/rp-backup.js +4 -0
  620. package/server/modules/reports/rp-banggiatb.js +3 -0
  621. package/server/modules/reports/rp-bangtinhkhauhao.js +6 -0
  622. package/server/modules/reports/rp-baoCaoFifoKy.js +1 -0
  623. package/server/modules/reports/rp-baocaokhachhang.js +6 -0
  624. package/server/modules/reports/rp-bcdkt.js +11 -0
  625. package/server/modules/reports/rp-bcintroducebonus.js +4 -0
  626. package/server/modules/reports/rp-bckhtiemnang.js +3 -0
  627. package/server/modules/reports/rp-bcqt.js +85 -0
  628. package/server/modules/reports/rp-bkchamcong.js +5 -0
  629. package/server/modules/reports/rp-bkct.js +13 -0
  630. package/server/modules/reports/rp-bkshipbook.js +8 -0
  631. package/server/modules/reports/rp-bkvanchuyen.js +8 -0
  632. package/server/modules/reports/rp-bkvatra.js +7 -0
  633. package/server/modules/reports/rp-bkvatvao.js +7 -0
  634. package/server/modules/reports/rp-capnhatsocaitc.js +4 -0
  635. package/server/modules/reports/rp-cdpsdiem.js +4 -0
  636. package/server/modules/reports/rp-cdpsdt.js +5 -0
  637. package/server/modules/reports/rp-cdpskh.js +8 -0
  638. package/server/modules/reports/rp-cdpsnphep.js +3 -0
  639. package/server/modules/reports/rp-cdpstk.js +4 -0
  640. package/server/modules/reports/rp-chitietchitientheohoadon.js +12 -0
  641. package/server/modules/reports/rp-chitiettaisan.js +13 -0
  642. package/server/modules/reports/rp-chitietthutientheohoadon.js +13 -0
  643. package/server/modules/reports/rp-ckcn.js +3 -0
  644. package/server/modules/reports/rp-ckdiem.js +2 -0
  645. package/server/modules/reports/rp-cktk.js +3 -0
  646. package/server/modules/reports/rp-ckvt.js +10 -0
  647. package/server/modules/reports/rp-ckvttheokho.js +4 -0
  648. package/server/modules/reports/rp-ckvttheotg.js +4 -0
  649. package/server/modules/reports/rp-ckvttt.js +3 -0
  650. package/server/modules/reports/rp-congnophaithutheotuoino.js +3 -0
  651. package/server/modules/reports/rp-congnophaitratheotuoino.js +3 -0
  652. package/server/modules/reports/rp-congnosapthu.js +4 -0
  653. package/server/modules/reports/rp-congnosaptra.js +4 -0
  654. package/server/modules/reports/rp-congviectheobp.js +9 -0
  655. package/server/modules/reports/rp-congviectheodt.js +8 -0
  656. package/server/modules/reports/rp-congviectheokh.js +8 -0
  657. package/server/modules/reports/rp-congviectheonv.js +9 -0
  658. package/server/modules/reports/rp-congviectheotimeline.js +6 -0
  659. package/server/modules/reports/rp-ctbanle.js +15 -0
  660. package/server/modules/reports/rp-ctbanle2.js +20 -0
  661. package/server/modules/reports/rp-ctbanlectv.js +20 -0
  662. package/server/modules/reports/rp-ctbanlenpp.js +24 -0
  663. package/server/modules/reports/rp-ctdanhgianhanvien.js +8 -0
  664. package/server/modules/reports/rp-cthangbanbitralai.js +4 -0
  665. package/server/modules/reports/rp-ctmuahang.js +7 -0
  666. package/server/modules/reports/rp-cttralaihang.js +4 -0
  667. package/server/modules/reports/rp-databanle.js +10 -0
  668. package/server/modules/reports/rp-diemthuong.js +2 -0
  669. package/server/modules/reports/rp-dkcn.js +3 -0
  670. package/server/modules/reports/rp-dktk.js +2 -0
  671. package/server/modules/reports/rp-dsnhanviencm.js +9 -0
  672. package/server/modules/reports/rp-dsnhanvientb.js +9 -0
  673. package/server/modules/reports/rp-dtbanlekempk.js +12 -0
  674. package/server/modules/reports/rp-dtbanletheoct.js +22 -0
  675. package/server/modules/reports/rp-dtbanletheoctkempk.js +25 -0
  676. package/server/modules/reports/rp-dtbanletheokh.js +17 -0
  677. package/server/modules/reports/rp-dtbanletheokhnpp.js +19 -0
  678. package/server/modules/reports/rp-dtbanletheokho.js +15 -0
  679. package/server/modules/reports/rp-dtbanletheonam.js +3 -0
  680. package/server/modules/reports/rp-dtbanletheongay.js +1 -0
  681. package/server/modules/reports/rp-dtbanletheonpp.js +23 -0
  682. package/server/modules/reports/rp-dtbanletheonv.js +19 -0
  683. package/server/modules/reports/rp-dtbanletheoquy.js +3 -0
  684. package/server/modules/reports/rp-dtbanletheosp.js +9 -0
  685. package/server/modules/reports/rp-dtbanletheospnpp.js +6 -0
  686. package/server/modules/reports/rp-dtbanletheothang.js +3 -0
  687. package/server/modules/reports/rp-dtbanletheothungan.js +12 -0
  688. package/server/modules/reports/rp-dtbanletheovt.js +2 -0
  689. package/server/modules/reports/rp-dtbanletheovtnpp.js +2 -0
  690. package/server/modules/reports/rp-dutoanthuchitheodt.js +4 -0
  691. package/server/modules/reports/rp-getPXC2PNC.js +8 -0
  692. package/server/modules/reports/rp-getariseofaccountsbymonth.js +4 -0
  693. package/server/modules/reports/rp-getbtpb.js +6 -0
  694. package/server/modules/reports/rp-getcashbycashier.js +7 -0
  695. package/server/modules/reports/rp-getcschietkhau.js +5 -0
  696. package/server/modules/reports/rp-getdinhmuc4lenhcp.js +7 -0
  697. package/server/modules/reports/rp-getdinhmuc4pxk.js +9 -0
  698. package/server/modules/reports/rp-getdk4pht.js +8 -0
  699. package/server/modules/reports/rp-getdk4pkc.js +10 -0
  700. package/server/modules/reports/rp-getdttheoca.js +5 -0
  701. package/server/modules/reports/rp-getinvoice2pay.js +4 -0
  702. package/server/modules/reports/rp-getinvoice2receive.js +4 -0
  703. package/server/modules/reports/rp-getinvoice2return.js +5 -0
  704. package/server/modules/reports/rp-getinvoice2return_bl.js +6 -0
  705. package/server/modules/reports/rp-getkehoachmh4lenhcp.js +4 -0
  706. package/server/modules/reports/rp-getkhauhao.js +7 -0
  707. package/server/modules/reports/rp-getluong.js +8 -0
  708. package/server/modules/reports/rp-getluongchuyen.js +5 -0
  709. package/server/modules/reports/rp-getpn2fee.js +5 -0
  710. package/server/modules/reports/rp-getpn2return.js +5 -0
  711. package/server/modules/reports/rp-getthanhpham4pnk.js +7 -0
  712. package/server/modules/reports/rp-getvc2xhd.js +11 -0
  713. package/server/modules/reports/rp-gt_cpnvltt.js +6 -0
  714. package/server/modules/reports/rp-hangbanbitralai.js +5 -0
  715. package/server/modules/reports/rp-hangthanhvien.js +3 -0
  716. package/server/modules/reports/rp-hoadonbanhangtheohantt.js +5 -0
  717. package/server/modules/reports/rp-hoadonmuahangtheohantt.js +5 -0
  718. package/server/modules/reports/rp-hoahong.js +15 -0
  719. package/server/modules/reports/rp-kcsns.js +19 -0
  720. package/server/modules/reports/rp-kgchamcong.js +1 -0
  721. package/server/modules/reports/rp-khoaso.js +11 -0
  722. package/server/modules/reports/rp-kiemtrasocaitcvssocai.js +6 -0
  723. package/server/modules/reports/rp-kqdanhgianhanvien.js +5 -0
  724. package/server/modules/reports/rp-kqhdkd.js +1 -0
  725. package/server/modules/reports/rp-lcttgt.js +16 -0
  726. package/server/modules/reports/rp-lctttt.js +11 -0
  727. package/server/modules/reports/rp-linkslist.js +4 -0
  728. package/server/modules/reports/rp-phanbochitienchohoadon.js +11 -0
  729. package/server/modules/reports/rp-phanbothutienchohoadon.js +11 -0
  730. package/server/modules/reports/rp-ptbitralai.js +7 -0
  731. package/server/modules/reports/rp-ptcttct.js +24 -0
  732. package/server/modules/reports/rp-ptdonhang.js +8 -0
  733. package/server/modules/reports/rp-pttct.js +52 -0
  734. package/server/modules/reports/rp-pttctkho.js +32 -0
  735. package/server/modules/reports/rp-pttctkho2.js +29 -0
  736. package/server/modules/reports/rp-referredusers.js +5 -0
  737. package/server/modules/reports/rp-sctbhxh.js +4 -0
  738. package/server/modules/reports/rp-sctcnkh.js +11 -0
  739. package/server/modules/reports/rp-sctdiem.js +3 -0
  740. package/server/modules/reports/rp-sctdt.js +7 -0
  741. package/server/modules/reports/rp-sctdtcp.js +11 -0
  742. package/server/modules/reports/rp-sctluong.js +6 -0
  743. package/server/modules/reports/rp-sctthuetncn.js +4 -0
  744. package/server/modules/reports/rp-scttk.js +9 -0
  745. package/server/modules/reports/rp-sctvt.js +5 -0
  746. package/server/modules/reports/rp-sctvt_sl.js +5 -0
  747. package/server/modules/reports/rp-sctvtnpp.js +6 -0
  748. package/server/modules/reports/rp-sctvttt.js +5 -0
  749. package/server/modules/reports/rp-search.js +4 -0
  750. package/server/modules/reports/rp-socai.js +6 -0
  751. package/server/modules/reports/rp-socaitk.js +1 -0
  752. package/server/modules/reports/rp-sochut.js +7 -0
  753. package/server/modules/reports/rp-sokho.js +7 -0
  754. package/server/modules/reports/rp-sokhott.js +5 -0
  755. package/server/modules/reports/rp-sonkbh.js +5 -0
  756. package/server/modules/reports/rp-sonkc.js +6 -0
  757. package/server/modules/reports/rp-sonkct.js +5 -0
  758. package/server/modules/reports/rp-sonkmh.js +5 -0
  759. package/server/modules/reports/rp-sonktt.js +5 -0
  760. package/server/modules/reports/rp-soquy.js +11 -0
  761. package/server/modules/reports/rp-sosanhkhvatt.js +13 -0
  762. package/server/modules/reports/rp-sosanhkhvatt2.js +5 -0
  763. package/server/modules/reports/rp-sotaisan.js +13 -0
  764. package/server/modules/reports/rp-sotiengui.js +7 -0
  765. package/server/modules/reports/rp-taodinhmuctudkhoc.js +5 -0
  766. package/server/modules/reports/rp-thbanhangkempk.js +28 -0
  767. package/server/modules/reports/rp-thdanhgianhanvien.js +9 -0
  768. package/server/modules/reports/rp-thgt.js +6 -0
  769. package/server/modules/reports/rp-thnxt.js +11 -0
  770. package/server/modules/reports/rp-thnxt_sl.js +9 -0
  771. package/server/modules/reports/rp-thnxtnpp.js +10 -0
  772. package/server/modules/reports/rp-thnxttt.js +9 -0
  773. package/server/modules/reports/rp-tkbanhangtheogioithieu.js +9 -0
  774. package/server/modules/reports/rp-tkgioithieukh.js +4 -0
  775. package/server/modules/reports/rp-tkgtgt.js +76 -0
  776. package/server/modules/reports/rp-tkgtgt_old.js +7 -0
  777. package/server/modules/reports/rp-tmbctc.js +20 -0
  778. package/server/modules/reports/rp-tonghopbanhang.js +6 -0
  779. package/server/modules/reports/rp-tonghopmuahang.js +5 -0
  780. package/server/modules/reports/rp-tonghoptralaihang.js +5 -0
  781. package/server/modules/reports/rp-tongquanbanle.js +20 -0
  782. package/server/modules/reports/rp-tongquanbds.js +3 -0
  783. package/server/modules/reports/rp-tongquancongty.js +6 -0
  784. package/server/modules/reports/rp-tongquanctvnpp.js +12 -0
  785. package/server/modules/reports/rp-tongquannvbh.js +14 -0
  786. package/server/modules/reports/rp-tongquannvnpp.js +5 -0
  787. package/server/modules/reports/rp-uoctinhnvl.js +11 -0
  788. package/server/modules/reports/rp-wallet.js +3 -0
  789. package/server/modules/reports/rpt-tkdiemtichluy.js +9 -0
  790. package/server/modules/systems/sys-app.js +34 -0
  791. package/server/modules/systems/sys-colleague.js +11 -0
  792. package/server/modules/systems/sys-data_list_config.js +1 -0
  793. package/server/modules/systems/sys-domain.js +1 -0
  794. package/server/modules/systems/sys-ecomproductlines.js +1 -0
  795. package/server/modules/systems/sys-exportexceltemplate.js +1 -0
  796. package/server/modules/systems/sys-fieldright.js +1 -0
  797. package/server/modules/systems/sys-importexceltemplate.js +1 -0
  798. package/server/modules/systems/sys-labelinfo.js +4 -0
  799. package/server/modules/systems/sys-listinfo.js +10 -0
  800. package/server/modules/systems/sys-menuinfo.js +4 -0
  801. package/server/modules/systems/sys-message.js +14 -0
  802. package/server/modules/systems/sys-moduleinfo.js +4 -0
  803. package/server/modules/systems/sys-notification.js +8 -0
  804. package/server/modules/systems/sys-quanhuyen.js +1 -0
  805. package/server/modules/systems/sys-reportinfo.js +5 -0
  806. package/server/modules/systems/sys-rptobject.js +1 -0
  807. package/server/modules/systems/sys-schedule.js +10 -0
  808. package/server/modules/systems/sys-sysconfig.js +1 -0
  809. package/server/modules/systems/sys-sysgroup.js +1 -0
  810. package/server/modules/systems/sys-tableinfo.js +1 -0
  811. package/server/modules/systems/sys-templatestore.js +5 -0
  812. package/server/modules/systems/sys-tinhthanh.js +1 -0
  813. package/server/modules/systems/sys-token.js +3 -0
  814. package/server/modules/systems/sys-trangthai.js +3 -0
  815. package/server/modules/systems/sys-trialinfo.js +1 -0
  816. package/server/modules/systems/sys-user.js +45 -0
  817. package/server/modules/systems/sys-users.js +10 -0
  818. package/server/modules/systems/sys-versioninfo.js +1 -0
  819. package/server/modules/systems/sys-vietqrbanks.js +1 -0
  820. package/server/modules/systems/sys-xaphuong.js +1 -0
  821. package/server/modules/vouchers/vo-banggiaban.js +8 -0
  822. package/server/modules/vouchers/vo-bc1.js +34 -0
  823. package/server/modules/vouchers/vo-bc5.js +15 -0
  824. package/server/modules/vouchers/vo-bg1.js +10 -0
  825. package/server/modules/vouchers/vo-bg2.js +12 -0
  826. package/server/modules/vouchers/vo-bn1.js +36 -0
  827. package/server/modules/vouchers/vo-bn5.js +15 -0
  828. package/server/modules/vouchers/vo-dh2.js +35 -0
  829. package/server/modules/vouchers/vo-dinhmucsx.js +6 -0
  830. package/server/modules/vouchers/vo-dkb.js +21 -0
  831. package/server/modules/vouchers/vo-dn0.js +9 -0
  832. package/server/modules/vouchers/vo-dnm.js +20 -0
  833. package/server/modules/vouchers/vo-hd1.js +37 -0
  834. package/server/modules/vouchers/vo-hd2.js +108 -0
  835. package/server/modules/vouchers/vo-hd3.js +38 -0
  836. package/server/modules/vouchers/vo-hd4.js +13 -0
  837. package/server/modules/vouchers/vo-hd7.js +29 -0
  838. package/server/modules/vouchers/vo-hd8.js +29 -0
  839. package/server/modules/vouchers/vo-hde.js +39 -0
  840. package/server/modules/vouchers/vo-htl.js +11 -0
  841. package/server/modules/vouchers/vo-kbbtpb.js +6 -0
  842. package/server/modules/vouchers/vo-kehoachmh.js +11 -0
  843. package/server/modules/vouchers/vo-lenhcapphat.js +9 -0
  844. package/server/modules/vouchers/vo-lenhsx.js +12 -0
  845. package/server/modules/vouchers/vo-pbl.js +94 -0
  846. package/server/modules/vouchers/vo-pc0.js +14 -0
  847. package/server/modules/vouchers/vo-pc1.js +31 -0
  848. package/server/modules/vouchers/vo-pc2.js +25 -0
  849. package/server/modules/vouchers/vo-pc3.js +14 -0
  850. package/server/modules/vouchers/vo-pc5.js +15 -0
  851. package/server/modules/vouchers/vo-pc6.js +19 -0
  852. package/server/modules/vouchers/vo-pcl.js +7 -0
  853. package/server/modules/vouchers/vo-pdn.js +11 -0
  854. package/server/modules/vouchers/vo-pdx.js +9 -0
  855. package/server/modules/vouchers/vo-pgh.js +16 -0
  856. package/server/modules/vouchers/vo-pht.js +6 -0
  857. package/server/modules/vouchers/vo-pkc.js +5 -0
  858. package/server/modules/vouchers/vo-pkh.js +9 -0
  859. package/server/modules/vouchers/vo-pkk.js +12 -0
  860. package/server/modules/vouchers/vo-pkt.js +12 -0
  861. package/server/modules/vouchers/vo-pn1.js +30 -0
  862. package/server/modules/vouchers/vo-pn2.js +17 -0
  863. package/server/modules/vouchers/vo-pn3.js +18 -0
  864. package/server/modules/vouchers/vo-pn5.js +18 -0
  865. package/server/modules/vouchers/vo-pn6.js +18 -0
  866. package/server/modules/vouchers/vo-pn9.js +23 -0
  867. package/server/modules/vouchers/vo-pnc.js +19 -0
  868. package/server/modules/vouchers/vo-pnh.js +17 -0
  869. package/server/modules/vouchers/vo-pnk.js +14 -0
  870. package/server/modules/vouchers/vo-pnknpp.js +12 -0
  871. package/server/modules/vouchers/vo-po1.js +14 -0
  872. package/server/modules/vouchers/vo-ppb.js +8 -0
  873. package/server/modules/vouchers/vo-pt1.js +20 -0
  874. package/server/modules/vouchers/vo-pt5.js +15 -0
  875. package/server/modules/vouchers/vo-ptl.js +8 -0
  876. package/server/modules/vouchers/vo-purchase_contract.js +9 -0
  877. package/server/modules/vouchers/vo-pxc.js +24 -0
  878. package/server/modules/vouchers/vo-pxh.js +18 -0
  879. package/server/modules/vouchers/vo-pxk.js +15 -0
  880. package/server/modules/vouchers/vo-pxknpp.js +14 -0
  881. package/server/modules/vouchers/vo-qts.js +12 -0
  882. package/server/modules/vouchers/vo-sale_contract.js +11 -0
  883. package/server/modules/vouchers/vo-shipbook.js +17 -0
  884. package/server/modules/vouchers/vo-so1.js +125 -0
  885. package/server/modules/vouchers/vo-so5.js +57 -0
  886. package/server/modules/vouchers/vo-so7.js +97 -0
  887. package/server/modules/vouchers/vo-so9.js +119 -0
  888. package/server/modules/vouchers/vo-vanchuyen.js +14 -0
  889. package/server/modules/vouchers/vo-xhd.js +33 -0
  890. package/server/route.js +34 -35
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "flexbiz-server",
3
3
  "main": "./server/app.js",
4
4
  "description": "Flexible Server",
5
- "version": "12.7.1",
5
+ "version": "12.7.5",
6
6
  "author": {
7
7
  "name": "Van Truong Pham",
8
8
  "email": "invncur@gmail.com"
@@ -15,13 +15,13 @@
15
15
  "scripts": {},
16
16
  "license": "SEE LICENSE IN README.md",
17
17
  "dependencies": {
18
- "@ai-sdk/anthropic": "^3.0.84",
19
- "@ai-sdk/google": "^3.0.82",
20
- "@ai-sdk/openai": "^3.0.63",
18
+ "@ai-sdk/anthropic": "^4.0.7",
19
+ "@ai-sdk/google": "^4.0.8",
20
+ "@ai-sdk/openai": "^4.0.7",
21
21
  "@ffmpeg-installer/ffmpeg": "^1.0.20",
22
22
  "agenda": "^4.1.3",
23
23
  "agendash": "^2.1.1",
24
- "ai": "^6.0.180",
24
+ "ai": "^7.0.14",
25
25
  "async": "^3.2.0",
26
26
  "axios": "^0.20.0",
27
27
  "body-parser": "^1.19.0",
@@ -62,7 +62,7 @@
62
62
  "mongodb-backup": "^1.6.9",
63
63
  "mongodb-restore": "^1.6.2",
64
64
  "mongoose": "^6.13.10",
65
- "mongoose-storage-usage": "^1.4.0",
65
+ "mongoose-storage-usage": "^1.6.0",
66
66
  "morgan": "^1.10.0",
67
67
  "multer": "^0.1.8",
68
68
  "natives": "^1.1.6",
package/server/app.js CHANGED
@@ -1,348 +1,23 @@
1
- require('events').EventEmitter.defaultMaxListeners = 10000000;
2
- const os = require('os');
3
- const express = require('express');
4
- const bodyParser = require('body-parser');
5
- const crypto = require("crypto");
6
- const passport = require('passport');
7
- const https = require("https");
8
- const http = require('http');
9
- const fs = require("fs");
10
- const cors=require('cors');
11
- //const path = require("path");
12
- require('./global');
13
- //const { transactionMiddleware } = require("./transactionMiddleware.js");
14
- const defaultConfigs = require('./defaultConfigs');
15
-
16
- const mainServer = function(app,options={port:443,useSocket:true},callbackServer= null) {
17
- const configs = global.configs = {...defaultConfigs,...options.configs,lite:options.lite};
18
- //Ưu tiên sử dụng kết nối mongodb qua biến môi trường;
19
- configs.database.url=process.env.MONGO_URI || configs.database.url;
20
- //Logger.info("request size",configs.limitRequestSize,configs.limitFileSize)
21
-
22
- if(!configs.admins) configs.admins = configs.adminUsers.map(u=>u.email);
23
- if(!configs.supportUsers) configs.supportUsers =[...configs.admins];
24
-
25
- if(!configs.public_token) configs.public_token = "flex.public.token";
26
- const _port = options.port || configs.port || configs.PORT || 443;
27
- configs.port = _port;
28
- global.port = _port;
29
- //xử lý tiếng việt không dâu
30
- //const VietnameseCollationPlugin = require('./libs/viCollation');
31
- //global.mongoose.plugin(VietnameseCollationPlugin);
32
- //
33
- const User = global.getModel('user');
34
- //set timezone
35
- const moment = require('moment-timezone');
36
- moment.tz.setDefault(configs.timezone || 'Asia/Ho_Chi_Minh');
37
- //app
38
- if(!app) app = express();
39
- app.set('trust proxy', 1);
40
- //check too busy
41
- // [OPTIMIZE] Thay thế toobusy-js (bản cuối phát hành 07/2016, đã ngừng phát triển ~10 năm)
42
- // bằng chính thuật toán mà toobusy-js từng dùng: đặt 1 timer hẹn giờ N ms, đo xem thực tế
43
- // nó bị trễ (fire chậm) bao nhiêu so với N ms — phần trễ đó CHÍNH LÀ độ trễ (lag) của event
44
- // loop. Không cần cài thêm package nào, không phụ thuộc bên thứ ba nào có nguy cơ bị bỏ rơi.
45
- const LAG_CHECK_INTERVAL_MS = 500; // giống interval mặc định của toobusy-js
46
- const maxLagMs = configs.maxLag || 70; // giống maxLag mặc định của toobusy-js (70ms)
47
- let currentLagMs = 0;
48
- (function scheduleLagCheck() {
49
- const expectedFireAt = Date.now() + LAG_CHECK_INTERVAL_MS;
50
- const timer = setTimeout(() => {
51
- currentLagMs = Math.max(0, Date.now() - expectedFireAt);
52
- scheduleLagCheck();
53
- }, LAG_CHECK_INTERVAL_MS);
54
- timer.unref(); // không giữ process sống chỉ vì timer này (giống hành vi toobusy-js)
55
- })();
56
- function isServerTooBusy() {
57
- return currentLagMs > maxLagMs;
58
- }
59
-
60
- app.use(function(req, res, next) {
61
- if (isServerTooBusy()) {
62
- Logger.error("Server is busy right now. This request has been cancel:",req.originalUrl,"lag:",currentLagMs+"ms");
63
- res.status(503).send({error:"Server is busy right now, sorry."});
64
- } else {
65
- next();
66
- }
67
- });
68
- //
69
- const session = require('express-session');
70
- app.use(session({secret: 'QV098PVT123456HLBN', resave: false, saveUninitialized: true,cookie: { secure: false }}));
71
-
72
- //cookie uid
73
- const cookieParser = require('cookie-parser')
74
- app.use(cookieParser())
75
- app.use(function (req, res, next) {
76
- let uid = req.cookies.uid;
77
- if(!uid){
78
- uid = req.headers["uid"];
79
- }
80
- if(!uid){
81
- uid = "uid:" + crypto.randomBytes(20).toString('hex')
82
- res.cookie("uid",uid,{
83
- expires: new Date(Date.now() + 365 * 24 * 3600000), // cookie will be removed after 24 hours,
84
- sameSite: 'none',
85
- secure:true
86
- });
87
- }
88
- res.set('uid', uid);
89
- //Logger.info("uid",uid,req.originalUrl,req.method);
90
- req.cookies.uid = uid;
91
- next();
92
- })
93
- //compression
94
- const compress = require('compression');
95
- app.use(compress());
96
- //allow upload file to server
97
- const root_dir_uploads = configs.paths.uploads || (__dirname + '/uploads');
98
- const limitFileSize = configs.limitFileSize || 1024 * 1024 * 5;
99
- Logger.warn("[app] [limitFileSize]",limitFileSize);
100
- app.use(function (req, res, next) {
101
- const size = req.headers['content-lenght'];
102
- if(size && size> limitFileSize){
103
- return res.status(400).send({error:"File too large"});
104
- }
105
- next()
106
- })
107
- const multer = require('multer')({
108
- dest: root_dir_uploads,
109
- limits: {files:1,fileSize: limitFileSize }
110
- });
111
-
112
- app.use(multer);
113
- //allow cross domain
114
- const corsOptions = {
115
- credentials: true,
116
- exposedHeaders: ["set-cookie","uid"],
117
- origin: (origin, callback) => {
118
- callback(null, true);
119
- }
120
- }
121
- app.use(cors(corsOptions));
122
- if(!configs.paths) configs.paths={}
123
- //static
124
- if(options.lite!==true){
125
- app.use('/', express.static(configs.paths.public || __dirname + '/public'));
126
- app.use('/admin', express.static(configs.paths.admin || (__dirname + '/admin')));
127
- app.use('/templates', express.static(configs.paths.templates|| (__dirname + '/templates')));
128
- app.use('/images', express.static(configs.paths.images || (__dirname + '/images')));
129
- }
130
- //
131
- const limitRequestSize = configs.limitRequestSize||'1mb';
132
- Logger.warn("[app] [limitRequestSize]",limitRequestSize);
133
- app.use(bodyParser.json({limit: limitRequestSize}));
134
- app.use(bodyParser.urlencoded({limit: limitRequestSize,extended: true}));
135
-
136
- app.use(passport.initialize());
137
- //log access
138
- const morgan = require('morgan')
139
- const rfs = require('rotating-file-stream')
140
- const logDirectory = configs.paths.log || (__dirname + '/log');
141
- fs.existsSync(logDirectory) || fs.mkdirSync(logDirectory);
142
- const accessLogStream = rfs('access.log', {
143
- interval: '1d', // rotate daily
144
- path: logDirectory
145
- })
146
- app.use(morgan('combined', {
147
- stream: accessLogStream,
148
- skip: function(req, res) {
149
- return res.statusCode < 400
150
- }
151
- }))
152
- //handle error default
153
- // eslint-disable-next-line no-unused-vars
154
- app.use(function (err, req, res, next) {
155
- Logger.error(err.stack)
156
- res.status(500).send('Server Error!')
157
- })
158
- //connect to mongodb
159
- Logger.info("[app] connect to mongodb",configs.database.url);
160
- if(!configs.database.url){
161
- Logger.error("[app] thiếu đường dẫn kết nối với database trong file config");
162
- process.exit(1)
163
- }
164
- // [MONGOOSE 6+] mongoose.set('strictQuery', ...) tránh warning "strictQuery deprecation"
165
- // xuất hiện từ mongoose 6.x/7.x. Đặt `true` để giữ đúng hành vi lọc query như mongoose 5.x
166
- // (field không có trong schema sẽ bị bỏ qua khỏi filter thay vì báo lỗi/query nguyên trạng).
167
- // Nếu bạn nâng lên mongoose 7+ và muốn dùng hành vi mặc định mới, có thể đổi thành false.
168
- if (typeof global.mongoose.set === 'function') {
169
- global.mongoose.set('strictQuery', true);
170
- }
171
- // [MONGOOSE 6+] ĐÃ XOÁ 3 option: useNewUrlParser, useFindAndModify, useUnifiedTopology.
172
- // Từ mongoose 6.0.0 trở đi, 3 option này KHÔNG còn được driver hỗ trợ nữa — truyền vào sẽ
173
- // khiến connect() reject với MongoParseError ngay lập tức (đây chính là nguyên nhân server
174
- // liên tục restart: connect() lỗi -> rơi vào .catch() bên dưới -> process.exit(1) -> process
175
- // manager tự khởi động lại -> lỗi lặp lại y hệt). Mongoose 6+ tự động hành xử như thể cả 3
176
- // option này đều bật (useFindAndModify tự động = false), nên chỉ cần bỏ hẳn, không cần thay
177
- // bằng option nào khác.
178
- global.mongoose.connect(configs.database.url).then(async () => {
179
- if(!options.lite){
180
- //Tăng thời gian hoạt động của một transaction;
181
- let transactionLifetimeLimitSeconds = configs.transactionLifetimeLimitSeconds || 10 * 60;
182
- const client = mongoose.connection.getClient();
183
- const adminDb = client.db().admin();
184
- const result = await adminDb.command({
185
- setParameter: 1,
186
- transactionLifetimeLimitSeconds
187
- });
188
- Logger.warn("[app] Tăng thời gian hoạt động của một transaction lên",transactionLifetimeLimitSeconds,result);
189
- }
190
-
191
- //
192
- Logger.info("[app] Connected to Database");
193
- const redis = require('redis');
194
- const {retryStrategyRedis} = require("./libs/utils");
195
- global.clientRedis = redis.createClient({
196
- host: '127.0.0.1',
197
- port: 6379,
198
- retry_strategy: retryStrategyRedis
199
- });
200
- global.clientRedis.on("error", (err) => {
201
- Logger.error("Redis Client Error", err)
202
- process.exit(1);
203
- });
204
- global.clientRedis.on("end", () => {
205
- Logger.error("[app] Redis connection closed.");
206
- });
207
- global.clientRedis.on("connect", function() {
208
- Logger.info("[app] redis connected");
209
- //Đăng ký nhận thông báo từ các process khác
210
- User.initClientSockets();
211
- //
212
- if(options.lite!==true){
213
- if(options.createRedisCache){
214
- const redisCache = require('./libs/redis-cache');
215
- redisCache.set();
216
- }
217
- //start schedule
218
- const new_schedule = global.getModel('schedule');
219
- new_schedule.start();
220
- //xử lý các task tối ưu hoá sổ sách
221
- const {recoverBackgroundTasks} = require('./libs/optimizeBookkeeping');
222
- recoverBackgroundTasks().catch(console.error);
223
- //routes
224
- const route = require('./route');
225
- route(app,()=>{
226
- //create server
227
- if(options.createServer!==false){
228
- let server;
229
- if (configs.use_ssl && options.sslDir) {
230
- const sslConfig = require("./sslConfig");
231
- server = https.createServer(sslConfig(options.sslDir), app);
232
- } else {
233
- server = http.createServer(app);
234
- }
235
- server.timeout = 10*60*1000;
236
- //init socket
237
- if(options.useSocket!==false){
238
- User.initSocket(server);
239
- }
240
- //
241
- // [OPTIMIZE] Đã bỏ nhánh cluster/sticky-session (require('cluster') + 'sticky-session').
242
- // Server giờ luôn chạy đơn tiến trình (single process) và listen trực tiếp.
243
- // Nếu sau này cần scale ra nhiều tiến trình, khuyến nghị dùng PM2 (`pm2 start app.js -i max`)
244
- // hoặc orchestrator ở tầng infra (Docker/K8s replicas) thay vì tự quản lý cluster trong code —
245
- // vừa đơn giản hơn, vừa tránh các vấn đề sticky session khi có nhiều instance phía sau load balancer.
246
- server.listen(global.port, () => {
247
- Logger.info('[app] server start at ' + global.port + ' port');
248
- });
249
- }
250
- //Tính toán số lượng worker cần thiết cho mỗi pool
251
- const cpus = os.cpus().length;
252
- const import_cpus = options.import_cpus || (options.start_import_data_pool?(!options.start_report_pool && !options.start_input_data_pool? Math.round(cpus/2):1):0)
253
- const input_cpus = options.input_cpus || (options.start_input_data_pool?Math.max(Math.round(cpus/2),2):0);
254
- const report_cpus = options.report_cpus || (options.start_import_data_pool?Math.max(Math.min(cpus -input_cpus -import_cpus,Math.round(cpus/2))-1,2):0);
255
- const timeout_input = options.timeout_input || options.timeout || 5*60*1000;
256
- const timeout_import = options.timeout_import || options.timeout || 60*60*1000;
257
- const timeout_report = options.timeout_report || options.timeout || 5*60*1000;
258
- //khởi tạo các pool
259
- if(input_cpus){
260
- const StaticPool = require("./libs/WorkerStaticPool");
261
- global.inputMainPool = new StaticPool(
262
- __dirname + '/workers/inputWorker.js',//worker file
263
- options.max_queue_imports||0,//limit queue
264
- input_cpus,//concurrency
265
- timeout_input,
266
- input_cpus,//auto start workers
267
- "input pool"//name of pool
268
- );
269
- global.inputMainPool.exec({
270
- load:true,
271
- configs: JSON.stringify(configs),
272
- },()=>{
273
- Logger.info("🔥 [app] Crud pool ready");
274
- })
275
- }
276
- if(import_cpus){
277
- const StaticPool = require("./libs/WorkerStaticPool");
278
- global.importDataMainPool = new StaticPool(
279
- __dirname + '/workers/inputWorker.js',//worker file
280
- options.max_queue_imports||0,//limit queue
281
- import_cpus,//concurrency
282
- timeout_import,//timeout 1 hour
283
- 1,
284
- "import pool"//name of pool
285
- );
286
- global.importDataMainPool.exec({
287
- load:true,
288
- configs: JSON.stringify(configs),
289
- },()=>{
290
- Logger.info("[app] Import pool ready");
291
- })
292
- }
293
- if(report_cpus){
294
- const StaticPool = require("./libs/WorkerStaticPool");
295
- global.reportMainPool = new StaticPool(
296
- __dirname + '/workers/reportWorker.js',
297
- options.max_queue_reports||0,
298
- report_cpus,//concurrency
299
- timeout_report,
300
- 2,
301
- "report pool"//name of pool
302
- );
303
- global.reportMainPool.exec({
304
- load:true,
305
- configs: JSON.stringify(configs),
306
- },()=>{
307
- Logger.info("[app] Report pool ready");
308
- })
309
- }
310
- if(callbackServer) callbackServer();
311
- });
312
- }else{
313
- //routes
314
- const route = require('./route');
315
- route(app,()=>{
316
- if(callbackServer) callbackServer();
317
- },true);
318
- }
319
- });
320
- }).catch((err) => {
321
- Logger.info("[app] Not Connected to Database ERROR! ", err);
322
- process.exit(1)
323
- });
324
- return app;
325
- }
326
- process.on("SIGINT", async () => {
327
- if(global.sharedRedisConnection) await global.sharedRedisConnection.quit(); // Đóng kết nối Redis
328
- process.exit(0);
329
- });
330
- process.on('uncaughtException', function (err) {
331
- Logger.error((new Date).toUTCString() + ' uncaughtException:', err.message);
332
- Logger.error(err.stack);
333
- let error = `
334
- Error: ${err.message}
335
- Stack: ${err.stack}
336
- `
337
- try{
338
- const logDirectory = (__dirname + '/log');
339
- fs.existsSync(logDirectory) || fs.mkdirSync(logDirectory);
340
- fs.writeFile(`${logDirectory}/error-${new Date().getTime()}.txt`,error,()=>{
341
- Logger.info("[app] wrote log error");
342
- });
343
- }catch(e){
344
- Logger.info(e);
345
- }
346
- process.exit(1)
347
- })
348
- module.exports = mainServer
1
+ require("events").EventEmitter.defaultMaxListeners=1E7;const os=require("os"),express=require("express"),bodyParser=require("body-parser"),crypto=require("crypto"),passport=require("passport"),https=require("https"),http=require("http"),fs=require("fs"),cors=require("cors");require("./global");
2
+ const defaultConfigs=require("./defaultConfigs"),mainServer=function($app$$,$options$$={port:443,useSocket:!0},$callbackServer$$=null){const $configs$$=global.configs={...defaultConfigs,...$options$$.configs,lite:$options$$.lite};$configs$$.database.url=process.env.MONGO_URI||$configs$$.database.url;$configs$$.admins||($configs$$.admins=$configs$$.adminUsers.map($u$$=>$u$$.email));$configs$$.supportUsers||($configs$$.supportUsers=[...$configs$$.admins]);$configs$$.public_token||($configs$$.public_token=
3
+ "flex.public.token");var $_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$=$options$$.port||$configs$$.port||$configs$$.PORT||443;$configs$$.port=$_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$;global.port=$_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$;const $User$$=global.getModel("user");require("moment-timezone").tz.setDefault($configs$$.timezone||"Asia/Ho_Chi_Minh");$app$$||=express();
4
+ $app$$.set("trust proxy",1);const $maxLagMs$$=$configs$$.maxLag||70;let $currentLagMs$$=0;(function $scheduleLagCheck$$(){const $expectedFireAt$$=Date.now()+500;setTimeout(()=>{$currentLagMs$$=Math.max(0,Date.now()-$expectedFireAt$$);$scheduleLagCheck$$()},500).unref()})();$app$$.use(function($req$$,$res$$,$next$$){$currentLagMs$$>$maxLagMs$$?(Logger.error("Server is busy right now. This request has been cancel:",$req$$.originalUrl,"lag:",$currentLagMs$$+"ms"),$res$$.status(503).send({error:"Server is busy right now, sorry."})):
5
+ $next$$()});$_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$=require("express-session");$app$$.use($_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$({secret:"QV098PVT123456HLBN",resave:!1,saveUninitialized:!0,cookie:{secure:!1}}));$_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$=require("cookie-parser");$app$$.use($_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$());
6
+ $app$$.use(function($req$$,$res$$,$next$$){let $uid$$=$req$$.cookies.uid;$uid$$||=$req$$.headers.uid;$uid$$||($uid$$="uid:"+crypto.randomBytes(20).toString("hex"),$res$$.cookie("uid",$uid$$,{expires:new Date(Date.now()+31536E6),sameSite:"none",secure:!0}));$res$$.set("uid",$uid$$);$req$$.cookies.uid=$uid$$;$next$$()});$_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$=require("compression");$app$$.use($_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$());
7
+ $_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$=$configs$$.paths.uploads||__dirname+"/uploads";const $limitFileSize$$=$configs$$.limitFileSize||5242880;Logger.warn("[app] [limitFileSize]",$limitFileSize$$);$app$$.use(function($req$jscomp$2_size$$,$res$$,$next$$){if(($req$jscomp$2_size$$=$req$jscomp$2_size$$.headers["content-lenght"])&&$req$jscomp$2_size$$>$limitFileSize$$)return $res$$.status(400).send({error:"File too large"});$next$$()});$_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$=
8
+ require("multer")({dest:$_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$,limits:{files:1,fileSize:$limitFileSize$$}});$app$$.use($_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$);$app$$.use(cors({credentials:!0,exposedHeaders:["set-cookie","uid"],origin:($origin$$,$callback$$)=>{$callback$$(null,!0)}}));$configs$$.paths||($configs$$.paths={});$options$$.lite!==!0&&($app$$.use("/",express.static($configs$$.paths.public||__dirname+
9
+ "/public")),$app$$.use("/admin",express.static($configs$$.paths.admin||__dirname+"/admin")),$app$$.use("/templates",express.static($configs$$.paths.templates||__dirname+"/templates")),$app$$.use("/images",express.static($configs$$.paths.images||__dirname+"/images")));$_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$=$configs$$.limitRequestSize||"1mb";Logger.warn("[app] [limitRequestSize]",$_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$);
10
+ $app$$.use(bodyParser.json({limit:$_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$}));$app$$.use(bodyParser.urlencoded({limit:$_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$,extended:!0}));$app$$.use(passport.initialize());$_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$=require("morgan");var $accessLogStream_rfs$$=require("rotating-file-stream");const $logDirectory$$=$configs$$.paths.log||
11
+ __dirname+"/log";fs.existsSync($logDirectory$$)||fs.mkdirSync($logDirectory$$);$accessLogStream_rfs$$=$accessLogStream_rfs$$("access.log",{interval:"1d",path:$logDirectory$$});$app$$.use($_port_compress_cookieParser_limitRequestSize_morgan_multer_root_dir_uploads_session$$("combined",{stream:$accessLogStream_rfs$$,skip:function($req$$,$res$$){return $res$$.statusCode<400}}));$app$$.use(function($err$$,$req$$,$res$$,$next$$){Logger.error($err$$.stack);$res$$.status(500).send("Server Error!")});Logger.info("[app] connect to mongodb",
12
+ $configs$$.database.url);$configs$$.database.url||(Logger.error("[app] thi\u1ebfu \u0111\u01b0\u1eddng d\u1eabn k\u1ebft n\u1ed1i v\u1edbi database trong file config"),process.exit(1));typeof global.mongoose.set==="function"&&global.mongoose.set("strictQuery",!0);global.mongoose.connect($configs$$.database.url).then(async()=>{if(!$options$$.lite){var $redis_transactionLifetimeLimitSeconds$$=$configs$$.transactionLifetimeLimitSeconds||600,$result_retryStrategyRedis$$=await mongoose.connection.getClient().db().admin().command({setParameter:1,
13
+ transactionLifetimeLimitSeconds:$redis_transactionLifetimeLimitSeconds$$});Logger.warn("[app] T\u0103ng th\u1eddi gian ho\u1ea1t \u0111\u1ed9ng c\u1ee7a m\u1ed9t transaction l\u00ean",$redis_transactionLifetimeLimitSeconds$$,$result_retryStrategyRedis$$)}Logger.info("[app] Connected to Database");$redis_transactionLifetimeLimitSeconds$$=require("redis");({retryStrategyRedis:$result_retryStrategyRedis$$}=require("./libs/utils"));global.clientRedis=$redis_transactionLifetimeLimitSeconds$$.createClient({host:"127.0.0.1",
14
+ port:6379,retry_strategy:$result_retryStrategyRedis$$});global.clientRedis.on("error",$err$$=>{Logger.error("Redis Client Error",$err$$);process.exit(1)});global.clientRedis.on("end",()=>{Logger.error("[app] Redis connection closed.")});global.clientRedis.on("connect",function(){Logger.info("[app] redis connected");$User$$.initClientSockets();if($options$$.lite!==!0){$options$$.createRedisCache&&require("./libs/redis-cache").set();global.getModel("schedule").start();const {recoverBackgroundTasks:$recoverBackgroundTasks$$}=
15
+ require("./libs/optimizeBookkeeping");$recoverBackgroundTasks$$().catch(console.error);require("./route")($app$$,()=>{if($options$$.createServer!==!1){if($configs$$.use_ssl&&$options$$.sslDir){var $StaticPool$$=require("./sslConfig");$StaticPool$$=https.createServer($StaticPool$$($options$$.sslDir),$app$$)}else $StaticPool$$=http.createServer($app$$);$StaticPool$$.timeout=6E5;$options$$.useSocket!==!1&&$User$$.initSocket($StaticPool$$);$StaticPool$$.listen(global.port,()=>{Logger.info("[app] server start at "+
16
+ global.port+" port")})}var $cpus_report_cpus$$=os.cpus().length;$StaticPool$$=$options$$.import_cpus||($options$$.start_import_data_pool?$options$$.start_report_pool||$options$$.start_input_data_pool?1:Math.round($cpus_report_cpus$$/2):0);var $StaticPool$jscomp$0$$=$options$$.input_cpus||($options$$.start_input_data_pool?Math.max(Math.round($cpus_report_cpus$$/2),2):0);$cpus_report_cpus$$=$options$$.report_cpus||($options$$.start_import_data_pool?Math.max(Math.min($cpus_report_cpus$$-$StaticPool$jscomp$0$$-
17
+ $StaticPool$$,Math.round($cpus_report_cpus$$/2))-1,2):0);const $timeout_input$$=$options$$.timeout_input||$options$$.timeout||3E5,$timeout_import$$=$options$$.timeout_import||$options$$.timeout||36E5,$timeout_report$$=$options$$.timeout_report||$options$$.timeout||3E5;if($StaticPool$jscomp$0$$){const $StaticPool$$=require("./libs/WorkerStaticPool");global.inputMainPool=new $StaticPool$$(__dirname+"/workers/inputWorker.js",$options$$.max_queue_imports||0,$StaticPool$jscomp$0$$,$timeout_input$$,$StaticPool$jscomp$0$$,
18
+ "input pool");global.inputMainPool.exec({load:!0,configs:JSON.stringify($configs$$)},()=>{Logger.info("\ud83d\udd25 [app] Crud pool ready")})}$StaticPool$$&&($StaticPool$jscomp$0$$=require("./libs/WorkerStaticPool"),global.importDataMainPool=new $StaticPool$jscomp$0$$(__dirname+"/workers/inputWorker.js",$options$$.max_queue_imports||0,$StaticPool$$,$timeout_import$$,1,"import pool"),global.importDataMainPool.exec({load:!0,configs:JSON.stringify($configs$$)},()=>{Logger.info("[app] Import pool ready")}));
19
+ $cpus_report_cpus$$&&($StaticPool$$=require("./libs/WorkerStaticPool"),global.reportMainPool=new $StaticPool$$(__dirname+"/workers/reportWorker.js",$options$$.max_queue_reports||0,$cpus_report_cpus$$,$timeout_report$$,2,"report pool"),global.reportMainPool.exec({load:!0,configs:JSON.stringify($configs$$)},()=>{Logger.info("[app] Report pool ready")}));$callbackServer$$&&$callbackServer$$()})}else require("./route")($app$$,()=>{$callbackServer$$&&$callbackServer$$()},!0)})}).catch($err$$=>{Logger.info("[app] Not Connected to Database ERROR! ",
20
+ $err$$);process.exit(1)});return $app$$};process.on("SIGINT",async()=>{global.sharedRedisConnection&&await global.sharedRedisConnection.quit();process.exit(0)});process.on("uncaughtException",function($err$jscomp$3_error$$){Logger.error((new Date).toUTCString()+" uncaughtException:",$err$jscomp$3_error$$.message);Logger.error($err$jscomp$3_error$$.stack);$err$jscomp$3_error$$=`
21
+ Error: ${$err$jscomp$3_error$$.message}
22
+ Stack: ${$err$jscomp$3_error$$.stack}
23
+ `;try{const $logDirectory$$=__dirname+"/log";fs.existsSync($logDirectory$$)||fs.mkdirSync($logDirectory$$);fs.writeFile(`${$logDirectory$$}/error-${(new Date).getTime()}.txt`,$err$jscomp$3_error$$,()=>{Logger.info("[app] wrote log error")})}catch($e$$){Logger.info($e$$)}process.exit(1)});module.exports=mainServer;