flexbiz-server 12.7.1 → 12.7.2

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 (884) hide show
  1. package/package.json +5 -5
  2. package/server/app.js +23 -348
  3. package/server/cluster.js +1 -5
  4. package/server/models/account.js +7 -0
  5. package/server/models/actionLog.js +2 -0
  6. package/server/models/afflink.js +2 -0
  7. package/server/models/aimemory.js +1 -0
  8. package/server/models/app.js +16 -0
  9. package/server/models/approve.js +95 -0
  10. package/server/models/assabcihandler.js +35 -0
  11. package/server/models/assbank.js +19 -0
  12. package/server/models/assbooking.js +4 -0
  13. package/server/models/assbuy.js +3 -0
  14. package/server/models/asscashwithdraw.js +4 -0
  15. package/server/models/assfindhash.js +2 -0
  16. package/server/models/assinvestment.js +13 -0
  17. package/server/models/assissue.js +2 -0
  18. package/server/models/asskey.js +15 -0
  19. package/server/models/assneedtobuy.js +6 -0
  20. package/server/models/assperiod.js +7 -0
  21. package/server/models/assproduct.js +13 -0
  22. package/server/models/assprofitsharing.js +4 -0
  23. package/server/models/assreceiver.js +2 -0
  24. package/server/models/assrequest.js +10 -0
  25. package/server/models/asssell.js +7 -0
  26. package/server/models/asstransaction.js +3 -0
  27. package/server/models/asstransfer.js +4 -0
  28. package/server/models/assuser_identity.js +4 -0
  29. package/server/models/asswithdraw.js +4 -0
  30. package/server/models/attend.js +2 -0
  31. package/server/models/banggiaban.js +8 -0
  32. package/server/models/bangtinhluong.js +6 -0
  33. package/server/models/base.js +1 -0
  34. package/server/models/bg1.js +9 -0
  35. package/server/models/bg2.js +10 -0
  36. package/server/models/cache.js +3 -0
  37. package/server/models/cacheDataReport.js +2 -0
  38. package/server/models/cacheSessionReport.js +5 -0
  39. package/server/models/calllog.js +4 -0
  40. package/server/models/cart.js +5 -0
  41. package/server/models/cddiem.js +2 -0
  42. package/server/models/cddt.js +3 -0
  43. package/server/models/cdkh.js +5 -0
  44. package/server/models/cdkhtheongay.js +5 -0
  45. package/server/models/cdnphep.js +2 -0
  46. package/server/models/cdtk.js +3 -0
  47. package/server/models/cdtktheongay.js +3 -0
  48. package/server/models/cdvt.js +5 -0
  49. package/server/models/cdvtnpp.js +6 -0
  50. package/server/models/cdvttheongay.js +5 -0
  51. package/server/models/chamcong.js +7 -0
  52. package/server/models/chat_message.js +2 -0
  53. package/server/models/chat_session.js +2 -0
  54. package/server/models/checkin.js +4 -0
  55. package/server/models/checkinactivity.js +3 -0
  56. package/server/models/checkinkpi.js +4 -0
  57. package/server/models/checkinlocation.js +2 -0
  58. package/server/models/chitietluongds.js +12 -0
  59. package/server/models/chitieukpi.js +3 -0
  60. package/server/models/chudethaoluan.js +3 -0
  61. package/server/models/ckgtluong.js +2 -0
  62. package/server/models/colleague.js +2 -0
  63. package/server/models/comment.js +4 -0
  64. package/server/models/congdoansx.js +4 -0
  65. package/server/models/congtacvien.js +4 -0
  66. package/server/models/congthuctinhgiaban.js +8 -0
  67. package/server/models/consultant.js +4 -0
  68. package/server/models/contract.js +6 -0
  69. package/server/models/counter.js +2 -0
  70. package/server/models/csluongtheods.js +3 -0
  71. package/server/models/csphucap.js +2 -0
  72. package/server/models/ctds.js +5 -0
  73. package/server/models/ctds2.js +7 -0
  74. package/server/models/currency.js +3 -0
  75. package/server/models/custom_report.js +1 -0
  76. package/server/models/customer.js +31 -0
  77. package/server/models/customer_care.js +2 -0
  78. package/server/models/data_list_config.js +7 -0
  79. package/server/models/databanle.js +8 -0
  80. package/server/models/datlich.js +4 -0
  81. package/server/models/deal.js +2 -0
  82. package/server/models/dh2.js +20 -0
  83. package/server/models/diagram.js +2 -0
  84. package/server/models/dinhmucsx.js +8 -0
  85. package/server/models/dkhoc.js +6 -0
  86. package/server/models/dknphep.js +2 -0
  87. package/server/models/dmban.js +4 -0
  88. package/server/models/dmbp.js +12 -0
  89. package/server/models/dmca.js +2 -0
  90. package/server/models/dmchietkhau.js +8 -0
  91. package/server/models/dmchietkhauhd.js +19 -0
  92. package/server/models/dmchinhanh.js +2 -0
  93. package/server/models/dmcpmh.js +2 -0
  94. package/server/models/dmdiemthuong.js +3 -0
  95. package/server/models/dmdoi.js +4 -0
  96. package/server/models/dmdoituongdanhgia.js +2 -0
  97. package/server/models/dmdt.js +8 -0
  98. package/server/models/dmdvt.js +3 -0
  99. package/server/models/dmgiaban.js +9 -0
  100. package/server/models/dmgiamua.js +5 -0
  101. package/server/models/dmgiathitruong.js +5 -0
  102. package/server/models/dmgiathitruong_ngay.js +2 -0
  103. package/server/models/dmgiathitruong_theodoi.js +2 -0
  104. package/server/models/dmhoahonghd.js +8 -0
  105. package/server/models/dmhoahongnpp.js +8 -0
  106. package/server/models/dmkc.js +3 -0
  107. package/server/models/dmkho.js +7 -0
  108. package/server/models/dmkhuyenmai.js +9 -0
  109. package/server/models/dmkhuyenmaihd.js +11 -0
  110. package/server/models/dmletet.js +2 -0
  111. package/server/models/dmlo.js +4 -0
  112. package/server/models/dmloaicong.js +4 -0
  113. package/server/models/dmloaitask.js +2 -0
  114. package/server/models/dmloaits.js +2 -0
  115. package/server/models/dmnckkm.js +4 -0
  116. package/server/models/dmnghiepvu.js +4 -0
  117. package/server/models/dmnguonvon.js +2 -0
  118. package/server/models/dmnhnv.js +4 -0
  119. package/server/models/dmnv.js +17 -0
  120. package/server/models/dmnvt.js +10 -0
  121. package/server/models/dmphi.js +3 -0
  122. package/server/models/dmqct.js +3 -0
  123. package/server/models/dmqddvt.js +3 -0
  124. package/server/models/dmtanggiamts.js +3 -0
  125. package/server/models/dmto.js +4 -0
  126. package/server/models/dmtt.js +6 -0
  127. package/server/models/dmvt.js +17 -0
  128. package/server/models/dmyt.js +4 -0
  129. package/server/models/dn0.js +13 -0
  130. package/server/models/dnm.js +11 -0
  131. package/server/models/dokho.js +2 -0
  132. package/server/models/domain.js +2 -0
  133. package/server/models/dvcs.js +3 -0
  134. package/server/models/ecomcategories.js +3 -0
  135. package/server/models/ecomcategories_cty.js +3 -0
  136. package/server/models/ecomproductlines.js +2 -0
  137. package/server/models/ecompromotion_flashsales.js +2 -0
  138. package/server/models/ecompromotion_freeships.js +2 -0
  139. package/server/models/email.js +2 -0
  140. package/server/models/endpoint.js +1 -0
  141. package/server/models/events.js +3 -0
  142. package/server/models/evoucher.js +5 -0
  143. package/server/models/experiencejourney.js +2 -0
  144. package/server/models/experiencejourneydata.js +4 -0
  145. package/server/models/experiencejourneypersona.js +3 -0
  146. package/server/models/experiencejourneystage.js +2 -0
  147. package/server/models/exportexceltemplate.js +2 -0
  148. package/server/models/fbconversation.js +15 -0
  149. package/server/models/fbmessage.js +2 -0
  150. package/server/models/fbpage.js +2 -0
  151. package/server/models/fbpost.js +2 -0
  152. package/server/models/fieldright.js +2 -0
  153. package/server/models/fifo_dk.js +2 -0
  154. package/server/models/fifo_lot.js +3 -0
  155. package/server/models/fifo_trace.js +4 -0
  156. package/server/models/file.js +4 -0
  157. package/server/models/filechunk.js +2 -0
  158. package/server/models/financialroadmap.js +3 -0
  159. package/server/models/flow.js +2 -0
  160. package/server/models/flowdata.js +3 -0
  161. package/server/models/flowpending.js +2 -0
  162. package/server/models/folder.js +4 -0
  163. package/server/models/follow.js +2 -0
  164. package/server/models/forminfo.js +5 -0
  165. package/server/models/giaoca.js +4 -0
  166. package/server/models/giatb.js +3 -0
  167. package/server/models/group.js +9 -0
  168. package/server/models/gt_ctgt.js +4 -0
  169. package/server/models/gt_hspb.js +3 -0
  170. package/server/models/gt_sltk.js +3 -0
  171. package/server/models/gt_thcppstk.js +3 -0
  172. package/server/models/hanmucton.js +4 -0
  173. package/server/models/hd1.js +11 -0
  174. package/server/models/hd2.js +26 -0
  175. package/server/models/hd3.js +17 -0
  176. package/server/models/hd4.js +13 -0
  177. package/server/models/hd7.js +17 -0
  178. package/server/models/hd8.js +12 -0
  179. package/server/models/hde.js +11 -0
  180. package/server/models/hmcn.js +3 -0
  181. package/server/models/hmcnct.js +2 -0
  182. package/server/models/hspbts.js +4 -0
  183. package/server/models/htl.js +13 -0
  184. package/server/models/importexceltemplate.js +2 -0
  185. package/server/models/introducebonus.js +4 -0
  186. package/server/models/introducecode.js +3 -0
  187. package/server/models/introducer.js +4 -0
  188. package/server/models/kbbtpb.js +7 -0
  189. package/server/models/kbmPttct.js +4 -0
  190. package/server/models/kbmTkgtgt.js +5 -0
  191. package/server/models/kbm_bcdkt_old.js +4 -0
  192. package/server/models/kbm_kqhdkd_old.js +3 -0
  193. package/server/models/kbm_lcttgt_old.js +5 -0
  194. package/server/models/kbm_lctttt_old.js +4 -0
  195. package/server/models/kbm_pttct_old.js +4 -0
  196. package/server/models/kbm_tkgtgt_old.js +5 -0
  197. package/server/models/kbmbcdkt.js +4 -0
  198. package/server/models/kbmbcqt.js +4 -0
  199. package/server/models/kbmkqhdkd.js +3 -0
  200. package/server/models/kbmlcttgt.js +6 -0
  201. package/server/models/kbmlctttt.js +4 -0
  202. package/server/models/kbmtmbctc.js +4 -0
  203. package/server/models/kehoachdtcp.js +3 -0
  204. package/server/models/kehoachmh.js +8 -0
  205. package/server/models/keyresult.js +7 -0
  206. package/server/models/khunghangthanhvien.js +3 -0
  207. package/server/models/label.js +2 -0
  208. package/server/models/labelinfo.js +2 -0
  209. package/server/models/lenhcapphat.js +8 -0
  210. package/server/models/lenhsx.js +8 -0
  211. package/server/models/lienhe.js +4 -0
  212. package/server/models/like_module.js +2 -0
  213. package/server/models/link.js +2 -0
  214. package/server/models/listinfo.js +1365 -0
  215. package/server/models/loaidiem.js +2 -0
  216. package/server/models/lock.js +2 -0
  217. package/server/models/log.js +8 -0
  218. package/server/models/mailaccount.js +3 -0
  219. package/server/models/mailgroup.js +3 -0
  220. package/server/models/mailreceived.js +2 -0
  221. package/server/models/mailsent.js +2 -0
  222. package/server/models/mailtemplate.js +2 -0
  223. package/server/models/maudanhgia.js +2 -0
  224. package/server/models/menuinfo.js +2 -0
  225. package/server/models/message.js +8 -0
  226. package/server/models/message2.js +4 -0
  227. package/server/models/message2setting.js +3 -0
  228. package/server/models/moduleinfo.js +4 -0
  229. package/server/models/momo.js +18 -0
  230. package/server/models/news.js +3 -0
  231. package/server/models/newsfeed.js +4 -0
  232. package/server/models/note.js +2 -0
  233. package/server/models/notification.js +8 -0
  234. package/server/models/okr.js +4 -0
  235. package/server/models/okrdiagram.js +3 -0
  236. package/server/models/onepay.js +24 -0
  237. package/server/models/opportunity.js +4 -0
  238. package/server/models/options.js +2 -0
  239. package/server/models/originimportid.js +1 -0
  240. package/server/models/otp.js +1 -0
  241. package/server/models/parameter.js +2 -0
  242. package/server/models/participant.js +21 -0
  243. package/server/models/partner.js +1 -0
  244. package/server/models/payload.js +1 -0
  245. package/server/models/pbl.js +16 -0
  246. package/server/models/pc0.js +13 -0
  247. package/server/models/pc1.js +14 -0
  248. package/server/models/pc2.js +13 -0
  249. package/server/models/pc3.js +13 -0
  250. package/server/models/pc5.js +8 -0
  251. package/server/models/pc6.js +14 -0
  252. package/server/models/pcl.js +6 -0
  253. package/server/models/pdn.js +9 -0
  254. package/server/models/pdx.js +9 -0
  255. package/server/models/pgh.js +5 -0
  256. package/server/models/phieudanhgia.js +3 -0
  257. package/server/models/pht.js +8 -0
  258. package/server/models/phucap.js +4 -0
  259. package/server/models/pkc.js +6 -0
  260. package/server/models/pkh.js +6 -0
  261. package/server/models/pkk.js +10 -0
  262. package/server/models/pkt.js +12 -0
  263. package/server/models/pn1.js +18 -0
  264. package/server/models/pn2.js +12 -0
  265. package/server/models/pn3.js +13 -0
  266. package/server/models/pn5.js +14 -0
  267. package/server/models/pn6.js +14 -0
  268. package/server/models/pn9.js +17 -0
  269. package/server/models/pnc.js +9 -0
  270. package/server/models/pnh.js +11 -0
  271. package/server/models/pnk.js +10 -0
  272. package/server/models/po1.js +19 -0
  273. package/server/models/ppb.js +6 -0
  274. package/server/models/productcode.js +2 -0
  275. package/server/models/profile.js +4 -0
  276. package/server/models/pt1.js +12 -0
  277. package/server/models/pt5.js +8 -0
  278. package/server/models/ptl.js +5 -0
  279. package/server/models/ptthanhtoan.js +6 -0
  280. package/server/models/purchase_contract.js +17 -0
  281. package/server/models/pxc.js +9 -0
  282. package/server/models/pxh.js +11 -0
  283. package/server/models/pxk.js +9 -0
  284. package/server/models/qts.js +14 -0
  285. package/server/models/qts_dieuchinh.js +3 -0
  286. package/server/models/qts_dieuchuyen.js +4 -0
  287. package/server/models/quanhuyen.js +2 -0
  288. package/server/models/reason.js +2 -0
  289. package/server/models/receivedinvoice.js +2 -0
  290. package/server/models/reportinfo.js +5 -0
  291. package/server/models/right.js +4 -0
  292. package/server/models/rpt.js +2 -0
  293. package/server/models/rptform.js +3 -0
  294. package/server/models/rptobject.js +2 -0
  295. package/server/models/sale_contract.js +9 -0
  296. package/server/models/schedule.js +18 -0
  297. package/server/models/schedule_log.js +2 -0
  298. package/server/models/shipbook.js +12 -0
  299. package/server/models/shortcut.js +2 -0
  300. package/server/models/smsaccount.js +10 -0
  301. package/server/models/smssend.js +2 -0
  302. package/server/models/so1.js +22 -0
  303. package/server/models/so5.js +15 -0
  304. package/server/models/so9.js +19 -0
  305. package/server/models/socai.js +28 -0
  306. package/server/models/socainpp.js +18 -0
  307. package/server/models/socaitc.js +6 -0
  308. package/server/models/socaitmp.js +16 -0
  309. package/server/models/socaitt.js +4 -0
  310. package/server/models/sodiemthuong.js +4 -0
  311. package/server/models/sokho.js +27 -0
  312. package/server/models/sokhocapphat.js +18 -0
  313. package/server/models/sokhokhongton.js +19 -0
  314. package/server/models/sokhonpp.js +19 -0
  315. package/server/models/sokhotc.js +8 -0
  316. package/server/models/sokhott.js +18 -0
  317. package/server/models/sophanbokh.js +3 -0
  318. package/server/models/sosanxuat.js +5 -0
  319. package/server/models/sotinhkh.js +2 -0
  320. package/server/models/spdd_ck.js +3 -0
  321. package/server/models/spdd_dk.js +3 -0
  322. package/server/models/step.js +2 -0
  323. package/server/models/strategicdiagram.js +3 -0
  324. package/server/models/strategicgoal.js +4 -0
  325. package/server/models/strategickpi.js +6 -0
  326. package/server/models/strategicobjective.js +5 -0
  327. package/server/models/strategicplan.js +5 -0
  328. package/server/models/subscribe.js +2 -0
  329. package/server/models/support.js +2 -0
  330. package/server/models/synctime.js +2 -0
  331. package/server/models/sys_job_queue_book_keeping.js +2 -0
  332. package/server/models/sysconfig.js +2 -0
  333. package/server/models/sysgroup.js +2 -0
  334. package/server/models/tableinfo.js +3 -0
  335. package/server/models/task.js +9 -0
  336. package/server/models/tc.js +2 -0
  337. package/server/models/tdttco.js +9 -0
  338. package/server/models/tdttco_tt.js +5 -0
  339. package/server/models/tdttno.js +9 -0
  340. package/server/models/tdttno_tt.js +5 -0
  341. package/server/models/templaterpt.js +2 -0
  342. package/server/models/templatestore.js +3 -0
  343. package/server/models/templatevoucher.js +3 -0
  344. package/server/models/tinhthanh.js +2 -0
  345. package/server/models/tokens.js +3 -0
  346. package/server/models/tontucthoi.js +9 -0
  347. package/server/models/trangthai.js +4 -0
  348. package/server/models/trangthaiapp.js +4 -0
  349. package/server/models/transaction.js +16 -0
  350. package/server/models/trialinfo.js +2 -0
  351. package/server/models/user.js +40 -0
  352. package/server/models/usergroup.js +7 -0
  353. package/server/models/vanchuyen.js +12 -0
  354. package/server/models/vat.js +3 -0
  355. package/server/models/vatra.js +6 -0
  356. package/server/models/vatvao.js +6 -0
  357. package/server/models/versioninfo.js +2 -0
  358. package/server/models/vietqrbanks.js +2 -0
  359. package/server/models/vsocai.js +6 -0
  360. package/server/models/wallet.js +8 -0
  361. package/server/models/warranty.js +3 -0
  362. package/server/models/warrantyclaim.js +2 -0
  363. package/server/models/warrantypolicy.js +1 -0
  364. package/server/models/workflow.js +4 -0
  365. package/server/models/xaphuong.js +2 -0
  366. package/server/models/xhd.js +10 -0
  367. package/server/models/ytdd_ck.js +4 -0
  368. package/server/models/ytdd_dk.js +4 -0
  369. package/server/models/zalo.js +17 -0
  370. package/server/modules/lists/bg-cddiem.js +6 -0
  371. package/server/modules/lists/bg-cddt.js +7 -0
  372. package/server/modules/lists/bg-cdkh.js +11 -0
  373. package/server/modules/lists/bg-cdnphep.js +6 -0
  374. package/server/modules/lists/bg-cdtk.js +9 -0
  375. package/server/modules/lists/bg-cdvt.js +8 -0
  376. package/server/modules/lists/bg-cdvtnpp.js +8 -0
  377. package/server/modules/lists/bg-fifo_dk.js +8 -0
  378. package/server/modules/lists/ls-account.js +4 -0
  379. package/server/modules/lists/ls-afflink.js +3 -0
  380. package/server/modules/lists/ls-approve.js +5 -0
  381. package/server/modules/lists/ls-assabcihandler.js +3 -0
  382. package/server/modules/lists/ls-assbank.js +3 -0
  383. package/server/modules/lists/ls-assbooking.js +20 -0
  384. package/server/modules/lists/ls-assbuy.js +8 -0
  385. package/server/modules/lists/ls-asscashwithdraw.js +8 -0
  386. package/server/modules/lists/ls-assinvestment.js +31 -0
  387. package/server/modules/lists/ls-assissue.js +3 -0
  388. package/server/modules/lists/ls-asskey.js +41 -0
  389. package/server/modules/lists/ls-assneedtobuy.js +10 -0
  390. package/server/modules/lists/ls-assperiod.js +19 -0
  391. package/server/modules/lists/ls-assproduct.js +9 -0
  392. package/server/modules/lists/ls-assprofitsharing.js +8 -0
  393. package/server/modules/lists/ls-assreceiver.js +3 -0
  394. package/server/modules/lists/ls-assrequest.js +4 -0
  395. package/server/modules/lists/ls-asssell.js +13 -0
  396. package/server/modules/lists/ls-asstransaction.js +3 -0
  397. package/server/modules/lists/ls-asstransfer.js +3 -0
  398. package/server/modules/lists/ls-assuser_identity.js +1 -0
  399. package/server/modules/lists/ls-asswithdraw.js +12 -0
  400. package/server/modules/lists/ls-bangtinhluong.js +2 -0
  401. package/server/modules/lists/ls-calllog.js +4 -0
  402. package/server/modules/lists/ls-cart.js +14 -0
  403. package/server/modules/lists/ls-chamcong.js +3 -0
  404. package/server/modules/lists/ls-chat_session.js +5 -0
  405. package/server/modules/lists/ls-checkin.js +24 -0
  406. package/server/modules/lists/ls-checkinactivity.js +8 -0
  407. package/server/modules/lists/ls-checkinkpi.js +3 -0
  408. package/server/modules/lists/ls-checkinlocation.js +1 -0
  409. package/server/modules/lists/ls-chitietluongds.js +4 -0
  410. package/server/modules/lists/ls-chitieukpi.js +1 -0
  411. package/server/modules/lists/ls-chudethaoluan.js +1 -0
  412. package/server/modules/lists/ls-ckgtluong.js +1 -0
  413. package/server/modules/lists/ls-comment.js +9 -0
  414. package/server/modules/lists/ls-congdoansx.js +3 -0
  415. package/server/modules/lists/ls-congtacvien.js +5 -0
  416. package/server/modules/lists/ls-consultant.js +2 -0
  417. package/server/modules/lists/ls-contract.js +7 -0
  418. package/server/modules/lists/ls-csluongtheods.js +1 -0
  419. package/server/modules/lists/ls-csphucap.js +1 -0
  420. package/server/modules/lists/ls-ctds.js +4 -0
  421. package/server/modules/lists/ls-ctds2.js +4 -0
  422. package/server/modules/lists/ls-currency.js +1 -0
  423. package/server/modules/lists/ls-customer.js +22 -0
  424. package/server/modules/lists/ls-customer_care.js +1 -0
  425. package/server/modules/lists/ls-datlich.js +9 -0
  426. package/server/modules/lists/ls-dckhauhaots.js +3 -0
  427. package/server/modules/lists/ls-deal.js +3 -0
  428. package/server/modules/lists/ls-diagram.js +1 -0
  429. package/server/modules/lists/ls-dkhoc.js +6 -0
  430. package/server/modules/lists/ls-dknphep.js +1 -0
  431. package/server/modules/lists/ls-dmban.js +4 -0
  432. package/server/modules/lists/ls-dmbp.js +7 -0
  433. package/server/modules/lists/ls-dmca.js +1 -0
  434. package/server/modules/lists/ls-dmchietkhau.js +19 -0
  435. package/server/modules/lists/ls-dmchietkhauhd.js +4 -0
  436. package/server/modules/lists/ls-dmchinhanh.js +1 -0
  437. package/server/modules/lists/ls-dmchucvu.js +2 -0
  438. package/server/modules/lists/ls-dmcpmh.js +1 -0
  439. package/server/modules/lists/ls-dmdiemthuong.js +4 -0
  440. package/server/modules/lists/ls-dmdoi.js +4 -0
  441. package/server/modules/lists/ls-dmdoituongdanhgia.js +1 -0
  442. package/server/modules/lists/ls-dmdt.js +11 -0
  443. package/server/modules/lists/ls-dmdvt.js +2 -0
  444. package/server/modules/lists/ls-dmgiaban.js +4 -0
  445. package/server/modules/lists/ls-dmgiamua.js +4 -0
  446. package/server/modules/lists/ls-dmgiathitruong.js +15 -0
  447. package/server/modules/lists/ls-dmgiathitruong_ngay.js +2 -0
  448. package/server/modules/lists/ls-dmgiathitruong_theodoi.js +1 -0
  449. package/server/modules/lists/ls-dmhoahonghd.js +1 -0
  450. package/server/modules/lists/ls-dmhoahongnpp.js +1 -0
  451. package/server/modules/lists/ls-dmkc.js +3 -0
  452. package/server/modules/lists/ls-dmkho.js +7 -0
  453. package/server/modules/lists/ls-dmkhuyenmai.js +5 -0
  454. package/server/modules/lists/ls-dmkhuyenmaihd.js +3 -0
  455. package/server/modules/lists/ls-dmletet.js +1 -0
  456. package/server/modules/lists/ls-dmlo.js +1 -0
  457. package/server/modules/lists/ls-dmloaicong.js +1 -0
  458. package/server/modules/lists/ls-dmloaits.js +1 -0
  459. package/server/modules/lists/ls-dmnckkm.js +7 -0
  460. package/server/modules/lists/ls-dmnghiepvu.js +1 -0
  461. package/server/modules/lists/ls-dmnguonvon.js +1 -0
  462. package/server/modules/lists/ls-dmnhnv.js +6 -0
  463. package/server/modules/lists/ls-dmnhtask.js +5 -0
  464. package/server/modules/lists/ls-dmnkh.js +6 -0
  465. package/server/modules/lists/ls-dmntt.js +6 -0
  466. package/server/modules/lists/ls-dmnv.js +14 -0
  467. package/server/modules/lists/ls-dmnvt.js +7 -0
  468. package/server/modules/lists/ls-dmphi.js +6 -0
  469. package/server/modules/lists/ls-dmqct.js +2 -0
  470. package/server/modules/lists/ls-dmqddvt.js +3 -0
  471. package/server/modules/lists/ls-dmtanggiamts.js +1 -0
  472. package/server/modules/lists/ls-dmto.js +5 -0
  473. package/server/modules/lists/ls-dmtt.js +7 -0
  474. package/server/modules/lists/ls-dmvt.js +52 -0
  475. package/server/modules/lists/ls-dmyt.js +1 -0
  476. package/server/modules/lists/ls-dokho.js +1 -0
  477. package/server/modules/lists/ls-dvcs.js +1 -0
  478. package/server/modules/lists/ls-ecomcategories.js +5 -0
  479. package/server/modules/lists/ls-ecomcategories_cty.js +5 -0
  480. package/server/modules/lists/ls-email.js +4 -0
  481. package/server/modules/lists/ls-events.js +3 -0
  482. package/server/modules/lists/ls-evoucher.js +3 -0
  483. package/server/modules/lists/ls-experiencejourney.js +1 -0
  484. package/server/modules/lists/ls-experiencejourneydata.js +3 -0
  485. package/server/modules/lists/ls-experiencejourneypersona.js +4 -0
  486. package/server/modules/lists/ls-experiencejourneystage.js +1 -0
  487. package/server/modules/lists/ls-fbconversation.js +2 -0
  488. package/server/modules/lists/ls-fbmessage.js +2 -0
  489. package/server/modules/lists/ls-fbpage.js +11 -0
  490. package/server/modules/lists/ls-fbpost.js +2 -0
  491. package/server/modules/lists/ls-file.js +38 -0
  492. package/server/modules/lists/ls-financialroadmap.js +3 -0
  493. package/server/modules/lists/ls-flow.js +6 -0
  494. package/server/modules/lists/ls-flowdata.js +1 -0
  495. package/server/modules/lists/ls-flowpending.js +3 -0
  496. package/server/modules/lists/ls-folder.js +1 -0
  497. package/server/modules/lists/ls-forminfo.js +1 -0
  498. package/server/modules/lists/ls-giaoca.js +5 -0
  499. package/server/modules/lists/ls-group.js +5 -0
  500. package/server/modules/lists/ls-hmcn.js +2 -0
  501. package/server/modules/lists/ls-hspbts.js +3 -0
  502. package/server/modules/lists/ls-introducebonus.js +4 -0
  503. package/server/modules/lists/ls-introducecode.js +10 -0
  504. package/server/modules/lists/ls-introducer.js +21 -0
  505. package/server/modules/lists/ls-kbm-bcdkt.js +1 -0
  506. package/server/modules/lists/ls-kbm-bcqt.js +5 -0
  507. package/server/modules/lists/ls-kbm-kqhdkd.js +1 -0
  508. package/server/modules/lists/ls-kbm-lcttgt.js +1 -0
  509. package/server/modules/lists/ls-kbm-lctttt.js +1 -0
  510. package/server/modules/lists/ls-kbm-pttct.js +3 -0
  511. package/server/modules/lists/ls-kbm-tkgtgt.js +3 -0
  512. package/server/modules/lists/ls-kbm-tmbctc.js +3 -0
  513. package/server/modules/lists/ls-kehoachdtcp.js +4 -0
  514. package/server/modules/lists/ls-keyresult.js +7 -0
  515. package/server/modules/lists/ls-khunghangthanhvien.js +1 -0
  516. package/server/modules/lists/ls-label.js +1 -0
  517. package/server/modules/lists/ls-lienhe.js +4 -0
  518. package/server/modules/lists/ls-like-module.js +1 -0
  519. package/server/modules/lists/ls-link.js +1 -0
  520. package/server/modules/lists/ls-loaidiem.js +1 -0
  521. package/server/modules/lists/ls-lock.js +1 -0
  522. package/server/modules/lists/ls-log.js +3 -0
  523. package/server/modules/lists/ls-mailaccount.js +5 -0
  524. package/server/modules/lists/ls-mailreceived.js +5 -0
  525. package/server/modules/lists/ls-mailsent.js +4 -0
  526. package/server/modules/lists/ls-mailtemplate.js +4 -0
  527. package/server/modules/lists/ls-maudanhgia.js +3 -0
  528. package/server/modules/lists/ls-message2.js +8 -0
  529. package/server/modules/lists/ls-message2setting.js +5 -0
  530. package/server/modules/lists/ls-news.js +7 -0
  531. package/server/modules/lists/ls-newsfeed.js +4 -0
  532. package/server/modules/lists/ls-note.js +6 -0
  533. package/server/modules/lists/ls-okr.js +5 -0
  534. package/server/modules/lists/ls-okrdiagram.js +1 -0
  535. package/server/modules/lists/ls-opportunity.js +5 -0
  536. package/server/modules/lists/ls-options.js +4 -0
  537. package/server/modules/lists/ls-parameter.js +3 -0
  538. package/server/modules/lists/ls-participant.js +12 -0
  539. package/server/modules/lists/ls-phieudanhgia.js +7 -0
  540. package/server/modules/lists/ls-phucap.js +2 -0
  541. package/server/modules/lists/ls-productcode.js +9 -0
  542. package/server/modules/lists/ls-profile.js +1 -0
  543. package/server/modules/lists/ls-ptthanhtoan.js +3 -0
  544. package/server/modules/lists/ls-qts-dieuchinh.js +2 -0
  545. package/server/modules/lists/ls-qts-dieuchuyen.js +8 -0
  546. package/server/modules/lists/ls-reason.js +1 -0
  547. package/server/modules/lists/ls-rpt.js +5 -0
  548. package/server/modules/lists/ls-rptform.js +3 -0
  549. package/server/modules/lists/ls-shortcut.js +1 -0
  550. package/server/modules/lists/ls-smsaccount.js +1 -0
  551. package/server/modules/lists/ls-smssend.js +3 -0
  552. package/server/modules/lists/ls-sosanxuat.js +4 -0
  553. package/server/modules/lists/ls-step.js +1 -0
  554. package/server/modules/lists/ls-strategicdiagram.js +1 -0
  555. package/server/modules/lists/ls-strategicgoal.js +3 -0
  556. package/server/modules/lists/ls-strategickpi.js +7 -0
  557. package/server/modules/lists/ls-strategicobjective.js +3 -0
  558. package/server/modules/lists/ls-strategicplan.js +6 -0
  559. package/server/modules/lists/ls-support.js +3 -0
  560. package/server/modules/lists/ls-task.js +28 -0
  561. package/server/modules/lists/ls-tc.js +1 -0
  562. package/server/modules/lists/ls-templaterpt.js +5 -0
  563. package/server/modules/lists/ls-templatevoucher.js +1 -0
  564. package/server/modules/lists/ls-tontucthoi.js +3 -0
  565. package/server/modules/lists/ls-trangthaiapp.js +3 -0
  566. package/server/modules/lists/ls-transaction.js +4 -0
  567. package/server/modules/lists/ls-usergroup.js +7 -0
  568. package/server/modules/lists/ls-vat.js +1 -0
  569. package/server/modules/lists/ls-vatra.js +5 -0
  570. package/server/modules/lists/ls-vatvao.js +6 -0
  571. package/server/modules/lists/ls-warranty.js +3 -0
  572. package/server/modules/lists/ls-workflow.js +1 -0
  573. package/server/modules/lists/ls_hanmucton.js +3 -0
  574. package/server/modules/lists/ls_hspb.js +4 -0
  575. package/server/modules/lists/ls_spdd_ck.js +3 -0
  576. package/server/modules/lists/ls_spdd_dk.js +3 -0
  577. package/server/modules/lists/ls_ytdd_ck.js +4 -0
  578. package/server/modules/lists/ls_ytdd_dk.js +4 -0
  579. package/server/modules/lists/sys-attend.js +4 -0
  580. package/server/modules/lists/sys-follow.js +4 -0
  581. package/server/modules/lists/sys-right.js +2 -0
  582. package/server/modules/public/app.js +4 -0
  583. package/server/modules/public/approve.js +37 -0
  584. package/server/modules/public/callin.js +7 -0
  585. package/server/modules/public/comment.js +5 -0
  586. package/server/modules/public/dmnvt.js +4 -0
  587. package/server/modules/public/dmvt.js +9 -0
  588. package/server/modules/public/file.js +11 -0
  589. package/server/modules/public/forminfo.js +1 -0
  590. package/server/modules/public/group.js +4 -0
  591. package/server/modules/public/introducecode.js +1 -0
  592. package/server/modules/public/listinfo.js +1 -0
  593. package/server/modules/public/media-webhook.js +1 -0
  594. package/server/modules/public/partner.js +1 -0
  595. package/server/modules/public/paymentCallback.js +32 -0
  596. package/server/modules/public/province.js +1 -0
  597. package/server/modules/public/ptthanhtoan.js +4 -0
  598. package/server/modules/public/subscribe.js +30 -0
  599. package/server/modules/public/support.js +3 -0
  600. package/server/modules/public/tableinfo.js +1 -0
  601. package/server/modules/public/trialinfo.js +4 -0
  602. package/server/modules/public/versioninfo.js +1 -0
  603. package/server/modules/reports/calc-tinhgiafifo.js +8 -0
  604. package/server/modules/reports/calc-tinhgiatb.js +7 -0
  605. package/server/modules/reports/calc-tinhgiathanh.js +7 -0
  606. package/server/modules/reports/calc-tinhkhauhaots.js +3 -0
  607. package/server/modules/reports/calc-tinhluong.js +68 -0
  608. package/server/modules/reports/rp-analyzedata.js +6 -0
  609. package/server/modules/reports/rp-assbonus.js +4 -0
  610. package/server/modules/reports/rp-assinterest.js +8 -0
  611. package/server/modules/reports/rp-assproductowners.js +3 -0
  612. package/server/modules/reports/rp-asssupply.js +1 -0
  613. package/server/modules/reports/rp-asstransferlog.js +10 -0
  614. package/server/modules/reports/rp-backup.js +4 -0
  615. package/server/modules/reports/rp-banggiatb.js +3 -0
  616. package/server/modules/reports/rp-bangtinhkhauhao.js +6 -0
  617. package/server/modules/reports/rp-baoCaoFifoKy.js +1 -0
  618. package/server/modules/reports/rp-baocaokhachhang.js +6 -0
  619. package/server/modules/reports/rp-bcdkt.js +11 -0
  620. package/server/modules/reports/rp-bcintroducebonus.js +4 -0
  621. package/server/modules/reports/rp-bckhtiemnang.js +3 -0
  622. package/server/modules/reports/rp-bcqt.js +85 -0
  623. package/server/modules/reports/rp-bkchamcong.js +5 -0
  624. package/server/modules/reports/rp-bkct.js +13 -0
  625. package/server/modules/reports/rp-bkshipbook.js +8 -0
  626. package/server/modules/reports/rp-bkvanchuyen.js +8 -0
  627. package/server/modules/reports/rp-bkvatra.js +7 -0
  628. package/server/modules/reports/rp-bkvatvao.js +7 -0
  629. package/server/modules/reports/rp-capnhatsocaitc.js +4 -0
  630. package/server/modules/reports/rp-cdpsdiem.js +4 -0
  631. package/server/modules/reports/rp-cdpsdt.js +5 -0
  632. package/server/modules/reports/rp-cdpskh.js +8 -0
  633. package/server/modules/reports/rp-cdpsnphep.js +3 -0
  634. package/server/modules/reports/rp-cdpstk.js +4 -0
  635. package/server/modules/reports/rp-chitietchitientheohoadon.js +12 -0
  636. package/server/modules/reports/rp-chitiettaisan.js +13 -0
  637. package/server/modules/reports/rp-chitietthutientheohoadon.js +13 -0
  638. package/server/modules/reports/rp-ckcn.js +3 -0
  639. package/server/modules/reports/rp-ckdiem.js +2 -0
  640. package/server/modules/reports/rp-cktk.js +3 -0
  641. package/server/modules/reports/rp-ckvt.js +10 -0
  642. package/server/modules/reports/rp-ckvttheokho.js +4 -0
  643. package/server/modules/reports/rp-ckvttheotg.js +4 -0
  644. package/server/modules/reports/rp-ckvttt.js +3 -0
  645. package/server/modules/reports/rp-congnophaithutheotuoino.js +3 -0
  646. package/server/modules/reports/rp-congnophaitratheotuoino.js +3 -0
  647. package/server/modules/reports/rp-congnosapthu.js +4 -0
  648. package/server/modules/reports/rp-congnosaptra.js +4 -0
  649. package/server/modules/reports/rp-congviectheobp.js +9 -0
  650. package/server/modules/reports/rp-congviectheodt.js +8 -0
  651. package/server/modules/reports/rp-congviectheokh.js +8 -0
  652. package/server/modules/reports/rp-congviectheonv.js +9 -0
  653. package/server/modules/reports/rp-congviectheotimeline.js +6 -0
  654. package/server/modules/reports/rp-ctbanle.js +15 -0
  655. package/server/modules/reports/rp-ctbanle2.js +20 -0
  656. package/server/modules/reports/rp-ctbanlectv.js +20 -0
  657. package/server/modules/reports/rp-ctbanlenpp.js +24 -0
  658. package/server/modules/reports/rp-ctdanhgianhanvien.js +8 -0
  659. package/server/modules/reports/rp-cthangbanbitralai.js +4 -0
  660. package/server/modules/reports/rp-ctmuahang.js +7 -0
  661. package/server/modules/reports/rp-cttralaihang.js +4 -0
  662. package/server/modules/reports/rp-databanle.js +10 -0
  663. package/server/modules/reports/rp-diemthuong.js +2 -0
  664. package/server/modules/reports/rp-dkcn.js +3 -0
  665. package/server/modules/reports/rp-dktk.js +2 -0
  666. package/server/modules/reports/rp-dsnhanviencm.js +9 -0
  667. package/server/modules/reports/rp-dsnhanvientb.js +9 -0
  668. package/server/modules/reports/rp-dtbanlekempk.js +12 -0
  669. package/server/modules/reports/rp-dtbanletheoct.js +22 -0
  670. package/server/modules/reports/rp-dtbanletheoctkempk.js +25 -0
  671. package/server/modules/reports/rp-dtbanletheokh.js +17 -0
  672. package/server/modules/reports/rp-dtbanletheokhnpp.js +19 -0
  673. package/server/modules/reports/rp-dtbanletheokho.js +15 -0
  674. package/server/modules/reports/rp-dtbanletheonam.js +3 -0
  675. package/server/modules/reports/rp-dtbanletheongay.js +1 -0
  676. package/server/modules/reports/rp-dtbanletheonpp.js +23 -0
  677. package/server/modules/reports/rp-dtbanletheonv.js +19 -0
  678. package/server/modules/reports/rp-dtbanletheoquy.js +3 -0
  679. package/server/modules/reports/rp-dtbanletheosp.js +9 -0
  680. package/server/modules/reports/rp-dtbanletheospnpp.js +6 -0
  681. package/server/modules/reports/rp-dtbanletheothang.js +3 -0
  682. package/server/modules/reports/rp-dtbanletheothungan.js +12 -0
  683. package/server/modules/reports/rp-dtbanletheovt.js +2 -0
  684. package/server/modules/reports/rp-dtbanletheovtnpp.js +2 -0
  685. package/server/modules/reports/rp-dutoanthuchitheodt.js +4 -0
  686. package/server/modules/reports/rp-getPXC2PNC.js +8 -0
  687. package/server/modules/reports/rp-getariseofaccountsbymonth.js +4 -0
  688. package/server/modules/reports/rp-getbtpb.js +6 -0
  689. package/server/modules/reports/rp-getcashbycashier.js +7 -0
  690. package/server/modules/reports/rp-getcschietkhau.js +5 -0
  691. package/server/modules/reports/rp-getdinhmuc4lenhcp.js +7 -0
  692. package/server/modules/reports/rp-getdinhmuc4pxk.js +9 -0
  693. package/server/modules/reports/rp-getdk4pht.js +8 -0
  694. package/server/modules/reports/rp-getdk4pkc.js +10 -0
  695. package/server/modules/reports/rp-getdttheoca.js +5 -0
  696. package/server/modules/reports/rp-getinvoice2pay.js +4 -0
  697. package/server/modules/reports/rp-getinvoice2receive.js +4 -0
  698. package/server/modules/reports/rp-getinvoice2return.js +5 -0
  699. package/server/modules/reports/rp-getinvoice2return_bl.js +6 -0
  700. package/server/modules/reports/rp-getkehoachmh4lenhcp.js +4 -0
  701. package/server/modules/reports/rp-getkhauhao.js +7 -0
  702. package/server/modules/reports/rp-getluong.js +8 -0
  703. package/server/modules/reports/rp-getluongchuyen.js +5 -0
  704. package/server/modules/reports/rp-getpn2fee.js +5 -0
  705. package/server/modules/reports/rp-getpn2return.js +5 -0
  706. package/server/modules/reports/rp-getthanhpham4pnk.js +7 -0
  707. package/server/modules/reports/rp-getvc2xhd.js +11 -0
  708. package/server/modules/reports/rp-gt_cpnvltt.js +6 -0
  709. package/server/modules/reports/rp-hangbanbitralai.js +5 -0
  710. package/server/modules/reports/rp-hangthanhvien.js +3 -0
  711. package/server/modules/reports/rp-hoadonbanhangtheohantt.js +5 -0
  712. package/server/modules/reports/rp-hoadonmuahangtheohantt.js +5 -0
  713. package/server/modules/reports/rp-hoahong.js +15 -0
  714. package/server/modules/reports/rp-kcsns.js +19 -0
  715. package/server/modules/reports/rp-kgchamcong.js +1 -0
  716. package/server/modules/reports/rp-khoaso.js +11 -0
  717. package/server/modules/reports/rp-kiemtrasocaitcvssocai.js +6 -0
  718. package/server/modules/reports/rp-kqdanhgianhanvien.js +5 -0
  719. package/server/modules/reports/rp-kqhdkd.js +1 -0
  720. package/server/modules/reports/rp-lcttgt.js +16 -0
  721. package/server/modules/reports/rp-lctttt.js +11 -0
  722. package/server/modules/reports/rp-linkslist.js +4 -0
  723. package/server/modules/reports/rp-phanbochitienchohoadon.js +11 -0
  724. package/server/modules/reports/rp-phanbothutienchohoadon.js +11 -0
  725. package/server/modules/reports/rp-ptbitralai.js +7 -0
  726. package/server/modules/reports/rp-ptcttct.js +24 -0
  727. package/server/modules/reports/rp-ptdonhang.js +8 -0
  728. package/server/modules/reports/rp-pttct.js +52 -0
  729. package/server/modules/reports/rp-pttctkho.js +32 -0
  730. package/server/modules/reports/rp-pttctkho2.js +29 -0
  731. package/server/modules/reports/rp-referredusers.js +5 -0
  732. package/server/modules/reports/rp-sctbhxh.js +4 -0
  733. package/server/modules/reports/rp-sctcnkh.js +11 -0
  734. package/server/modules/reports/rp-sctdiem.js +3 -0
  735. package/server/modules/reports/rp-sctdt.js +7 -0
  736. package/server/modules/reports/rp-sctdtcp.js +11 -0
  737. package/server/modules/reports/rp-sctluong.js +6 -0
  738. package/server/modules/reports/rp-sctthuetncn.js +4 -0
  739. package/server/modules/reports/rp-scttk.js +9 -0
  740. package/server/modules/reports/rp-sctvt.js +5 -0
  741. package/server/modules/reports/rp-sctvt_sl.js +5 -0
  742. package/server/modules/reports/rp-sctvtnpp.js +6 -0
  743. package/server/modules/reports/rp-sctvttt.js +5 -0
  744. package/server/modules/reports/rp-search.js +4 -0
  745. package/server/modules/reports/rp-socai.js +6 -0
  746. package/server/modules/reports/rp-socaitk.js +1 -0
  747. package/server/modules/reports/rp-sochut.js +7 -0
  748. package/server/modules/reports/rp-sokho.js +7 -0
  749. package/server/modules/reports/rp-sokhott.js +5 -0
  750. package/server/modules/reports/rp-sonkbh.js +5 -0
  751. package/server/modules/reports/rp-sonkc.js +6 -0
  752. package/server/modules/reports/rp-sonkct.js +5 -0
  753. package/server/modules/reports/rp-sonkmh.js +5 -0
  754. package/server/modules/reports/rp-sonktt.js +5 -0
  755. package/server/modules/reports/rp-soquy.js +11 -0
  756. package/server/modules/reports/rp-sosanhkhvatt.js +13 -0
  757. package/server/modules/reports/rp-sosanhkhvatt2.js +5 -0
  758. package/server/modules/reports/rp-sotaisan.js +13 -0
  759. package/server/modules/reports/rp-sotiengui.js +7 -0
  760. package/server/modules/reports/rp-taodinhmuctudkhoc.js +5 -0
  761. package/server/modules/reports/rp-thbanhangkempk.js +28 -0
  762. package/server/modules/reports/rp-thdanhgianhanvien.js +9 -0
  763. package/server/modules/reports/rp-thgt.js +6 -0
  764. package/server/modules/reports/rp-thnxt.js +11 -0
  765. package/server/modules/reports/rp-thnxt_sl.js +9 -0
  766. package/server/modules/reports/rp-thnxtnpp.js +10 -0
  767. package/server/modules/reports/rp-thnxttt.js +9 -0
  768. package/server/modules/reports/rp-tkbanhangtheogioithieu.js +9 -0
  769. package/server/modules/reports/rp-tkgioithieukh.js +4 -0
  770. package/server/modules/reports/rp-tkgtgt.js +76 -0
  771. package/server/modules/reports/rp-tkgtgt_old.js +7 -0
  772. package/server/modules/reports/rp-tmbctc.js +20 -0
  773. package/server/modules/reports/rp-tonghopbanhang.js +6 -0
  774. package/server/modules/reports/rp-tonghopmuahang.js +5 -0
  775. package/server/modules/reports/rp-tonghoptralaihang.js +5 -0
  776. package/server/modules/reports/rp-tongquanbanle.js +20 -0
  777. package/server/modules/reports/rp-tongquanbds.js +3 -0
  778. package/server/modules/reports/rp-tongquancongty.js +6 -0
  779. package/server/modules/reports/rp-tongquanctvnpp.js +12 -0
  780. package/server/modules/reports/rp-tongquannvbh.js +14 -0
  781. package/server/modules/reports/rp-tongquannvnpp.js +5 -0
  782. package/server/modules/reports/rp-uoctinhnvl.js +11 -0
  783. package/server/modules/reports/rp-wallet.js +3 -0
  784. package/server/modules/reports/rpt-tkdiemtichluy.js +9 -0
  785. package/server/modules/systems/sys-app.js +34 -0
  786. package/server/modules/systems/sys-colleague.js +11 -0
  787. package/server/modules/systems/sys-data_list_config.js +1 -0
  788. package/server/modules/systems/sys-domain.js +1 -0
  789. package/server/modules/systems/sys-ecomproductlines.js +1 -0
  790. package/server/modules/systems/sys-exportexceltemplate.js +1 -0
  791. package/server/modules/systems/sys-fieldright.js +1 -0
  792. package/server/modules/systems/sys-importexceltemplate.js +1 -0
  793. package/server/modules/systems/sys-labelinfo.js +4 -0
  794. package/server/modules/systems/sys-listinfo.js +10 -0
  795. package/server/modules/systems/sys-menuinfo.js +4 -0
  796. package/server/modules/systems/sys-message.js +14 -0
  797. package/server/modules/systems/sys-moduleinfo.js +4 -0
  798. package/server/modules/systems/sys-notification.js +8 -0
  799. package/server/modules/systems/sys-quanhuyen.js +1 -0
  800. package/server/modules/systems/sys-reportinfo.js +5 -0
  801. package/server/modules/systems/sys-rptobject.js +1 -0
  802. package/server/modules/systems/sys-schedule.js +10 -0
  803. package/server/modules/systems/sys-sysconfig.js +1 -0
  804. package/server/modules/systems/sys-sysgroup.js +1 -0
  805. package/server/modules/systems/sys-tableinfo.js +1 -0
  806. package/server/modules/systems/sys-templatestore.js +5 -0
  807. package/server/modules/systems/sys-tinhthanh.js +1 -0
  808. package/server/modules/systems/sys-token.js +3 -0
  809. package/server/modules/systems/sys-trangthai.js +3 -0
  810. package/server/modules/systems/sys-trialinfo.js +1 -0
  811. package/server/modules/systems/sys-user.js +45 -0
  812. package/server/modules/systems/sys-users.js +10 -0
  813. package/server/modules/systems/sys-versioninfo.js +1 -0
  814. package/server/modules/systems/sys-vietqrbanks.js +1 -0
  815. package/server/modules/systems/sys-xaphuong.js +1 -0
  816. package/server/modules/vouchers/vo-banggiaban.js +8 -0
  817. package/server/modules/vouchers/vo-bc1.js +34 -0
  818. package/server/modules/vouchers/vo-bc5.js +15 -0
  819. package/server/modules/vouchers/vo-bg1.js +10 -0
  820. package/server/modules/vouchers/vo-bg2.js +12 -0
  821. package/server/modules/vouchers/vo-bn1.js +36 -0
  822. package/server/modules/vouchers/vo-bn5.js +15 -0
  823. package/server/modules/vouchers/vo-dh2.js +35 -0
  824. package/server/modules/vouchers/vo-dinhmucsx.js +6 -0
  825. package/server/modules/vouchers/vo-dkb.js +21 -0
  826. package/server/modules/vouchers/vo-dn0.js +9 -0
  827. package/server/modules/vouchers/vo-dnm.js +20 -0
  828. package/server/modules/vouchers/vo-hd1.js +37 -0
  829. package/server/modules/vouchers/vo-hd2.js +108 -0
  830. package/server/modules/vouchers/vo-hd3.js +38 -0
  831. package/server/modules/vouchers/vo-hd4.js +13 -0
  832. package/server/modules/vouchers/vo-hd7.js +29 -0
  833. package/server/modules/vouchers/vo-hd8.js +29 -0
  834. package/server/modules/vouchers/vo-hde.js +39 -0
  835. package/server/modules/vouchers/vo-htl.js +11 -0
  836. package/server/modules/vouchers/vo-kbbtpb.js +6 -0
  837. package/server/modules/vouchers/vo-kehoachmh.js +11 -0
  838. package/server/modules/vouchers/vo-lenhcapphat.js +9 -0
  839. package/server/modules/vouchers/vo-lenhsx.js +12 -0
  840. package/server/modules/vouchers/vo-pbl.js +94 -0
  841. package/server/modules/vouchers/vo-pc0.js +14 -0
  842. package/server/modules/vouchers/vo-pc1.js +31 -0
  843. package/server/modules/vouchers/vo-pc2.js +25 -0
  844. package/server/modules/vouchers/vo-pc3.js +14 -0
  845. package/server/modules/vouchers/vo-pc5.js +15 -0
  846. package/server/modules/vouchers/vo-pc6.js +19 -0
  847. package/server/modules/vouchers/vo-pcl.js +7 -0
  848. package/server/modules/vouchers/vo-pdn.js +11 -0
  849. package/server/modules/vouchers/vo-pdx.js +9 -0
  850. package/server/modules/vouchers/vo-pgh.js +16 -0
  851. package/server/modules/vouchers/vo-pht.js +6 -0
  852. package/server/modules/vouchers/vo-pkc.js +5 -0
  853. package/server/modules/vouchers/vo-pkh.js +9 -0
  854. package/server/modules/vouchers/vo-pkk.js +12 -0
  855. package/server/modules/vouchers/vo-pkt.js +12 -0
  856. package/server/modules/vouchers/vo-pn1.js +30 -0
  857. package/server/modules/vouchers/vo-pn2.js +17 -0
  858. package/server/modules/vouchers/vo-pn3.js +18 -0
  859. package/server/modules/vouchers/vo-pn5.js +18 -0
  860. package/server/modules/vouchers/vo-pn6.js +18 -0
  861. package/server/modules/vouchers/vo-pn9.js +23 -0
  862. package/server/modules/vouchers/vo-pnc.js +19 -0
  863. package/server/modules/vouchers/vo-pnh.js +17 -0
  864. package/server/modules/vouchers/vo-pnk.js +14 -0
  865. package/server/modules/vouchers/vo-pnknpp.js +12 -0
  866. package/server/modules/vouchers/vo-po1.js +14 -0
  867. package/server/modules/vouchers/vo-ppb.js +8 -0
  868. package/server/modules/vouchers/vo-pt1.js +20 -0
  869. package/server/modules/vouchers/vo-pt5.js +15 -0
  870. package/server/modules/vouchers/vo-ptl.js +8 -0
  871. package/server/modules/vouchers/vo-purchase_contract.js +9 -0
  872. package/server/modules/vouchers/vo-pxc.js +24 -0
  873. package/server/modules/vouchers/vo-pxh.js +18 -0
  874. package/server/modules/vouchers/vo-pxk.js +15 -0
  875. package/server/modules/vouchers/vo-pxknpp.js +14 -0
  876. package/server/modules/vouchers/vo-qts.js +12 -0
  877. package/server/modules/vouchers/vo-sale_contract.js +11 -0
  878. package/server/modules/vouchers/vo-shipbook.js +17 -0
  879. package/server/modules/vouchers/vo-so1.js +125 -0
  880. package/server/modules/vouchers/vo-so5.js +57 -0
  881. package/server/modules/vouchers/vo-so7.js +97 -0
  882. package/server/modules/vouchers/vo-so9.js +119 -0
  883. package/server/modules/vouchers/vo-vanchuyen.js +14 -0
  884. package/server/modules/vouchers/vo-xhd.js +33 -0
@@ -0,0 +1,19 @@
1
+ const moment=require("moment"),sokhonppSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_gd:{type:String,default:"0",maxlength:32,trim:!0},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},nxt:{type:Number,required:!0},ma_nt:{type:String,default:"VND",required:!0,uppercase:!0,
2
+ maxlength:32,trim:!0},ty_gia:{type:Number,default:1},ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024,trim:!0},ma_dvt:{type:String,maxlength:32,trim:!0},ma_kho:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},sl_nhap:{type:Number,default:0},sl_xuat:{type:Number,default:0},he_so_qd:{type:Number,default:1},sl_nhap_qd:{type:Number,default:0},sl_xuat_qd:{type:Number,default:0},pn_gia_tb:{type:Boolean,default:!1},px_gia_dd:{type:Boolean,default:!1},gia_von_nt:{type:Number,default:0},
3
+ gia_von:{type:Number,default:0},tien_hang_nt:{type:Number,default:0},tien_hang:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_phi_nt:{type:Number,default:0},tien_phi:{type:Number,default:0},tien_cp_nt:{type:Number,default:0},tien_cp:{type:Number,default:0},tien_hang_nk:{type:Number,default:0},tien_hang_nk_nt:{type:Number,default:0},thue_suat_nk:{type:Number,default:0},tien_thue_nk:{type:Number,default:0},tien_thue_nk_nt:{type:Number,
4
+ default:0},tien_nhap_nt:{type:Number,default:0},tien_nhap:{type:Number,default:0},tien_xuat:{type:Number,default:0},tien_xuat_nt:{type:Number,default:0},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},gia_ban_ct:{type:Number,default:0},gia_ban_ct_nt:{type:Number,default:0},tien_hang_ct_nt:{type:Number,default:0},tien_hang_ct:{type:Number,default:0},tien_ct:{type:Number,default:0},tien_ct_nt:{type:Number,default:0},thue_suat:{type:Number,
5
+ default:0},tien_thue_nt:{type:Number,default:0},tien_thue:{type:Number,default:0},tk_vt:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_gv:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_du:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_tl:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_dt:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_ck:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},dien_giai:{type:String,default:"",
6
+ maxlength:1024},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},han_sd:{type:Date},ma_vt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt1:{type:String,
7
+ default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_sp:{type:String,default:"",uppercase:!0,maxlength:1024,trim:!0},sl_sp:Number,ma_dvt_sp:{type:String,maxlength:32,trim:!0},ma_tt1_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3_sp:{type:String,default:"",uppercase:!0,maxlength:32,
8
+ trim:!0},gio:Number,ngay:Number,thang:Number,quy:Number,nam:Number,ma_kenh:String,ma_td1:Schema.Types.Mixed,ma_td2:Schema.Types.Mixed,ma_td3:Schema.Types.Mixed,ma_td4:Schema.Types.Mixed,ma_td5:Schema.Types.Mixed,ma_td6:Schema.Types.Mixed,ma_td7:Schema.Types.Mixed,ma_td8:Schema.Types.Mixed,ma_td9:Schema.Types.Mixed,pt_thanh_toan:String,pt_thanh_toan2:String,tien_paymentByPoints:Number,tien_evoucher:Number,cashier:String,ma_cum_chi_tiet:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ten_cum_chi_tiet:{type:String,
9
+ default:"",maxlength:1024},ma_cong_doan:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},id_lenhsx:{type:String,maxlength:1024},id_dinhmucsx:{type:String,maxlength:1024},id_lenhcapphat:{type:String,maxlength:1024},id_cs:{type:String,maxlength:1024},ma_ca:{type:String,uppercase:!0,maxlength:32,trim:!0},trang_thai:{type:String,maxlength:32},id_reason:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,exfields_detail:Schema.Types.Mixed,user_nv:String,ty_le_hoa_hong:Number,tien_hoa_hong:Number,
10
+ chuyen_ngay:Boolean,tk_no_hoa_hong:String,tk_co_hoa_hong:String,user_gt:String,ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,chuyen_ngay_gt:Boolean,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,user_ctv:String,ty_le_hoa_hong_ctv:Number,tien_hoa_hong_ctv:Number,chuyen_ngay_ctv:Boolean,tk_cn_ctv:String,tk_cp_ctv:String,user_ql:String,ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,chuyen_ngay_ql:Boolean,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,line:Number,status:{type:Boolean,default:!0},
11
+ date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},id_client:String,listinfo_code:String},{toJSON:{virtuals:!0}});
12
+ sokhonppSchema.pre("save",function($next$$){this.ma_nt==="VND"?(this.tien_nhap_nt=Math.roundBy(this.tien_nhap_nt,0),this.tien_xuat_nt=Math.roundBy(this.tien_xuat_nt,0),this.tien_nhap=this.tien_nhap_nt,this.tien_xuat=this.tien_xuat_nt):(this.tien_nhap=Math.roundBy(this.tien_nhap,0),this.tien_xuat=Math.roundBy(this.tien_xuat,0));let $ngay_ct$$=moment(this.ngay_ct);this.gio=$ngay_ct$$.get("hours");this.ngay=$ngay_ct$$.get("dates");this.quy=$ngay_ct$$.get("quarters");this.thang=$ngay_ct$$.get("months")+
13
+ 1;this.nam=$ngay_ct$$.get("year");this.ngay_ct=$ngay_ct$$.startOf("date").toDate();$next$$()});
14
+ (global.configs||{}).createIndexes&&(sokhonppSchema.index({id_app:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_dvcs:1}),sokhonppSchema.index({id_app:1,so_ct:-1}),sokhonppSchema.index({id_app:1,so_ct:1,ngay_ct:-1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_ct:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_vt:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_lo:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_lo:1,han_sd:-1}),sokhonppSchema.index({id_app:1,
15
+ ngay_ct:-1,ma_vt:1,ma_tt1:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_tt2:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_tt3:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_kho:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_lo:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_lo:1,han_sd:-1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_tt1:1}),sokhonppSchema.index({id_app:1,
16
+ ngay_ct:-1,ma_kho:1,ma_vt:1,ma_tt2:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_tt3:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_kho_n:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_kho_x:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_kh:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_bp:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_phi:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_sp:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_nv:1}),sokhonppSchema.index({id_app:1,
17
+ ngay_ct:-1,ma_dt:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_kenh:1}),sokhonppSchema.index({id_ct:1}),sokhonppSchema.index({id_app:1,id_ct:1}),sokhonppSchema.index({id_app:1,id_cs:1}),sokhonppSchema.index({id_app:1,id_cs_ck:1}),sokhonppSchema.index({id_app:1,id_lenhsx:1}),sokhonppSchema.index({id_app:1,id_dinhmucsx:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,cashier:1}),sokhonppSchema.index({id_app:1,gio:1}),sokhonppSchema.index({id_app:1,ngay:1}),sokhonppSchema.index({id_app:1,thang:1}),sokhonppSchema.index({id_app:1,
18
+ quy:1}),sokhonppSchema.index({id_app:1,nam:-1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_td1:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_td2:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,ma_td3:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,user_nv:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,user_ctv:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,user_ql:1}),sokhonppSchema.index({id_app:1,ngay_ct:-1,user_gt:1}),sokhonppSchema.index({id_app:1,date_created:-1}));
19
+ const model=mongoose.models.sokhonpp||mongoose.model("sokhonpp",sokhonppSchema);module.exports=model;
@@ -0,0 +1,8 @@
1
+ const sokhotcSchema=new Schema({id_app:{type:String,required:!1,maxlength:1024},ma_dvcs:{type:String,required:!1,maxlength:1024},ma_ct:{type:String,required:!1,uppercase:!0,maxlength:32,trim:!0},ngay_ct:{type:Date,required:!1},nxt:{type:Number,required:!1},ma_nt:{type:String,default:"VND",required:!1,uppercase:!0,maxlength:32,trim:!0},ty_gia:{type:Number,default:1},ma_vt:{type:String,required:!1,uppercase:!0,maxlength:1024,trim:!0},ma_dvt:{type:String,maxlength:32,trim:!0},ma_kho:{type:String,required:!1,
2
+ uppercase:!0,maxlength:32,trim:!0},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_sp:{type:String,default:"",uppercase:!0,maxlength:1024,trim:!0},ma_cong_doan:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},pn_gia_tb:{type:Boolean,default:!1},px_gia_dd:{type:Boolean,
3
+ default:!1},sl_nhap:{type:Number,default:0},sl_xuat:{type:Number,default:0},he_so_qd:{type:Number,default:1},sl_nhap_qd:{type:Number,default:0},sl_xuat_qd:{type:Number,default:0},gia_von_nt:{type:Number,default:0},gia_von:{type:Number,default:0},tien_hang_nt:{type:Number,default:0},tien_hang:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_phi_nt:{type:Number,default:0},tien_phi:{type:Number,default:0},tien_cp_nt:{type:Number,
4
+ default:0},tien_cp:{type:Number,default:0},tien_hang_nk:{type:Number,default:0},tien_hang_nk_nt:{type:Number,default:0},thue_suat_nk:{type:Number,default:0},tien_thue_nk:{type:Number,default:0},tien_thue_nk_nt:{type:Number,default:0},tien_nhap_nt:{type:Number,default:0},tien_nhap:{type:Number,default:0},tien_xuat:{type:Number,default:0},tien_xuat_nt:{type:Number,default:0},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},
5
+ gia_ban_ct:{type:Number,default:0},gia_ban_ct_nt:{type:Number,default:0},tien_hang_ct_nt:{type:Number,default:0},tien_hang_ct:{type:Number,default:0},tien_ct:{type:Number,default:0},tien_ct_nt:{type:Number,default:0},thue_suat:{type:Number,default:0},tien_thue_nt:{type:Number,default:0},tien_thue:{type:Number,default:0},tien_paymentByPoints:Number,tien_evoucher:Number,sl_sp:Number,id_client:String,listinfo_code:String},{toJSON:{virtuals:!0}});
6
+ (global.configs||{}).createIndexes&&(sokhotcSchema.index({id_app:1}),sokhotcSchema.index({id_app:1,ngay_ct:-1}),sokhotcSchema.index({id_app:1,ngay_ct:-1,ma_dvcs:1}),sokhotcSchema.index({id_app:1,ngay_ct:-1,ma_ct:1}),sokhotcSchema.index({id_app:1,ngay_ct:-1,ma_vt:1}),sokhotcSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_lo:1}),sokhotcSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_lo:1,han_sd:-1}),sokhotcSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_tt1:1}),sokhotcSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,
7
+ ma_tt2:1}),sokhotcSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_tt3:1}),sokhotcSchema.index({id_app:1,ngay_ct:-1,ma_kho:1}),sokhotcSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1}),sokhotcSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_lo:1}),sokhotcSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_lo:1,han_sd:-1}),sokhotcSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_tt1:1}),sokhotcSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_tt2:1}),sokhotcSchema.index({id_app:1,ngay_ct:-1,
8
+ ma_kho:1,ma_vt:1,ma_tt3:1}),sokhotcSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,nxt:1,pn_gia_tb:1}),sokhotcSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,nxt:1,px_gia_dd:1}));const model=mongoose.models.sokhotc||mongoose.model("sokhotc",sokhotcSchema);if((global.configs||{}).createIndexes)model.on("index",async function($err$$){$err$$?Logger.error("sokhotc index error",$err$$):console.info("sokhotc indexing complete")});module.exports=model;
@@ -0,0 +1,18 @@
1
+ const moment=require("moment"),sokhottSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_gd:{type:String,default:"0",maxlength:32,trim:!0},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},nxt:{type:Number,required:!0},ma_nt:{type:String,default:"VND",required:!0,uppercase:!0,
2
+ maxlength:32,trim:!0},ty_gia:{type:Number,default:1},ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024,trim:!0},ma_dvt:{type:String,maxlength:32,trim:!0},ma_kho:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_kho_n:{type:String},ma_kho_x:{type:String},sl_nhap:{type:Number,default:0},sl_xuat:{type:Number,default:0},he_so_qd:{type:Number,default:1},sl_nhap_qd:{type:Number,default:0},sl_xuat_qd:{type:Number,default:0},pn_gia_tb:{type:Boolean,default:!1},px_gia_dd:{type:Boolean,
3
+ default:!1},gia_von_nt:{type:Number,default:0},gia_von:{type:Number,default:0},tien_hang_nt:{type:Number,default:0},tien_hang:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_phi_nt:{type:Number,default:0},tien_phi:{type:Number,default:0},tien_cp_nt:{type:Number,default:0},tien_cp:{type:Number,default:0},tien_hang_nk:{type:Number,default:0},tien_hang_nk_nt:{type:Number,default:0},thue_suat_nk:{type:Number,default:0},tien_thue_nk:{type:Number,
4
+ default:0},tien_thue_nk_nt:{type:Number,default:0},tien_nhap_nt:{type:Number,default:0},tien_nhap:{type:Number,default:0},tien_xuat:{type:Number,default:0},tien_xuat_nt:{type:Number,default:0},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},gia_ban_ct:{type:Number,default:0},gia_ban_ct_nt:{type:Number,default:0},tien_hang_ct_nt:{type:Number,default:0},tien_hang_ct:{type:Number,default:0},tien_ct:{type:Number,default:0},
5
+ tien_ct_nt:{type:Number,default:0},thue_suat:{type:Number,default:0},tien_thue_nt:{type:Number,default:0},tien_thue:{type:Number,default:0},tk_vt:{type:String,uppercase:!0,maxlength:32},tk_gv:{type:String,uppercase:!0,maxlength:32},tk_du:{type:String,uppercase:!0,maxlength:32},tk_tl:{type:String,uppercase:!0,maxlength:32},tk_dt:{type:String,uppercase:!0,maxlength:32},tk_ck:{type:String,uppercase:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},dien_giai:{type:String,
6
+ default:"",maxlength:1024},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},han_sd:{type:Date},ma_vt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},
7
+ ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_sp:{type:String,default:"",uppercase:!0,maxlength:1024,trim:!0},sl_sp:Number,ma_dvt_sp:{type:String,maxlength:32,trim:!0},ma_tt1_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3_sp:{type:String,default:"",uppercase:!0,
8
+ maxlength:32,trim:!0},gio:Number,ngay:Number,thang:Number,quy:Number,nam:Number,ma_kenh:String,ma_td1:Schema.Types.Mixed,ma_td2:Schema.Types.Mixed,ma_td3:Schema.Types.Mixed,ma_td4:Schema.Types.Mixed,ma_td5:Schema.Types.Mixed,ma_td6:Schema.Types.Mixed,ma_td7:Schema.Types.Mixed,ma_td8:Schema.Types.Mixed,ma_td9:Schema.Types.Mixed,pt_thanh_toan:String,pt_thanh_toan2:String,tien_paymentByPoints:Number,tien_evoucher:Number,cashier:String,ma_cum_chi_tiet:{type:String,uppercase:!0,default:"",maxlength:32,
9
+ trim:!0},ten_cum_chi_tiet:{type:String,default:"",maxlength:1024},ma_cong_doan:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},id_lenhsx:{type:String,maxlength:1024},id_lenhcapphat:{type:String,maxlength:1024},id_dinhmucsx:{type:String,maxlength:1024},id_cs:{type:String,maxlength:1024},ma_ca:{type:String,uppercase:!0,maxlength:32,trim:!0},trang_thai:{type:String,maxlength:32},id_reason:{type:String,maxlength:1024,trim:!0},exfields:Schema.Types.Mixed,exfields_detail:Schema.Types.Mixed,line:Number,
10
+ status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},id_client:String,listinfo_code:String},{toJSON:{virtuals:!0}});
11
+ sokhottSchema.pre("save",function($next$$){this.ma_nt==="VND"?(this.tien_nhap_nt=Math.roundBy(this.tien_nhap_nt,0),this.tien_xuat_nt=Math.roundBy(this.tien_xuat_nt,0),this.tien_nhap=this.tien_nhap_nt,this.tien_xuat=this.tien_xuat_nt):(this.tien_nhap=Math.roundBy(this.tien_nhap,0),this.tien_xuat=Math.roundBy(this.tien_xuat,0));let $ngay_ct$$=moment(this.ngay_ct);this.gio=$ngay_ct$$.get("hours");this.ngay=$ngay_ct$$.get("dates");this.quy=$ngay_ct$$.get("quarters");this.thang=$ngay_ct$$.get("months")+
12
+ 1;this.nam=$ngay_ct$$.get("year");this.ngay_ct=$ngay_ct$$.startOf("date").toDate();$next$$()});
13
+ (global.configs||{}).createIndexes&&(sokhottSchema.index({id_app:1}),sokhottSchema.index({id_app:1,ngay_ct:-1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_dvcs:1}),sokhottSchema.index({id_app:1,so_ct:-1}),sokhottSchema.index({id_app:1,so_ct:1,ngay_ct:-1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_ct:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_vt:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_lo:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_lo:1,han_sd:-1}),sokhottSchema.index({id_app:1,
14
+ ngay_ct:-1,ma_vt:1,ma_tt1:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_tt2:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_tt3:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_kho:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_lo:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_lo:1,han_sd:-1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_tt1:1}),sokhottSchema.index({id_app:1,
15
+ ngay_ct:-1,ma_kho:1,ma_vt:1,ma_tt2:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_tt3:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_kho_n:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_kho_x:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_kh:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_bp:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_phi:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_sp:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_nv:1}),sokhottSchema.index({id_app:1,
16
+ ngay_ct:-1,ma_dt:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_kenh:1}),sokhottSchema.index({id_ct:1}),sokhottSchema.index({id_app:1,id_ct:1}),sokhottSchema.index({id_app:1,id_cs:1}),sokhottSchema.index({id_app:1,id_cs_ck:1}),sokhottSchema.index({id_app:1,id_lenhsx:1}),sokhottSchema.index({id_app:1,id_dinhmucsx:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,cashier:1}),sokhottSchema.index({id_app:1,gio:1}),sokhottSchema.index({id_app:1,ngay:1}),sokhottSchema.index({id_app:1,thang:1}),sokhottSchema.index({id_app:1,
17
+ quy:1}),sokhottSchema.index({id_app:1,nam:-1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_td1:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_td2:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,ma_td3:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,user_nv:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,user_ctv:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,user_ql:1}),sokhottSchema.index({id_app:1,ngay_ct:-1,user_gt:1}),sokhottSchema.index({id_app:1,date_created:-1}));
18
+ const model=mongoose.models.sokhott||mongoose.model("sokhott",sokhottSchema);module.exports=model;
@@ -0,0 +1,3 @@
1
+ const sophanbokhScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},nam:{type:Number,required:!0},thang:{type:Number,required:!0},id_ts:{type:String,maxlength:1024,trim:!0},nguyen_gia:{type:Number,default:0},gia_tri_da_kh:{type:Number,default:0},gia_tri_con_lai:{type:Number,default:0},gia_tri_kh_ky:{type:Number,default:0},tk_kh:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_cp:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_bp:{type:String,uppercase:!0,maxlength:32,trim:!0},
2
+ ma_phi:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_hd:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_dt:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_nv:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_sp:{type:String,uppercase:!0,maxlength:1024,trim:!0},ngay_dau_thang:Date,ngay_cuoi_thang:Date,so_ngay_kh:Number,sua_kh:{type:Boolean,default:!1},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,
3
+ default:""},user_updated:{type:String,default:""}});(global.configs||{}).createIndexes&&(sophanbokhScheam.index({status:1}),sophanbokhScheam.index({user_created:1,visible_to:1,visible_to_users:1}));module.exports=mongoose.models.sophanbokh||mongoose.model("sophanbokh",sophanbokhScheam);
@@ -0,0 +1,5 @@
1
+ const sosanxuatSchema=new global.Schema({id_app:{type:String,required:!0,maxlength:1024},id_ct:{type:String,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_gd:{type:String,default:"0",maxlength:32,trim:!0},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},id_lenhsx:{type:String,maxlength:1024,trim:!0},id_contract:{type:String,maxlength:1024,trim:!0},ma_kh:{type:String,
2
+ maxlength:32,trim:!0},ma_sp:{type:String,maxlength:1024,trim:!0},ma_dvt_sp:{type:String,maxlength:32,trim:!0},ma_cong_doan:{type:String,maxlength:32,trim:!0},stt:Number,ma_bp:String,sl_yc:Number,sl_ht:Number,dien_giai:{type:String,default:"",maxlength:1024},exfields:global.Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,
3
+ default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String]});
4
+ (global.configs||{}).createIndexes&&(sosanxuatSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1}),sosanxuatSchema.index({ma_ct:1}),sosanxuatSchema.index({id_ct:1}),sosanxuatSchema.index({trang_thai:1}),sosanxuatSchema.index({id_lenhsx:1}),sosanxuatSchema.index({id_contract:1}),sosanxuatSchema.index({ma_kh:1}),sosanxuatSchema.index({ma_sp:1}),sosanxuatSchema.index({ma_cong_doan:1}),sosanxuatSchema.index({ma_bp:1}),sosanxuatSchema.index({user_created:1,date_created:-1}),sosanxuatSchema.index({date_updated:-1}),
5
+ sosanxuatSchema.index({status:1}),sosanxuatSchema.index({user_created:1,visible_to:1,visible_to_users:1}));module.exports=global.mongoose.models.sosanxuat||global.mongoose.model("sosanxuat",sosanxuatSchema);
@@ -0,0 +1,2 @@
1
+ const sotinhkhScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},nam:{type:Number,required:!0},thang:{type:Number,required:!0},id_ts:{type:String,maxlength:1024,trim:!0},nguyen_gia:{type:Number,default:0},gia_tri_da_kh:{type:Number,default:0},gia_tri_con_lai:{type:Number,default:0},gia_tri_kh_ky:{type:Number,default:0},ngay_dau_thang:Date,ngay_cuoi_thang:Date,so_ngay_kh:Number,sua_kh:{type:Boolean,default:!1},dieuchinh:{type:Boolean,default:!1},id_ct_tang_giam_ts:String,ma_tang_giam_ts:String,
2
+ status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});(global.configs||{}).createIndexes&&(sotinhkhScheam.index({nam:1,thang:1,id_ts:1}),sotinhkhScheam.index({status:1}),sotinhkhScheam.index({id_ct_tang_giam_ts:1}),sotinhkhScheam.index({user_created:1,visible_to:1,visible_to_users:1}));module.exports=mongoose.models.sotinhkh||mongoose.model("sotinhkh",sotinhkhScheam);
@@ -0,0 +1,3 @@
1
+ const spdd_ckScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},nam:{type:Number,required:!0},thang:{type:Number,required:!0},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_sp:{type:String,required:!0,uppercase:!0,maxlength:1024},ten_sp:String,ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},ten_bp:String,id_lenhsx:{type:String,maxlength:1024},sl_dd:{type:Number,default:0},ty_le_ht:{type:Number,default:0},sl_ht_qd:{type:Number,default:0},status:{type:Boolean,default:!0},
2
+ date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});(global.configs||{}).createIndexes&&(spdd_ckScheam.index({id_app:1,nam:1,thang:1,ma_dvcs:1,ma_sp:1,ma_bp:1}),spdd_ckScheam.index({id_lenhsx:1}),spdd_ckScheam.index({ma_sp:"text",ten_sp:"text",ma_bp:"text",ten_bp:"text"},{name:"spdd_ck_index_text"}),spdd_ckScheam.index({status:1}),spdd_ckScheam.index({user_created:1,visible_to:1,visible_to_users:1}));
3
+ module.exports=mongoose.models.spdd_ck||mongoose.model("spdd_ck",spdd_ckScheam);
@@ -0,0 +1,3 @@
1
+ const spdd_dkScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},nam:{type:Number,required:!0},thang:{type:Number,required:!0},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_sp:{type:String,required:!0,uppercase:!0,maxlength:1024},ten_sp:String,ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},ten_bp:String,id_lenhsx:{type:String,maxlength:1024},sl_dd:{type:Number,default:0},ty_le_ht:{type:Number,default:0},sl_ht_qd:{type:Number,default:0},status:{type:Boolean,default:!0},
2
+ date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});(global.configs||{}).createIndexes&&(spdd_dkScheam.index({id_app:1,nam:1,thang:1,ma_dvcs:1,ma_sp:1,ma_bp:1}),spdd_dkScheam.index({id_lenhsx:1}),spdd_dkScheam.index({ma_sp:"text",ten_sp:"text",ma_bp:"text",ten_bp:"text"},{name:"spdd_dk_index_text"}),spdd_dkScheam.index({status:1}),spdd_dkScheam.index({user_created:1,visible_to:1,visible_to_users:1}));
3
+ module.exports=mongoose.models.spdd_dk||mongoose.model("spdd_dk",spdd_dkScheam);
@@ -0,0 +1,2 @@
1
+ const stepSchema=new Schema({title:{type:String,required:!0},step_style:{type:String,required:!0,lowercase:!0},actions:String,exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String]});
2
+ (global.configs||{}).createIndexes&&(stepSchema.index({id_app:1,title:1}),stepSchema.index({id_app:1,status:1}),stepSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.step||mongoose.model("step",stepSchema);module.exports=model;
@@ -0,0 +1,3 @@
1
+ const strategicdiagramSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},title:{type:String,required:!0,maxlength:1024},description:{type:String,maxlength:4E3},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String]});
2
+ (global.configs||{}).createIndexes&&(strategicdiagramSchema.index({id_app:1,title:1}),strategicdiagramSchema.index({title:"text",description:"text"}),strategicdiagramSchema.index({description:1}),strategicdiagramSchema.index({status:1}),strategicdiagramSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.strategicdiagram||mongoose.model("strategicdiagram",strategicdiagramSchema);model.referenceKeys={_id:[{model:"strategicplan",key:"id_link",error:"B\u1ea1n ph\u1ea3i xo\u00e1 t\u1ea5t c\u1ea3 chi\u1ebfn l\u01b0\u1ee3c c\u1ee7a diagram n\u00e0y tr\u01b0\u1edbc khi xo\u00e1 n\u00f3"}]};
3
+ module.exports=model;
@@ -0,0 +1,4 @@
1
+ const strategicgoalSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_link:{type:String,maxlength:1024},title:{type:String,required:!0,maxlength:1024},phu_trach:String,ten_phu_trach:String,attends:[],description:{type:String,maxlength:4E3},id_parent:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,
2
+ default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String]});
3
+ (global.configs||{}).createIndexes&&(strategicgoalSchema.index({id_app:1}),strategicgoalSchema.index({id_link:1}),strategicgoalSchema.index({id_parent:1}),strategicgoalSchema.index({title:1}),strategicgoalSchema.index({phu_trach:1}),strategicgoalSchema.index({ten_phu_trach:1}),strategicgoalSchema.index({title:"text",phu_trach:"text",ten_phu_trach:"text"},{name:"strategicgoal_index_text"}),strategicgoalSchema.index({status:1}),strategicgoalSchema.index({user_created:1,visible_to:1,visible_to_users:1}),
4
+ strategicgoalSchema.index({attends:1}));const model=mongoose.models.strategicgoal||mongoose.model("strategicgoal",strategicgoalSchema);model.referenceKeys={_id:[{model:"strategicobjective",key:"id_link",error:"B\u1ea1n ph\u1ea3i xo\u00e1 t\u1ea5t c\u1ea3 \u0111\u1ed1i t\u01b0\u1ee3ng c\u1ee7a m\u1ee5c ti\u00eau n\u00e0y tr\u01b0\u1edbc khi xo\u00e1 n\u00f3"}]};model.asyncGetScore=async $item$$=>{$item$$.score=0;return $item$$};module.exports=model;
@@ -0,0 +1,6 @@
1
+ const checkinactivity=require("./checkinkpi"),task=require("./task"),{round}=require("../libs/utils"),strategickpiSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_link:{type:String,required:!0,maxlength:1024},name:{type:String,maxlength:1024},note:{type:String,maxlength:4E3},phu_trach:String,ten_phu_trach:String,attends:[],year:{type:Number,required:!0},update_source:String,measure_as:{type:Number,default:1},current_value:{type:Number,default:0},target_value:{type:Number,default:0},
2
+ aim:{type:Number,default:1},ma_bp:{type:String,required:!0},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String]});
3
+ (global.configs||{}).createIndexes&&(strategickpiSchema.index({id_app:1,name:1}),strategickpiSchema.index({id_link:1}),strategickpiSchema.index({note:1}),strategickpiSchema.index({name:"text",phu_trach:"text",ten_phu_trach:"text",note:"text"},{name:"strategickpi_index_text"}),strategickpiSchema.index({status:1}),strategickpiSchema.index({user_created:1,visible_to:1,visible_to_users:1}),strategickpiSchema.index({phu_trach:1}),strategickpiSchema.index({ten_phu_trach:1}),strategickpiSchema.index({attends:1}));
4
+ const model=mongoose.models.strategickpi||mongoose.model("strategickpi",strategickpiSchema);
5
+ model.asyncGetScore=async $item$$=>{var $checkins_total_yearly_target$$=await checkinactivity.find({id_link:$item$$._id});$item$$.num_check_ins=$checkins_total_yearly_target$$.length;$item$$.num_tasks=await task.countDocuments({id_link:$item$$._id});$item$$.total_score=Math.abs($checkins_total_yearly_target$$.map($checkin$$=>($checkin$$.score||0)-($checkin$$.current_value||0)).reduce(($a$$,$b$$)=>$a$$+$b$$,0));$checkins_total_yearly_target$$=Math.abs($item$$.target_value-$item$$.current_value);switch($item$$.aim){case 1:$item$$.score=
6
+ $checkins_total_yearly_target$$&&$item$$.total_score?round($item$$.total_score/$checkins_total_yearly_target$$*100,2):0;break;case 2:$item$$.score=$checkins_total_yearly_target$$&&$item$$.total_score?round($item$$.total_score/$checkins_total_yearly_target$$*100,2):0;break;case 3:$item$$.score=0}return $item$$};module.exports=model;
@@ -0,0 +1,5 @@
1
+ const strategicobjectiveSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_link:{type:String,maxlength:1024},title:{type:String,required:!0,maxlength:1024},type:{type:String,maxlength:1024},phu_trach:String,ten_phu_trach:String,attends:[],description:{type:String,maxlength:4E3},start_date:Date,due_date:Date,id_parent:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},
2
+ user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String]});
3
+ (global.configs||{}).createIndexes&&(strategicobjectiveSchema.index({id_app:1,title:1,type:1}),strategicobjectiveSchema.index({id_link:1}),strategicobjectiveSchema.index({id_parent:1}),strategicobjectiveSchema.index({title:"text",phu_trach:"text",ten_phu_trach:"text",description:"text"},{name:"strategicobject_index_text"}),strategicobjectiveSchema.index({status:1}),strategicobjectiveSchema.index({user_created:1,visible_to:1,visible_to_users:1}),strategicobjectiveSchema.index({attends:1}),strategicobjectiveSchema.index({phu_trach:1}),
4
+ strategicobjectiveSchema.index({ten_phu_trach:1}),strategicobjectiveSchema.index({description:1}),strategicobjectiveSchema.index({start_date:1}),strategicobjectiveSchema.index({due_date:1}));const model=mongoose.models.strategicobjective||mongoose.model("strategicobjective",strategicobjectiveSchema);model.referenceKeys={_id:[{model:"strategickpi",key:"id_link",error:"B\u1ea1n ph\u1ea3i xo\u00e1 t\u1ea5t c\u1ea3 KPI c\u1ee7a \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0y tr\u01b0\u1edbc khi xo\u00e1 n\u00f3"}]};
5
+ module.exports=model;
@@ -0,0 +1,5 @@
1
+ const strategicplanSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_link:{type:String,maxlength:1024},title:{type:String,required:!0,maxlength:1024},type:{type:String,maxlength:1024},phu_trach:String,ten_phu_trach:String,attends:[],description:{type:String,maxlength:4E3},start_year:Number,number_of_years:Number,trang_thai:String,id_parent:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,
2
+ default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String]});
3
+ (global.configs||{}).createIndexes&&(strategicplanSchema.index({id_app:1}),strategicplanSchema.index({id_link:1}),strategicplanSchema.index({id_parent:1}),strategicplanSchema.index({title:1}),strategicplanSchema.index({title:"text",phu_trach:"text",ten_phu_trach:"text",description:"text"},{name:"strategicplan_index_text"}),strategicplanSchema.index({status:1}),strategicplanSchema.index({user_created:1,visible_to:1,visible_to_users:1}),strategicplanSchema.index({trang_thai:1}),strategicplanSchema.index({attends:1}),
4
+ strategicplanSchema.index({phu_trach:1}),strategicplanSchema.index({ten_phu_trach:1}));const model=mongoose.models.strategicplan||mongoose.model("strategicplan",strategicplanSchema);model.referenceKeys={_id:[{model:"strategicplan",key:"id_parent",error:"B\u1ea1n ph\u1ea3i xo\u00e1 t\u1ea5t c\u1ea3 chi\u1ebfn l\u01b0\u1ee3c con c\u1ee7a chi\u1ebfn l\u01b0\u1ee3c n\u00e0y tr\u01b0\u1edbc khi xo\u00e1 n\u00f3"},{model:"strategicgoal",key:"id_link",error:"B\u1ea1n ph\u1ea3i xo\u00e1 t\u1ea5t c\u1ea3 m\u1ee5c ti\u00eau c\u1ee7a chi\u1ebfn l\u01b0\u1ee3c n\u00e0y tr\u01b0\u1edbc khi xo\u00e1 n\u00f3"}]};
5
+ module.exports=model;
@@ -0,0 +1,2 @@
1
+ const subscribeSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},email:{type:String,required:!0},unsubcribe:Boolean,date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});(global.configs||{}).createIndexes&&(subscribeSchema.index({id_app:1,email:1}),subscribeSchema.index({email:"text"}),subscribeSchema.index({status:1}),subscribeSchema.index({user_created:1,visible_to:1,visible_to_users:1}));
2
+ const model=mongoose.models.subscribe||mongoose.model("subscribe",subscribeSchema);module.exports=model;
@@ -0,0 +1,2 @@
1
+ const supportSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_link:String,collection_link:String,support_user:{type:String,lowercase:!0},chuc_vu:{type:String,required:!0},email:{type:String},phone:{type:String,required:!0},description:{type:String},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
2
+ (global.configs||{}).createIndexes&&(supportSchema.index({id_app:1,id_link:1,support_user:1,email:1,chuc_vu:1,phone:1}),supportSchema.index({support_user:"text",email:"text",chuc_vu:"text",phone:"text",description:"text"},{name:"support_index_text"}),supportSchema.index({description:1}),supportSchema.index({status:1}),supportSchema.index({user_created:1,visible_to:1,visible_to_users:1}));module.exports=mongoose.models.support||mongoose.model("support",supportSchema);
@@ -0,0 +1,2 @@
1
+ const synctimeSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},code:{type:String,uppercase:!0,required:!0},date:{type:Date},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});(global.configs||{}).createIndexes&&(synctimeSchema.index({id_app:1,code:1}),synctimeSchema.index({status:1}),synctimeSchema.index({user_created:1,visible_to:1,visible_to_users:1}));
2
+ const model=mongoose.models.synctime||mongoose.model("synctime",synctimeSchema);module.exports=model;
@@ -0,0 +1,2 @@
1
+ const JobQueueSchema=new Schema({id_app:{type:String,required:!0},job_type:{type:String,required:!0},pending_dates:[String],processing_dates:[String],status_task:{type:String,default:"IDLE"},updated_at:{type:Date,default:Date.now},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});JobQueueSchema.index({id_app:1,job_type:1},{unique:!0});
2
+ const model=mongoose.models.synctime||mongoose.model("sys_job_queue_book_keeping",JobQueueSchema);module.exports=model;
@@ -0,0 +1,2 @@
1
+ const sysconfigSchema=new Schema({code:{type:String,required:!0},title:{type:String,required:!0},value:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
2
+ (global.configs||{}).createIndexes&&(sysconfigSchema.index({code:"text",title:"text",value:"text"},{name:"sysconfig_index_text"}),sysconfigSchema.index({code:1}),sysconfigSchema.index({title:1}),sysconfigSchema.index({value:1}),sysconfigSchema.index({status:1}),sysconfigSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.sysconfig||mongoose.model("sysconfig",sysconfigSchema);module.exports=model;
@@ -0,0 +1,2 @@
1
+ const sysgroupSchema=new Schema({group_type:{type:String,uppercase:!0,required:!0,maxlength:1024},group_name:{type:String,required:!0,maxlength:1024},group_name_en:{type:String,maxlength:1024},color:{type:String,maxlength:32},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],
2
+ update_right:[String],delete_right:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String]});(global.configs||{}).createIndexes&&(sysgroupSchema.index({group_type:1,group_name:1}),sysgroupSchema.index({group_name:"text"}),sysgroupSchema.index({status:1}),sysgroupSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.sysgroup||mongoose.model("sysgroup",sysgroupSchema);module.exports=model;
@@ -0,0 +1,3 @@
1
+ const tableinfoSchema=new global.Schema({code:{type:String,uppercase:!0,required:!0,trim:!0},title:{type:String,uppercase:!0,required:!0},headers:[{line:Number,hide:String,cells:[{header:String,field:String,rowSpan:Number,colSpan:Number,textAlign:String,index:Number,dataType:String,readOnly:Boolean,hide:Boolean,hide_when:String,width:Number,color:String,bold:Boolean,italic:Boolean,small:Boolean,label:String,maximumFractionDigits:Number,style:String}]}],rows:[{line:Number,hide:String,cells:[{field:String,
2
+ rowSpan:Number,colSpan:Number,textAlign:String,index:Number,dataType:String,readOnly:Boolean,hide:Boolean,hide_when:String,width:Number,color:String,bold:Boolean,italic:Boolean,small:Boolean,label:String,maximumFractionDigits:Number,style:String}]}],description:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
3
+ (global.configs||{}).createIndexes&&(tableinfoSchema.index({code:"text",title:"text"}),tableinfoSchema.index({code:1}),tableinfoSchema.index({title:1}),tableinfoSchema.index({status:1}),tableinfoSchema.index({user_created:1,visible_to:1,visible_to_users:1}));var model=global.mongoose.models.tableinfo||global.mongoose.model("tableinfo",tableinfoSchema);module.exports=model;
@@ -0,0 +1,9 @@
1
+ const taskSchema=new Schema({id_app:{type:String,required:!0},ten_cv:{type:String,required:!0},id_link:{type:String},id_job:{type:String},id_ct:{type:String},id_kh:{type:String,default:""},id_dt:{type:String,default:""},ten_kh:String,id_bp:{type:String,default:""},ten_bp:String,id_lh:{type:String,default:""},id_dokho:{type:String},diem_toi_thieu:Number,diem_toi_da:Number,diem_du_tinh:Number,chia_diem:Boolean,he_so_chia_diem:Schema.Types.Mixed,mieu_ta:{type:String},ghi_chu:{type:String},nh_cv:{type:String},
2
+ ten_nh_cv:String,ma_loai_cv:String,phu_trach:{type:String,lowercase:!0},ten_phu_trach:String,location:{type:String},attends:[String],attend_groups:[String],nguoi_kiem_tra:String,nguoi_thuc_hien:String,start_date:{type:Date},due_date:{type:Date},finished_date:{type:Date},estimate_complete_hour:Number,complete_hour:Number,nhac_nho_truoc:{type:Number,default:60},reminder:{type:Date},repeat:{type:Number,default:0},priority:{type:Number,default:1},progress:{type:String,default:"0"},percent:{type:Number,
3
+ default:0,max:100},exfields:Schema.Types.Mixed,labels:[String],todos:Schema.Types.Mixed,stt:{type:Number,default:0},saved:Boolean,ma_ct:{type:String,uppercase:!0},so_ct:{type:String,uppercase:!0},ngay_ct:Date,ma_nt:{type:String,uppercase:!0},ty_gia:Number,thu_phi:Number,da_thu:Number,tk_no:{type:String,uppercase:!0},tk_co:{type:String,uppercase:!0},phi_dich_vu_1_lan:Number,ty_le_hoa_hong:Number,tien_hoa_hong:Number,tk_no_hh:{type:String,uppercase:!0},tk_co_hh:{type:String,uppercase:!0},ma_dvcs:String,
4
+ group_id_link:String,group_name_link:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String]});
5
+ (global.configs||{}).createIndexes&&(taskSchema.index({id_app:1,start_date:-1}),taskSchema.index({id_app:1,start_date:-1,due_date:-1}),taskSchema.index({id_app:1,start_date:-1,ten_cv:1}),taskSchema.index({id_app:1,start_date:-1,nh_cv:1}),taskSchema.index({id_app:1,start_date:-1,phu_trach:1,ten_phu_trach:1}),taskSchema.index({id_app:1,start_date:-1,user_created:1}),taskSchema.index({id_app:1,start_date:-1,date_created:-1}),taskSchema.index({id_app:1,start_date:-1,labels:1}),taskSchema.index({id_app:1,
6
+ start_date:-1,nguoi_thuc_hien:1,nguoi_kiem_tra:1}),taskSchema.index({id_app:1,start_date:-1,ma_loai_cv:1}),taskSchema.index({id_app:1,id_ct:1}),taskSchema.index({id_app:1,id_kh:1,ten_kh:1}),taskSchema.index({id_app:1,id_bp:1,ten_bp:1}),taskSchema.index({id_app:1,so_ct:1}),taskSchema.index({id_link:1}),taskSchema.index({id_app:1,id_job:1}),taskSchema.index({id_app:1,progress:1}),taskSchema.index({id_app:1,saved:1}),taskSchema.index({id_app:1,attends:1}),taskSchema.index({id_app:1,status:1}),taskSchema.index({id_app:1,
7
+ start_date:-1,progress:1,phu_trach:1,user_created:1,visible_to:1,visible_to_users:1}),taskSchema.index({id_app:1,start_date:-1,progress:1,phu_trach:1,user_created:1,visible_to:1,visible_to_users:1,due_date:-1}),taskSchema.index({id_app:1,start_date:-1,progress:1,phu_trach:1,user_created:1,visible_to:1,visible_to_users:1,ten_cv:1}),taskSchema.index({id_app:1,start_date:-1,progress:1,phu_trach:1,user_created:1,visible_to:1,visible_to_users:1,id_kh:1,ten_kh:1}),taskSchema.index({id_app:1,start_date:-1,
8
+ progress:1,phu_trach:1,user_created:1,visible_to:1,visible_to_users:1,id_bp:1,ten_bp:1}),taskSchema.index({id_app:1,start_date:-1,progress:1,phu_trach:1,user_created:1,visible_to:1,visible_to_users:1,saved:1}),taskSchema.index({id_app:1,start_date:-1,progress:1,phu_trach:1,user_created:1,visible_to:1,visible_to_users:1,nh_cv:1}),taskSchema.index({id_app:1,start_date:-1,progress:1,phu_trach:1,user_created:1,visible_to:1,visible_to_users:1,ma_loai_cv:1}),taskSchema.index({id_app:1,ten_cv:"text",phu_trach:"text",
9
+ ten_phu_trach:"text",ten_nh_cv:"text",ten_bp:"text",ten_kh:"text"},{name:"task_index_text"}));const model=mongoose.models.task||mongoose.model("task",taskSchema);if((global.configs||{}).createIndexes)model.on("index",async function($err$$){$err$$?Logger.error("task index error",$err$$):console.info("task indexing complete")});model.calcCompleteHours=$obj$$=>$obj$$.complete_hour;module.exports=model;
@@ -0,0 +1,2 @@
1
+ const tcSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_tc:{type:String,required:!0,maxlength:32},ten_tc:{type:String,required:!0,maxlength:1024},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
2
+ (global.configs||{}).createIndexes&&(tcSchema.index({id_app:1,ma_tc:1,ten_tc:1}),tcSchema.index({ma_tc:"text",ten_tc:"text"}),tcSchema.index({status:1}),tcSchema.index({user_created:1,visible_to:1,visible_to_users:1}));module.exports=mongoose.models.tc||mongoose.model("tc",tcSchema);
@@ -0,0 +1,9 @@
1
+ const async=require("async"),moment=require("moment"),tdttcoSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ngay_hd:{type:Date,required:!0},so_hd:{type:String,uppercase:!0,maxlength:32},ma_nt:{type:String,
2
+ default:"VND",required:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},tk_co:{type:String,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},ngay_tt:Date,tat_toan:{type:Boolean,default:!1},ma_kho:{type:String,uppercase:!0,maxlength:32},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,default:"",uppercase:!0,
3
+ maxlength:32},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},exfields_detail:global.Schema.Types.Mixed,listinfo_code:String});
4
+ (global.configs||{}).createIndexes&&(tdttcoSchema.index({id_app:1,id_ct:1,ngay_ct:-1,ma_kh:1}),tdttcoSchema.index({id_app:1,tat_toan:1}),tdttcoSchema.index({id_app:1,han_tt:1,ngay_tt:-1}),tdttcoSchema.index({id_ct:1}),tdttcoSchema.index({id_app:1,so_ct:1,ngay_ct:-1}),tdttcoSchema.index({id_app:1,so_hd:1,ngay_hd:-1}),tdttcoSchema.index({id_app:1,tk_co:1}),tdttcoSchema.index({id_app:1,ma_kho:1,ma_kh:1}),tdttcoSchema.index({id_app:1,ma_kh:1}),tdttcoSchema.index({id_app:1,status:1}),tdttcoSchema.index({id_app:1,
5
+ user_created:1,visible_to:1,visible_to_users:1}));tdttcoSchema.pre("save",function($next$$){this.ngay_tt=moment(this.ngay_hd).add(this.han_tt||0,"days").toDate();$next$$()});const model=mongoose.models.tdttco||mongoose.model("tdttco",tdttcoSchema);
6
+ model.getBalance=$condition$$=>new Promise(($resolve$$,$reject$$)=>{async.series({invoices:function($callback$$){setImmediate(()=>{let $query$$={...$condition$$};delete $query$$.access_token;$query$$.id_ct&&delete $query$$.id_ct;$query$$.id_hd&&($query$$.id_ct=$query$$.id_hd,delete $query$$.id_hd);model.find($query$$).lean().then($results$$=>{let $invoices$$=[];for(let $i$$=0;$i$$<$results$$.length;$i$$++){const $invoice$$=$results$$[$i$$];$invoice$$.line=$i$$;$invoices$$.push($invoice$$)}$callback$$(null,
7
+ $invoices$$)}).catch($e$$=>{$callback$$($e$$)})})}},function($error$$,$results$$){if($error$$)return $reject$$($error$$);async.mapLimit($results$$.invoices,20,($t_invoice$$,$callback$$)=>{setImmediate(()=>{let $query$$={id_tdtt:$t_invoice$$._id,id_app:$t_invoice$$.id_app};$condition$$.id_ct&&($query$$.id_ct={$ne:$condition$$.id_ct});global.getModel("tdttco_tt").find($query$$).lean().then($results$$=>{$t_invoice$$.da_thanh_toan_nt=0;$t_invoice$$.da_thanh_toan=0;$t_invoice$$.chenh_lech_ty_gia=0;for(let $i$$=
8
+ 0;$i$$<$results$$.length;$i$$++)$t_invoice$$.da_thanh_toan_nt+=$results$$[$i$$].thanh_toan_qd,$t_invoice$$.da_thanh_toan+=$results$$[$i$$].tien,$t_invoice$$.chenh_lech_ty_gia+=$results$$[$i$$].chenh_lech_ty_gia||0;$t_invoice$$.con_lai_nt=$t_invoice$$.tien_nt-$t_invoice$$.da_thanh_toan_nt;$t_invoice$$.con_lai=$t_invoice$$.tien-$t_invoice$$.da_thanh_toan;$callback$$(null,$t_invoice$$)}).catch($e$$=>{$callback$$($e$$)})})},function($error$$,$results$$){if($error$$)return $reject$$($error$$);$resolve$$($results$$)})})});
9
+ module.exports=model;
@@ -0,0 +1,5 @@
1
+ const tdttco_ttSchema=new Schema({line:{type:Number,default:0},id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},id_tdtt:{type:String,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ma_nt:{type:String,default:"VND",required:!0,uppercase:!0,maxlength:32},
2
+ ty_gia:{type:Number,default:1},id_hd:{type:String,required:!0,maxlength:1024},ngay_hd:{type:Date,required:!0},so_hd:{type:String,required:!0,uppercase:!0,maxlength:32},ma_nt_hd:{type:String,required:!0,maxlength:32},ty_gia_hd:{type:Number,default:1},tien_hd_nt:{type:Number,default:0},da_thanh_toan_nt:{type:Number,default:0},con_lai_nt:{type:Number,default:0},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},thanh_toan_qd:{type:Number,default:0},chenh_lech_ty_gia:Number,ma_kh:{type:String,
3
+ uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},tk_co:{type:String,maxlength:32},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,
4
+ default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},exfields_detail:global.Schema.Types.Mixed,listinfo_code:String});
5
+ (global.configs||{}).createIndexes&&(tdttco_ttSchema.index({id_app:1,ma_dvcs:1,id_ct:1,id_tdtt:1}),tdttco_ttSchema.index({ngay_ct:-1}),tdttco_ttSchema.index({ma_ct:-1}),tdttco_ttSchema.index({ma_kh:1}),tdttco_ttSchema.index({id_ct:1}),tdttco_ttSchema.index({id_tdtt:1}),tdttco_ttSchema.index({status:1}),tdttco_ttSchema.index({user_created:1,visible_to:1,visible_to_users:1}));module.exports=mongoose.models.tdttco_tt||mongoose.model("tdttco_tt",tdttco_ttSchema);
@@ -0,0 +1,9 @@
1
+ const async=require("async"),moment=require("moment"),tdttnoSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ngay_hd:{type:Date,required:!0},so_hd:{type:String,uppercase:!0,maxlength:32},ma_nt:{type:String,
2
+ default:"VND",required:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},tk_no:{type:String,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},ngay_tt:Date,tat_toan:{type:Boolean,default:!1},ma_kho:{type:String,default:"",uppercase:!0,maxlength:32},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,default:"",
3
+ uppercase:!0,maxlength:32},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32},exfields_detail:global.Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},listinfo_code:String});
4
+ (global.configs||{}).createIndexes&&(tdttnoSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:1}),tdttnoSchema.index({id_app:1,tat_toan:1}),tdttnoSchema.index({id_app:1,han_tt:1,ngay_tt:-1}),tdttnoSchema.index({id_ct:1}),tdttnoSchema.index({id_app:1,so_ct:1,so_hd:1}),tdttnoSchema.index({id_app:1,ngay_ct:1}),tdttnoSchema.index({id_app:1,ngay_hd:1}),tdttnoSchema.index({id_app:1,tk_co:1}),tdttnoSchema.index({id_app:1,ma_kh:1}),tdttnoSchema.index({id_app:1,ma_kho:1}),tdttnoSchema.index({id_app:1,ma_kho:1,
5
+ ma_kh:1}),tdttnoSchema.index({id_app:1,status:1}),tdttnoSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1}));tdttnoSchema.pre("save",function($next$$){this.ngay_tt=moment(this.ngay_hd).add(this.han_tt||0,"days").toDate();$next$$()});const model=mongoose.models.tdttno||mongoose.model("tdttno",tdttnoSchema);
6
+ model.getBalance=$condition$$=>new Promise(($resolve$$,$reject$$)=>{async.series({invoices:function($callback$$){setImmediate(()=>{let $query$$={...$condition$$};delete $query$$.access_token;$query$$.id_ct&&delete $query$$.id_ct;$query$$.id_hd&&($query$$.id_ct=$query$$.id_hd,delete $query$$.id_hd);model.find($query$$).lean().then($results$$=>{let $invoices$$=[];for(let $i$$=0;$i$$<$results$$.length;$i$$++){const $invoice$$=$results$$[$i$$];$invoice$$.line=$i$$;$invoices$$.push($invoice$$)}$callback$$(null,
7
+ $invoices$$)}).catch($error$$=>{$callback$$($error$$)})})}},function($error$$,$results$$){if($error$$)return $reject$$($error$$);async.mapLimit($results$$.invoices,20,($t_invoice$$,$callback$$)=>{setImmediate(()=>{let $query$$={id_tdtt:$t_invoice$$._id,id_app:$t_invoice$$.id_app};$condition$$.id_ct&&($query$$.id_ct={$ne:$condition$$.id_ct});global.getModel("tdttno_tt").find($query$$).lean().then($results$$=>{$t_invoice$$.da_thanh_toan_nt=0;$t_invoice$$.da_thanh_toan=0;$t_invoice$$.chenh_lech_ty_gia=
8
+ 0;for(let $i$$=0;$i$$<$results$$.length;$i$$++)$t_invoice$$.da_thanh_toan_nt+=$results$$[$i$$].thanh_toan_qd,$t_invoice$$.da_thanh_toan+=$results$$[$i$$].tien,$t_invoice$$.chenh_lech_ty_gia+=$results$$[$i$$].chenh_lech_ty_gia||0;$t_invoice$$.con_lai_nt=$t_invoice$$.tien_nt-$t_invoice$$.da_thanh_toan_nt;$t_invoice$$.con_lai=$t_invoice$$.tien-$t_invoice$$.da_thanh_toan;$callback$$(null,$t_invoice$$)}).catch($error$$=>{$callback$$($error$$)})})},function($error$$,$results$$){if($error$$)return $reject$$($error$$);
9
+ $resolve$$($results$$)})})});module.exports=model;
@@ -0,0 +1,5 @@
1
+ const tdttno_ttSchema=new Schema({line:{type:Number,default:0},id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},id_tdtt:{type:String,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ma_nt:{type:String,default:"VND",required:!0,uppercase:!0,maxlength:32},
2
+ ty_gia:{type:Number,default:1},id_hd:{type:String,required:!0,maxlength:1024},ngay_hd:{type:Date,required:!0},so_hd:{type:String,required:!0,uppercase:!0,maxlength:32},ma_nt_hd:{type:String,required:!0,maxlength:32},ty_gia_hd:{type:Number,default:1},tien_hd_nt:{type:Number,default:0},da_thanh_toan_nt:{type:Number,default:0},con_lai_nt:{type:Number,default:0},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},chenh_lech_ty_gia:Number,thanh_toan_qd:{type:Number,default:0},ma_kh:{type:String,
3
+ uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},tk_no:{type:String,maxlength:32},tk_co:{type:String,maxlength:32},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32},exfields_detail:global.Schema.Types.Mixed,status:{type:Boolean,
4
+ default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},listinfo_code:String});
5
+ (global.configs||{}).createIndexes&&(tdttno_ttSchema.index({id_app:1,ma_dvcs:1,id_tdtt:1}),tdttno_ttSchema.index({ngay_ct:-1}),tdttno_ttSchema.index({ma_ct:-1}),tdttno_ttSchema.index({ma_kh:1}),tdttno_ttSchema.index({id_ct:1}),tdttno_ttSchema.index({id_tdtt:1}),tdttno_ttSchema.index({status:1}),tdttno_ttSchema.index({user_created:1,visible_to:1,visible_to_users:1}));module.exports=mongoose.models.tdttno_tt||mongoose.model("tdttno_tt",tdttno_ttSchema);
@@ -0,0 +1,2 @@
1
+ const templaterptSchema=new Schema({_id_o:{type:String,maxlength:1024},id_app:{type:String,required:!0,maxlength:1024},ma_cn:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ten_mau_in:{type:String,required:!0,maxlength:1024},html_code:{type:String,trim:!0},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
2
+ (global.configs||{}).createIndexes&&(templaterptSchema.index({id_app:1,ma_cn:1,ten_mau_in:1}),templaterptSchema.index({ma_cn:"text",ten_mau_in:"text"}),templaterptSchema.index({status:1}),templaterptSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.templaterpt||mongoose.model("templaterpt",templaterptSchema);module.exports=model;
@@ -0,0 +1,3 @@
1
+ const templatestoreSchema=new Schema({func_code:{type:String,required:!0,lowercase:!0,maxlength:32,trim:!0},func_ref:{type:String,lowercase:!0,maxlength:32,trim:!0},code:{type:String,required:!0,trim:!0},title:{type:String,required:!0,maxlength:1024},description:{type:String,maxlength:4E3},picture:{type:String},data:Schema.Types.Mixed,price:{type:Number,default:0},currency:{type:String,default:"VND"},default_when_create_app:{type:Boolean,default:!1},exfields:Schema.Types.Mixed,status:{type:Boolean,
2
+ default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:1},visible_to_users:[String],update_right:[String],delete_right:[String]});
3
+ (global.configs||{}).createIndexes&&(templatestoreSchema.index({code:1,title:1}),templatestoreSchema.index({func_code:1}),templatestoreSchema.index({func_ref:1}),templatestoreSchema.index({title:"text"},{name:"templateevoucher_index_text"}),templatestoreSchema.index({status:1}),templatestoreSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.templatestore||mongoose.model("templatestore",templatestoreSchema);module.exports=model;
@@ -0,0 +1,3 @@
1
+ const templatevoucherSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},voucher_code:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},code:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},title:{type:String,required:!0,maxlength:1024},data:Schema.Types.Mixed,exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,
2
+ default:""},visible_to:{type:Number,default:1},visible_to_users:[String],update_right:[String],delete_right:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String]});(global.configs||{}).createIndexes&&(templatevoucherSchema.index({id_app:1,voucher_code:1,code:1,title:1}),templatevoucherSchema.index({voucher_code:"text",code:"text",title:"text"},{name:"templateevoucher_index_text"}),templatevoucherSchema.index({status:1}),templatevoucherSchema.index({user_created:1,visible_to:1,visible_to_users:1}));
3
+ const model=mongoose.models.templatevoucher||mongoose.model("templatevoucher",templatevoucherSchema);module.exports=model;
@@ -0,0 +1,2 @@
1
+ const tinhthanhSchema=new Schema({ten_tinh_thanh:{type:String,required:!0,maxlength:1024,trim:!0},description:String,stt:{type:Number,default:0},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
2
+ (global.configs||{}).createIndexes&&(tinhthanhSchema.index({ten_tinh_thanh:"text"}),tinhthanhSchema.index({ten_tinh_thanh:1}),tinhthanhSchema.index({status:1}),tinhthanhSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.tinhthanh||mongoose.model("tinhthanh",tinhthanhSchema);module.exports=model;
@@ -0,0 +1,3 @@
1
+ const tokenSchema=new Schema({email:{type:String,lowercase:!0,maxlength:128,trim:!0},token:String,refreshToken:String,expires_in:Number,agent:String,ip:String,service:String,once:Boolean,used:Boolean,note:String,session_created:String,session_updated:String,only_id_app:String,id_apps:[],status:{type:Boolean,default:!0},last_access:{type:Date,default:Date.now},date_created:{type:Date,default:Date.now}});
2
+ (global.configs||{}).createIndexes&&(tokenSchema.index({email:1}),tokenSchema.index({token:1}),tokenSchema.index({token:1,used:1}),tokenSchema.index({note:1}),tokenSchema.index({only_id_app:1}),tokenSchema.index({id_apps:1}),tokenSchema.index({ip:1}),tokenSchema.index({last_access:1},{expireAfterSeconds:604800,background:!0,partialFilterExpression:{ip:{$exists:!1}}}),tokenSchema.index({session_created:1}),tokenSchema.index({session_updated:1}),tokenSchema.index({status:1}));
3
+ module.exports=mongoose.models.token||mongoose.model("token",tokenSchema);
@@ -0,0 +1,9 @@
1
+ const tontucthoiScheam=new Schema({id_app:{type:String},nam:{type:Number},ma_dvcs:{type:String,maxlength:1024},ma_vt:{type:String,uppercase:!0,maxlength:1024},ma_kho:{type:String,uppercase:!0,maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},ton00:{type:Number,default:0},du00:{type:Number,
2
+ default:0},du_nt00:{type:Number,default:0},kc_yn:{type:Boolean,default:!1},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
3
+ (global.configs||{}).createIndexes&&(tontucthoiScheam.index({id_app:1,nam:1,ma_dvcs:1,ma_vt:1,ma_kho:1,ma_lo:1,ma_tt1:1,ma_tt2:1,ma_tt3:1},{name:"tontucthoi_index_1"}),tontucthoiScheam.index({id_app:1,ma_vt:1}),tontucthoiScheam.index({id_app:1,status:1}),tontucthoiScheam.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1}));
4
+ const tontucthoi=mongoose.models.tontucthoi||mongoose.model("tontucthoi",tontucthoiScheam),ckvt=require("../libs/ckvt"),_=require("lodash"),{onAfterCommit}=require("../libs/sessionContext"),debouncedCalculators={},DEBOUNCE_WAIT_MS=1E4;
5
+ async function _runActualCalculation($sk$$,$debouncerKey$$){try{let $query$$={id_app:$sk$$.id_app,ma_vt:$sk$$.ma_vt};await tontucthoi.deleteMany($query$$);$query$$.groupBy="id_app ma_vt ma_kho ma_dvcs ma_lo ma_tt1 ma_tt2 ma_tt3 han_sd".split(" ");$query$$.ngay=new Date;const $rs$$=await new Promise(($resolve$$,$reject$$)=>{ckvt($query$$,($e$$,$rs$$)=>$e$$?$reject$$($e$$):$resolve$$($rs$$))});if($rs$$&&$rs$$.length!==0){var $validRs$$=$rs$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_kho&&$r$$.id_app);await $validRs$$.asyncJoinModel2(null,
6
+ global.getModel("dmkho"),{where:$item$$=>({id_app:$item$$.id_app,ma_kho:$item$$.ma_kho}),fields:"la_kho_online"});if($validRs$$.length>0){await tontucthoi.create($validRs$$);const $ton_kho_online_hien_tai$$=$validRs$$.filter($r$$=>$r$$.la_kho_online).map($r$$=>$r$$.ton00||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);await global.getModel("dmvt").updateOne({id_app:$sk$$.id_app,ma_vt:$sk$$.ma_vt},{ton_kho_online_hien_tai:$ton_kho_online_hien_tai$$});Logger.info(`[tinhTonTucThoi] \u2705 C\u1eadp nh\u1eadt xong ${$sk$$.ma_vt}, t\u1ed3n online: ${$ton_kho_online_hien_tai$$}`)}}else await global.getModel("dmvt").updateOne({id_app:$sk$$.id_app,
7
+ ma_vt:$sk$$.ma_vt},{ton_kho_online_hien_tai:0})}catch($e$$){Logger.error(`[tinhTonTucThoi] \u274c L\u1ed7i khi t\u00ednh to\u00e1n cho ${$debouncerKey$$}:`,$e$$)}finally{$debouncerKey$$&&delete debouncedCalculators[$debouncerKey$$]}}
8
+ tontucthoi.tinhTonTucThoi=function($sks$$,$cb$$){const $finalCallback$$=$cb$$||function($e$$){$e$$&&Logger.error("[tinhTonTucThoi] L\u1ed7i khi l\u00ean l\u1ecbch:",$e$$)};onAfterCommit(()=>{try{_.isArray($sks$$)||($sks$$=[$sks$$]);const $uniqueSks$$=_.uniq($sks$$.reverse(),!1,$sk$$=>$sk$$?`${$sk$$.id_app}:${$sk$$.ma_vt}`:null).reverse();for(const $sk$$ of $uniqueSks$$){if(!$sk$$||!$sk$$.id_app||!$sk$$.ma_vt)continue;const $key$$=`${$sk$$.id_app}:${$sk$$.ma_vt}`;debouncedCalculators[$key$$]||(debouncedCalculators[$key$$]=
9
+ _.debounce($latestSk$$=>{_runActualCalculation($latestSk$$,$key$$)},DEBOUNCE_WAIT_MS,!1));debouncedCalculators[$key$$]($sk$$)}$finalCallback$$(null)}catch($e$$){$finalCallback$$($e$$)}})};module.exports=tontucthoi;
@@ -0,0 +1,4 @@
1
+ const trangthaiSchema=new Schema({ma_ct:{type:String,uppercase:!0,required:!0,maxlength:32,trim:!0},ma_trang_thai:{type:String,uppercase:!0,required:!0,maxlength:32,trim:!0},ten_trang_thai:{type:String,required:!0,maxlength:1024},ten_trang_thai_en:{type:String,maxlength:1024},ma_trang_thai2:{type:String,uppercase:!0,maxlength:32,trim:!0},ten_trang_thai2:{type:String,maxlength:1024},ten_trang_thai_en2:{type:String,maxlength:1024},post:{type:Boolean,default:!1},post_books:{type:String,trim:!0},not_post_books:{type:String,
2
+ trim:!0},allow_delete:{type:Boolean,default:!1},allow_update:{type:Boolean,default:!1},lock_data:{type:Boolean,default:!1},check_data:{type:Boolean,default:!0},not_need_right:{type:Boolean,default:!1},description:String,stt:{type:Number,default:0},color:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
3
+ (global.configs||{}).createIndexes&&(trangthaiSchema.index({ma_ct:1}),trangthaiSchema.index({ma_ct:1,ma_trang_thai2:1}),trangthaiSchema.index({ma_ct:1,ma_trang_thai:1,ten_trang_thai:1,ten_trang_thai2:1}),trangthaiSchema.index({ma_ct:1,ma_trang_thai:1},{unique:!0}),trangthaiSchema.index({ma_trang_thai:"text",ten_trang_thai:"text",ma_ct:"text"},{name:"trangthai_index_text"}),trangthaiSchema.index({ma_ct:1,status:1}),trangthaiSchema.index({ma_ct:1,user_created:1,visible_to:1,visible_to_users:1}));
4
+ const model=mongoose.models.trangthai||mongoose.model("trangthai",trangthaiSchema);module.exports=model;
@@ -0,0 +1,4 @@
1
+ const trangthaiappSchema=new Schema({id_app:{type:String,required:!0},ma_ct:{type:String,uppercase:!0,required:!0,maxlength:32,trim:!0},ma_trang_thai:{type:String,uppercase:!0,required:!0,maxlength:32,trim:!0},ten_trang_thai:{type:String,required:!0,maxlength:1024},ten_trang_thai_en:{type:String,maxlength:1024},ma_trang_thai2:{type:String,uppercase:!0,maxlength:32,trim:!0},ten_trang_thai2:{type:String,maxlength:1024},ten_trang_thai_en2:{type:String,maxlength:1024},post:{type:Boolean,default:!1},post_sokho:{type:Boolean,
2
+ default:!1},post_socai:{type:Boolean,default:!1},allow_delete:{type:Boolean,default:!1},allow_update:{type:Boolean,default:!1},lock_data:{type:Boolean,default:!1},check_data:{type:Boolean,default:!0},not_need_right:{type:Boolean,default:!1},description:String,stt:{type:Number,default:0},color:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
3
+ (global.configs||{}).createIndexes&&(trangthaiappSchema.index({id_app:1,ma_ct:1}),trangthaiappSchema.index({ma_trang_thai:1}),trangthaiappSchema.index({ma_trang_thai2:1}),trangthaiappSchema.index({ten_trang_thai:1}),trangthaiappSchema.index({ten_trang_thai2:1}),trangthaiappSchema.index({id_app:1,ma_ct:1,ma_trang_thai:1},{unique:!0}),trangthaiappSchema.index({ma_trang_thai:"text",ten_trang_thai:"text",ma_ct:"text"},{name:"trangthaiapp_index_text"}),trangthaiappSchema.index({status:1}),trangthaiappSchema.index({user_created:1,
4
+ visible_to:1,visible_to_users:1}));const model=mongoose.models.trangthaiapp||mongoose.model("trangthaiapp",trangthaiappSchema);module.exports=model;
@@ -0,0 +1,16 @@
1
+ let wallet=require("./wallet");
2
+ const cryptoJs=require("crypto-js"),moment=require("moment"),PostSocai=require("../libs/post-socai"),senderSchema=new Schema({email:{type:String,required:!0,maxlength:128},signature:{type:String,required:!0}}),receiverSchema=new Schema({email:{type:String,required:!0}}),transactionSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_trans:{type:String,required:!0,maxlength:1024},sender:senderSchema,receiver:receiverSchema,amount:{type:Number,required:!0},denom:{type:String,default:"vnd"},
3
+ description:String,id_ct:String,so_ct:String,ngay_ct:{type:Date,default:Date.now},ma_ct:String,tk_no:String,tk_co:String,status:{type:String,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
4
+ (global.configs||{}).createIndexes&&(senderSchema.index({email:1}),receiverSchema.index({email:1}),transactionSchema.index({id_app:1}),transactionSchema.index({id_ct:1}),transactionSchema.index({"sender.email":1}),transactionSchema.index({"receiver.email":1}),transactionSchema.index({id_trans:1}),transactionSchema.index({ma_ct:1}),transactionSchema.index({denom:1}),transactionSchema.index({ngay_ct:1}),transactionSchema.index({date_created:1}),transactionSchema.index({status:1}),transactionSchema.index({user_created:1,
5
+ visible_to:1,visible_to_users:1}));const model=mongoose.models.transaction||mongoose.model("transaction",transactionSchema);model.verifyTrans=async($data$$,$trans$$)=>await wallet.verifySignature($data$$.id_app,$data$$.sender_email,{id_app:$data$$.id_app,sender_email:$data$$.sender_email,receiver_email:$data$$.receiver_email,amount:$data$$.amount,denom:$data$$.denom||"vnd"},$trans$$.sender.signature);
6
+ model.createTransId=($id_app$$,$sender_email$$,$receiver_email$$,$amount$$)=>{let $timestamp$$=(new Date).getTime();return cryptoJs.SHA256($id_app$$+$sender_email$$+$receiver_email$$+$amount$$.toString()+$timestamp$$).toString()};
7
+ model.createTrans=async $data$$=>{$data$$.otherData||($data$$.otherData={});if($data$$.receiver_email===$data$$.sender_email||!$data$$.amount)throw"Ng\u01b0\u1eddi nh\u1eadn v\u00e0 ng\u01b0\u1eddi g\u1eedi ph\u1ea3i kh\u00e1c nhau v\u00e0 s\u1ed1 l\u01b0\u1ee3ng ph\u1ea3i l\u1edbn h\u01a1n 0";let $id_trans$$=model.createTransId($data$$.id_app,$data$$.sender_email,$data$$.receiver_email,$data$$.amount),$signature$$=await wallet.sign($data$$.id_app,$data$$.sender_email,{id_app:$data$$.id_app,sender_email:$data$$.sender_email,
8
+ receiver_email:$data$$.receiver_email,amount:$data$$.amount}),$trans$$=new model({id_app:$data$$.id_app,id_trans:$id_trans$$,sender:{email:$data$$.sender_email,signature:$signature$$},receiver:{email:$data$$.receiver_email},amount:$data$$.amount,denom:$data$$.denom,description:$data$$.description,id_ct:$data$$.otherData.id_ct,so_ct:$data$$.otherData.so_ct,ngay_ct:$data$$.otherData.ngay_ct,ma_ct:$data$$.otherData.ma_ct,tk_no:$data$$.otherData.tk_no,tk_co:$data$$.otherData.tk_co});return await new Promise(($resolve$$,
9
+ $reject$$)=>{$trans$$.save(async($e_master_users_will_receive$$,$rs$$)=>{if($e_master_users_will_receive$$)return Logger.info($e_master_users_will_receive$$),$reject$$(Error($e_master_users_will_receive$$.message));if($rs$$.tk_no&&$rs$$.tk_co){var $details_sc_kh_no_notificationData_title$$=await global.getModel("customer").findOne({id_app:$rs$$.id_app,of_user:$rs$$.receiver.email}).lean();let $kh_co$$=await global.getModel("customer").findOne({id_app:$rs$$.id_app,of_user:$rs$$.sender.email}).lean(),
10
+ $ma_dvcs$$=await global.getModel("dvcs").findOne({id_app:$rs$$.id_app}).lean();$e_master_users_will_receive$$=$rs$$.toObject();$e_master_users_will_receive$$.dien_giai=$e_master_users_will_receive$$.description;$e_master_users_will_receive$$.ma_dvcs=(($ma_dvcs$$||{})._id||"").toString();$details_sc_kh_no_notificationData_title$$=[{tk_no:$rs$$.tk_no,tk_co:$rs$$.tk_co,tien_nt:$rs$$.amount,tien:$rs$$.amount,ma_nt:$rs$$.denom.toUpperCase(),ty_gia:1,ma_kh_no:($details_sc_kh_no_notificationData_title$$||
11
+ {}).ma_kh,ma_kh_co:($kh_co$$||{}).ma_kh}];(new PostSocai($e_master_users_will_receive$$,$details_sc_kh_no_notificationData_title$$)).run($e$$=>{$e$$&&Logger.error($e$$)})}$e_master_users_will_receive$$=[$rs$$.sender.email,$rs$$.receiver.email];$details_sc_kh_no_notificationData_title$$=`${$data$$.sender_email} \u0111\u00e3 chuy\u1ec3n cho ${$data$$.receiver_email} ${$rs$$.amount} ${$rs$$.denom} v\u1edbi n\u1ed9i dung: ${$data$$.description}`;if($data$$.sender_email===$data$$.id_app||$data$$.receiver_email===
12
+ $data$$.id_app)$details_sc_kh_no_notificationData_title$$=`${$data$$.description}`;$details_sc_kh_no_notificationData_title$$={_id:$rs$$._id,id_app:$data$$.id_app,title:$details_sc_kh_no_notificationData_title$$,body:$details_sc_kh_no_notificationData_title$$,code:"transaction",event:"new",action:"NEW"};global.getModel("app").emitEvent($data$$.id_app,`${$details_sc_kh_no_notificationData_title$$.code}:${$details_sc_kh_no_notificationData_title$$.event}`,$details_sc_kh_no_notificationData_title$$,
13
+ null,$e_master_users_will_receive$$,!0);$resolve$$($rs$$.toObject())})})};model.getTrans=async $id_trans$$=>model.findOne({id_trans:$id_trans$$});model.deleteTrans=async $id_trans$$=>{$id_trans$$=typeof $id_trans$$==="string"?{id_trans:$id_trans$$}:{...$id_trans$$};Logger.info("delete transaction",$id_trans$$);await model.deleteMany($id_trans$$)};
14
+ model.balance=async($email$$,$date_to$$)=>{$date_to$$||=new Date;$date_to$$=moment($date_to$$).endOf("date").toDate();return(await model.find({date_created:{$lte:$date_to$$},$or:[{"sender.email":$email$$},{"receiver.email":$email$$}]}).inTxn()).map($tran$$=>$tran$$.sender.email===$email$$?0-$tran$$.amount:$tran$$.amount).reduce(($a$$,$b$$)=>$a$$+$b$$,0)};
15
+ model.in=async($email$$,$date_to$$)=>{$date_to$$||=new Date;$date_to$$=moment($date_to$$).endOf("date").toDate();return(await model.find({date_created:{$lte:$date_to$$},$or:[{"receiver.email":$email$$}]}).inTxn()).map($tran$$=>$tran$$.amount).reduce(($a$$,$b$$)=>$a$$+$b$$,0)};
16
+ model.out=async($email$$,$date_to$$)=>{$date_to$$||=new Date;$date_to$$=moment($date_to$$).endOf("date").toDate();return(await model.find({date_created:{$lte:$date_to$$},$or:[{"sender.email":$email$$}]}).inTxn()).map($tran$$=>$tran$$.amount).reduce(($a$$,$b$$)=>$a$$+$b$$,0)};module.exports=model;
@@ -0,0 +1,2 @@
1
+ const trialinfoSchema=new Schema({db_key:{type:String,required:!0},cty_name:{type:String,required:"T\u00ean kh\u00e1ch h\u00e0ng ch\u01b0a nh\u1eadp"},address:{type:String},email:{type:String},phone:{type:String},app:{type:String},version:{type:String},trial_days:{type:Number,default:30},description:String,status:{type:Boolean,default:!0},active:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,
2
+ default:""}});(global.configs||{}).createIndexes&&(trialinfoSchema.index({email:"text",address:"text",description:"text"},{name:"trialinfo_index_text"}),trialinfoSchema.index({status:1}),trialinfoSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.trialinfo||mongoose.model("trialinfo",trialinfoSchema);module.exports=model;
@@ -0,0 +1,40 @@
1
+ const Tokens=require("./tokens"),StaticPool=require("../libs/WorkerStaticPool"),emailService=require("../libs/email"),path=require("path"),validator=require("validator"),{isSupperAdmin,generatePasswordHash,encrypt}=require("../libs/utils"),EXP_TIME=144E5,underscore=require("underscore"),redis=require("redis"),request=require("request"),{onAfterCommit}=require("../libs/sessionContext"),profileFacebookUrl="https://graph.facebook.com/me?fields=name",checkFacebookToken=async $access_token$$=>{let $urlCheck$$=
2
+ `${profileFacebookUrl}&access_token=${$access_token$$}`;return new Promise($resolve$$=>{request($urlCheck$$,($e$$,$res$$,$body$$)=>$e$$||JSON.parse($body$$).error?$resolve$$(!1):$resolve$$(!0))})},userSchema=new Schema({local:{email:{type:String,lowercase:!0,trim:!0,maxlength:128},password:String,rspassword:String,pin:String,name:{type:String,maxlength:1024},picture:{type:String,maxlength:1024},address:{type:String,maxlength:1024},phone:{type:String,trim:!0,lowercase:!0},zalo:{type:String,maxlength:1024},
3
+ whatsapp:{type:String,maxlength:1024},facebook:{type:String,maxlength:1024},company:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,active:{type:Boolean,default:!1},key:String},google:{id:String,email:{type:String,lowercase:!0,trim:!0,maxlength:128},name:String,picture:String},facebook:{id:String,email:{type:String,lowercase:!0,trim:!0,maxlength:128},name:String,picture:String},current_id_app:String,current_user:String,email:{type:String,lowercase:!0,trim:!0,maxlength:128},email2:{type:String,
4
+ lowercase:!0,trim:!0,maxlength:128},name:{type:String,maxlength:1024},picture:{type:String,maxlength:1024},server:{type:String,maxlength:1024},partner:{type:String,maxlength:1024},join_date:{type:Date,default:Date.now},so_luong_db:Number,is_system_admin:Boolean,session_created:String,exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
5
+ (global.configs||{}).createIndexes&&(userSchema.index({email:-1},{unique:!0}),userSchema.index({date_created:-1}),userSchema.index({name:1}),userSchema.index({email2:1}),userSchema.index({name:"text",email:"text"}),userSchema.index({"facebook.id":1}),userSchema.index({"google.id":1}),userSchema.index({"local.password":1}),userSchema.index({"local.rspassword":1}),userSchema.index({"local.pin":1}),userSchema.index({"local.phone":1}),userSchema.index({status:1}),userSchema.index({session_created:1}),
6
+ userSchema.index({user_created:1,visible_to:1,visible_to_users:1}));userSchema.methods.generateHash=generatePasswordHash;userSchema.methods.validPassword=function($password_s2$$){$password_s2$$=this.generateHash(this.email+$password_s2$$);return $password_s2$$===this.local.password||$password_s2$$==this.local.rspassword};userSchema.methods.validRspassword=function($password$$){return this.generateHash(this.email+$password$$)==this.local.rspassword};
7
+ userSchema.methods.validAppPassword=async function($password$jscomp$2_s2$$,$id_app_par$$){if(!$id_app_par$$)return!1;$password$jscomp$2_s2$$=this.generateHash(this.email+$password$jscomp$2_s2$$);$id_app_par$$=await global.getModel("participant").findOne({id_app:$id_app_par$$,email:this.email}).lean();if(!$id_app_par$$)return Logger.info("[user] participant kh\u00f4ng t\u1ed3n t\u1ea1i",this.email),!1;if($id_app_par$$.password===$password$jscomp$2_s2$$)return!0;Logger.info("[user]M\u1eadt kh\u1ea9u kh\u00f4ng kh\u1edbp",
8
+ $id_app_par$$.password,$password$jscomp$2_s2$$);return!1};userSchema.methods.getAppOfPassword=async function($password$jscomp$3_s2$$){$password$jscomp$3_s2$$=this.generateHash(this.email+$password$jscomp$3_s2$$);return await global.getModel("participant").find({password:$password$jscomp$3_s2$$,email:this.email}).lean()};
9
+ userSchema.methods.validPin=async function($pin_s2$$,$id_app$jscomp$1_par$$=null){$pin_s2$$=this.generateHash(this.email+$pin_s2$$);let $valid$$=$pin_s2$$==this.local.pin;$id_app$jscomp$1_par$$&&!$valid$$&&($id_app$jscomp$1_par$$=await global.getModel("participant").findOne({id_app:$id_app$jscomp$1_par$$,email:this.email}).lean())&&$id_app$jscomp$1_par$$.pin===$pin_s2$$&&($valid$$=!0);return $valid$$};const User=mongoose.models.user||mongoose.model("user",userSchema);
10
+ User.getInfo=async($condition$$,$fields$$)=>$condition$$?new Promise(($resolve$$,$reject$$)=>{User.findOne($condition$$).lean().then($rs$$=>{if(!$rs$$)return $reject$$(Error("Can't find information"));$resolve$$($fields$$?$rs$$[$fields$$]:$rs$$)}).catch($e$$=>{$reject$$($e$$)})}):null;
11
+ User.findByToken=async($token$$,$ip_now$$,$fn$$,$options$$={check_service_token:!1})=>{const $usersAdmin$$=global.configs.admins;if(!$token$$||$token$$==="undefined")return $fn$$("Token kh\u00f4ng c\u00f3 gi\u00e1 tr\u1ecb");let $_token$$;if($token$$===global.configs.public_token)$_token$$={email:"public"};else if($_token$$=await Tokens.findOne({token:$token$$}),!$_token$$)return $fn$$("Token kh\u00f4ng t\u1ed3n t\u1ea1i");if($_token$$.email!=="public"){if($_token$$.ip&&$_token$$.ip.split(":").pop()!==
12
+ $ip_now$$.split(":").pop())return $fn$$("\u0110\u1ecba ch\u1ec9 IP n\u00e0y kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p s\u1eed d\u1ee5ng token n\u00e0y");if(global.configs.check_token_expired&&!$_token$$.ip&&($ip_now$$=new Date,($_token$$.last_access||new Date).getTime()+(global.configs.expired_time||EXP_TIME)<$ip_now$$.getTime()))return $fn$$("Token \u0111\u00e3 h\u1ebft h\u1ea1n")}if($_token$$.service&&$options$$.check_service_token&&$_token$$.service==="facebook"&&!await checkFacebookToken($token$$))return Logger.error("This facebook access token is not valid",
13
+ $_token$$),$fn$$("This facebook access token is not valid");let $query$$={email:$_token$$.email};(new Promise(($resove$$,$reject$$)=>{global.clientRedis.get(`:email:${$_token$$.email}`,function($err$$,$reply$$){if($reply$$)return $resove$$(JSON.parse($reply$$));User.findOne($query$$).lean().then(function($user$$){$user$$?$resove$$($user$$):$reject$$(`User ${$_token$$.email} kh\u00f4ng t\u1ed3n t\u1ea1i`)}).catch($error$$=>{$reject$$($error$$)})})})).then(async $user$$=>{$user$$.current_user=$user$$.email;
14
+ $user$$.token=$token$$;if($user$$.status===!1)return $fn$$(`User ${$user$$.email} \u0111\u00e3 b\u1ecb kho\u00e1`);$user$$.admin=underscore.contains($usersAdmin$$,$user$$.email)||isSupperAdmin($user$$.email.toLowerCase())||$user$$.is_system_admin;if($_token$$.email!=="public"&&$_token$$._id){const $now$$=new Date;if(!$_token$$.last_access||$now$$-(new Date($_token$$.last_access)).getTime()>3E5)global.getModel("token").updateOne({_id:$_token$$._id},{last_access:$now$$}).catch($err$$=>Logger.error("Update last_access failed",
15
+ $err$$)),$_token$$.last_access=$now$$}setImmediate(()=>{$fn$$(null,$user$$,$_token$$)})}).catch($e$$=>{$fn$$($e$$)})};
16
+ User.sendEmailTo=async($email_u$$,$data$$)=>{if($data$$.email_content){let $to$$;validator.isEmail($email_u$$)?$to$$=$email_u$$:($email_u$$=await global.getModel("user").findOne({email:$email_u$$},{email2:1}).lean())&&$email_u$$.email2&&validator.isEmail($email_u$$.email2)&&($to$$=$email_u$$.email2);$to$$&&emailService.sendHtml({to:{address:$to$$},subject:($data$$.title||"").replace(/<[^>]*>?/gm,""),html:$data$$.email_content,attachments:$data$$.attachments,app_info:$data$$.app_info},function($error$$){$error$$&&
17
+ Logger.error($error$$)})}};
18
+ User.socketSendTo=async($email$$,$event_name$$,$msg$$)=>{$email$$&&$event_name$$&&(global.socketContainer.socketIO?($email$$=$email$$.toLowerCase(),setImmediate(async()=>{try{Logger.info("[user] [socketSendTo] send msg ",{email:$email$$,event_name:$event_name$$,msg:$msg$$}),global.socketContainer.socketIO.to($email$$).emit($event_name$$,$msg$$),global.socketContainer.socketIO.to($email$$).emit("allevents",{event:$event_name$$,msg:$msg$$})}catch($e$$){Logger.error("[user] [socketSendTo] error send msg ",{email:$email$$,
19
+ event_name:$event_name$$,msg:$msg$$},$e$$)}})):User.socketSendToOtherServer($email$$,$event_name$$,$msg$$,"socket"))};User.isOnline=async $email$$=>{try{return global.socketContainer.socketIO?[...(await global.socketContainer.socketIO.in($email$$).allSockets())].length>0?!0:!1:!1}catch($e$$){return Logger.error($e$$),!1}};const channel_update_system="updatesystem";
20
+ User.socketSendToOtherServer=async($data$jscomp$1_email$$,$event_name$$,$msg$$,$channel$$=channel_update_system)=>{global.clientRedis?($data$jscomp$1_email$$={event:$event_name$$,email:$data$jscomp$1_email$$,data:$msg$$,from_server_port:global.configs?.port},Logger.warn(`[user] [socketSendToOtherServer] [${global.configs?.port}] g\u1eedi s\u1ef1 ki\u1ec7n t\u1edbi k\u00eanh`,$channel$$,$data$jscomp$1_email$$),await global.clientRedis.publish($channel$$,JSON.stringify($data$jscomp$1_email$$))):Logger.warn(`[user] [socketSendToOtherServer] [${global.configs?.port}] kh\u00f4ng th\u1ec3 g\u1eedi s\u1ef1 ki\u1ec7n t\u1edbi k\u00eanh`,
21
+ $channel$$,"do kh\u00f4ng c\u00f3 clientRedis tr\u00ean server")};
22
+ User.initClientSockets=()=>{setTimeout(()=>{const $subscriber$$=redis.createClient();$subscriber$$.on("error",$err$$=>{Logger.error(`[user] [initClientSockets] [${global.configs?.port}] Redis subscriber error:`,$err$$)});$subscriber$$.on("connect",()=>{$subscriber$$.subscribe(channel_update_system,($err$$,$count$$)=>{if($err$$)return Logger.error(`[user] [initClientSockets] [${global.configs?.port}] Failed to subscribe to channel '${channel_update_system}':`,$err$$);Logger.info(`[user] [initClientSockets] [${global.configs?.port}] \u0110\u00e3 subscribe th\u00e0nh c\u00f4ng v\u00e0o channel "${channel_update_system}". C\u00f3 ${$count$$} subscriber.`)});
23
+ $subscriber$$.subscribe("socket",($err$$,$count$$)=>{if($err$$)return Logger.error(`[user] [initClientSockets] [${global.configs?.port}] Failed to subscribe to channel 'socket':`,$err$$);Logger.info(`[user] [initClientSockets] [${global.configs?.port}] \u0110\u00e3 subscribe th\u00e0nh c\u00f4ng v\u00e0o channel "socket". C\u00f3 ${$count$$} subscriber.`)})});$subscriber$$.on("message",async($subscribedChannel$$,$msg$$)=>{try{if($msg$$=JSON.parse($msg$$),$msg$$?.from_server_port!=global.configs?.port){if($subscribedChannel$$===
24
+ channel_update_system&&$msg$$?.email==="system")if($msg$$.event=="listinfo_updated"&&($msg$$.data||{}).listinfo_id){let $obj$$=await global.getModel("listinfo").findOne({_id:($msg$$.data||{}).listinfo_id}).lean();$obj$$&&global.getModel("listinfo").createController(global.routerAPI,$obj$$)}else Logger.info(`[user] [initClientSockets] [${global.configs?.port}] don't handle msg from system`,$msg$$);$subscribedChannel$$==="socket"&&global.socketContainer.socketIO&&User.socketSendTo($msg$$.email,$msg$$.event,
25
+ $msg$$.data)}}catch($e$$){Logger.error(`[user] [initClientSockets] [${global.configs?.port}]`,$e$$,$subscribedChannel$$,$msg$$)}})},1)};
26
+ User.initSocket=$server$$=>{setTimeout(()=>{Logger.info("[user] [initSocket] start server socket at ",global.port);global.socketContainer.socketIO=require("socket.io")($server$$,{allowEIO3:!0,cors:{origin:"*",methods:["GET","POST"],credentials:!0}});const $redisAdapter$$=require("socket.io-redis");global.socketContainer.socketIO.adapter($redisAdapter$$({host:"127.0.0.1",port:6379,key:"flexbiz"}));global.socketContainer.socketIO.on("connection",function($socket$$){$socket$$.auth=!1;setTimeout(()=>
27
+ {$socket$$.auth||$socket$$.disconnect("unauthorized")},1E3);$socket$$.on("join-flow",$flowInstanceId$$=>{$socket$$.join($flowInstanceId$$);Logger.info(`[user] [initSocket] Client ${$socket$$.id} joined flow ${$flowInstanceId$$}`)});$socket$$.on("login",async $msg$$=>{if($msg$$.token){var $_token$$=await Tokens.findOne({token:$msg$$.token}).lean();if($_token$$){$socket$$.auth=!0;$socket$$.join($_token$$.email);let $clientIO$$=await global.socketContainer.loadConnectionId();$clientIO$$[$socket$$.id]=
28
+ {token:$msg$$.token,email:$_token$$.email};global.socketContainer.saveConnectionId($clientIO$$);$msg$$.id_app?global.alertNotification($_token$$.email,$msg$$.id_app):$_token$$.id_apps&&$_token$$.id_apps.length>0?$_token$$.id_apps.forEach($id_app$$=>{global.alertNotification($_token$$.email,$id_app$$)}):global.alertNotification($_token$$.email,$_token$$.only_id_app);global.alertMessage($_token$$.email,$msg$$.id_app);global.socketContainer.socketIO.to($socket$$.id).emit("login",{user:$_token$$.email,
29
+ success:!0});$socket$$.on("offer",function($msg$$){$msg$$.from=$_token$$.email;User.socketSendTo($msg$$.to,"offer",$msg$$)});$socket$$.on("answer",function($msg$$){$msg$$.from=$_token$$.email;User.socketSendTo($msg$$.to,"answer",$msg$$)});$socket$$.on("candidate",function($msg$$){$msg$$.from=$_token$$.email;User.socketSendTo($msg$$.to,"candidate",$msg$$)});$socket$$.on("leave",function($msg$$){$msg$$.from=$_token$$.email;User.socketSendTo($msg$$.to,"leave",$msg$$)})}else global.socketContainer.socketIO.to($socket$$.id).emit("login",
30
+ {user:$msg$$.email,success:!1,message:"Token is not exists"})}});$socket$$.on("disconnect",async function(){let $clientIO$$=await global.socketContainer.loadConnectionId(),$client$$=$clientIO$$[$socket$$.id];$client$$&&$socket$$.leave($client$$.email);delete $clientIO$$[$socket$$.id];global.socketContainer.saveConnectionId($clientIO$$)})})},5E3)};User.teststrengthPassword=$pwString$$=>$pwString$$.length>5&&/[A-Z]+/.test($pwString$$)&&/[a-z]+/.test($pwString$$)&&/[0-9]+/.test($pwString$$);
31
+ User.teststrengthPin=$pin$$=>$pin$$.length===4&&/^-?\d+$/.test($pin$$);
32
+ User.emitEvent=async function($email$$,$event$$,$_data$$,$push$$){onAfterCommit(async()=>{if($email$$){if(typeof $_data$$==="object"){var $data$$=Object.assign({},$_data$$);$data$$.__event=$event$$}else $data$$=$_data$$;if($data$$.body&&($data$$.body.indexOf("{")==0||$data$$.body.indexOf("[")==0))try{var $file_obj_send$$=JSON.parse($data$$.body);$file_obj_send$$.data&&($file_obj_send$$.data.indexOf("data:image")>=0?$data$$.body="Image":$data$$.body="File")}catch($e$$){Logger.error("Kh\u00f4ng th\u1ec3 parse data",
33
+ $data$$.body,$e$$)}if($data$$.email_content&&!$data$$.not_send_email&&$data$$.title){var $encrypted_unsub_link_unsub_unsub$$;$data$$.allow_unsubcribe!=0&&$data$$.id_app&&($encrypted_unsub_link_unsub_unsub$$=await global.getModel("subscribe").findOne({id_app:$data$$.id_app,email:$email$$,unsubcribe:!0}).lean());$encrypted_unsub_link_unsub_unsub$$||($file_obj_send$$={...$data$$},$file_obj_send$$.id_app&&($encrypted_unsub_link_unsub_unsub$$=encrypt({id_app:$data$$.id_app,email:$email$$}),$encrypted_unsub_link_unsub_unsub$$=
34
+ `${configs.api_url}/public/unsubscribe/${$encrypted_unsub_link_unsub_unsub$$}`,$data$$.allow_unsubcribe!=0&&($file_obj_send$$.email_content=`${$file_obj_send$$.email_content}
35
+ <p style="text-align:center;margin-top:15px">
36
+ <div>\u0110\u00e2y l\u00e0 th\u01b0 t\u1ef1 \u0111\u1ed9ng \u0111\u01b0\u1ee3c t\u1ea1o t\u1eeb danh s\u00e1ch \u0111\u0103ng k\u00fd c\u1ee7a ch\u00fang t\u00f4i. Do \u0111\u00f3, xin \u0111\u1eebng tr\u1ea3 l\u1eddi th\u01b0 n\u00e0y.</div>
37
+ <div>N\u1ebfu qu\u00fd kh\u00e1ch mu\u1ed1n h\u1ee7y \u0111\u0103ng k\u00fd, <a href="${$encrypted_unsub_link_unsub_unsub$$}">vui l\u00f2ng b\u1ea5m v\u00e0o \u0111\u00e2y</a>.</div>
38
+ </p>
39
+ `)),User.sendEmailTo($email$$.toLowerCase(),$file_obj_send$$))}delete $data$$.email_content;delete $data$$.rq_approve;delete $data$$.app_info;$data$$.body&&$data$$.body.length>512&&($data$$.body=$data$$.body.substring(0,512));$data$$.title&&$data$$.title.length>512&&($data$$.title=$data$$.title.substring(0,512));User.socketSendTo($email$$.toLowerCase(),$event$$,$data$$);setImmediate(()=>{if(($data$$.title||$data$$.body)&&$push$$!=0)try{if(!global.pushNotifyPool){let $fileWorker$$=path.dirname(__dirname)+
40
+ "/workers/pushNotify.js";global.pushNotifyPool=new StaticPool($fileWorker$$,0,1)}global.pushNotifyPool.exec({data:$data$$,email:$email$$,event:$event$$,configs:{database:global.configs.database,vapidKeys:global.configs.vapidKeys}},()=>{})}catch($e$$){Logger.error($e$$)}})}})};module.exports=User;
@@ -0,0 +1,7 @@
1
+ const usergroupSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},group_name:{type:String,required:!0,maxlength:1024},ds_phu_trach:[String],phan_loai:String,is_customer_group:{type:Boolean,default:!1},is_employee_group:{type:Boolean,default:!1},is_partner_group:{type:Boolean,default:!1},is_agent_group:{type:Boolean,default:!1},is_pttt_group:{type:Boolean,default:!1},default_group:Boolean,tang_duoc_gioi_thieu:Number,tang_gioi_thieu:Number,ty_le_hoa_hong:Number,tang_gioi_thieu_pt:Number,
2
+ ty_le_hoa_hong_pt:Number,tang_gioi_thieu_denom:String,group_mother:String,loai_nh:{type:Number,default:1},bac:Number,sysorder:String,nh_kh:String,ma_nganh_hang:[String],ma_nvt:[String],mieu_ta_chinh_sach:String,ma_nt:String,allow_signup:{type:Boolean,default:!1},not_need_active:{type:Boolean,default:!1},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,
3
+ default:0},visible_to_users:[String],update_right:[String],delete_right:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String]});
4
+ (global.configs||{}).createIndexes&&(usergroupSchema.index({id_app:1,is_customer_group:1}),usergroupSchema.index({id_app:1,is_employee_group:1}),usergroupSchema.index({id_app:1,is_partner_group:1}),usergroupSchema.index({id_app:1,is_agent_group:1}),usergroupSchema.index({id_app:1,is_pttt_group:1}),usergroupSchema.index({id_app:1,ds_phu_trach:1}),usergroupSchema.index({id_app:1,group_name:1}),usergroupSchema.index({id_app:1,group_mother:1}),usergroupSchema.index({id_app:1,phan_loai:1}),usergroupSchema.index({id_app:1,
5
+ default_group:1}),usergroupSchema.index({id_app:1,loai_nh:1}),usergroupSchema.index({id_app:1,bac:1}),usergroupSchema.index({id_app:1,sysorder:1}),usergroupSchema.index({id_app:1,allow_signup:1}),usergroupSchema.index({id_app:1,status:1}),usergroupSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1}),usergroupSchema.index({id_app:1,group_name:"text"}));const model=mongoose.models.usergroup||mongoose.model("usergroup",usergroupSchema);
6
+ model.referenceKeys={_id:[{model:"participant",key:"group_id",error:"Kh\u00f4ng th\u1ec3 x\u00f3a nh\u00f3m n\u00e0y."}]};model.getInfo=async($id_app$$,$condition$$,$fields$$)=>{$condition$$.id_app=$id_app$$;return new Promise(($resolve$$,$reject$$)=>{model.findOne($condition$$).lean().then($rs$$=>{if(!$rs$$)return $reject$$(Error(`Can't find user group:${$condition$$}`));$resolve$$($fields$$?$rs$$[$fields$$]:$rs$$)}).catch($e$$=>{$reject$$($e$$)})})};
7
+ model.getList=async($id_app$$,$condition$$)=>{$condition$$.id_app=$id_app$$;return new Promise(($resolve$$,$reject$$)=>{model.find($condition$$).lean().then($rs$$=>{$resolve$$($rs$$||[])}).catch($e$$=>{$reject$$($e$$)})})};module.exports=model;
@@ -0,0 +1,12 @@
1
+ const validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ma_dvt:{type:String,required:!0,maxlength:32},so_luong:{type:Number,default:0},gia:{type:Number,default:0},gia_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tk_no:{type:String},tk_co:{type:String},
2
+ gia_von_nk:{type:Number,default:0},gia_von_nk_nt:{type:Number,default:0},tien_hang_nk:{type:Number,default:0},tien_hang_nk_nt:{type:Number,default:0},thue_suat_nk:{type:Number,default:0},tien_thue_nk:{type:Number,default:0},tien_thue_nk_nt:{type:Number,default:0},tt:{type:Number,default:0},tt_nt:{type:Number,default:0},dien_giai:{type:String,maxlength:1024},ngay_sx:Date,ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},ma_phi:{type:String,
3
+ uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_vt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});
4
+ detailSchema.validate={ma_kh:validator.existsKh,ma_vt:validVt.existsVt,ma_dvt:validator.existsDvt};
5
+ const vanchuyenSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"vanchuyen",required:!0,uppercase:!0},ma_gd:{type:String,default:"0",maxlength:32},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},
6
+ ma_kh:{type:String,uppercase:!0,required:!0,default:"",maxlength:32},ten_kh:String,ma_kho:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,required:"Y\u00eau c\u1ea7u nh\u1eadp s\u1ed1 h\u1ee3p \u0111\u1ed3ng"},id_contract:{type:String},id_po1:{type:String,maxlength:1024},id_dnm:{type:String},ngay_van_chuyen:{type:Date,required:!0},thoi_gian:String,diem_di:{type:String,
7
+ required:"Y\u00eau c\u1ea7u nh\u1eadp \u0111i\u1ec3m \u0111i"},diem_den:{type:String,required:"Y\u00eau c\u1ea7u nh\u1eadp \u0111i\u1ec3m \u0111\u1ebfn"},so_tracking:{type:String},tien_cuoc:{type:Number,default:0},tien_cuoc_nt:{type:Number,default:0},ty_le_cuoc_ck:{type:Number,default:0},tien_cuoc_ck:{type:Number,default:0},tien_cuoc_ck_nt:{type:Number,default:0},tk_no:{type:String},tk_co:{type:String},ma_tc:{type:String,default:"1"},ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},
8
+ ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,uppercase:!0,maxlength:32},so_seri:{type:String,uppercase:!0,maxlength:32},ngay_hd:{type:Date,uppercase:!0},ma_thue:{type:String,uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_no:{type:String,uppercase:!0},dia_chi:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai_thue:{type:String,default:"",maxlength:1024},t_thue:{type:Number,default:0},
9
+ t_thue_nt:{type:Number,default:0},ngay_sx:Date,ong_ba:{type:String,default:"",maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],
10
+ details:{type:[detailSchema]}});vanchuyenSchema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh};
11
+ (global.configs||{}).createIndexes&&(vanchuyenSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1},{name:"vanchuyen_index_1"}),vanchuyenSchema.index({dien_giai:"text",so_ct:"text",ma_kh:"text",ten_kh:"text"},{name:"vanchuyen_index_text"}),vanchuyenSchema.index({ma_ct:1}),vanchuyenSchema.index({ma_kh:1}),vanchuyenSchema.index({ma_hd:1}),vanchuyenSchema.index({user_created:1,date_created:-1}),vanchuyenSchema.index({date_updated:-1}),vanchuyenSchema.index({status:1}),vanchuyenSchema.index({user_created:1,
12
+ visible_to:1,visible_to_users:1}),vanchuyenSchema.index({trang_thai:1}));module.exports=mongoose.models.vanchuyen||mongoose.model("vanchuyen",vanchuyenSchema);
@@ -0,0 +1,3 @@
1
+ const validAccount=require("../libs/validator-account"),vatSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_thue:{type:String,uppercase:!0,required:!0,maxlength:32,trim:!0},ten_thue:{type:String,required:!0,maxlength:1024},thue_suat:{type:Number,default:0},stt_in:{type:Number,default:0},tk_thue_no:{type:String,default:"",required:!0,maxlength:32,trim:!0},tk_thue_co:{type:String,default:"",required:!0,maxlength:32,trim:!0},tk_thue_no_treo:{type:String,default:"",maxlength:32,trim:!0},
2
+ tk_thue_co_treo:{type:String,default:"",maxlength:32,trim:!0},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});vatSchema.validate={tk_thue_co:validAccount.existsTk,tk_thue_no:validAccount.existsTk};
3
+ (global.configs||{}).createIndexes&&(vatSchema.index({id_app:1,ma_thue:1,ten_thue:1,thue_suat:1,tk_thue_co:1,tk_thue_no:1}),vatSchema.index({id_app:1,ma_thue:"text",ten_thue:"text"}),vatSchema.index({id_app:1,status:1}),vatSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1}));module.exports=mongoose.models.vat||mongoose.model("vat",vatSchema);
@@ -0,0 +1,6 @@
1
+ const taxSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},id_hd:String,ma_ct:{type:String,required:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,maxlength:32},ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,
2
+ default:"",uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date,required:!0},ma_nt:{type:String,default:"VND",required:!0,maxlength:32},ty_gia:{type:Number,default:1},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,required:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_co:{type:String,default:"33311",maxlength:32},tk_du_thue:{type:String,maxlength:32},t_thue:{type:Number,default:0},
3
+ t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh_cn:{type:String,default:"",maxlength:32},ten_kh_cn:{type:String,default:"",maxlength:1024},ma_kh:{type:String,default:"",maxlength:32},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:""},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,status:{type:Boolean,
4
+ default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
5
+ (global.configs||{}).createIndexes&&(taxSchema.index({id_app:1,ngay_hd:-1,ngay_ct:-1,ma_thue:1}),taxSchema.index({id_app:1,ma_dvcs:1,id_ct:1,ngay_hd:-1,ngay_ct:-1,ma_thue:1},{name:"vatra_index_1"}),taxSchema.index({id_app:1,so_ct:"text",so_hd:"text",dien_giai:"text",ma_kh:"text",ten_kh:"text",so_seri:"text",ma_so_thue:"text"},{name:"vatra_index_text"}),taxSchema.index({id_app:1,ma_ct:1,so_ct:1,ngay_ct:-1}),taxSchema.index({id_app:1,so_hd:1,ngay_hd:1}),taxSchema.index({id_app:1,ma_kh:1}),taxSchema.index({id_app:1,
6
+ ma_thue:1}),taxSchema.index({id_app:1,thue_suat:1}),taxSchema.index({id_ct:1}),taxSchema.index({id_hd:1}),taxSchema.index({id_app:1,status:1}),taxSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1}));module.exports=mongoose.models.vatra||mongoose.model("vatra",taxSchema);
@@ -0,0 +1,6 @@
1
+ const taxSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},id_hd:String,ma_ct:{type:String,required:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,maxlength:32},co_quan_thue:String,ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,
2
+ maxlength:32},ma_tc:{type:String,default:"1",required:!0,uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date},ma_nt:{type:String,default:"VND",required:!0,maxlength:32},ty_gia:{type:Number,default:1},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_no:{type:String,maxlength:32},
3
+ tk_du_thue:{type:String,maxlength:32},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh:{type:String,default:"",maxlength:32},ma_kh_cn:{type:String,default:"",maxlength:32},ten_kh_cn:{type:String,default:"",maxlength:1024},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:""},dien_giai:{type:String,
4
+ default:"",maxlength:1024},hddt:Schema.Types.Mixed,exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
5
+ (global.configs||{}).createIndexes&&(taxSchema.index({id_app:1,ngay_hd:-1,ngay_ct:-1,ma_thue:1}),taxSchema.index({id_app:1,ma_dvcs:1,id_ct:1,ngay_hd:-1,ngay_ct:-1,ma_thue:1},{name:"vatvao_index_1"}),taxSchema.index({id_app:1,so_ct:"text",so_hd:"text",dien_giai:"text",ma_kh:"text",ten_kh:"text",so_seri:"text",ma_so_thue:"text"},{name:"vatvao_index_text"}),taxSchema.index({id_app:1,ma_kh:1,ma_so_thue:1,so_hd:1,so_seri:1},{unique:!0}),taxSchema.index({id_app:1,ngay_ct:-1}),taxSchema.index({id_app:1,
6
+ ma_ct:1}),taxSchema.index({id_app:1,ma_ct:1,so_ct:1,ngay_ct:-1}),taxSchema.index({id_ct:1}),taxSchema.index({id_hd:1}),taxSchema.index({id_app:1,ma_kh:1}),taxSchema.index({id_app:1,ma_thue:1,thue_suat:1}),taxSchema.index({id_app:1,status:1}),taxSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1}));module.exports=mongoose.models.vatvao||mongoose.model("vatvao",taxSchema);
@@ -0,0 +1,2 @@
1
+ const versioninfoSchema=new Schema({os:{type:String},app:{type:String},title:{type:String,required:"Vui l\u00f2ng nh\u1eadp ti\u00eau \u0111\u1ec1"},major:Number,minor:Number,url:String,description:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
2
+ (global.configs||{}).createIndexes&&(versioninfoSchema.index({title:"text"}),versioninfoSchema.index({status:1}),versioninfoSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.versioninfo||mongoose.model("versioninfo",versioninfoSchema);module.exports=model;
@@ -0,0 +1,2 @@
1
+ const vietqrbanksSchema=new Schema({ma_ngan_hang:{type:String,required:!0,maxlength:1024,trim:!0},ten_ngan_hang:{type:String,required:!0,maxlength:1024,trim:!0},so_bin:{type:String,required:!0,maxlength:1024,trim:!0},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
2
+ (global.configs||{}).createIndexes&&(vietqrbanksSchema.index({ma_ngan_hang:1}),vietqrbanksSchema.index({ten_ngan_hang:1}),vietqrbanksSchema.index({so_bin:1}),vietqrbanksSchema.index({status:1}),vietqrbanksSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.vietqrbanks||mongoose.model("vietqrbanks",vietqrbanksSchema);module.exports=model;
@@ -0,0 +1,6 @@
1
+ const vsocaiSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ngay_hd:{type:Date},so_hd:{type:String,uppercase:!0,maxlength:32},tk:{type:String,required:!0,uppercase:!0},tk_du:{type:String,required:!0,
2
+ uppercase:!0},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ma_nt:{type:String,default:"VND",required:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,default:1},ps_no_nt:{type:Number,default:0},ps_no:{type:Number,default:0},ps_co_nt:{type:Number,default:0},ps_co:{type:Number,default:0},dien_giai:{type:String,default:"",maxlength:1024},ong_ba:{type:String,default:"",maxlength:1024},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_kho:{type:String,default:"",uppercase:!0,maxlength:32},
3
+ ma_phi:{type:String,default:"",uppercase:!0,maxlength:32},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32},ma_sp:{type:String,default:"",uppercase:!0,maxlength:1024},id_lenhsx:{type:String,maxlength:1024},ma_ca:{type:String,uppercase:!0,maxlength:32},ma_cp:{type:String,default:"",uppercase:!0},id_kbbtpb:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,status:{type:Boolean,
4
+ default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},nh_dk:{type:Number,default:0}});vsocaiSchema.pre("save",function($next$$){this.ma_nt=="VND"?(this.ps_no_nt=Math.roundBy(this.ps_no_nt,0),this.ps_co_nt=Math.roundBy(this.ps_co_nt,0),this.ps_no=this.ps_no_nt,this.ps_co=this.ps_co_nt):(this.ps_no=Math.roundBy(this.ps_no,0),this.ps_co=Math.roundBy(this.ps_co,0));$next$$()});
5
+ (global.configs||{}).createIndexes&&(vsocaiSchema.index({id_app:1}),vsocaiSchema.index({ma_dvcs:1}),vsocaiSchema.index({so_ct:1}),vsocaiSchema.index({ngay_ct:1}),vsocaiSchema.index({ma_ct:1}),vsocaiSchema.index({id_ct:1}),vsocaiSchema.index({tk:1}),vsocaiSchema.index({tk_du:1}),vsocaiSchema.index({ma_kh:1}),vsocaiSchema.index({ma_nt:1}),vsocaiSchema.index({ma_bp:1}),vsocaiSchema.index({ma_phi:1}),vsocaiSchema.index({ma_hd:1}),vsocaiSchema.index({ma_dt:1}),vsocaiSchema.index({ma_nv:1}),vsocaiSchema.index({ma_sp:1}),
6
+ vsocaiSchema.index({id_lenhsx:1}),vsocaiSchema.index({status:1}),vsocaiSchema.index({user_created:1,visible_to:1,visible_to_users:1}));module.exports=mongoose.models.vsocai||mongoose.model("vsocai",vsocaiSchema);