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.
- package/package.json +5 -5
- package/server/app.js +23 -348
- package/server/cluster.js +1 -5
- package/server/models/account.js +7 -0
- package/server/models/actionLog.js +2 -0
- package/server/models/afflink.js +2 -0
- package/server/models/aimemory.js +1 -0
- package/server/models/app.js +16 -0
- package/server/models/approve.js +95 -0
- package/server/models/assabcihandler.js +35 -0
- package/server/models/assbank.js +19 -0
- package/server/models/assbooking.js +4 -0
- package/server/models/assbuy.js +3 -0
- package/server/models/asscashwithdraw.js +4 -0
- package/server/models/assfindhash.js +2 -0
- package/server/models/assinvestment.js +13 -0
- package/server/models/assissue.js +2 -0
- package/server/models/asskey.js +15 -0
- package/server/models/assneedtobuy.js +6 -0
- package/server/models/assperiod.js +7 -0
- package/server/models/assproduct.js +13 -0
- package/server/models/assprofitsharing.js +4 -0
- package/server/models/assreceiver.js +2 -0
- package/server/models/assrequest.js +10 -0
- package/server/models/asssell.js +7 -0
- package/server/models/asstransaction.js +3 -0
- package/server/models/asstransfer.js +4 -0
- package/server/models/assuser_identity.js +4 -0
- package/server/models/asswithdraw.js +4 -0
- package/server/models/attend.js +2 -0
- package/server/models/banggiaban.js +8 -0
- package/server/models/bangtinhluong.js +6 -0
- package/server/models/base.js +1 -0
- package/server/models/bg1.js +9 -0
- package/server/models/bg2.js +10 -0
- package/server/models/cache.js +3 -0
- package/server/models/cacheDataReport.js +2 -0
- package/server/models/cacheSessionReport.js +5 -0
- package/server/models/calllog.js +4 -0
- package/server/models/cart.js +5 -0
- package/server/models/cddiem.js +2 -0
- package/server/models/cddt.js +3 -0
- package/server/models/cdkh.js +5 -0
- package/server/models/cdkhtheongay.js +5 -0
- package/server/models/cdnphep.js +2 -0
- package/server/models/cdtk.js +3 -0
- package/server/models/cdtktheongay.js +3 -0
- package/server/models/cdvt.js +5 -0
- package/server/models/cdvtnpp.js +6 -0
- package/server/models/cdvttheongay.js +5 -0
- package/server/models/chamcong.js +7 -0
- package/server/models/chat_message.js +2 -0
- package/server/models/chat_session.js +2 -0
- package/server/models/checkin.js +4 -0
- package/server/models/checkinactivity.js +3 -0
- package/server/models/checkinkpi.js +4 -0
- package/server/models/checkinlocation.js +2 -0
- package/server/models/chitietluongds.js +12 -0
- package/server/models/chitieukpi.js +3 -0
- package/server/models/chudethaoluan.js +3 -0
- package/server/models/ckgtluong.js +2 -0
- package/server/models/colleague.js +2 -0
- package/server/models/comment.js +4 -0
- package/server/models/congdoansx.js +4 -0
- package/server/models/congtacvien.js +4 -0
- package/server/models/congthuctinhgiaban.js +8 -0
- package/server/models/consultant.js +4 -0
- package/server/models/contract.js +6 -0
- package/server/models/counter.js +2 -0
- package/server/models/csluongtheods.js +3 -0
- package/server/models/csphucap.js +2 -0
- package/server/models/ctds.js +5 -0
- package/server/models/ctds2.js +7 -0
- package/server/models/currency.js +3 -0
- package/server/models/custom_report.js +1 -0
- package/server/models/customer.js +31 -0
- package/server/models/customer_care.js +2 -0
- package/server/models/data_list_config.js +7 -0
- package/server/models/databanle.js +8 -0
- package/server/models/datlich.js +4 -0
- package/server/models/deal.js +2 -0
- package/server/models/dh2.js +20 -0
- package/server/models/diagram.js +2 -0
- package/server/models/dinhmucsx.js +8 -0
- package/server/models/dkhoc.js +6 -0
- package/server/models/dknphep.js +2 -0
- package/server/models/dmban.js +4 -0
- package/server/models/dmbp.js +12 -0
- package/server/models/dmca.js +2 -0
- package/server/models/dmchietkhau.js +8 -0
- package/server/models/dmchietkhauhd.js +19 -0
- package/server/models/dmchinhanh.js +2 -0
- package/server/models/dmcpmh.js +2 -0
- package/server/models/dmdiemthuong.js +3 -0
- package/server/models/dmdoi.js +4 -0
- package/server/models/dmdoituongdanhgia.js +2 -0
- package/server/models/dmdt.js +8 -0
- package/server/models/dmdvt.js +3 -0
- package/server/models/dmgiaban.js +9 -0
- package/server/models/dmgiamua.js +5 -0
- package/server/models/dmgiathitruong.js +5 -0
- package/server/models/dmgiathitruong_ngay.js +2 -0
- package/server/models/dmgiathitruong_theodoi.js +2 -0
- package/server/models/dmhoahonghd.js +8 -0
- package/server/models/dmhoahongnpp.js +8 -0
- package/server/models/dmkc.js +3 -0
- package/server/models/dmkho.js +7 -0
- package/server/models/dmkhuyenmai.js +9 -0
- package/server/models/dmkhuyenmaihd.js +11 -0
- package/server/models/dmletet.js +2 -0
- package/server/models/dmlo.js +4 -0
- package/server/models/dmloaicong.js +4 -0
- package/server/models/dmloaitask.js +2 -0
- package/server/models/dmloaits.js +2 -0
- package/server/models/dmnckkm.js +4 -0
- package/server/models/dmnghiepvu.js +4 -0
- package/server/models/dmnguonvon.js +2 -0
- package/server/models/dmnhnv.js +4 -0
- package/server/models/dmnv.js +17 -0
- package/server/models/dmnvt.js +10 -0
- package/server/models/dmphi.js +3 -0
- package/server/models/dmqct.js +3 -0
- package/server/models/dmqddvt.js +3 -0
- package/server/models/dmtanggiamts.js +3 -0
- package/server/models/dmto.js +4 -0
- package/server/models/dmtt.js +6 -0
- package/server/models/dmvt.js +17 -0
- package/server/models/dmyt.js +4 -0
- package/server/models/dn0.js +13 -0
- package/server/models/dnm.js +11 -0
- package/server/models/dokho.js +2 -0
- package/server/models/domain.js +2 -0
- package/server/models/dvcs.js +3 -0
- package/server/models/ecomcategories.js +3 -0
- package/server/models/ecomcategories_cty.js +3 -0
- package/server/models/ecomproductlines.js +2 -0
- package/server/models/ecompromotion_flashsales.js +2 -0
- package/server/models/ecompromotion_freeships.js +2 -0
- package/server/models/email.js +2 -0
- package/server/models/endpoint.js +1 -0
- package/server/models/events.js +3 -0
- package/server/models/evoucher.js +5 -0
- package/server/models/experiencejourney.js +2 -0
- package/server/models/experiencejourneydata.js +4 -0
- package/server/models/experiencejourneypersona.js +3 -0
- package/server/models/experiencejourneystage.js +2 -0
- package/server/models/exportexceltemplate.js +2 -0
- package/server/models/fbconversation.js +15 -0
- package/server/models/fbmessage.js +2 -0
- package/server/models/fbpage.js +2 -0
- package/server/models/fbpost.js +2 -0
- package/server/models/fieldright.js +2 -0
- package/server/models/fifo_dk.js +2 -0
- package/server/models/fifo_lot.js +3 -0
- package/server/models/fifo_trace.js +4 -0
- package/server/models/file.js +4 -0
- package/server/models/filechunk.js +2 -0
- package/server/models/financialroadmap.js +3 -0
- package/server/models/flow.js +2 -0
- package/server/models/flowdata.js +3 -0
- package/server/models/flowpending.js +2 -0
- package/server/models/folder.js +4 -0
- package/server/models/follow.js +2 -0
- package/server/models/forminfo.js +5 -0
- package/server/models/giaoca.js +4 -0
- package/server/models/giatb.js +3 -0
- package/server/models/group.js +9 -0
- package/server/models/gt_ctgt.js +4 -0
- package/server/models/gt_hspb.js +3 -0
- package/server/models/gt_sltk.js +3 -0
- package/server/models/gt_thcppstk.js +3 -0
- package/server/models/hanmucton.js +4 -0
- package/server/models/hd1.js +11 -0
- package/server/models/hd2.js +26 -0
- package/server/models/hd3.js +17 -0
- package/server/models/hd4.js +13 -0
- package/server/models/hd7.js +17 -0
- package/server/models/hd8.js +12 -0
- package/server/models/hde.js +11 -0
- package/server/models/hmcn.js +3 -0
- package/server/models/hmcnct.js +2 -0
- package/server/models/hspbts.js +4 -0
- package/server/models/htl.js +13 -0
- package/server/models/importexceltemplate.js +2 -0
- package/server/models/introducebonus.js +4 -0
- package/server/models/introducecode.js +3 -0
- package/server/models/introducer.js +4 -0
- package/server/models/kbbtpb.js +7 -0
- package/server/models/kbmPttct.js +4 -0
- package/server/models/kbmTkgtgt.js +5 -0
- package/server/models/kbm_bcdkt_old.js +4 -0
- package/server/models/kbm_kqhdkd_old.js +3 -0
- package/server/models/kbm_lcttgt_old.js +5 -0
- package/server/models/kbm_lctttt_old.js +4 -0
- package/server/models/kbm_pttct_old.js +4 -0
- package/server/models/kbm_tkgtgt_old.js +5 -0
- package/server/models/kbmbcdkt.js +4 -0
- package/server/models/kbmbcqt.js +4 -0
- package/server/models/kbmkqhdkd.js +3 -0
- package/server/models/kbmlcttgt.js +6 -0
- package/server/models/kbmlctttt.js +4 -0
- package/server/models/kbmtmbctc.js +4 -0
- package/server/models/kehoachdtcp.js +3 -0
- package/server/models/kehoachmh.js +8 -0
- package/server/models/keyresult.js +7 -0
- package/server/models/khunghangthanhvien.js +3 -0
- package/server/models/label.js +2 -0
- package/server/models/labelinfo.js +2 -0
- package/server/models/lenhcapphat.js +8 -0
- package/server/models/lenhsx.js +8 -0
- package/server/models/lienhe.js +4 -0
- package/server/models/like_module.js +2 -0
- package/server/models/link.js +2 -0
- package/server/models/listinfo.js +1365 -0
- package/server/models/loaidiem.js +2 -0
- package/server/models/lock.js +2 -0
- package/server/models/log.js +8 -0
- package/server/models/mailaccount.js +3 -0
- package/server/models/mailgroup.js +3 -0
- package/server/models/mailreceived.js +2 -0
- package/server/models/mailsent.js +2 -0
- package/server/models/mailtemplate.js +2 -0
- package/server/models/maudanhgia.js +2 -0
- package/server/models/menuinfo.js +2 -0
- package/server/models/message.js +8 -0
- package/server/models/message2.js +4 -0
- package/server/models/message2setting.js +3 -0
- package/server/models/moduleinfo.js +4 -0
- package/server/models/momo.js +18 -0
- package/server/models/news.js +3 -0
- package/server/models/newsfeed.js +4 -0
- package/server/models/note.js +2 -0
- package/server/models/notification.js +8 -0
- package/server/models/okr.js +4 -0
- package/server/models/okrdiagram.js +3 -0
- package/server/models/onepay.js +24 -0
- package/server/models/opportunity.js +4 -0
- package/server/models/options.js +2 -0
- package/server/models/originimportid.js +1 -0
- package/server/models/otp.js +1 -0
- package/server/models/parameter.js +2 -0
- package/server/models/participant.js +21 -0
- package/server/models/partner.js +1 -0
- package/server/models/payload.js +1 -0
- package/server/models/pbl.js +16 -0
- package/server/models/pc0.js +13 -0
- package/server/models/pc1.js +14 -0
- package/server/models/pc2.js +13 -0
- package/server/models/pc3.js +13 -0
- package/server/models/pc5.js +8 -0
- package/server/models/pc6.js +14 -0
- package/server/models/pcl.js +6 -0
- package/server/models/pdn.js +9 -0
- package/server/models/pdx.js +9 -0
- package/server/models/pgh.js +5 -0
- package/server/models/phieudanhgia.js +3 -0
- package/server/models/pht.js +8 -0
- package/server/models/phucap.js +4 -0
- package/server/models/pkc.js +6 -0
- package/server/models/pkh.js +6 -0
- package/server/models/pkk.js +10 -0
- package/server/models/pkt.js +12 -0
- package/server/models/pn1.js +18 -0
- package/server/models/pn2.js +12 -0
- package/server/models/pn3.js +13 -0
- package/server/models/pn5.js +14 -0
- package/server/models/pn6.js +14 -0
- package/server/models/pn9.js +17 -0
- package/server/models/pnc.js +9 -0
- package/server/models/pnh.js +11 -0
- package/server/models/pnk.js +10 -0
- package/server/models/po1.js +19 -0
- package/server/models/ppb.js +6 -0
- package/server/models/productcode.js +2 -0
- package/server/models/profile.js +4 -0
- package/server/models/pt1.js +12 -0
- package/server/models/pt5.js +8 -0
- package/server/models/ptl.js +5 -0
- package/server/models/ptthanhtoan.js +6 -0
- package/server/models/purchase_contract.js +17 -0
- package/server/models/pxc.js +9 -0
- package/server/models/pxh.js +11 -0
- package/server/models/pxk.js +9 -0
- package/server/models/qts.js +14 -0
- package/server/models/qts_dieuchinh.js +3 -0
- package/server/models/qts_dieuchuyen.js +4 -0
- package/server/models/quanhuyen.js +2 -0
- package/server/models/reason.js +2 -0
- package/server/models/receivedinvoice.js +2 -0
- package/server/models/reportinfo.js +5 -0
- package/server/models/right.js +4 -0
- package/server/models/rpt.js +2 -0
- package/server/models/rptform.js +3 -0
- package/server/models/rptobject.js +2 -0
- package/server/models/sale_contract.js +9 -0
- package/server/models/schedule.js +18 -0
- package/server/models/schedule_log.js +2 -0
- package/server/models/shipbook.js +12 -0
- package/server/models/shortcut.js +2 -0
- package/server/models/smsaccount.js +10 -0
- package/server/models/smssend.js +2 -0
- package/server/models/so1.js +22 -0
- package/server/models/so5.js +15 -0
- package/server/models/so9.js +19 -0
- package/server/models/socai.js +28 -0
- package/server/models/socainpp.js +18 -0
- package/server/models/socaitc.js +6 -0
- package/server/models/socaitmp.js +16 -0
- package/server/models/socaitt.js +4 -0
- package/server/models/sodiemthuong.js +4 -0
- package/server/models/sokho.js +27 -0
- package/server/models/sokhocapphat.js +18 -0
- package/server/models/sokhokhongton.js +19 -0
- package/server/models/sokhonpp.js +19 -0
- package/server/models/sokhotc.js +8 -0
- package/server/models/sokhott.js +18 -0
- package/server/models/sophanbokh.js +3 -0
- package/server/models/sosanxuat.js +5 -0
- package/server/models/sotinhkh.js +2 -0
- package/server/models/spdd_ck.js +3 -0
- package/server/models/spdd_dk.js +3 -0
- package/server/models/step.js +2 -0
- package/server/models/strategicdiagram.js +3 -0
- package/server/models/strategicgoal.js +4 -0
- package/server/models/strategickpi.js +6 -0
- package/server/models/strategicobjective.js +5 -0
- package/server/models/strategicplan.js +5 -0
- package/server/models/subscribe.js +2 -0
- package/server/models/support.js +2 -0
- package/server/models/synctime.js +2 -0
- package/server/models/sys_job_queue_book_keeping.js +2 -0
- package/server/models/sysconfig.js +2 -0
- package/server/models/sysgroup.js +2 -0
- package/server/models/tableinfo.js +3 -0
- package/server/models/task.js +9 -0
- package/server/models/tc.js +2 -0
- package/server/models/tdttco.js +9 -0
- package/server/models/tdttco_tt.js +5 -0
- package/server/models/tdttno.js +9 -0
- package/server/models/tdttno_tt.js +5 -0
- package/server/models/templaterpt.js +2 -0
- package/server/models/templatestore.js +3 -0
- package/server/models/templatevoucher.js +3 -0
- package/server/models/tinhthanh.js +2 -0
- package/server/models/tokens.js +3 -0
- package/server/models/tontucthoi.js +9 -0
- package/server/models/trangthai.js +4 -0
- package/server/models/trangthaiapp.js +4 -0
- package/server/models/transaction.js +16 -0
- package/server/models/trialinfo.js +2 -0
- package/server/models/user.js +40 -0
- package/server/models/usergroup.js +7 -0
- package/server/models/vanchuyen.js +12 -0
- package/server/models/vat.js +3 -0
- package/server/models/vatra.js +6 -0
- package/server/models/vatvao.js +6 -0
- package/server/models/versioninfo.js +2 -0
- package/server/models/vietqrbanks.js +2 -0
- package/server/models/vsocai.js +6 -0
- package/server/models/wallet.js +8 -0
- package/server/models/warranty.js +3 -0
- package/server/models/warrantyclaim.js +2 -0
- package/server/models/warrantypolicy.js +1 -0
- package/server/models/workflow.js +4 -0
- package/server/models/xaphuong.js +2 -0
- package/server/models/xhd.js +10 -0
- package/server/models/ytdd_ck.js +4 -0
- package/server/models/ytdd_dk.js +4 -0
- package/server/models/zalo.js +17 -0
- package/server/modules/lists/bg-cddiem.js +6 -0
- package/server/modules/lists/bg-cddt.js +7 -0
- package/server/modules/lists/bg-cdkh.js +11 -0
- package/server/modules/lists/bg-cdnphep.js +6 -0
- package/server/modules/lists/bg-cdtk.js +9 -0
- package/server/modules/lists/bg-cdvt.js +8 -0
- package/server/modules/lists/bg-cdvtnpp.js +8 -0
- package/server/modules/lists/bg-fifo_dk.js +8 -0
- package/server/modules/lists/ls-account.js +4 -0
- package/server/modules/lists/ls-afflink.js +3 -0
- package/server/modules/lists/ls-approve.js +5 -0
- package/server/modules/lists/ls-assabcihandler.js +3 -0
- package/server/modules/lists/ls-assbank.js +3 -0
- package/server/modules/lists/ls-assbooking.js +20 -0
- package/server/modules/lists/ls-assbuy.js +8 -0
- package/server/modules/lists/ls-asscashwithdraw.js +8 -0
- package/server/modules/lists/ls-assinvestment.js +31 -0
- package/server/modules/lists/ls-assissue.js +3 -0
- package/server/modules/lists/ls-asskey.js +41 -0
- package/server/modules/lists/ls-assneedtobuy.js +10 -0
- package/server/modules/lists/ls-assperiod.js +19 -0
- package/server/modules/lists/ls-assproduct.js +9 -0
- package/server/modules/lists/ls-assprofitsharing.js +8 -0
- package/server/modules/lists/ls-assreceiver.js +3 -0
- package/server/modules/lists/ls-assrequest.js +4 -0
- package/server/modules/lists/ls-asssell.js +13 -0
- package/server/modules/lists/ls-asstransaction.js +3 -0
- package/server/modules/lists/ls-asstransfer.js +3 -0
- package/server/modules/lists/ls-assuser_identity.js +1 -0
- package/server/modules/lists/ls-asswithdraw.js +12 -0
- package/server/modules/lists/ls-bangtinhluong.js +2 -0
- package/server/modules/lists/ls-calllog.js +4 -0
- package/server/modules/lists/ls-cart.js +14 -0
- package/server/modules/lists/ls-chamcong.js +3 -0
- package/server/modules/lists/ls-chat_session.js +5 -0
- package/server/modules/lists/ls-checkin.js +24 -0
- package/server/modules/lists/ls-checkinactivity.js +8 -0
- package/server/modules/lists/ls-checkinkpi.js +3 -0
- package/server/modules/lists/ls-checkinlocation.js +1 -0
- package/server/modules/lists/ls-chitietluongds.js +4 -0
- package/server/modules/lists/ls-chitieukpi.js +1 -0
- package/server/modules/lists/ls-chudethaoluan.js +1 -0
- package/server/modules/lists/ls-ckgtluong.js +1 -0
- package/server/modules/lists/ls-comment.js +9 -0
- package/server/modules/lists/ls-congdoansx.js +3 -0
- package/server/modules/lists/ls-congtacvien.js +5 -0
- package/server/modules/lists/ls-consultant.js +2 -0
- package/server/modules/lists/ls-contract.js +7 -0
- package/server/modules/lists/ls-csluongtheods.js +1 -0
- package/server/modules/lists/ls-csphucap.js +1 -0
- package/server/modules/lists/ls-ctds.js +4 -0
- package/server/modules/lists/ls-ctds2.js +4 -0
- package/server/modules/lists/ls-currency.js +1 -0
- package/server/modules/lists/ls-customer.js +22 -0
- package/server/modules/lists/ls-customer_care.js +1 -0
- package/server/modules/lists/ls-datlich.js +9 -0
- package/server/modules/lists/ls-dckhauhaots.js +3 -0
- package/server/modules/lists/ls-deal.js +3 -0
- package/server/modules/lists/ls-diagram.js +1 -0
- package/server/modules/lists/ls-dkhoc.js +6 -0
- package/server/modules/lists/ls-dknphep.js +1 -0
- package/server/modules/lists/ls-dmban.js +4 -0
- package/server/modules/lists/ls-dmbp.js +7 -0
- package/server/modules/lists/ls-dmca.js +1 -0
- package/server/modules/lists/ls-dmchietkhau.js +19 -0
- package/server/modules/lists/ls-dmchietkhauhd.js +4 -0
- package/server/modules/lists/ls-dmchinhanh.js +1 -0
- package/server/modules/lists/ls-dmchucvu.js +2 -0
- package/server/modules/lists/ls-dmcpmh.js +1 -0
- package/server/modules/lists/ls-dmdiemthuong.js +4 -0
- package/server/modules/lists/ls-dmdoi.js +4 -0
- package/server/modules/lists/ls-dmdoituongdanhgia.js +1 -0
- package/server/modules/lists/ls-dmdt.js +11 -0
- package/server/modules/lists/ls-dmdvt.js +2 -0
- package/server/modules/lists/ls-dmgiaban.js +4 -0
- package/server/modules/lists/ls-dmgiamua.js +4 -0
- package/server/modules/lists/ls-dmgiathitruong.js +15 -0
- package/server/modules/lists/ls-dmgiathitruong_ngay.js +2 -0
- package/server/modules/lists/ls-dmgiathitruong_theodoi.js +1 -0
- package/server/modules/lists/ls-dmhoahonghd.js +1 -0
- package/server/modules/lists/ls-dmhoahongnpp.js +1 -0
- package/server/modules/lists/ls-dmkc.js +3 -0
- package/server/modules/lists/ls-dmkho.js +7 -0
- package/server/modules/lists/ls-dmkhuyenmai.js +5 -0
- package/server/modules/lists/ls-dmkhuyenmaihd.js +3 -0
- package/server/modules/lists/ls-dmletet.js +1 -0
- package/server/modules/lists/ls-dmlo.js +1 -0
- package/server/modules/lists/ls-dmloaicong.js +1 -0
- package/server/modules/lists/ls-dmloaits.js +1 -0
- package/server/modules/lists/ls-dmnckkm.js +7 -0
- package/server/modules/lists/ls-dmnghiepvu.js +1 -0
- package/server/modules/lists/ls-dmnguonvon.js +1 -0
- package/server/modules/lists/ls-dmnhnv.js +6 -0
- package/server/modules/lists/ls-dmnhtask.js +5 -0
- package/server/modules/lists/ls-dmnkh.js +6 -0
- package/server/modules/lists/ls-dmntt.js +6 -0
- package/server/modules/lists/ls-dmnv.js +14 -0
- package/server/modules/lists/ls-dmnvt.js +7 -0
- package/server/modules/lists/ls-dmphi.js +6 -0
- package/server/modules/lists/ls-dmqct.js +2 -0
- package/server/modules/lists/ls-dmqddvt.js +3 -0
- package/server/modules/lists/ls-dmtanggiamts.js +1 -0
- package/server/modules/lists/ls-dmto.js +5 -0
- package/server/modules/lists/ls-dmtt.js +7 -0
- package/server/modules/lists/ls-dmvt.js +52 -0
- package/server/modules/lists/ls-dmyt.js +1 -0
- package/server/modules/lists/ls-dokho.js +1 -0
- package/server/modules/lists/ls-dvcs.js +1 -0
- package/server/modules/lists/ls-ecomcategories.js +5 -0
- package/server/modules/lists/ls-ecomcategories_cty.js +5 -0
- package/server/modules/lists/ls-email.js +4 -0
- package/server/modules/lists/ls-events.js +3 -0
- package/server/modules/lists/ls-evoucher.js +3 -0
- package/server/modules/lists/ls-experiencejourney.js +1 -0
- package/server/modules/lists/ls-experiencejourneydata.js +3 -0
- package/server/modules/lists/ls-experiencejourneypersona.js +4 -0
- package/server/modules/lists/ls-experiencejourneystage.js +1 -0
- package/server/modules/lists/ls-fbconversation.js +2 -0
- package/server/modules/lists/ls-fbmessage.js +2 -0
- package/server/modules/lists/ls-fbpage.js +11 -0
- package/server/modules/lists/ls-fbpost.js +2 -0
- package/server/modules/lists/ls-file.js +38 -0
- package/server/modules/lists/ls-financialroadmap.js +3 -0
- package/server/modules/lists/ls-flow.js +6 -0
- package/server/modules/lists/ls-flowdata.js +1 -0
- package/server/modules/lists/ls-flowpending.js +3 -0
- package/server/modules/lists/ls-folder.js +1 -0
- package/server/modules/lists/ls-forminfo.js +1 -0
- package/server/modules/lists/ls-giaoca.js +5 -0
- package/server/modules/lists/ls-group.js +5 -0
- package/server/modules/lists/ls-hmcn.js +2 -0
- package/server/modules/lists/ls-hspbts.js +3 -0
- package/server/modules/lists/ls-introducebonus.js +4 -0
- package/server/modules/lists/ls-introducecode.js +10 -0
- package/server/modules/lists/ls-introducer.js +21 -0
- package/server/modules/lists/ls-kbm-bcdkt.js +1 -0
- package/server/modules/lists/ls-kbm-bcqt.js +5 -0
- package/server/modules/lists/ls-kbm-kqhdkd.js +1 -0
- package/server/modules/lists/ls-kbm-lcttgt.js +1 -0
- package/server/modules/lists/ls-kbm-lctttt.js +1 -0
- package/server/modules/lists/ls-kbm-pttct.js +3 -0
- package/server/modules/lists/ls-kbm-tkgtgt.js +3 -0
- package/server/modules/lists/ls-kbm-tmbctc.js +3 -0
- package/server/modules/lists/ls-kehoachdtcp.js +4 -0
- package/server/modules/lists/ls-keyresult.js +7 -0
- package/server/modules/lists/ls-khunghangthanhvien.js +1 -0
- package/server/modules/lists/ls-label.js +1 -0
- package/server/modules/lists/ls-lienhe.js +4 -0
- package/server/modules/lists/ls-like-module.js +1 -0
- package/server/modules/lists/ls-link.js +1 -0
- package/server/modules/lists/ls-loaidiem.js +1 -0
- package/server/modules/lists/ls-lock.js +1 -0
- package/server/modules/lists/ls-log.js +3 -0
- package/server/modules/lists/ls-mailaccount.js +5 -0
- package/server/modules/lists/ls-mailreceived.js +5 -0
- package/server/modules/lists/ls-mailsent.js +4 -0
- package/server/modules/lists/ls-mailtemplate.js +4 -0
- package/server/modules/lists/ls-maudanhgia.js +3 -0
- package/server/modules/lists/ls-message2.js +8 -0
- package/server/modules/lists/ls-message2setting.js +5 -0
- package/server/modules/lists/ls-news.js +7 -0
- package/server/modules/lists/ls-newsfeed.js +4 -0
- package/server/modules/lists/ls-note.js +6 -0
- package/server/modules/lists/ls-okr.js +5 -0
- package/server/modules/lists/ls-okrdiagram.js +1 -0
- package/server/modules/lists/ls-opportunity.js +5 -0
- package/server/modules/lists/ls-options.js +4 -0
- package/server/modules/lists/ls-parameter.js +3 -0
- package/server/modules/lists/ls-participant.js +12 -0
- package/server/modules/lists/ls-phieudanhgia.js +7 -0
- package/server/modules/lists/ls-phucap.js +2 -0
- package/server/modules/lists/ls-productcode.js +9 -0
- package/server/modules/lists/ls-profile.js +1 -0
- package/server/modules/lists/ls-ptthanhtoan.js +3 -0
- package/server/modules/lists/ls-qts-dieuchinh.js +2 -0
- package/server/modules/lists/ls-qts-dieuchuyen.js +8 -0
- package/server/modules/lists/ls-reason.js +1 -0
- package/server/modules/lists/ls-rpt.js +5 -0
- package/server/modules/lists/ls-rptform.js +3 -0
- package/server/modules/lists/ls-shortcut.js +1 -0
- package/server/modules/lists/ls-smsaccount.js +1 -0
- package/server/modules/lists/ls-smssend.js +3 -0
- package/server/modules/lists/ls-sosanxuat.js +4 -0
- package/server/modules/lists/ls-step.js +1 -0
- package/server/modules/lists/ls-strategicdiagram.js +1 -0
- package/server/modules/lists/ls-strategicgoal.js +3 -0
- package/server/modules/lists/ls-strategickpi.js +7 -0
- package/server/modules/lists/ls-strategicobjective.js +3 -0
- package/server/modules/lists/ls-strategicplan.js +6 -0
- package/server/modules/lists/ls-support.js +3 -0
- package/server/modules/lists/ls-task.js +28 -0
- package/server/modules/lists/ls-tc.js +1 -0
- package/server/modules/lists/ls-templaterpt.js +5 -0
- package/server/modules/lists/ls-templatevoucher.js +1 -0
- package/server/modules/lists/ls-tontucthoi.js +3 -0
- package/server/modules/lists/ls-trangthaiapp.js +3 -0
- package/server/modules/lists/ls-transaction.js +4 -0
- package/server/modules/lists/ls-usergroup.js +7 -0
- package/server/modules/lists/ls-vat.js +1 -0
- package/server/modules/lists/ls-vatra.js +5 -0
- package/server/modules/lists/ls-vatvao.js +6 -0
- package/server/modules/lists/ls-warranty.js +3 -0
- package/server/modules/lists/ls-workflow.js +1 -0
- package/server/modules/lists/ls_hanmucton.js +3 -0
- package/server/modules/lists/ls_hspb.js +4 -0
- package/server/modules/lists/ls_spdd_ck.js +3 -0
- package/server/modules/lists/ls_spdd_dk.js +3 -0
- package/server/modules/lists/ls_ytdd_ck.js +4 -0
- package/server/modules/lists/ls_ytdd_dk.js +4 -0
- package/server/modules/lists/sys-attend.js +4 -0
- package/server/modules/lists/sys-follow.js +4 -0
- package/server/modules/lists/sys-right.js +2 -0
- package/server/modules/public/app.js +4 -0
- package/server/modules/public/approve.js +37 -0
- package/server/modules/public/callin.js +7 -0
- package/server/modules/public/comment.js +5 -0
- package/server/modules/public/dmnvt.js +4 -0
- package/server/modules/public/dmvt.js +9 -0
- package/server/modules/public/file.js +11 -0
- package/server/modules/public/forminfo.js +1 -0
- package/server/modules/public/group.js +4 -0
- package/server/modules/public/introducecode.js +1 -0
- package/server/modules/public/listinfo.js +1 -0
- package/server/modules/public/media-webhook.js +1 -0
- package/server/modules/public/partner.js +1 -0
- package/server/modules/public/paymentCallback.js +32 -0
- package/server/modules/public/province.js +1 -0
- package/server/modules/public/ptthanhtoan.js +4 -0
- package/server/modules/public/subscribe.js +30 -0
- package/server/modules/public/support.js +3 -0
- package/server/modules/public/tableinfo.js +1 -0
- package/server/modules/public/trialinfo.js +4 -0
- package/server/modules/public/versioninfo.js +1 -0
- package/server/modules/reports/calc-tinhgiafifo.js +8 -0
- package/server/modules/reports/calc-tinhgiatb.js +7 -0
- package/server/modules/reports/calc-tinhgiathanh.js +7 -0
- package/server/modules/reports/calc-tinhkhauhaots.js +3 -0
- package/server/modules/reports/calc-tinhluong.js +68 -0
- package/server/modules/reports/rp-analyzedata.js +6 -0
- package/server/modules/reports/rp-assbonus.js +4 -0
- package/server/modules/reports/rp-assinterest.js +8 -0
- package/server/modules/reports/rp-assproductowners.js +3 -0
- package/server/modules/reports/rp-asssupply.js +1 -0
- package/server/modules/reports/rp-asstransferlog.js +10 -0
- package/server/modules/reports/rp-backup.js +4 -0
- package/server/modules/reports/rp-banggiatb.js +3 -0
- package/server/modules/reports/rp-bangtinhkhauhao.js +6 -0
- package/server/modules/reports/rp-baoCaoFifoKy.js +1 -0
- package/server/modules/reports/rp-baocaokhachhang.js +6 -0
- package/server/modules/reports/rp-bcdkt.js +11 -0
- package/server/modules/reports/rp-bcintroducebonus.js +4 -0
- package/server/modules/reports/rp-bckhtiemnang.js +3 -0
- package/server/modules/reports/rp-bcqt.js +85 -0
- package/server/modules/reports/rp-bkchamcong.js +5 -0
- package/server/modules/reports/rp-bkct.js +13 -0
- package/server/modules/reports/rp-bkshipbook.js +8 -0
- package/server/modules/reports/rp-bkvanchuyen.js +8 -0
- package/server/modules/reports/rp-bkvatra.js +7 -0
- package/server/modules/reports/rp-bkvatvao.js +7 -0
- package/server/modules/reports/rp-capnhatsocaitc.js +4 -0
- package/server/modules/reports/rp-cdpsdiem.js +4 -0
- package/server/modules/reports/rp-cdpsdt.js +5 -0
- package/server/modules/reports/rp-cdpskh.js +8 -0
- package/server/modules/reports/rp-cdpsnphep.js +3 -0
- package/server/modules/reports/rp-cdpstk.js +4 -0
- package/server/modules/reports/rp-chitietchitientheohoadon.js +12 -0
- package/server/modules/reports/rp-chitiettaisan.js +13 -0
- package/server/modules/reports/rp-chitietthutientheohoadon.js +13 -0
- package/server/modules/reports/rp-ckcn.js +3 -0
- package/server/modules/reports/rp-ckdiem.js +2 -0
- package/server/modules/reports/rp-cktk.js +3 -0
- package/server/modules/reports/rp-ckvt.js +10 -0
- package/server/modules/reports/rp-ckvttheokho.js +4 -0
- package/server/modules/reports/rp-ckvttheotg.js +4 -0
- package/server/modules/reports/rp-ckvttt.js +3 -0
- package/server/modules/reports/rp-congnophaithutheotuoino.js +3 -0
- package/server/modules/reports/rp-congnophaitratheotuoino.js +3 -0
- package/server/modules/reports/rp-congnosapthu.js +4 -0
- package/server/modules/reports/rp-congnosaptra.js +4 -0
- package/server/modules/reports/rp-congviectheobp.js +9 -0
- package/server/modules/reports/rp-congviectheodt.js +8 -0
- package/server/modules/reports/rp-congviectheokh.js +8 -0
- package/server/modules/reports/rp-congviectheonv.js +9 -0
- package/server/modules/reports/rp-congviectheotimeline.js +6 -0
- package/server/modules/reports/rp-ctbanle.js +15 -0
- package/server/modules/reports/rp-ctbanle2.js +20 -0
- package/server/modules/reports/rp-ctbanlectv.js +20 -0
- package/server/modules/reports/rp-ctbanlenpp.js +24 -0
- package/server/modules/reports/rp-ctdanhgianhanvien.js +8 -0
- package/server/modules/reports/rp-cthangbanbitralai.js +4 -0
- package/server/modules/reports/rp-ctmuahang.js +7 -0
- package/server/modules/reports/rp-cttralaihang.js +4 -0
- package/server/modules/reports/rp-databanle.js +10 -0
- package/server/modules/reports/rp-diemthuong.js +2 -0
- package/server/modules/reports/rp-dkcn.js +3 -0
- package/server/modules/reports/rp-dktk.js +2 -0
- package/server/modules/reports/rp-dsnhanviencm.js +9 -0
- package/server/modules/reports/rp-dsnhanvientb.js +9 -0
- package/server/modules/reports/rp-dtbanlekempk.js +12 -0
- package/server/modules/reports/rp-dtbanletheoct.js +22 -0
- package/server/modules/reports/rp-dtbanletheoctkempk.js +25 -0
- package/server/modules/reports/rp-dtbanletheokh.js +17 -0
- package/server/modules/reports/rp-dtbanletheokhnpp.js +19 -0
- package/server/modules/reports/rp-dtbanletheokho.js +15 -0
- package/server/modules/reports/rp-dtbanletheonam.js +3 -0
- package/server/modules/reports/rp-dtbanletheongay.js +1 -0
- package/server/modules/reports/rp-dtbanletheonpp.js +23 -0
- package/server/modules/reports/rp-dtbanletheonv.js +19 -0
- package/server/modules/reports/rp-dtbanletheoquy.js +3 -0
- package/server/modules/reports/rp-dtbanletheosp.js +9 -0
- package/server/modules/reports/rp-dtbanletheospnpp.js +6 -0
- package/server/modules/reports/rp-dtbanletheothang.js +3 -0
- package/server/modules/reports/rp-dtbanletheothungan.js +12 -0
- package/server/modules/reports/rp-dtbanletheovt.js +2 -0
- package/server/modules/reports/rp-dtbanletheovtnpp.js +2 -0
- package/server/modules/reports/rp-dutoanthuchitheodt.js +4 -0
- package/server/modules/reports/rp-getPXC2PNC.js +8 -0
- package/server/modules/reports/rp-getariseofaccountsbymonth.js +4 -0
- package/server/modules/reports/rp-getbtpb.js +6 -0
- package/server/modules/reports/rp-getcashbycashier.js +7 -0
- package/server/modules/reports/rp-getcschietkhau.js +5 -0
- package/server/modules/reports/rp-getdinhmuc4lenhcp.js +7 -0
- package/server/modules/reports/rp-getdinhmuc4pxk.js +9 -0
- package/server/modules/reports/rp-getdk4pht.js +8 -0
- package/server/modules/reports/rp-getdk4pkc.js +10 -0
- package/server/modules/reports/rp-getdttheoca.js +5 -0
- package/server/modules/reports/rp-getinvoice2pay.js +4 -0
- package/server/modules/reports/rp-getinvoice2receive.js +4 -0
- package/server/modules/reports/rp-getinvoice2return.js +5 -0
- package/server/modules/reports/rp-getinvoice2return_bl.js +6 -0
- package/server/modules/reports/rp-getkehoachmh4lenhcp.js +4 -0
- package/server/modules/reports/rp-getkhauhao.js +7 -0
- package/server/modules/reports/rp-getluong.js +8 -0
- package/server/modules/reports/rp-getluongchuyen.js +5 -0
- package/server/modules/reports/rp-getpn2fee.js +5 -0
- package/server/modules/reports/rp-getpn2return.js +5 -0
- package/server/modules/reports/rp-getthanhpham4pnk.js +7 -0
- package/server/modules/reports/rp-getvc2xhd.js +11 -0
- package/server/modules/reports/rp-gt_cpnvltt.js +6 -0
- package/server/modules/reports/rp-hangbanbitralai.js +5 -0
- package/server/modules/reports/rp-hangthanhvien.js +3 -0
- package/server/modules/reports/rp-hoadonbanhangtheohantt.js +5 -0
- package/server/modules/reports/rp-hoadonmuahangtheohantt.js +5 -0
- package/server/modules/reports/rp-hoahong.js +15 -0
- package/server/modules/reports/rp-kcsns.js +19 -0
- package/server/modules/reports/rp-kgchamcong.js +1 -0
- package/server/modules/reports/rp-khoaso.js +11 -0
- package/server/modules/reports/rp-kiemtrasocaitcvssocai.js +6 -0
- package/server/modules/reports/rp-kqdanhgianhanvien.js +5 -0
- package/server/modules/reports/rp-kqhdkd.js +1 -0
- package/server/modules/reports/rp-lcttgt.js +16 -0
- package/server/modules/reports/rp-lctttt.js +11 -0
- package/server/modules/reports/rp-linkslist.js +4 -0
- package/server/modules/reports/rp-phanbochitienchohoadon.js +11 -0
- package/server/modules/reports/rp-phanbothutienchohoadon.js +11 -0
- package/server/modules/reports/rp-ptbitralai.js +7 -0
- package/server/modules/reports/rp-ptcttct.js +24 -0
- package/server/modules/reports/rp-ptdonhang.js +8 -0
- package/server/modules/reports/rp-pttct.js +52 -0
- package/server/modules/reports/rp-pttctkho.js +32 -0
- package/server/modules/reports/rp-pttctkho2.js +29 -0
- package/server/modules/reports/rp-referredusers.js +5 -0
- package/server/modules/reports/rp-sctbhxh.js +4 -0
- package/server/modules/reports/rp-sctcnkh.js +11 -0
- package/server/modules/reports/rp-sctdiem.js +3 -0
- package/server/modules/reports/rp-sctdt.js +7 -0
- package/server/modules/reports/rp-sctdtcp.js +11 -0
- package/server/modules/reports/rp-sctluong.js +6 -0
- package/server/modules/reports/rp-sctthuetncn.js +4 -0
- package/server/modules/reports/rp-scttk.js +9 -0
- package/server/modules/reports/rp-sctvt.js +5 -0
- package/server/modules/reports/rp-sctvt_sl.js +5 -0
- package/server/modules/reports/rp-sctvtnpp.js +6 -0
- package/server/modules/reports/rp-sctvttt.js +5 -0
- package/server/modules/reports/rp-search.js +4 -0
- package/server/modules/reports/rp-socai.js +6 -0
- package/server/modules/reports/rp-socaitk.js +1 -0
- package/server/modules/reports/rp-sochut.js +7 -0
- package/server/modules/reports/rp-sokho.js +7 -0
- package/server/modules/reports/rp-sokhott.js +5 -0
- package/server/modules/reports/rp-sonkbh.js +5 -0
- package/server/modules/reports/rp-sonkc.js +6 -0
- package/server/modules/reports/rp-sonkct.js +5 -0
- package/server/modules/reports/rp-sonkmh.js +5 -0
- package/server/modules/reports/rp-sonktt.js +5 -0
- package/server/modules/reports/rp-soquy.js +11 -0
- package/server/modules/reports/rp-sosanhkhvatt.js +13 -0
- package/server/modules/reports/rp-sosanhkhvatt2.js +5 -0
- package/server/modules/reports/rp-sotaisan.js +13 -0
- package/server/modules/reports/rp-sotiengui.js +7 -0
- package/server/modules/reports/rp-taodinhmuctudkhoc.js +5 -0
- package/server/modules/reports/rp-thbanhangkempk.js +28 -0
- package/server/modules/reports/rp-thdanhgianhanvien.js +9 -0
- package/server/modules/reports/rp-thgt.js +6 -0
- package/server/modules/reports/rp-thnxt.js +11 -0
- package/server/modules/reports/rp-thnxt_sl.js +9 -0
- package/server/modules/reports/rp-thnxtnpp.js +10 -0
- package/server/modules/reports/rp-thnxttt.js +9 -0
- package/server/modules/reports/rp-tkbanhangtheogioithieu.js +9 -0
- package/server/modules/reports/rp-tkgioithieukh.js +4 -0
- package/server/modules/reports/rp-tkgtgt.js +76 -0
- package/server/modules/reports/rp-tkgtgt_old.js +7 -0
- package/server/modules/reports/rp-tmbctc.js +20 -0
- package/server/modules/reports/rp-tonghopbanhang.js +6 -0
- package/server/modules/reports/rp-tonghopmuahang.js +5 -0
- package/server/modules/reports/rp-tonghoptralaihang.js +5 -0
- package/server/modules/reports/rp-tongquanbanle.js +20 -0
- package/server/modules/reports/rp-tongquanbds.js +3 -0
- package/server/modules/reports/rp-tongquancongty.js +6 -0
- package/server/modules/reports/rp-tongquanctvnpp.js +12 -0
- package/server/modules/reports/rp-tongquannvbh.js +14 -0
- package/server/modules/reports/rp-tongquannvnpp.js +5 -0
- package/server/modules/reports/rp-uoctinhnvl.js +11 -0
- package/server/modules/reports/rp-wallet.js +3 -0
- package/server/modules/reports/rpt-tkdiemtichluy.js +9 -0
- package/server/modules/systems/sys-app.js +34 -0
- package/server/modules/systems/sys-colleague.js +11 -0
- package/server/modules/systems/sys-data_list_config.js +1 -0
- package/server/modules/systems/sys-domain.js +1 -0
- package/server/modules/systems/sys-ecomproductlines.js +1 -0
- package/server/modules/systems/sys-exportexceltemplate.js +1 -0
- package/server/modules/systems/sys-fieldright.js +1 -0
- package/server/modules/systems/sys-importexceltemplate.js +1 -0
- package/server/modules/systems/sys-labelinfo.js +4 -0
- package/server/modules/systems/sys-listinfo.js +10 -0
- package/server/modules/systems/sys-menuinfo.js +4 -0
- package/server/modules/systems/sys-message.js +14 -0
- package/server/modules/systems/sys-moduleinfo.js +4 -0
- package/server/modules/systems/sys-notification.js +8 -0
- package/server/modules/systems/sys-quanhuyen.js +1 -0
- package/server/modules/systems/sys-reportinfo.js +5 -0
- package/server/modules/systems/sys-rptobject.js +1 -0
- package/server/modules/systems/sys-schedule.js +10 -0
- package/server/modules/systems/sys-sysconfig.js +1 -0
- package/server/modules/systems/sys-sysgroup.js +1 -0
- package/server/modules/systems/sys-tableinfo.js +1 -0
- package/server/modules/systems/sys-templatestore.js +5 -0
- package/server/modules/systems/sys-tinhthanh.js +1 -0
- package/server/modules/systems/sys-token.js +3 -0
- package/server/modules/systems/sys-trangthai.js +3 -0
- package/server/modules/systems/sys-trialinfo.js +1 -0
- package/server/modules/systems/sys-user.js +45 -0
- package/server/modules/systems/sys-users.js +10 -0
- package/server/modules/systems/sys-versioninfo.js +1 -0
- package/server/modules/systems/sys-vietqrbanks.js +1 -0
- package/server/modules/systems/sys-xaphuong.js +1 -0
- package/server/modules/vouchers/vo-banggiaban.js +8 -0
- package/server/modules/vouchers/vo-bc1.js +34 -0
- package/server/modules/vouchers/vo-bc5.js +15 -0
- package/server/modules/vouchers/vo-bg1.js +10 -0
- package/server/modules/vouchers/vo-bg2.js +12 -0
- package/server/modules/vouchers/vo-bn1.js +36 -0
- package/server/modules/vouchers/vo-bn5.js +15 -0
- package/server/modules/vouchers/vo-dh2.js +35 -0
- package/server/modules/vouchers/vo-dinhmucsx.js +6 -0
- package/server/modules/vouchers/vo-dkb.js +21 -0
- package/server/modules/vouchers/vo-dn0.js +9 -0
- package/server/modules/vouchers/vo-dnm.js +20 -0
- package/server/modules/vouchers/vo-hd1.js +37 -0
- package/server/modules/vouchers/vo-hd2.js +108 -0
- package/server/modules/vouchers/vo-hd3.js +38 -0
- package/server/modules/vouchers/vo-hd4.js +13 -0
- package/server/modules/vouchers/vo-hd7.js +29 -0
- package/server/modules/vouchers/vo-hd8.js +29 -0
- package/server/modules/vouchers/vo-hde.js +39 -0
- package/server/modules/vouchers/vo-htl.js +11 -0
- package/server/modules/vouchers/vo-kbbtpb.js +6 -0
- package/server/modules/vouchers/vo-kehoachmh.js +11 -0
- package/server/modules/vouchers/vo-lenhcapphat.js +9 -0
- package/server/modules/vouchers/vo-lenhsx.js +12 -0
- package/server/modules/vouchers/vo-pbl.js +94 -0
- package/server/modules/vouchers/vo-pc0.js +14 -0
- package/server/modules/vouchers/vo-pc1.js +31 -0
- package/server/modules/vouchers/vo-pc2.js +25 -0
- package/server/modules/vouchers/vo-pc3.js +14 -0
- package/server/modules/vouchers/vo-pc5.js +15 -0
- package/server/modules/vouchers/vo-pc6.js +19 -0
- package/server/modules/vouchers/vo-pcl.js +7 -0
- package/server/modules/vouchers/vo-pdn.js +11 -0
- package/server/modules/vouchers/vo-pdx.js +9 -0
- package/server/modules/vouchers/vo-pgh.js +16 -0
- package/server/modules/vouchers/vo-pht.js +6 -0
- package/server/modules/vouchers/vo-pkc.js +5 -0
- package/server/modules/vouchers/vo-pkh.js +9 -0
- package/server/modules/vouchers/vo-pkk.js +12 -0
- package/server/modules/vouchers/vo-pkt.js +12 -0
- package/server/modules/vouchers/vo-pn1.js +30 -0
- package/server/modules/vouchers/vo-pn2.js +17 -0
- package/server/modules/vouchers/vo-pn3.js +18 -0
- package/server/modules/vouchers/vo-pn5.js +18 -0
- package/server/modules/vouchers/vo-pn6.js +18 -0
- package/server/modules/vouchers/vo-pn9.js +23 -0
- package/server/modules/vouchers/vo-pnc.js +19 -0
- package/server/modules/vouchers/vo-pnh.js +17 -0
- package/server/modules/vouchers/vo-pnk.js +14 -0
- package/server/modules/vouchers/vo-pnknpp.js +12 -0
- package/server/modules/vouchers/vo-po1.js +14 -0
- package/server/modules/vouchers/vo-ppb.js +8 -0
- package/server/modules/vouchers/vo-pt1.js +20 -0
- package/server/modules/vouchers/vo-pt5.js +15 -0
- package/server/modules/vouchers/vo-ptl.js +8 -0
- package/server/modules/vouchers/vo-purchase_contract.js +9 -0
- package/server/modules/vouchers/vo-pxc.js +24 -0
- package/server/modules/vouchers/vo-pxh.js +18 -0
- package/server/modules/vouchers/vo-pxk.js +15 -0
- package/server/modules/vouchers/vo-pxknpp.js +14 -0
- package/server/modules/vouchers/vo-qts.js +12 -0
- package/server/modules/vouchers/vo-sale_contract.js +11 -0
- package/server/modules/vouchers/vo-shipbook.js +17 -0
- package/server/modules/vouchers/vo-so1.js +125 -0
- package/server/modules/vouchers/vo-so5.js +57 -0
- package/server/modules/vouchers/vo-so7.js +97 -0
- package/server/modules/vouchers/vo-so9.js +119 -0
- package/server/modules/vouchers/vo-vanchuyen.js +14 -0
- package/server/modules/vouchers/vo-xhd.js +33 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const {ec}=require("elliptic-nodejs"),EC=new ec("secp256k1"),walletSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},privateKey:{type:String,required:!0},publicKey:{type:String,required:!0},email:{type:String,required:!0,lowercase:!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&&(walletSchema.index({id_app:1,privateKey:1,email:1}),walletSchema.index({email:"text"}),walletSchema.index({status:1}),walletSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.wallet||mongoose.model("wallet",walletSchema),toHexString=$byteArray$$=>Array.from($byteArray$$,$byte$$=>("0"+($byte$$&255).toString(16)).slice(-2)).join("");
|
|
3
|
+
model.createWallet=async($id_app$$,$email$$)=>new Promise(($resolve$$,$reject$$)=>{model.findOne({id_app:$id_app$$,email:$email$$},($e$$,$rs$$)=>{if($e$$||$rs$$)return $reject$$(Error($e$$?$e$$.message:"This user has wallet"));try{let $privateKey$$=EC.genKeyPair().getPrivate().toString(16),$publicKey$$=model.getPublicKeyFromPrivateKey($privateKey$$);(new model({email:$email$$,privateKey:$privateKey$$,publicKey:$publicKey$$,id_app:$id_app$$})).save($e$$=>{if($e$$)return $reject$$(Error($e$$.message));
|
|
4
|
+
$resolve$$($privateKey$$)})}catch($e$$){Logger.error($e$$),$reject$$(Error($e$$.message))}})});model.getPrivateKey=async($id_app$$,$email$$)=>new Promise(($resolve$$,$reject$$)=>{model.findOne({id_app:$id_app$$,email:$email$$}).lean().then(async $rs$$=>{if($rs$$)return $resolve$$($rs$$.privateKey);try{let $privateKey$$=await model.createWallet($id_app$$,$email$$);$resolve$$($privateKey$$)}catch($e$$){$reject$$(Error($e$$.message))}}).catch($e$$=>{$reject$$(Error($e$$.message))})});
|
|
5
|
+
model.getPublicKey=async($id_app$$,$email$$)=>{var $privateKey$jscomp$2_publicKey$$=await model.getPrivateKey($id_app$$,$email$$);$privateKey$jscomp$2_publicKey$$=model.getPublicKeyFromPrivateKey($privateKey$jscomp$2_publicKey$$);await model.updateOne({id_app:$id_app$$,email:$email$$},{publicKey:$privateKey$jscomp$2_publicKey$$});return $privateKey$jscomp$2_publicKey$$};model.getPublicKeyFromPrivateKey=$privateKey$$=>EC.keyFromPrivate($privateKey$$,"hex").getPublic().encode("hex");
|
|
6
|
+
model.getEmail=async($id_app$$,$publicKey$$)=>new Promise(($resolve$$,$reject$$)=>{model.findOne({id_app:$id_app$$,publicKey:$publicKey$$}).lean().then(async $rs$$=>$rs$$?$resolve$$($rs$$.email):$reject$$(Error("\u0110\u1ecba ch\u1ec9 v\u00ed n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i"))).catch($e$$=>{$reject$$(Error($e$$.message))})});
|
|
7
|
+
model.sign=async($id_app$$,$email$$,$dataToSign$$)=>{try{let $privateKey$$=await model.getPrivateKey($id_app$$,$email$$),$key$$=EC.keyFromPrivate($privateKey$$,"hex"),$msgHash$$=[JSON.stringify($dataToSign$$)];return toHexString($key$$.sign($msgHash$$).toDER())}catch($e$$){throw Error(`Can't sign data. Error: ${$e$$.message}`);}};
|
|
8
|
+
model.verifySignature=async($address_id_app$jscomp$5_key$$,$email$$,$data_msgHash$$,$signature$$)=>{$address_id_app$jscomp$5_key$$=await model.getPublicKey($address_id_app$jscomp$5_key$$,$email$$);$address_id_app$jscomp$5_key$$=EC.keyFromPublic($address_id_app$jscomp$5_key$$,"hex");$data_msgHash$$=[JSON.stringify($data_msgHash$$)];return $address_id_app$jscomp$5_key$$.verify($data_msgHash$$,$signature$$)};module.exports=model;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const warrantySchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_hd:{type:String,required:!0,maxlength:1024},ten_hd:String,tien_nt:{type:Number,default:0},ma_nt:{type:String,default:"VND"},mieu_ta:{type:String},start_date:{type:Date},warranty_time:{type:Number,default:0},unit_time:{type:Number,default:2},due_date:{type:Date},reminder_yn:{type:Boolean,default:!0},reminder:{type:Date},repeat:{type:Number},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,
|
|
2
|
+
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&&(warrantySchema.index({id_app:1,id_hd:1,ten_hd:1,mieu_ta:1}),warrantySchema.index({id_app:1,ten_hd:"text",mieu_ta:"text"}),warrantySchema.index({id_app:1,status:1}),warrantySchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.kbmlctttt||mongoose.model("warranty",warrantySchema);module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const mongoose=require("mongoose"),Schema=mongoose.Schema,warrantyClaimSchema=new Schema({id_app:{type:Schema.Types.ObjectId,ref:"app",required:!0,index:!0},ma_kh:{type:String,required:!0,index:!0},order:{type:Schema.Types.ObjectId,refPath:"order_type_model",required:!0,index:!0},order_type_model:{type:String,required:!0,enum:["hd2","pbl","so1"],default:"hd2"},ma_vt:{type:String,required:!0},warranty_info:{policy_id:{type:Schema.Types.ObjectId,ref:"warrantypolicy"},name:{type:String},duration_months:{type:Number},
|
|
2
|
+
start_date:{type:Date},end_date:{type:Date},status:{type:String,enum:["PENDING","ACTIVE","EXPIRED"],default:"PENDING"}},issue_description:{type:String,required:!0},trang_thai:String,resolution_type:{type:String,enum:["REPAIRED","REPLACED"]},resolution_details:{type:String},return_tracking_number:{type:String},rejection_reason:{type:String}},{timestamps:!0});module.exports=mongoose.models.warrantyclaim||mongoose.model("warrantyclaim",warrantyClaimSchema);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const mongoose=require("mongoose"),Schema=mongoose.Schema,warrantyPolicySchema=new Schema({id_app:{type:Schema.Types.ObjectId,ref:"app",required:!0,index:!0},name:{type:String,required:!0},durationMonths:{type:Number,required:!0,min:0},details:{type:String,required:!0},type:{type:String,enum:["SELLER","MANUFACTURER"],required:!0},isActive:{type:Boolean,default:!0}},{timestamps:!0});module.exports=mongoose.models.warrantypolicy||mongoose.model("warrantypolicy",warrantyPolicySchema);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const mongoose=require("mongoose"),{Schema}=mongoose,kpiSchema=new Schema({metric_name:String,type:{type:String,enum:["count","sum","conversion_rate"]},apiCode:String,target_value:Number}),StepSchema=new Schema({step_order:{type:Number,required:!0,description:"Th\u1ee9 t\u1ef1 c\u1ee7a b\u01b0\u1edbc trong quy tr\u00ecnh"},title:{type:String,required:!0,description:"T\u00ean b\u01b0\u1edbc (VD: \u0110\u1ea7u gi\u1edd s\u00e1ng)"},time_block:{type:String,description:"Khung gi\u1edd g\u1ee3i \u00fd (VD: 08:00 - 09:30)"},
|
|
2
|
+
objective:{type:String,description:"M\u1ee5c ti\u00eau c\u1ee7a b\u01b0\u1edbc n\u00e0y (VD: \u0110\u1ea3m b\u1ea3o doanh thu n\u1ec1n t\u1ea3ng)"},description:{type:String,description:"H\u01b0\u1edbng d\u1eabn chi ti\u1ebft / Thao t\u00e1c h\u1ec7 th\u1ed1ng"},dashboard_config:Schema.Types.Mixed}),WorkflowSchema=new Schema({id_app:{type:String,required:!0},code:{type:String,required:!0,uppercase:!0,description:"M\u00e3 quy tr\u00ecnh (VD: SOP_SALES_B2B)"},title:{type:String,required:!0,description:"T\u00ean quy tr\u00ecnh"},
|
|
3
|
+
ma_bp:{type:String,description:"Ph\u00f2ng ban \u00e1p d\u1ee5ng"},cong_viec:{type:String,description:"V\u1ecb tr\u00ed \u00e1p d\u1ee5ng (VD: Nh\u00e2n vi\u00ean kinh doanh B2B)"},status:{type:Boolean,default:!0,description:"Tr\u1ea1ng th\u00e1i ho\u1ea1t \u0111\u1ed9ng"},steps:[StepSchema],kpi_configs:[kpiSchema],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&&WorkflowSchema.index({id_app:1,code:1},{unique:!0});module.exports=mongoose.model("workflow",WorkflowSchema);
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const xaphuongSchema=new Schema({ten_tinh_thanh:{type:String,required:!0,maxlength:1024,trim:!0},ten_quan_huyen:{type:String,required:!0,maxlength:1024,trim:!0},ten_xa_phuong:{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&&(xaphuongSchema.index({ten_tinh_thanh:1,ten_quan_huyen:1,ten_xa_phuong:1}),xaphuongSchema.index({ten_tinh_thanh:"text",ten_quan_huyen:"text",ten_xa_phuong:"text"}),xaphuongSchema.index({status:1}),xaphuongSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.xaphuong||mongoose.model("xaphuong",xaphuongSchema);module.exports=model;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const validAccount=require("../libs/validator-account"),validator=require("../libs/validator"),detailSchema=new Schema({id_ct:String,code_ct:String,ma_vt:{type:String,maxlength:1024},ten_vt:{type:String,maxlength:1024},ma_dvt:{type:String,maxlength:32},sl_xuat:{type:Number,default:1},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien_hang:{type:Number,default:0},tien_hang_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,
|
|
2
|
+
default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},ma_thue:String,thue_suat:{type:Number,default:0},tien_thue:{type:Number,default:0},tien_thue_nt:{type:Number,default:0},tt:{type:Number,default:0},tt_nt:{type:Number,default:0},dien_giai:{type:String,default:"",maxlength:1024},ten_vt_vat:String,ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},ma_phi:{type:String,uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32},ma_dt:{type:String,
|
|
3
|
+
uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_lo:{type:String,uppercase:!0,default:"",maxlength:32},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}}),xhdSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"XHD",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},so_ct:{type:String,required:"B\u1ea1n ch\u01b0a nh\u1eadp s\u1ed1 ch\u1ee9ng t\u1eeb",
|
|
4
|
+
uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"B\u1ea1n ch\u01b0a nh\u1eadp m\u00e3 ngo\u1ea1i t\u1ec7",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},tk_no:{type:String,uppercase:!0,required:"B\u1ea1n ch\u01b0a nh\u1eadp t\u00e0i kho\u1ea3n n\u1ee3",default:"",maxlength:32},ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",
|
|
5
|
+
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_co:{type:String,uppercase:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,required:"B\u1ea1n ch\u01b0a nh\u1eadp m\u00e3 kh\u00e1ch h\u00e0ng",default:"",maxlength:32},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},
|
|
6
|
+
ong_ba:{type:String,maxlength:1024},ma_so_thue:{type:String,maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai_thue:{type:String,default:"",maxlength:1024},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},han_tt:{type:Number,default:0},hinh_thuc_tt:{type:String,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},
|
|
7
|
+
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],details:{type:[detailSchema]},id_contract:{type:String,maxlength:1024},result_export_einvoice:Schema.Types.Mixed,ma_bp:{type:String,uppercase:!0,maxlength:32},ma_phi:{type:String,uppercase:!0,maxlength:32},ma_hd:{type:String,uppercase:!0,maxlength:32},ma_dt:{type:String,uppercase:!0,
|
|
8
|
+
maxlength:32},ma_nv:{type:String,uppercase:!0,maxlength:32},ma_lo:{type:String,uppercase:!0,maxlength:32},ma_kho:String,ten_kho:String});xhdSchema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,tk_no:validAccount.existsTk,ma_thue:validator.existsVat,tk_thue_co:validAccount.existsTk};
|
|
9
|
+
(global.configs||{}).createIndexes&&(xhdSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1},{name:"xhd_index_1"}),xhdSchema.index({dien_giai:"text",so_ct:"text",ma_kh:"text",ten_kh:"text",so_hd:"text",so_seri:"text",ma_so_thue:"text"},{name:"xhd_index_text"}),xhdSchema.index({ma_ct:1}),xhdSchema.index({ma_kh:1}),xhdSchema.index({user_created:1,date_created:-1}),xhdSchema.index({date_updated:-1}),xhdSchema.index({status:1}),xhdSchema.index({user_created:1,visible_to:1,visible_to_users:1}),xhdSchema.index({trang_thai:1}));
|
|
10
|
+
module.exports=mongoose.models.xhd||mongoose.model("xhd",xhdSchema);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const ytdd_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_yt:{type:String,required:"L\u1ed7i: M\u00e3 y\u1ebfu t\u1ed1 kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng",uppercase:!0,maxlength:32},ma_sp:{type:String,uppercase:!0,default:"",maxlength:1024},ten_sp:String,ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},ten_bp:String,ma_nvl:{type:String,uppercase:!0,
|
|
2
|
+
default:"",maxlength:32},id_lenhsx:{type:String,maxlength:1024},tien_nt:{type:Number,default:0},tien:{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:""}});
|
|
3
|
+
(global.configs||{}).createIndexes&&(ytdd_ckScheam.index({id_app:1,nam:1,thang:1,ma_dvcs:1,ma_yt:1}),ytdd_ckScheam.index({ma_sp:1}),ytdd_ckScheam.index({ma_bp:1}),ytdd_ckScheam.index({ma_sp:"text",ten_sp:"text",ma_bp:"text",ten_bp:"text"},{name:"ytdd_ck_index_text"}),ytdd_ckScheam.index({id_lenhsx:1}),ytdd_ckScheam.index({ma_nvl:1}),ytdd_ckScheam.index({status:1}),ytdd_ckScheam.index({user_created:1,visible_to:1,visible_to_users:1}));
|
|
4
|
+
module.exports=mongoose.models.ytdd_ck||mongoose.model("ytdd_ck",ytdd_ckScheam);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const ytdd_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_yt:{type:String,required:"L\u1ed7i: M\u00e3 y\u1ebfu t\u1ed1 kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng",uppercase:!0,maxlength:32},ma_sp:{type:String,uppercase:!0,default:"",maxlength:1024},ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},ma_nvl:{type:String,uppercase:!0,default:"",maxlength:32},id_lenhsx:{type:String,
|
|
2
|
+
maxlength:1024},tien_nt:{type:Number,default:0},tien:{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:""}});
|
|
3
|
+
(global.configs||{}).createIndexes&&(ytdd_dkScheam.index({id_app:1,nam:1,thang:1,ma_dvcs:1,ma_yt:1}),ytdd_dkScheam.index({ma_sp:1}),ytdd_dkScheam.index({ma_bp:1}),ytdd_dkScheam.index({id_lenhsx:1}),ytdd_dkScheam.index({ma_nvl:1}),ytdd_dkScheam.index({ma_sp:"text",ten_sp:"text",ma_bp:"text",ten_bp:"text"},{name:"ytdd_dk_index_text"}),ytdd_dkScheam.index({status:1}),ytdd_dkScheam.index({user_created:1,visible_to:1,visible_to_users:1}));
|
|
4
|
+
module.exports=mongoose.models.ytdd_dk||mongoose.model("ytdd_dk",ytdd_dkScheam);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const controller=require("../controllers/controller"),Ptthanhtoan=global.getModel("ptthanhtoan"),hmacSHA256=require("crypto-js/hmac-sha256"),axios=require("axios"),moment=require("moment"),{executeInTransaction}=require("../libs/sessionContext"),zaloScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},apptransid:String,ma_ct:{type:String,required:!0,uppercase:!0},pt_thanh_toan:{type:String,required:!0},client_ip:{type:String,required:!0},
|
|
2
|
+
trang_thai:{type:String,default:"0",enum:["0","1","2"]}});(global.configs||{}).createIndexes&&(zaloScheam.index({id_app:1}),zaloScheam.index({id_ct:1}),zaloScheam.index({apptransid:1}),zaloScheam.index({trang_thai:1}),zaloScheam.index({pt_thanh_toan:1}));const model=mongoose.models.zalo||mongoose.model("zalo",zaloScheam),again_link=`${configs.domain?`https://${configs.domain}`:configs.api_url}/public/payment/again`;
|
|
3
|
+
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 transaction info, Query: ${JSON.stringify($condition$$)}`));$resolve$$($fields$$?$rs$$[$fields$$]:$rs$$)}).catch($e$$=>{$reject$$($e$$)})})};
|
|
4
|
+
model.getConfigs=async($id_app$$,$pt_thanh_toan$$,$_paymentViazalo$$)=>{if(!$pt_thanh_toan$$||!global.mongoose.Types.ObjectId.isValid($pt_thanh_toan$$))return null;$_paymentViazalo$$||=await Ptthanhtoan.getInfo($id_app$$,{_id:$pt_thanh_toan$$});return $_paymentViazalo$$||$_paymentViazalo$$.payment_service==="zalo"?($id_app$$=$_paymentViazalo$$.zalo_configs)&&$id_app$$.endpoint&&$id_app$$.appid&&$id_app$$.key1&&$id_app$$.key2?$id_app$$:($id_app$$=configs.zalo_configs)&&$id_app$$.endpoint&&$id_app$$.appid&&
|
|
5
|
+
$id_app$$.key1&&$id_app$$.key2?$id_app$$:null:(Logger.error("Phuong thuc thanh toan khong ton tai"),null)};
|
|
6
|
+
model.createVirtualPaymentClientURL=async($order$$,$client_ip$$,$_paymentViazalo$$)=>{let $id_app$$=$order$$.id_app,$amount$$=$order$$.amount||$order$$.t_tien||0;if($amount$$<1E3)throw"S\u1ed1 ti\u1ec1n ph\u1ea3i l\u1edbn h\u01a1n ho\u1eb7c b\u1eb1ng 1000 VND";let $zalo_configs$$=await model.getConfigs($id_app$$,$order$$.pt_thanh_toan,$_paymentViazalo$$);if(!$zalo_configs$$)return Logger.error("not found zalo configs"),"";let $apptime$$=(new Date).getTime(),$apptransid$$=moment($apptime$$).format("YYMMDD")+
|
|
7
|
+
"_"+$order$$.so_ct,$_zalo$$=new model({id_app:$id_app$$,id_ct:$order$$._id,ma_ct:$order$$.ma_ct,apptransid:$apptransid$$,pt_thanh_toan:$order$$.pt_thanh_toan,client_ip:$client_ip$$||":11"});return new Promise(($resolve$$,$reject$$)=>{$_zalo$$.save(($appid_body_e$$,$embeddata_rs$$)=>{if($appid_body_e$$)return $reject$$(Error($appid_body_e$$.message));$appid_body_e$$=$zalo_configs$$.appid;let $appuser$$=$order$$.user_created;$embeddata_rs$$={request_id:$embeddata_rs$$._id.toString(),redirecturl:`${configs.domain?
|
|
8
|
+
`https://${configs.domain}`:configs.api_url}/public/${$id_app$$}/zalo/${$embeddata_rs$$._id.toString()}/callback`};let $item$$=$order$$.details.map($d$$=>({ma_vt:$d$$.ma_vt,ten_vt:$d$$.ten_vt,sl_xuat:$d$$.sl_xuat})),$bankcode$$=$zalo_configs$$.bankcode||"",$description$$=$order$$.dien_giai||"Pay with zalo";var $mac_rawSignature$$=$appid_body_e$$+"|"+$apptransid$$+"|"+$appuser$$+"|"+$amount$$+"|"+$apptime$$+"|"+JSON.stringify($embeddata_rs$$)+"|"+JSON.stringify($item$$);$mac_rawSignature$$=hmacSHA256($mac_rawSignature$$,
|
|
9
|
+
$zalo_configs$$.key1).toString();$appid_body_e$$={amount:$amount$$,appid:$appid_body_e$$,appuser:$appuser$$,apptime:$apptime$$,apptransid:$apptransid$$,embeddata:JSON.stringify($embeddata_rs$$),item:JSON.stringify($item$$),bankcode:$bankcode$$,mac:$mac_rawSignature$$,description:$description$$};axios.post($zalo_configs$$.endpoint,new URLSearchParams($appid_body_e$$)).then($res$$=>{if($res$$.data.returncode!=1)return Logger.error($res$$.data),$reject$$(Error($res$$.data.returnmessage));$resolve$$($res$$.data.orderurl)}).catch($error$$=>
|
|
10
|
+
{$reject$$($error$$)})})})};
|
|
11
|
+
model.handleNotify=async($id_app$$,$callback_data$$,$callback$$)=>{try{const $body_receiver$$=JSON.parse($callback_data$$);let $id_transaction$$=$body_receiver$$.embeddata.request_id;if(!$id_transaction$$)return $callback$$(null,{returncode:9,returnmessage:"Kh\u00f4ng tim th\u1ea5y giao d\u1ecbch n\u00e0y"});const $trans$$=await model.findOne({_id:$id_transaction$$}),$service_configs$$=await model.getConfigs($id_app$$,$trans$$.pt_thanh_toan);if(hmacSHA256($callback_data$$.data,$service_configs$$.key2).toString()!==
|
|
12
|
+
$body_receiver$$.mac)return $callback$$(null,{returncode:9,returnmessage:"Mac kh\u00f4ng kh\u1edbp"});$callback$$(null,{returncode:1,returnmessage:"Callback h\u1ee3p l\u00fd"})}catch($e$$){Logger.error($e$$),$callback$$(null,{returncode:9,returnmessage:"Kh\u00f4ng th\u1ec3 x\u00e1c th\u1ef1c giao d\u1ecbch"})}};
|
|
13
|
+
model.verifyReturnUrl=async($apptransid$jscomp$1_id_app$$,$id_transaction$$)=>{let $_zalo$$=await model.getInfo($apptransid$jscomp$1_id_app$$,{_id:$id_transaction$$}),$zalo_configs$$=await model.getConfigs($apptransid$jscomp$1_id_app$$,$_zalo$$.pt_thanh_toan);if(!$zalo_configs$$)throw"Miss configures for zalo";$apptransid$jscomp$1_id_app$$=$_zalo$$.apptransid;let $appid$$=$zalo_configs$$.appid,$mac$$=hmacSHA256($appid$$+"|"+$apptransid$jscomp$1_id_app$$+"|"+$zalo_configs$$.key1,$zalo_configs$$.key1).toString(),
|
|
14
|
+
$body$$={appid:$appid$$,apptransid:$apptransid$jscomp$1_id_app$$,mac:$mac$$};return new Promise(($resolve$$,$reject$$)=>{axios.post($zalo_configs$$.endpoint_status,new URLSearchParams($body$$)).then(async $obj_updated$jscomp$1_obj_updated$$=>{const $results$$=$obj_updated$jscomp$1_obj_updated$$.data;$results$$.isSuccess=$results$$.returncode==1;let $_v$$=global.getModel(`${$_zalo$$.ma_ct.toLowerCase()}`);if($results$$.isSuccess)try{await executeInTransaction(async()=>{await model.updateOne({_id:$id_transaction$$},
|
|
15
|
+
{trang_thai:$results$$.isSuccess==0?"1":"2"});await $_v$$.updateOne({_id:$_zalo$$.id_ct},{trang_thai:"5"});const $obj_updated$$=await $_v$$.findOne({_id:$_zalo$$.id_ct});let $ctrl$$=global.controllers[$_zalo$$.ma_ct.toUpperCase()];$ctrl$$&&$obj_updated$$&&($ctrl$$.post&&(await controller.asyncPostData($obj_updated$$,$ctrl$$),controller.pushNotification($ctrl$$,$obj_updated$$,"update")),$ctrl$$.handleAfterPayment&&(await $ctrl$$.handleAfterPayment($obj_updated$$),controller.pushNotification($ctrl$$,
|
|
16
|
+
$obj_updated$$,"payment",null,!1,{title:`Bill ${$obj_updated$$.so_ct} \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n`})),$results$$.result_url=$obj_updated$$.again_link||again_link)})}catch($e$$){Logger.error("[zalo]error update status for voucher",$_zalo$$.ma_ct,$e$$),$obj_updated$jscomp$1_obj_updated$$=await $_v$$.findOne({_id:$_zalo$$.id_ct}),$results$$.result_url=$obj_updated$jscomp$1_obj_updated$$.again_link||again_link}else $obj_updated$jscomp$1_obj_updated$$=await $_v$$.findOne({_id:$_zalo$$.id_ct}),
|
|
17
|
+
$results$$.result_url=$obj_updated$jscomp$1_obj_updated$$.again_link||again_link;$results$$.result_url=$results$$.result_url||again_link;$results$$.error_url="";$results$$.message=$results$$.returnmessage;$resolve$$($results$$)}).catch($error$$=>{$reject$$($error$$)})})};module.exports=model;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
const model=global.getModel("cddiem"),controller=require("../../controllers/controller"),moment=require("moment"),dvcs=global.getModel("dvcs"),async=require("async"),utils=require("../../libs/utils"),cddiem=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"cddiem",{sort:{nam:-1,ma_dvcs:1,email:1}});$contr_router$$.route();$contr_router$$.view=function($user$$,$result$$,$fn$$){const $id_app$$=$user$$.current_id_app;async.series({dvcs:function($callback$$){$result$$.joinModel2($id_app$$,
|
|
2
|
+
dvcs,[{where:{ma_dvcs:"_id"},fields:[{name:"ten_dvcs",value:"ten_dvcs"}]}],function($kq$$){$callback$$(null,$kq$$)})}},function($error$$){if($error$$)return $fn$$($error$$);$fn$$(null,$result$$)})};$contr_router$$.creating=async function($ngay_ks_user$$,$obj$$,$callback$$){let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$obj$$.nam||($obj$$.nam=$_app$$.nam_bd);let $den_ngay$$=
|
|
3
|
+
moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks_user$$=await utils.isBookLocked({id_app:$ngay_ks_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn h\u1ebft ng\u00e0y ${moment($ngay_ks_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$obj$$)};$contr_router$$.updating=async function($ngay_ks$jscomp$2_user$$,$data$$,$obj$$,$callback$$){var $_app$jscomp$1_ngay_ks$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$2_user$$.current_id_app});
|
|
4
|
+
if(!$_app$jscomp$1_ngay_ks$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($_app$jscomp$1_ngay_ks$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$2_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$jscomp$1_ngay_ks$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn h\u1ebft ng\u00e0y ${moment($_app$jscomp$1_ngay_ks$$).format("DD/MM/YYYY")}`);$data$$.nam=$data$$.nam||$obj$$.nam;
|
|
5
|
+
if($data$$.nam&&($den_ngay$$=moment([$data$$.nam,0,1]).endOf("year").toDate(),$ngay_ks$jscomp$2_user$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$2_user$$.current_id_app,ngay_ct:$den_ngay$$})))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn h\u1ebft ng\u00e0y ${moment($ngay_ks$jscomp$2_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$data$$,$obj$$)};$contr_router$$.deleting=async($ngay_ks$jscomp$3_user$$,$obj$$,$callback$$)=>{let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$3_user$$.current_id_app});
|
|
6
|
+
if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks$jscomp$3_user$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$3_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn h\u1ebft ng\u00e0y ${moment($ngay_ks$jscomp$3_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$obj$$)}};module.exports=cddiem;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const model=global.getModel("cddt"),controller=require("../../controllers/controller"),moment=require("moment"),dvcs=global.getModel("dvcs"),dmtk=global.getModel("account"),dmdt=global.getModel("dmdt"),async=require("async"),utils=require("../../libs/utils"),cddt=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"cddt",{sort:{ma_dvcs:1,nam:-1,ma_dt:1,tk:1},unique:["ma_dvcs","tk","ma_dt","nam"]});$contr_router$$.route();$contr_router$$.view=function($user$$,$result$$,$fn$$){const $id_app$$=
|
|
2
|
+
$user$$.current_id_app;async.series({dvcs:function($callback$$){$result$$.joinModel2($id_app$$,dvcs,[{where:{ma_dvcs:"_id"},fields:[{name:"ten_dvcs",value:"ten_dvcs"}]}],function($kq$$){$callback$$(null,$kq$$)})},tk:function($callback$$){$result$$.joinModel2($id_app$$,dmtk,[{where:"tk",fields:[{name:"ten_tk",value:"ten_tk"}]}],function($kq$$){$callback$$(null,$kq$$)})},dt:function($callback$$){$result$$.joinModel2($id_app$$,dmdt,[{where:"ma_dt",fields:[{name:"ten_dt",value:"ten_dt"}]}],function($kq$$){$callback$$(null,
|
|
3
|
+
$kq$$)})}},function($error$$){if($error$$)return $fn$$($error$$);$fn$$(null,$result$$)})};$contr_router$$.creating=async function($ngay_ks_user$$,$obj$$,$callback$$){let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$obj$$.nam||($obj$$.nam=$_app$$.nam_bd);let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks_user$$=await utils.isBookLocked({id_app:$ngay_ks_user$$.current_id_app,
|
|
4
|
+
ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$obj$$)};$contr_router$$.updating=async function($ngay_ks$jscomp$2_user$$,$data$$,$obj$$,$callback$$){var $_app$jscomp$1_ngay_ks$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$2_user$$.current_id_app});if(!$_app$jscomp$1_ngay_ks$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");
|
|
5
|
+
let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($_app$jscomp$1_ngay_ks$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$2_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$jscomp$1_ngay_ks$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app$jscomp$1_ngay_ks$$).format("DD/MM/YYYY")}`);$data$$.nam=$data$$.nam||$obj$$.nam;if($data$$.nam&&($den_ngay$$=moment([$data$$.nam,0,1]).startOf("date").toDate(),$ngay_ks$jscomp$2_user$$=
|
|
6
|
+
await utils.isBookLocked({id_app:$ngay_ks$jscomp$2_user$$.current_id_app,ngay_ct:$den_ngay$$})))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks$jscomp$2_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$data$$,$obj$$)};$contr_router$$.deleting=async($ngay_ks$jscomp$3_user$$,$obj$$,$callback$$)=>{let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$3_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");
|
|
7
|
+
let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks$jscomp$3_user$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$3_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks$jscomp$3_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$obj$$)}};module.exports=cddt;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const model=global.getModel("cdkh"),controller=require("../../controllers/controller"),customer=global.getModel("customer"),dmkho=global.getModel("dmkho"),dmdt=global.getModel("dmdt"),dmnv=global.getModel("dmnv"),contract=global.getModel("contract"),dmbp=global.getModel("dmbp"),dvcs=global.getModel("dvcs"),dmtk=global.getModel("account"),async=require("async"),moment=require("moment"),utils=require("../../libs/utils"),cdkh=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,
|
|
2
|
+
"cdkh",{sort:{ma_dvcs:1,nam:-1,tk:1},unique:"ma_dvcs tk ma_kh ma_kho ma_dt ma_bp ma_hd ma_nv nam".split(" ")});$contr_router$$.route();$contr_router$$.view=function($user$$,$result$$,$fn$$){const $id_app$$=$user$$.current_id_app;async.series({dv:function($callback$$){$result$$.joinModel2($id_app$$,dvcs,{where:{ma_dvcs:"_id"},fields:{ten_dvcs:"ten_dvcs"}},function(){$callback$$()})},kh:function($callback$$){$result$$.joinModel2($id_app$$,customer,{where:"ma_kh",fields:{ten_kh:"ten_kh"}},function(){$callback$$()})},
|
|
3
|
+
tk:function($callback$$){$result$$.joinModel2($id_app$$,dmtk,{where:"tk",fields:["ten_tk","ma_nt"]},function(){$callback$$()})},kho:function($callback$$){$result$$.joinModel2($id_app$$,dmkho,{where:"ma_kho",fields:{ten_kho:"ten_kho"}},function(){$callback$$()})},dmbp:function($callback$$){$result$$.joinModel2($id_app$$,dmbp,{where:"ma_bp",fields:{ten_bp:"ten_bp"}},function(){$callback$$()})},dmdt:function($callback$$){$result$$.joinModel2($id_app$$,dmdt,{where:"ma_dt",fields:{ten_dt:"ten_dt"}},function(){$callback$$()})},
|
|
4
|
+
contract:function($callback$$){$result$$.joinModel2($id_app$$,contract,{where:{ma_hd:"so_hd"},fields:{ten_hd:"ten_hd"}},function(){$callback$$()})},nv:function($callback$$){$result$$.joinModel2($id_app$$,dmnv,{where:"ma_nv",fields:{ten_nv:"ten_nv"}},function(){$callback$$()})}},function(){$fn$$(null,$result$$)})};$contr_router$$.updating=async function($id_app$jscomp$1_tk_user$$,$data$$,$obj$$,$callback$$){var $_app_ngay_ks$$=await global.getModel("app").findOne({_id:$id_app$jscomp$1_tk_user$$.current_id_app});
|
|
5
|
+
if(!$_app_ngay_ks$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");var $den_ngay_ngay_ks$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($den_ngay_ngay_ks$$=await utils.isBookLocked({id_app:$id_app$jscomp$1_tk_user$$.current_id_app,ngay_ct:$den_ngay_ngay_ks$$,ngay_ks:$_app_ngay_ks$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($den_ngay_ngay_ks$$).format("DD/MM/YYYY")}`);$data$$.nam=$data$$.nam||$obj$$.nam;if($data$$.nam&&
|
|
6
|
+
($den_ngay_ngay_ks$$=moment([$data$$.nam,0,1]).endOf("year").toDate(),$_app_ngay_ks$$=await utils.isBookLocked({id_app:$id_app$jscomp$1_tk_user$$.current_id_app,ngay_ct:$den_ngay_ngay_ks$$,ngay_ks:$_app_ngay_ks$$.ngay_ks})))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app_ngay_ks$$).format("DD/MM/YYYY")}`);$id_app$jscomp$1_tk_user$$=$id_app$jscomp$1_tk_user$$.current_id_app;$data$$.tk==void 0&&($data$$.tk=$obj$$.tk);$data$$.du_no_nt00==void 0&&($data$$.du_no_nt00=
|
|
7
|
+
$obj$$.du_no_nt00);$data$$.du_co_nt00==void 0&&($data$$.du_co_nt00=$obj$$.du_co_nt00);$data$$.du_no_nt1==void 0&&($data$$.du_no_nt1=$obj$$.du_no_nt1);$data$$.du_co_nt1==void 0&&($data$$.du_co_nt1=$obj$$.du_co_nt1);($id_app$jscomp$1_tk_user$$=await dmtk.findOne({tk:$data$$.tk,id_app:$id_app$jscomp$1_tk_user$$},{ma_nt:1}).lean())&&$id_app$jscomp$1_tk_user$$.ma_nt==="VND"&&($data$$.du_no_nt00=$data$$.du_no00,$data$$.du_co_nt00=$data$$.du_co00,$data$$.du_no_nt1=$data$$.du_no1,$data$$.du_co_nt1=$data$$.du_co1);
|
|
8
|
+
$callback$$(null,$data$$,$obj$$)};$contr_router$$.creating=async function($tk$jscomp$1_user$$,$obj$$,$callback$$){var $_app$jscomp$1_ngay_ks$$=await global.getModel("app").findOne({_id:$tk$jscomp$1_user$$.current_id_app});if(!$_app$jscomp$1_ngay_ks$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$obj$$.nam||($obj$$.nam=$_app$jscomp$1_ngay_ks$$.nam_bd);let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($_app$jscomp$1_ngay_ks$$=await utils.isBookLocked({id_app:$tk$jscomp$1_user$$.current_id_app,
|
|
9
|
+
ngay_ct:$den_ngay$$,ngay_ks:$_app$jscomp$1_ngay_ks$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app$jscomp$1_ngay_ks$$).format("DD/MM/YYYY")}`);($tk$jscomp$1_user$$=await dmtk.findOne({tk:$obj$$.tk,id_app:$tk$jscomp$1_user$$.current_id_app},{ma_nt:1}).lean())&&$tk$jscomp$1_user$$.ma_nt==="VND"&&($obj$$.du_no_nt00=$obj$$.du_no00,$obj$$.du_co_nt00=$obj$$.du_co00,$obj$$.du_no_nt1=$obj$$.du_no1,$obj$$.du_co_nt1=$obj$$.du_co1);$callback$$(null,$obj$$)};
|
|
10
|
+
$contr_router$$.deleting=async($ngay_ks$jscomp$3_user$$,$obj$$,$callback$$)=>{let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$3_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks$jscomp$3_user$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$3_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks$jscomp$3_user$$).format("DD/MM/YYYY")}`);
|
|
11
|
+
$callback$$(null,$obj$$)}};module.exports=cdkh;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
const model=global.getModel("cdnphep"),controller=require("../../controllers/controller"),moment=require("moment"),User=global.getModel("user"),async=require("async"),utils=require("../../libs/utils"),cdnphep=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"cdnphep",{sort:{nam:-1,email:1}});$contr_router$$.route();$contr_router$$.view=function($user$$,$result$$,$fn$$){async.series({user:function($callback$$){$result$$.joinModel2(null,User,{where:{email:"email"},fields:"name"},
|
|
2
|
+
function($kq$$){$callback$$(null,$kq$$)})}},function($error$$){if($error$$)return $fn$$($error$$);$fn$$(null,$result$$)})};$contr_router$$.creating=async function($ngay_ks_user$$,$obj$$,$callback$$){let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$obj$$.nam||($obj$$.nam=$_app$$.nam_bd);let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks_user$$=await utils.isBookLocked({id_app:$ngay_ks_user$$.current_id_app,
|
|
3
|
+
ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$obj$$)};$contr_router$$.updating=async function($ngay_ks$jscomp$2_user$$,$data$$,$obj$$,$callback$$){let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$2_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");var $den_ngay$jscomp$1_ngay_ks$$=
|
|
4
|
+
moment([$obj$$.nam,0,1]).startOf("date").toDate();if($den_ngay$jscomp$1_ngay_ks$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$2_user$$.current_id_app,ngay_ct:$den_ngay$jscomp$1_ngay_ks$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($den_ngay$jscomp$1_ngay_ks$$).format("DD/MM/YYYY")}`);$data$$.nam=$data$$.nam||$obj$$.nam;if($data$$.nam&&($den_ngay$jscomp$1_ngay_ks$$=moment([$data$$.nam,0,1]).endOf("year").toDate(),$ngay_ks$jscomp$2_user$$=
|
|
5
|
+
await utils.isBookLocked({id_app:$ngay_ks$jscomp$2_user$$.current_id_app,ngay_ct:$den_ngay$jscomp$1_ngay_ks$$,ngay_ks:$_app$$.ngay_ks})))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks$jscomp$2_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$data$$,$obj$$)};$contr_router$$.deleting=async($ngay_ks$jscomp$3_user$$,$obj$$,$callback$$)=>{let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$3_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");
|
|
6
|
+
let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks$jscomp$3_user$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$3_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks$jscomp$3_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$obj$$)}};module.exports=cdnphep;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const model=global.getModel("cdtk"),controller=require("../../controllers/controller"),dvcs=global.getModel("dvcs"),dmtk=global.getModel("account"),dmkho=global.getModel("dmkho"),async=require("async"),moment=require("moment"),utils=require("../../libs/utils"),cdtk=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"cdtk",{sort:{ma_dvcs:1,nam:-1,tk:1},unique:["ma_dvcs","tk","nam","ma_kho"]});$contr_router$$.route();$contr_router$$.view=function($user$$,$result$$,$fn$$){const $id_app$$=
|
|
2
|
+
$user$$.current_id_app;async.series({dvcs:function($callback$$){$result$$.joinModel2($id_app$$,dvcs,[{where:{ma_dvcs:"_id"},fields:[{name:"ten_dvcs",value:"ten_dvcs"}]}],function($kq$$){$callback$$(null,$kq$$)})},tk:function($callback$$){$result$$.joinModel2($id_app$$,dmtk,[{where:"tk",fields:["ten_tk","ma_nt"]}],function($kq$$){$callback$$(null,$kq$$)})},ma_kho:function($callback$$){$result$$.filter($r$$=>$r$$.ma_kho).joinModel2($id_app$$,dmkho,[{where:"ma_kho",fields:[{name:"ten_kho",value:"ten_kho"}]}],
|
|
3
|
+
function($kq$$){$callback$$(null,$kq$$)})}},function($error$$){if($error$$)return $fn$$($error$$);$fn$$(null,$result$$)})};$contr_router$$.creating=async function($ngay_ks_user$$,$obj$$,$callback$$){var $id_app$$=$ngay_ks_user$$.current_id_app;let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$obj$$.nam||($obj$$.nam=$_app$$.nam_bd);let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();
|
|
4
|
+
if($ngay_ks_user$$=await utils.isBookLocked({id_app:$ngay_ks_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks_user$$).format("DD/MM/YYYY")}`);($id_app$$=await dmtk.findOne({tk:$obj$$.tk,id_app:$id_app$$},{ma_nt:1}).lean())&&$id_app$$.ma_nt==="VND"&&($obj$$.du_no_nt00=$obj$$.du_no00,$obj$$.du_co_nt00=$obj$$.du_co00,$obj$$.du_no_nt1=$obj$$.du_no1,$obj$$.du_co_nt1=$obj$$.du_co1);$callback$$(null,
|
|
5
|
+
$obj$$)};$contr_router$$.updating=async function($tk$jscomp$1_user$$,$data$$,$obj$$,$callback$$){var $_app$jscomp$1_ngay_ks$$=await global.getModel("app").findOne({_id:$tk$jscomp$1_user$$.current_id_app});if(!$_app$jscomp$1_ngay_ks$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");var $den_ngay$jscomp$1_ngay_ks$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($den_ngay$jscomp$1_ngay_ks$$=await utils.isBookLocked({id_app:$tk$jscomp$1_user$$.current_id_app,ngay_ct:$den_ngay$jscomp$1_ngay_ks$$,
|
|
6
|
+
ngay_ks:$_app$jscomp$1_ngay_ks$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($den_ngay$jscomp$1_ngay_ks$$).format("DD/MM/YYYY")}`);$data$$.nam=$data$$.nam||$obj$$.nam;if($data$$.nam&&($den_ngay$jscomp$1_ngay_ks$$=moment([$data$$.nam,0,1]).startOf("date").toDate(),$_app$jscomp$1_ngay_ks$$=await utils.isBookLocked({id_app:$tk$jscomp$1_user$$.current_id_app,ngay_ct:$den_ngay$jscomp$1_ngay_ks$$,ngay_ks:$_app$jscomp$1_ngay_ks$$.ngay_ks})))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app$jscomp$1_ngay_ks$$).format("DD/MM/YYYY")}`);
|
|
7
|
+
$data$$.tk==void 0&&($data$$.tk=$obj$$.tk);$data$$.du_no_nt00==void 0&&($data$$.du_no_nt00=$obj$$.du_no_nt00);$data$$.du_co_nt00==void 0&&($data$$.du_co_nt00=$obj$$.du_co_nt00);$data$$.du_no_nt1==void 0&&($data$$.du_no_nt1=$obj$$.du_no_nt1);$data$$.du_co_nt1==void 0&&($data$$.du_co_nt1=$obj$$.du_co_nt1);($tk$jscomp$1_user$$=await dmtk.findOne({tk:$data$$.tk,id_app:$tk$jscomp$1_user$$.current_id_app},{ma_nt:1}).lean())&&$tk$jscomp$1_user$$.ma_nt==="VND"&&($data$$.du_no_nt00=$data$$.du_no00,$data$$.du_co_nt00=
|
|
8
|
+
$data$$.du_co00,$data$$.du_no_nt1=$data$$.du_no1,$data$$.du_co_nt1=$data$$.du_co1);$callback$$(null,$data$$,$obj$$)};$contr_router$$.deleting=async($ngay_ks$jscomp$3_user$$,$obj$$,$callback$$)=>{let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$3_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks$jscomp$3_user$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$3_user$$.current_id_app,
|
|
9
|
+
ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks$jscomp$3_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$obj$$)}};module.exports=cdtk;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const model=global.getModel("cdvt"),controller=require("../../controllers/controller"),dmvt=global.getModel("dmvt"),dmkho=global.getModel("dmkho"),tontucthoi=global.getModel("tontucthoi"),async=require("async"),moment=require("moment"),utils=require("../../libs/utils"),cdvt=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"cdvt",{sort:{nam:-1,ma_dvcs:1,ma_kho:1,ma_vt:1,han_sd:1},unique:"ma_dvcs nam ma_kho ma_vt ma_lo ma_tt1 ma_tt2 ma_tt3".split(" ")});$contr_router$$.route();
|
|
2
|
+
$contr_router$$.view=function($user$$,$result$$,$fn$$){const $id_app$$=$user$$.current_id_app;async.parallel({vt:function($callback$$){$result$$.joinModel2($id_app$$,dmvt,[{where:"ma_vt",fields:"ten_vt ma_dvt ma_tt1_yn ma_tt2_yn ma_tt3_yn ma_lo_yn".split(" ")}],function($kq$$){$callback$$(null,$kq$$)})},kho:function($callback$$){$result$$.joinModel2($id_app$$,dmkho,[{where:"ma_kho",fields:[{name:"ten_kho",value:"ten_kho"}]}],function($kq$$){$callback$$(null,$kq$$)})}},function($error$$){if($error$$)return $fn$$($error$$);
|
|
3
|
+
$fn$$(null,$result$$)})};$contr_router$$.creating=async function($ngay_ks_user$$,$obj$$,$callback$$){let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$obj$$.nam||($obj$$.nam=$_app$$.nam_bd);let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks_user$$=await utils.isBookLocked({id_app:$ngay_ks_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks_user$$).format("DD/MM/YYYY")}`);
|
|
4
|
+
$callback$$(null,$obj$$)};$contr_router$$.created=function($user$$,$obj$$,$callback$$){tontucthoi.tinhTonTucThoi($obj$$,$e$$=>{$e$$&&Logger.error("[cdvt] t\u00ednh t\u1ed3n t\u1ee9c th\u1eddi",$e$$)});$callback$$(null,$obj$$)};$contr_router$$.updated=function($user$$,$obj$$,$callback$$){tontucthoi.tinhTonTucThoi($obj$$,$e$$=>{$e$$&&Logger.error("[cdvt] t\u00ednh t\u1ed3n t\u1ee9c th\u1eddi",$e$$)});$callback$$(null,$obj$$)};$contr_router$$.updating=async function($ngay_ks$jscomp$2_user$$,$data$$,
|
|
5
|
+
$obj$$,$callback$$){let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$2_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");var $den_ngay$jscomp$1_ngay_ks$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($den_ngay$jscomp$1_ngay_ks$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$2_user$$.current_id_app,ngay_ct:$den_ngay$jscomp$1_ngay_ks$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($den_ngay$jscomp$1_ngay_ks$$).format("DD/MM/YYYY")}`);
|
|
6
|
+
$data$$.nam=$data$$.nam||$obj$$.nam;if($data$$.nam&&($den_ngay$jscomp$1_ngay_ks$$=moment([$data$$.nam,0,1]).startOf("date").toDate(),$ngay_ks$jscomp$2_user$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$2_user$$.current_id_app,ngay_ct:$den_ngay$jscomp$1_ngay_ks$$,ngay_ks:$_app$$.ngay_ks})))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks$jscomp$2_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$data$$,$obj$$)};$contr_router$$.deleting=async($ngay_ks$jscomp$3_user$$,
|
|
7
|
+
$obj$$,$callback$$)=>{let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$3_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks$jscomp$3_user$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$3_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks$jscomp$3_user$$).format("DD/MM/YYYY")}`);
|
|
8
|
+
$callback$$(null,$obj$$)};$contr_router$$.deleted=function($user$$,$obj$$,$callback$$){tontucthoi.tinhTonTucThoi($obj$$,$e$$=>{$e$$&&Logger.error("[cdvt] t\u00ednh t\u1ed3n t\u1ee9c th\u1eddi",$e$$)});$callback$$(null,$obj$$)}};module.exports=cdvt;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const model=global.getModel("cdvtnpp"),controller=require("../../controllers/controller"),dvcs=global.getModel("dvcs"),dmvt=global.getModel("dmvt"),dmkho=global.getModel("dmkho"),async=require("async"),moment=require("moment"),utils=require("../../libs/utils"),cdvtnpp=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"cdvtnpp",{sort:{nam:-1,ma_dvcs:1,ma_kho:1,ma_kh:1,ma_vt:1,han_sd:1},unique:"ma_dvcs nam ma_kho ma_kh ma_vt ma_lo ma_tt1 ma_tt2 ma_tt3".split(" ")});$contr_router$$.route();
|
|
2
|
+
$contr_router$$.view=function($user$$,$result$$,$fn$$){const $id_app$$=$user$$.current_id_app;async.series({dvcs:function($callback$$){$result$$.joinModel2($id_app$$,dvcs,[{where:{ma_dvcs:"_id"},fields:[{name:"ten_dvcs",value:"ten_dvcs"}]}],function($kq$$){$callback$$(null,$kq$$)})},vt:function($callback$$){$result$$.joinModel2($id_app$$,dmvt,[{where:"ma_vt",fields:"ten_vt ma_dvt ma_tt1_yn ma_tt2_yn ma_tt3_yn ma_lo_yn".split(" ")}],function($kq$$){$callback$$(null,$kq$$)})},kho:function($callback$$){$result$$.joinModel2($id_app$$,
|
|
3
|
+
dmkho,[{where:"ma_kho",fields:"ten_kho"}],function($kq$$){$callback$$(null,$kq$$)})},kh:function($callback$$){$result$$.filter($r$$=>$r$$.ma_kh).joinModel2($id_app$$,"customer",[{where:"ma_kh",fields:"ten_kh"}],function($kq$$){$callback$$(null,$kq$$)})}},function($error$$){if($error$$)return $fn$$($error$$);$fn$$(null,$result$$)})};$contr_router$$.creating=async function($ngay_ks_user$$,$obj$$,$callback$$){let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");
|
|
4
|
+
$obj$$.nam||($obj$$.nam=$_app$$.nam_bd);let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks_user$$=await utils.isBookLocked({id_app:$ngay_ks_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$obj$$)};$contr_router$$.updating=async function($ngay_ks$jscomp$2_user$$,$data$$,$obj$$,$callback$$){let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$2_user$$.current_id_app});
|
|
5
|
+
if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");var $den_ngay$jscomp$1_ngay_ks$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($den_ngay$jscomp$1_ngay_ks$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$2_user$$.current_id_app,ngay_ct:$den_ngay$jscomp$1_ngay_ks$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($den_ngay$jscomp$1_ngay_ks$$).format("DD/MM/YYYY")}`);$data$$.nam=$data$$.nam||$obj$$.nam;
|
|
6
|
+
if($data$$.nam&&($den_ngay$jscomp$1_ngay_ks$$=moment([$data$$.nam,0,1]).startOf("date").toDate(),$ngay_ks$jscomp$2_user$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$2_user$$.current_id_app,ngay_ct:$den_ngay$jscomp$1_ngay_ks$$,ngay_ks:$_app$$.ngay_ks})))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks$jscomp$2_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$data$$,$obj$$)};$contr_router$$.deleting=async($ngay_ks$jscomp$3_user$$,$obj$$,$callback$$)=>
|
|
7
|
+
{let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$3_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks$jscomp$3_user$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$3_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks$jscomp$3_user$$).format("DD/MM/YYYY")}`);
|
|
8
|
+
$callback$$(null,$obj$$)}};module.exports=cdvtnpp;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const model=global.getModel("fifo_dk"),controller=require("../../controllers/controller"),dmvt=global.getModel("dmvt"),dmkho=global.getModel("dmkho"),tontucthoi=global.getModel("tontucthoi"),async=require("async"),moment=require("moment"),utils=require("../../libs/utils"),fifo_dk=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"fifo_dk",{sort:{nam:-1}});$contr_router$$.route();$contr_router$$.view=function($user$$,$result$$,$fn$$){const $id_app$$=$user$$.current_id_app;
|
|
2
|
+
async.parallel({vt:function($callback$$){$result$$.joinModel2($id_app$$,dmvt,[{where:"ma_vt",fields:"ten_vt ma_dvt ma_tt1_yn ma_tt2_yn ma_tt3_yn ma_lo_yn".split(" ")}],function($kq$$){$callback$$(null,$kq$$)})},kho:function($callback$$){$result$$.joinModel2($id_app$$,dmkho,[{where:"ma_kho",fields:[{name:"ten_kho",value:"ten_kho"}]}],function($kq$$){$callback$$(null,$kq$$)})}},function($error$$){if($error$$)return $fn$$($error$$);$fn$$(null,$result$$)})};$contr_router$$.creating=async function($ngay_ks_user$$,
|
|
3
|
+
$obj$$,$callback$$){let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$obj$$.nam||($obj$$.nam=$_app$$.nam_bd);$obj$$.thang_bat_dau||($obj$$.thang_bat_dau=$_app$$.ngay_ky1);$obj$$.ngay_nhap||($obj$$.thang_bat_dau=moment($obj$$.thang_bat_dau).startOf("month").toDate());let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks_user$$=await utils.isBookLocked({id_app:$ngay_ks_user$$.current_id_app,
|
|
4
|
+
ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$obj$$)};$contr_router$$.created=function($user$$,$obj$$,$callback$$){tontucthoi.tinhTonTucThoi($obj$$,$e$$=>{$e$$&&Logger.error("[fifo_dk] t\u00ednh t\u1ed3n t\u1ee9c th\u1eddi",$e$$)});$callback$$(null,$obj$$)};$contr_router$$.updated=function($user$$,$obj$$,$callback$$){tontucthoi.tinhTonTucThoi($obj$$,$e$$=>
|
|
5
|
+
{$e$$&&Logger.error("[fifo_dk] t\u00ednh t\u1ed3n t\u1ee9c th\u1eddi",$e$$)});$callback$$(null,$obj$$)};$contr_router$$.updating=async function($ngay_ks$jscomp$2_user$$,$data$$,$obj$$,$callback$$){let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$2_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");var $den_ngay$jscomp$1_ngay_ks$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($den_ngay$jscomp$1_ngay_ks$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$2_user$$.current_id_app,
|
|
6
|
+
ngay_ct:$den_ngay$jscomp$1_ngay_ks$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($den_ngay$jscomp$1_ngay_ks$$).format("DD/MM/YYYY")}`);$data$$.nam=$data$$.nam||$obj$$.nam;if($data$$.nam&&($den_ngay$jscomp$1_ngay_ks$$=moment([$data$$.nam,0,1]).startOf("date").toDate(),$ngay_ks$jscomp$2_user$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$2_user$$.current_id_app,ngay_ct:$den_ngay$jscomp$1_ngay_ks$$,ngay_ks:$_app$$.ngay_ks})))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks$jscomp$2_user$$).format("DD/MM/YYYY")}`);
|
|
7
|
+
$callback$$(null,$data$$,$obj$$)};$contr_router$$.deleting=async($ngay_ks$jscomp$3_user$$,$obj$$,$callback$$)=>{let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$3_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks$jscomp$3_user$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$3_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks$jscomp$3_user$$).format("DD/MM/YYYY")}`);
|
|
8
|
+
$callback$$(null,$obj$$)};$contr_router$$.deleted=function($user$$,$obj$$,$callback$$){tontucthoi.tinhTonTucThoi($obj$$,$e$$=>{$e$$&&Logger.error("[fifo_dk] t\u00ednh t\u1ed3n t\u1ee9c th\u1eddi",$e$$)});$callback$$(null,$obj$$)}};module.exports=fifo_dk;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const model=global.getModel("account"),controller=require("../../controllers/controller"),account=function($accountContr_router$$){$accountContr_router$$=new controller($accountContr_router$$,model,"account",{sort:{tk:1},unique:["tk"],notNeedRight:($user$$,$options$$={})=>($options$$.action||"").toLowerCase()=="view"?!0:!1});$accountContr_router$$.route();$accountContr_router$$.view=function($id_app_user$$,$items$$,$fn$$){$id_app_user$$=$id_app_user$$.current_id_app;$items$$.filter($item$$=>$item$$.tk_me).joinModel($id_app_user$$,
|
|
2
|
+
model,[{akey:"tk_me",bkey:"tk",fields:[{name:"ten_tk_me",value:"ten_tk"}]}],function(){$fn$$(null,$items$$)})};$accountContr_router$$.deleting=function($user$$,$obj$$,$next$$){if($obj$$.loai_tk===0)return $next$$(Error("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p x\u00f3a t\u00e0i kho\u1ea3n m\u1eb9"));$next$$(null,$obj$$)};$accountContr_router$$.on("saved",async function($obj$$,$oldObj$$){let $tk_me$$=$obj$$.tk_me;$tk_me$$&&await model.updateOne({id_app:$obj$$.id_app,tk:$tk_me$$},{loai_tk:0});model.findOne({id_app:$obj$$.id_app,
|
|
3
|
+
tk_me:$obj$$.tk},async function($error$$,$acc$$){$error$$||($error$$=$acc$$?0:1,$obj$$.loai_tk=$error$$,await model.updateOne({_id:$obj$$._id},{loai_tk:$error$$}))});$oldObj$$&&$oldObj$$.tk_me&&$oldObj$$.tk_me!=$obj$$.tk_me&&model.findOne({id_app:$obj$$.id_app,tk_me:$oldObj$$.tk_me},async function($error$$,$acc$$){$error$$||$acc$$||await model.updateOne({id_app:$oldObj$$.id_app,tk:$oldObj$$.tk_me},{loai_tk:1})})});$accountContr_router$$.on("deleted",function($obj$$){$obj$$.tk_me&&model.findOne({id_app:$obj$$.id_app,
|
|
4
|
+
tk_me:$obj$$.tk_me},function($error$$,$acc$$){$error$$||$acc$$||model.updateOne({id_app:$obj$$.id_app,tk:$obj$$.tk_me},{$set:{loai_tk:1}},function($error$$,$obj$$){$error$$||$obj$$&&Logger.info("updated "+$obj$$.tk)})})})};module.exports=account;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const controller=require("../../controllers/controller"),model=global.getModel("afflink"),async=require("async");
|
|
2
|
+
module.exports=function($router$$){(new controller($router$$,model,"afflink",{sort:{date_created:-1},notNeedRight:($user$$,$options$$={})=>($options$$.action||"").toLowerCase()=="view"?!0:!1,onView:($user$$,$items$$,$next$$)=>{async.map($items$$,($r$$,$callback$$)=>{setImmediate(async()=>{$r$$.aff_link=`${configs.api_url}/aff/${$r$$._id}`;$r$$.da_hoan_thanh=await global.getModel("so1").countDocuments({id_app:$r$$.id_app,id_afflink:$r$$._id.toString(),trang_thai:{$in:["8"]}});$r$$.da_tra_lai=await global.getModel("hd7").countDocuments({id_app:$r$$.id_app,
|
|
3
|
+
"details.id_afflink":$r$$._id.toString(),trang_thai:{$nin:["9"]}});$callback$$()})},()=>{$next$$(null,$items$$)})},onCreating:($user$$,$data$$,$next$$)=>{delete $data$$.da_truy_cap;delete $data$$.da_dat_hang;delete $data$$.da_giao;delete $data$$.da_huy;delete $data$$.da_tra_lai;$next$$(null,$data$$)},onUpdating:($user$$,$data$$,$obj$$,$next$$)=>{delete $data$$.da_truy_cap;delete $data$$.da_dat_hang;delete $data$$.da_giao;delete $data$$.da_huy;delete $data$$.da_tra_lai;$next$$(null,$data$$,$obj$$)}})).route()};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const controller=require("../../controllers/controller"),model=global.getModel("approve"),Participant=global.getModel("participant"),{isSupperAdmin}=require("../../libs/utils");
|
|
2
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"approve",{sort:{date_created:-1},notNeedRight:!0,onFinding:($user$$,$condition$$,$next$$)=>{if(isSupperAdmin($user$$.email.toLowerCase()))return $next$$(null,$condition$$);$condition$$.$and||($condition$$.$and=[]);$condition$$.$and.push({$or:[{user_created:$user$$.email},{"user_approves.email":$user$$.email},{user_request:$user$$.email}]});$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$)=>
|
|
3
|
+
{await $items$$.filter($item$$=>$item$$.user_approved).asyncJoinModel2($user$$.current_id_app,Participant,{where:{user_approved:"email"},fields:{user_approved_name:"name"}});await $items$$.filter($item$$=>$item$$.user_denied).asyncJoinModel2($user$$.current_id_app,Participant,{where:{user_denied:"email"},fields:{user_denied_name:"name"}});$next$$(null,$items$$)},onCreating:($user$$,$data$$,$next$$)=>{$next$$("Kh\u00f4ng th\u1ec3 t\u1ea1o")},onUpdating:($user$$,$data$$,$obj$$,$next$$)=>{$next$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt")},
|
|
4
|
+
onDeleting:($user$$,$obj$$,$next$$)=>{$next$$("Kh\u00f4ng th\u1ec3 xo\u00e1")}});$contr_router$$.createRoute("approve/:id_request",async($req$$,$next$$)=>{model.approve({email:$req$$.user.email,name:$req$$.user.name,id_request:$req$$.params.id_request},$e$$=>{if($e$$)return $next$$({error:$e$$});$next$$(null,{message:"B\u1ea1n \u0111\u00e3 duy\u1ec7t th\u00e0nh c\u00f4ng"})},null,{reason:($req$$.body||{}).reason})},{method:"POST"});$contr_router$$.createRoute("deny/:id_request",async($req$$,$next$$)=>
|
|
5
|
+
{model.deny({email:$req$$.user.email,name:$req$$.user.name,id_request:$req$$.params.id_request},$e$$=>{if($e$$)return $next$$({error:$e$$});$next$$(null,{message:"B\u1ea1n \u0111\u00e3 t\u1eeb ch\u1ed1i duy\u1ec7t y\u00eau c\u1ea7u n\u00e0y"})},null,{reason:($req$$.body||{}).reason})},{method:"POST"});$contr_router$$.route()};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const model=global.getModel("assabcihandler"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils");
|
|
2
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"assabcihandler",{sort:{date_created:-1}});$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){return isSupperAdmin($user$$.email.toLowerCase())?$fn$$(null,$obj$$):$fn$$("Kh\u00f4ng th\u1ec3 x\u00f3a")};$contr_router$$.creating=async($user$$,$data$$,$fn$$)=>$fn$$("Kh\u00f4ng th\u1ec3 t\u1ea1o");$contr_router$$.updating=function($user$$,$data$$,$obj$$,$fn$$){return $fn$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt")};
|
|
3
|
+
$contr_router$$.route()};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const model=global.getModel("assbank"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils");
|
|
2
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"assbank",{sort:{date_created:-1},unique:["address","denom"],onView:async($user$$,$items$$,$next$$)=>{await $items$$.asyncJoinModel2($user$$.current_id_app,"asskey",{where:{address:"address"},fields:["name","username"]});await $items$$.asyncJoinModel2(null,"user",{where:{username:"email"},fields:[{name_account:"name"}]});$next$$(null,$items$$)}});$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){return isSupperAdmin($user$$.email.toLowerCase())?
|
|
3
|
+
$fn$$(null,$obj$$):$fn$$("Kh\u00f4ng th\u1ec3 x\u00f3a")};$contr_router$$.creating=async($user$$,$data$$,$fn$$)=>isSupperAdmin($user$$.email.toLowerCase())?$fn$$(null,$data$$):$fn$$("Kh\u00f4ng th\u1ec3 t\u1ea1o");$contr_router$$.updating=function($user$$,$data$$,$obj$$,$fn$$){return isSupperAdmin($user$$.email.toLowerCase())?$fn$$(null,$data$$,$obj$$):$fn$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt")};$contr_router$$.route()};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const model=global.getModel("assbooking"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils"),{spend}=require("../../libs/blockchainconnect"),AssProduct=global.getModel("assproduct"),async=require("async"),moment=require("moment");
|
|
2
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"assbooking",{sort:{date_created:-1},notNeedRight:!0,requireOtp:($data$$,$options$$)=>$data$$.trang_thai=="9"||isSupperAdmin($options$$.user.email.toLowerCase())?!1:!0,onFinding:async($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$)=>{await $items$$.asyncJoinModel2($user$$.current_id_app,AssProduct,{where:{id_product:"id"},fields:["ten_san_pham",{hinh_anh_ks:"hinh_anh"},
|
|
3
|
+
"logo","ma_loai","wallet_hotel","ds_phong",{user_hotel2:"user_hotel"}]});$items$$.forEach(async $item$$=>{$item$$.thong_tin_phong=($item$$.ds_phong||[]).find($f$$=>($f$$.ma_phong||"").toLowerCase()===($item$$.ma_phong||"").toLowerCase());delete $item$$.ds_phong;$item$$.trang_thai=="1"&&$item$$.ngay_nhan_phong&&moment($item$$.ngay_nhan_phong).toDate().getTime()<moment().endOf("date").toDate().getTime()&&($item$$.trang_thai="8",await model.updateOne({_id:$item$$._id},{trang_thai:"8"}));$item$$.user_hotel2&&
|
|
4
|
+
$item$$.id_product&&$item$$.user_hotel!=$item$$.user_hotel2&&(await model.updateOne({_id:$item$$._id},{user_hotel:$item$$.user_hotel2}),$item$$.user_hotel=$item$$.user_hotel2);delete $item$$.user_hotel2});$next$$(null,$items$$)},onCreating:async($user$$,$obj$$,$next$$)=>{const $hotel$$=await global.getModel("assproduct").findOne({id_app:$obj$$.id_app,id:$obj$$.id_product,status:!0}).lean();if(!$hotel$$)return Logger.error("error booking",$obj$$),$next$$("Kh\u00e1ch s\u1ea1n kh\u00f4ng t\u1ed3n t\u1ea1i");
|
|
5
|
+
if(!$hotel$$.wallet_hotel||!$hotel$$.user_hotel)return Logger.error("error booking: chua khai bao dia chi vi khach san",$hotel$$.wallet_hotel,$hotel$$),$next$$("Ch\u01b0a khai b\u00e1o \u0111\u1ecba ch\u1ec9 v\u00ed v\u00e0 user cho kh\u00e1ch s\u1ea1n");if($user$$.email===$hotel$$.user_hotel.toLowerCase())return $next$$("Ch\u1ee7 kh\u00e1ch s\u1ea1n kh\u00f4ng th\u1ec3 t\u1ef1 \u0111\u1eb7t ph\u00f2ng \u1edf kh\u00e1ch s\u1ea1n m\u00ecnh");var $period_tong_so_voucher$$=await global.getModel("assperiod").findOne({id_app:$obj$$.id_app,
|
|
6
|
+
id_product:$obj$$.id_product,status:!0}).lean();if(!$period_tong_so_voucher$$)return $next$$("Ch\u01b0a khai b\u00e1o voucher cho kh\u00e1ch s\u1ea1n n\u00e0y");const $ds_phong$$=$hotel$$.ds_phong;if(!$ds_phong$$||$ds_phong$$.length==0)return $next$$("Ch\u01b0a khai b\u00e1o danh s\u00e1ch ph\u00f2ng cho kh\u00e1ch s\u1ea1n n\u00e0y");let $phong_dat$$=$ds_phong$$.find($p$$=>($p$$.ma_phong||"").toLowerCase()===($obj$$.ma_phong||"").toLowerCase());if(!$phong_dat$$)return Logger.error("error booking",
|
|
7
|
+
$ds_phong$$,$obj$$.ma_phong),$next$$("Ph\u00f2ng b\u1ea1n \u0111\u1eb7t kh\u00f4ng t\u1ed3n t\u1ea1i");if($phong_dat$$.gia_voucher!==$obj$$.don_gia_vc)return $next$$("\u0110\u01a1n gi\u00e1 m\u1ed9t \u0111\u00eam kh\u00f4ng h\u1ee3p l\u1ec7");$obj$$.user_hotel=$hotel$$.user_hotel;$obj$$.wallet_hotel=$hotel$$.wallet_hotel;$obj$$.so_luong_vc=$obj$$.don_gia_vc*$obj$$.so_dem;$obj$$.id_period=$period_tong_so_voucher$$.id;$obj$$.menh_gia=$period_tong_so_voucher$$.gia;$obj$$.gia_tri_can_thanh_toan=$obj$$.menh_gia*
|
|
8
|
+
$obj$$.don_gia_vc*$obj$$.so_dem+$obj$$.so_dem*($phong_dat$$.gia_tri_tra_them||0);$obj$$.voucher_thanh_toan=$obj$$.voucher_thanh_toan||[];await $obj$$.voucher_thanh_toan.asyncJoinModel2($user$$.current_id_app,"assinvestment",{where:"token",fields:["id_product","ten_san_pham","id_period"]});if($obj$$.voucher_thanh_toan.find($v$$=>!$v$$.id_period))return Logger.error("error voucher booking",$obj$$.voucher_thanh_toan),$next$$("Voucher d\u00f9ng \u0111\u1ec3 \u0111\u1eb7t ph\u00f2ng kh\u00f4ng h\u1ee3p l\u1ec7");
|
|
9
|
+
await $obj$$.voucher_thanh_toan.asyncJoinModel2($user$$.current_id_app,"assperiod",{where:{id_period:"id"},fields:[{menh_gia:"gia"}]});if($obj$$.voucher_thanh_toan.find($v$$=>!$v$$.menh_gia))return Logger.error("error voucher booking",$obj$$.voucher_thanh_toan),$next$$("Voucher d\u00f9ng \u0111\u1ec3 \u0111\u1eb7t ph\u00f2ng kh\u00f4ng h\u1ee3p l\u1ec7");$period_tong_so_voucher$$=$obj$$.voucher_thanh_toan.map($v$$=>$v$$.so_luong||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);if($obj$$.so_dem>$period_tong_so_voucher$$)return $next$$("M\u1ed7i \u0111\u00eam c\u1ea7n s\u1eed d\u1ee5ng \u00edt nh\u1ea5t m\u1ed9t voucher");
|
|
10
|
+
$obj$$.voucher_thanh_toan.forEach($v$$=>{$v$$.gia_tri=$v$$.menh_gia*$v$$.so_luong});$obj$$.gia_tri_da_thanh_toan=$obj$$.voucher_thanh_toan.map($v$$=>$v$$.gia_tri||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$obj$$.chenh_lech=$obj$$.gia_tri_can_thanh_toan-$obj$$.gia_tri_da_thanh_toan;let $to_address$$=$hotel$$.wallet_hotel;const $sent$$=[];async.mapSeries($obj$$.voucher_thanh_toan||[],($voucher$$,$cb$$)=>{setImmediate(async()=>{let $address$$=$voucher$$.wallet_address,$denom$$=$voucher$$.token,$amount$$=$voucher$$.so_luong;
|
|
11
|
+
try{const $rs$$=await spend($user$$.current_id_app,$user$$.token,$address$$,$to_address$$,{denom:$denom$$,amount:$amount$$,memo:"\u0110\u1eb7t ph\u00f2ng kh\u00e1ch s\u1ea1n"});if($rs$$.code){if($rs$$.code===5)return $cb$$("B\u1ea1n kh\u00f4ng \u0111\u1ee7 voucher \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y");$cb$$("Kh\u00f4ng th\u1ec3 chuy\u1ec3n voucher t\u1eeb v\u00ed kh\u00e1ch h\u00e0ng sang v\u00ed kh\u00e1ch s\u1ea1n, L\u1ed7i: "+$rs$$.rawLog)}else $sent$$.push({denom:$denom$$,
|
|
12
|
+
amount:$amount$$,memo:"\u0110\u1eb7t ph\u00f2ng kh\u00e1ch s\u1ea1n",address:$address$$,to_address:$to_address$$}),$cb$$(null)}catch($e$$){Logger.error("error send voucher from user wallet to hotel wallet",$e$$),$cb$$($e$$.message||$e$$.error||$e$$)}})},$e$$=>{$e$$?$sent$$.length>0?async.mapSeries($sent$$,($voucher$$,$cb$$)=>{setImmediate(async()=>{let $to_address$$=$voucher$$.address,$address$$=$voucher$$.to_address,$denom$$=$voucher$$.denom,$amount$$=$voucher$$.amount;try{const $rs$$=await spend($user$$.current_id_app,
|
|
13
|
+
null,$address$$,$to_address$$,{denom:$denom$$,amount:$amount$$,memo:"Ho\u00e0n tr\u1ea3 l\u1ea1i voucher do \u0111\u1eb7t ph\u00f2ng th\u1ea5t b\u1ea1i",username:$hotel$$.user_hotel});if($rs$$.code)return $rs$$.code===5?$cb$$("B\u1ea1n kh\u00f4ng \u0111\u1ee7 voucher \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y"):$cb$$($rs$$.rawLog);$cb$$(null)}catch($e$$){Logger.error($e$$,{username:$hotel$$.user_hotel,address:$address$$}),$cb$$($e$$.message||$e$$.error||$e$$)}})},$_e$$=>{Logger.error("Error ho\u00e0n tr\u1ea3 l\u1ea1i voucher do kh\u00f4ng \u0111\u1ee7 ti\u1ec1n",
|
|
14
|
+
$_e$$);$next$$($e$$)}):$next$$($e$$):$next$$(null,$obj$$)})},onErrorSave:async($user$$,$obj$$,$error$$,$action$$)=>{Logger.error("error assbooking",$error$$);if($action$$=="add"){const $hotel$$=await global.getModel("assproduct").findOne({id_app:$obj$$.id_app,id:$obj$$.id_product,status:!0}).lean();if($hotel$$&&$hotel$$.wallet_hotel&&$hotel$$.user_hotel&&$obj$$.voucher_thanh_toan){let $address$$=$hotel$$.wallet_hotel;async.mapSeries($obj$$.voucher_thanh_toan,($voucher$$,$cb$$)=>{setImmediate(async()=>
|
|
15
|
+
{let $to_address$$=$voucher$$.wallet_address,$denom$$=$voucher$$.token,$amount$$=$voucher$$.so_luong;try{const $rs$$=await spend($user$$.current_id_app,null,$address$$,$to_address$$,{denom:$denom$$,amount:$amount$$,memo:"Ho\u00e0n tr\u1ea3 l\u1ea1i voucher do \u0111\u1eb7t ph\u00f2ng th\u1ea5t b\u1ea1i",username:$hotel$$.user_hotel});if($rs$$.code)return $rs$$.code===5?$cb$$("B\u1ea1n kh\u00f4ng \u0111\u1ee7 voucher \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y"):$cb$$($rs$$.rawLog);$cb$$(null)}catch($e$$){Logger.error($e$$,
|
|
16
|
+
{username:$hotel$$.user_hotel,address:$address$$}),$cb$$($e$$.message||$e$$.error||$e$$)}})},$_e$$=>{Logger.error("Error ho\u00e0n tr\u1ea3 l\u1ea1i voucher",$_e$$)})}else Logger.error("xu ly loi khi luu: khong tim thay khac san")}}});$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){if(!isSupperAdmin($user$$.email.toLowerCase()))return $fn$$("B\u1ea1n kh\u00f4ng th\u1ec3 x\u00f3a");$fn$$(null,$obj$$)};$contr_router$$.updating=async function($user$$,$data$$,$obj$$,$fn$$){if($obj$$.trang_thai==
|
|
17
|
+
"7"||$obj$$.trang_thai=="8"||$obj$$.trang_thai=="9")return $fn$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt phi\u1ebfu n\u00e0y");if(moment($obj$$.ngay_nhan_phong).toDate().getTime()<moment().endOf("date").toDate().getTime())return model.updateOne({_id:$obj$$._id},{trang_thai:"8"}),$fn$$("Phi\u1ebfu \u0111\u1eb7t ph\u00f2ng n\u00e0y \u0111\u00e3 h\u1ebft h\u1ea1n");const $hotel$$=await global.getModel("assproduct").findOne({id_app:$obj$$.id_app,id:$obj$$.id_product,status:!0}).lean();if(!$hotel$$)return $fn$$("Kh\u00e1ch s\u1ea1n kh\u00f4ng t\u1ed3n t\u1ea1i");
|
|
18
|
+
if($obj$$.trang_thai=$data$$.trang_thai)switch($data$$.trang_thai){case "7":let $address$$=$hotel$$.wallet_hotel;async.mapSeries($obj$$.voucher_thanh_toan.filter($v$$=>!$v$$.da_hoan_tra),($voucher$$,$cb$$)=>{setImmediate(async()=>{let $to_address$$=$voucher$$.wallet_address,$denom$$=$voucher$$.token,$amount$$=$voucher$$.so_luong;try{const $rs$$=await spend($user$$.current_id_app,null,$address$$,$to_address$$,{denom:$denom$$,amount:$amount$$,memo:"Ho\u00e0n tr\u1ea3 l\u1ea1i voucher do \u0111\u1eb7t ph\u00f2ng th\u1ea5t b\u1ea1i",
|
|
19
|
+
username:$hotel$$.user_hotel});if($rs$$.code)return $rs$$.code===5?$cb$$("B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y"):$cb$$($rs$$.rawLog);$voucher$$.da_hoan_tra=!0;$cb$$(null)}catch($e$$){Logger.error($e$$),$cb$$($e$$.message||$e$$.error||$e$$)}})},$_e$$=>{Logger.error("Error ho\u00e0n tr\u1ea3 l\u1ea1i voucher",$_e$$);$obj$$.voucher_thanh_toan=$obj$$.voucher_thanh_toan;$fn$$(null,$obj$$,$obj$$)});return}$user$$.email===$obj$$.user_created&&
|
|
20
|
+
$data$$.kh_xac_nhan_nhan_phong&&($obj$$.kh_xac_nhan_nhan_phong=$data$$.kh_xac_nhan_nhan_phong);$user$$.email===$hotel$$.user_hotel&&$data$$.ks_xac_nhan_nhan_phong&&($obj$$.ks_xac_nhan_nhan_phong=$data$$.ks_xac_nhan_nhan_phong);let $kh_np$$=$obj$$.kh_xac_nhan_nhan_phong||$obj$$.kh_xac_nhan_nhan_phong;($obj$$.ks_xac_nhan_nhan_phong||$obj$$.ks_xac_nhan_nhan_phong)&&$kh_np$$&&($data$$.trang_thai="9");$fn$$(null,$obj$$,$obj$$)};$contr_router$$.route()};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const model=global.getModel("assbuy"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils"),AssInvest=global.getModel("assinvestment"),AssSell=global.getModel("asssell"),AssProduct=global.getModel("assproduct");
|
|
2
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"assbuy",{sort:{date_created:-1},notNeedRight:!0,requireOtp:($data$$,$options$$)=>isSupperAdmin($options$$.user.email.toLowerCase())?!1:!0,onFinding:async($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$)=>{await $items$$.asyncJoinModel2($user$$.current_id_app,AssSell,{where:{id_sell:"id"},fields:["token"]});await $items$$.asyncJoinModel2($user$$.current_id_app,
|
|
3
|
+
AssInvest,{where:"token",fields:"id_product ten_san_pham token denom id_period ten_ky_han ngay_dao_han lai_suat_cam_ket lai_suat_truoc_han cho_phep_rut_von co_phan".split(" ")});await $items$$.asyncJoinModel2($user$$.current_id_app,AssProduct,{where:{id_product:"id"},fields:["ten_san_pham","hinh_anh","logo","ma_loai"]});$next$$(null,$items$$)},onCreating:async($sell_user$$,$buy$$,$next$$)=>{const $id_app$$=$sell_user$$.current_id_app;if(!await global.getModel("asskey").findOne({id_app:$sell_user$$.current_id_app,
|
|
4
|
+
username:$sell_user$$.email,address:$buy$$.creator}).lean())return $next$$("\u0110\u1ecba ch\u1ec9 v\u00ed n\u00e0y kh\u00f4ng thu\u1ed9c v\u1ec1 b\u1ea1n");$sell_user$$=await global.getModel("asssell").findOne({id_app:$id_app$$,id:$buy$$.id_sell});if(!$sell_user$$)return $next$$("L\u1ec7nh b\u00e1n kh\u00f4ng t\u1ed3n t\u1ea1i");if($sell_user$$.buyer&&$sell_user$$.buyer!=$buy$$.creator)return $next$$("Ng\u01b0\u1eddi mua kh\u00f4ng h\u1ee3p l\u1ec7");if($sell_user$$.con_lai<$buy$$.so_luong)return $next$$("Purchase quantity must be less than or equal to the quantity being sold");
|
|
5
|
+
if($sell_user$$.gia_ban>$buy$$.gia_mua)return $next$$("The purchase price must be greater than the selling price");try{const $totalMoney$$=$buy$$.gia_mua*$buy$$.so_luong;await global.getModel("assbank").sendCoins($id_app$$,$buy$$.creator,$sell_user$$.creator,$totalMoney$$,$sell_user$$.denom,{...$buy$$.toObject(),event:"BUY",memo:`Chuy\u1ec3n ${$totalMoney$$}${$sell_user$$.denom} cho ng\u01b0\u1eddi b\u00e1n`});let $fee$$=($sell_user$$.fee||0)*$totalMoney$$/100;$fee$$&&$sell_user$$.exchange_address&&
|
|
6
|
+
await global.getModel("assbank").sendCoins($id_app$$,$sell_user$$.creator,$sell_user$$.exchange_address,$fee$$,$sell_user$$.denom,{...$buy$$.toObject(),event:"BUY",memo:"Ph\u00ed giao d\u1ecbch"});await global.getModel("assbank").sendCoinsFromSystemToAccount($id_app$$,$buy$$.creator,$buy$$.so_luong,$sell_user$$.token,{...$buy$$.toObject(),event:"BUY",memo:"Nh\u1eadn kho\u1ea3n \u0111\u1ea7u t\u01b0"})}catch($e$$){return $next$$($e$$)}$sell_user$$.da_ban+=$buy$$.so_luong;$sell_user$$.con_lai=$sell_user$$.so_luong-
|
|
7
|
+
$sell_user$$.da_ban;$sell_user$$.con_lai==0&&($sell_user$$.trang_thai=8);await $sell_user$$.save();$buy$$.denom=$sell_user$$.denom;$buy$$.token=$sell_user$$.token;$next$$(null,$buy$$)},onCreated:async($user$$,$obj$$,$next$$)=>{$obj$$.id=$obj$$._id.toString();await model.updateOne({_id:$obj$$._id},{id:$obj$$.id});$next$$(null,$obj$$)}});$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){if(!isSupperAdmin($user$$.email.toLowerCase()))return $fn$$("B\u1ea1n kh\u00f4ng th\u1ec3 x\u00f3a");$fn$$(null,
|
|
8
|
+
$obj$$)};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$fn$$){return $fn$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt")};$contr_router$$.route()};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const model=global.getModel("asscashwithdraw"),App=global.getModel("app"),Trangthai=global.getModel("trangthai"),PC1=global.getModel("pc1"),Customer=global.getModel("customer"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils");
|
|
2
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"asscashwithdraw",{sort:{date_created:-1},notNeedRight:!0,requireOtp:($data$$,$options$$)=>isSupperAdmin($options$$.user.email.toLowerCase())?!1:!0,onFinding:async($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$)=>{await $items$$.asyncJoinModel2(null,Trangthai,[{where:$a$$=>({ma_trang_thai:$a$$.trang_thai,ma_ct:"ASSCASHWITHDRAW"}),fields:["ten_trang_thai",
|
|
3
|
+
"color"]}]);await $items$$.asyncJoinModel2(null,"user",[{where:$a$$=>({email:$a$$.user_created}),fields:["name"]}]);await $items$$.asyncJoinModel2($user$$.current_id_app,Customer,[{where:$a$$=>({of_user:$a$$.user_created}),fields:["ma_kh","ten_kh"]}]);await $items$$.asyncJoinModel2($user$$.current_id_app,PC1,[{where:$a$$=>({id_asscashwithdraw:$a$$._id}),fields:[{so_ct_pc1:"so_ct",id_pc1:"_id",ngay_ct_pc1:"ngay_ct",ma_ct_pc1:"ma_ct"}]}]);$next$$(null,$items$$)},onCreating:async($user$$,$CashWithdraw$$,
|
|
4
|
+
$next$$)=>{let $creator$$=$CashWithdraw$$.creator;if(!await global.getModel("asskey").findOne({id_app:$user$$.current_id_app,username:$user$$.email,address:$creator$$}).lean())return $next$$("\u0110\u1ecba ch\u1ec9 v\u00ed n\u00e0y kh\u00f4ng thu\u1ed9c v\u1ec1 b\u1ea1n");let $app$$=await App.findOne({_id:$user$$.current_id_app}),$identity$$=await global.getModel("assuser_identity").findOne({id_app:$user$$.current_id_app,user_created:$user$$.email});if(!$identity$$)return $next$$({error:"B\u1ea1n c\u1ea7n x\u00e1c th\u1ef1c th\u00f4ng tin ng\u01b0\u1eddi d\u00f9ng tr\u01b0\u1edbc khi th\u1ef1c hi\u1ec7n giao d\u1ecbch"});
|
|
5
|
+
if($identity$$.trang_thai!="1")return $next$$({error:"H\u1ed3 s\u01a1 th\u00f4ng tin c\u1ee7a b\u1ea1n ch\u01b0a \u0111\u01b0\u1ee3c duy\u1ec7t"});if(!$app$$.wallet_address)return $next$$("Kh\u00f4ng th\u1ec3 y\u00eau c\u1ea7u thanh to\u00e1n. H\u00e3y th\u1eed l\u1ea1i sau");$CashWithdraw$$.payer=$app$$.wallet_address;$CashWithdraw$$.require_date=new Date;$CashWithdraw$$.trang_thai="0";try{await global.getModel("assbank").sendCoinsFromAccountToSystem($user$$.current_id_app,$creator$$,$CashWithdraw$$.amount,
|
|
6
|
+
$CashWithdraw$$.token)}catch($e$$){return $next$$($e$$)}$next$$(null,$CashWithdraw$$)},onCreated:async($user$$,$obj$$,$next$$)=>{$obj$$.id=$obj$$._id.toString();await model.updateOne({_id:$obj$$._id},{id:$obj$$.id});$next$$(null,$obj$$)}});$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){if(isSupperAdmin($user$$.email.toLowerCase()))return $fn$$(null,$obj$$);if($user$$.email!==$obj$$.user_created)return $fn$$("B\u1ea1n kh\u00f4ng c\u00f3 x\u00f3a y\u00eau c\u1ea7u n\u00e0y");if($obj$$.trang_thai==
|
|
7
|
+
"5")return $fn$$("Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n");if($obj$$.trang_thai=="9")return $fn$$("Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c h\u1ee7y")};$contr_router$$.updating=async function($user$$,$data$$,$obj$$,$fn$$){if($user$$.email!==$obj$$.user_created&&!isSupperAdmin($user$$.email.toLowerCase()))return $fn$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n c\u1eadp nh\u1eadt");if($obj$$.trang_thai=="9")return $fn$$("Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c h\u1ee7y");
|
|
8
|
+
if($obj$$.trang_thai=="5")return $fn$$("Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n");if($data$$.creator&&$data$$.creator!==$obj$$.creator)return $fn$$("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p s\u1eeda \u0111\u1ecba ch\u1ec9 v\u00ed ng\u01b0\u1eddi t\u1ea1o")};$contr_router$$.route()};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const model=global.getModel("assinvestment"),assproduct=global.getModel("assproduct"),assperiod=global.getModel("assperiod"),trangthai=global.getModel("trangthai"),introducer=global.getModel("introducer"),asskey=global.getModel("asskey"),introducecode=global.getModel("introducecode"),App=global.getModel("app"),Usergroup=global.getModel("usergroup"),Participant=global.getModel("participant"),pt1=global.getModel("pt1"),customer=global.getModel("customer"),controller=require("../../controllers/controller"),
|
|
2
|
+
{isSupperAdmin}=require("../../libs/utils"),async=require("async"),moment=require("moment"),xacdinhnguoinhanhoahong=async $investment$$=>{$investment$$.ty_le_hoa_hong=void 0;$investment$$.address_hoa_hong=void 0;$investment$$.denom_hoa_hong=void 0;$investment$$.ky_tra_hoa_hong=void 0;$investment$$.introduce_code=void 0;try{const $intro$$=await introducer.findOne({id_app:$investment$$.id_app,be_introduced:$investment$$.user_created});if($intro$$&&$intro$$.introduce_code){const $introduce_code$$=await introducecode.findOne({id_app:$investment$$.id_app,
|
|
3
|
+
introduce_code:$intro$$.introduce_code}).lean();let $receiver$$;if($introduce_code$$){if($introduce_code$$.wallet_address_receive_reward)$receiver$$=$introduce_code$$.wallet_address_receive_reward;else{let $k$$=await asskey.findOne({id_app:$investment$$.id_app,username:$intro$$.be_introduced_by});if($k$$)$receiver$$=$k$$.address;else return}var $appInfo$$=await App.findOne({_id:$investment$$.id_app});if($appInfo$$&&$appInfo$$.wallet_token&&$appInfo$$.wallet_address){var $usergroup$$,$par$$=await Participant.findOne({id_app:$investment$$.id_app,
|
|
4
|
+
email:$intro$$.be_introduced_by}).lean();$par$$&&$par$$.group_id&&($usergroup$$=await Usergroup.findOne({id_app:$investment$$.id_app,_id:$par$$.group_id}).lean());$usergroup$$||={};var $period$$=await assperiod.findOne({id_app:$investment$$.id_app,id:$investment$$.id_period});$period$$||={};$period$$.ty_le_hoa_hong_groups=$period$$.ty_le_hoa_hong_groups||[];var $ty_le_hoa_hong_group$$=$period$$.ty_le_hoa_hong_groups.find($t$$=>$t$$.id_user_group===$usergroup$$._id);$ty_le_hoa_hong_group$$||=$period$$.ty_le_hoa_hong_groups.find($t$$=>
|
|
5
|
+
!$t$$.id_user_group)||{};var $ty_le_hoa_hong$$=$ty_le_hoa_hong_group$$.ty_le_hoa_hong||$usergroup$$.ty_le_hoa_hong||$appInfo$$.ty_le_hoa_hong||0;var $tang_gioi_thieu_denom$$=$ty_le_hoa_hong_group$$.denom||$usergroup$$.tang_gioi_thieu_denom||$appInfo$$.tang_gioi_thieu_denom;$investment$$.ty_le_hoa_hong=$ty_le_hoa_hong$$;$investment$$.address_hoa_hong=$receiver$$;$investment$$.denom_hoa_hong=$tang_gioi_thieu_denom$$;$investment$$.ky_tra_hoa_hong=$period$$.ky_tra_hoa_hong;$investment$$.introduce_code=
|
|
6
|
+
$intro$$.introduce_code}}}else Logger.info("user nay khong co nguoi gioi thieu",$investment$$.user_created)}catch($e$$){Logger.error("Khong the tinh hoa hong cho nguoi gioi thieu",$e$$)}},phathanh=async($period$$,$obj$$,$product$$)=>{$obj$$.id_product=$period$$.id_product;$obj$$.gia=$period$$.gia;$obj$$.lai_suat_cam_ket=$period$$.lai_suat_cam_ket;$obj$$.lai_suat_truoc_han=$period$$.lai_suat_truoc_han;$obj$$.ky_han=$period$$.ky_han;$obj$$.cho_phep_rut_von=$period$$.cho_phep_rut_von;$obj$$.cho_phep_chuyen_nhuong=
|
|
7
|
+
$period$$.cho_phep_chuyen_nhuong;$obj$$.denom=$period$$.denom;$obj$$.tg_xu_ly_rut_von=$period$$.tg_xu_ly_rut_von;$obj$$.co_phan=$period$$.co_phan;$obj$$.goi_dau_tu=$period$$.goi_dau_tu;$obj$$.ky_tinh_lai=$period$$.ky_tinh_lai;$obj$$.co_phan?($obj$$.ngay_phat_hanh=$period$$.ngay_phat_hanh,$obj$$.ngay_dao_han=null):($obj$$.ngay_phat_hanh=new Date,$obj$$.ngay_dao_han=$obj$$.ky_han>0?moment($obj$$.ngay_phat_hanh).add($obj$$.ky_han,"days").toDate():$period$$.ngay_chia_loi_nhuan);switch($obj$$.ky_tinh_lai){case 1:$obj$$.ngay_tinh_lai_ky_truoc=
|
|
8
|
+
$obj$$.ngay_phat_hanh;$obj$$.ngay_tinh_lai_ky_tiep_theo=moment($obj$$.ngay_tinh_lai_ky_truoc).add(1,"days").toDate();break;case 2:$obj$$.ngay_tinh_lai_ky_truoc=$obj$$.ngay_phat_hanh;$obj$$.ngay_tinh_lai_ky_tiep_theo=moment($obj$$.ngay_tinh_lai_ky_truoc).add(1,"weeks").toDate();break;case 3:$obj$$.ngay_tinh_lai_ky_truoc=$obj$$.ngay_phat_hanh;$obj$$.ngay_tinh_lai_ky_tiep_theo=moment($obj$$.ngay_tinh_lai_ky_truoc).add(1,"months").toDate();break;case 4:$obj$$.ngay_tinh_lai_ky_truoc=$obj$$.ngay_phat_hanh;
|
|
9
|
+
$obj$$.ngay_tinh_lai_ky_tiep_theo=moment($obj$$.ngay_tinh_lai_ky_truoc).add(1,"quarters").toDate();break;case 5:$obj$$.ngay_tinh_lai_ky_truoc=$obj$$.ngay_phat_hanh;$obj$$.ngay_tinh_lai_ky_tiep_theo=moment($obj$$.ngay_tinh_lai_ky_truoc).add(1,"years").toDate();break;case 9:$obj$$.ngay_tinh_lai_ky_truoc=$obj$$.ngay_phat_hanh,$obj$$.ngay_tinh_lai_ky_tiep_theo=moment($obj$$.ngay_tinh_lai_ky_truoc).add(1,"hours").toDate()}var $hoahong_totalMoney$$=Number($obj$$.gia)*Number($obj$$.so_luong);const $productCreator$$=
|
|
10
|
+
$product$$.creator;await global.getModel("assbank").sendCoins($period$$.id_app,$obj$$.creator,$productCreator$$,$hoahong_totalMoney$$,$obj$$.denom,{id_product:$obj$$.id_product,id_period:$obj$$.id_period,event:"INVESTMENT",memo:"Thanh to\u00e1n \u0111\u1ea7u t\u01b0"});if($obj$$.ky_tra_hoa_hong==0&&$obj$$.ty_le_hoa_hong>0&&$obj$$.address_hoa_hong){$hoahong_totalMoney$$=Math.roundBy($obj$$.ty_le_hoa_hong*$hoahong_totalMoney$$/100,0);let $denomHoaHong$$=$obj$$.denom_hoa_hong;$denomHoaHong$$==""&&($denomHoaHong$$=
|
|
11
|
+
$obj$$.denom);await global.getModel("assbank").sendCoins($period$$.id_app,$productCreator$$,$obj$$.address_hoa_hong,$hoahong_totalMoney$$,$denomHoaHong$$,{id_product:$obj$$.id_product,id_period:$obj$$.id_period,event:"BONUS-INVESTMENT",memo:"Hoa h\u1ed3ng"});$obj$$.hoa_hong_da_tra=$hoahong_totalMoney$$}await global.getModel("assbank").mintCoins($period$$.id_app,$obj$$.creator,$obj$$.so_luong,$obj$$.token,{id_product:$obj$$.id_product,id_period:$obj$$.id_period,event:"INVESTMENT",memo:"Nh\u1eadn token \u0111\u1ea7u t\u01b0"});
|
|
12
|
+
$period$$.da_dau_tu=($period$$.da_dau_tu||0)+$obj$$.so_luong;await $period$$.save();$product$$.da_dau_tu=($product$$.da_dau_tu||0)+$obj$$.so_luong;$product$$.gia_tri_da_dau_tu=($product$$.gia_tri_da_dau_tu||0)+$obj$$.so_luong*$obj$$.gia;await $product$$.save()};
|
|
13
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"assinvestment",{sort:{date_created:-1},unique:["token"],notNeedRight:!0,requireOtp:($data$$,$options$$)=>$data$$.trang_thai=="0"||$data$$.trang_thai=="2"||$data$$.trang_thai=="7"||isSupperAdmin($options$$.user.email.toLowerCase())?!1:!0,onFinding:async($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$)=>{let $id_app$$=$user$$.current_id_app;async.mapSeries($items$$,
|
|
14
|
+
($item$$,$cb$$)=>{setImmediate(async()=>{$item$$.wallet_address=$item$$.creator;$item$$.id_period&&(await [$item$$].asyncJoinModel2($id_app$$,assperiod,{where:{id_period:"id"},fields:"ten_ky_han ky_han id_product gia lai_suat_cam_ket lai_suat_truoc_han cho_phep_rut_von cho_phep_chuyen_nhuong denom tg_xu_ly_rut_von co_phan id_rpt ky_tinh_lai goi_dau_tu tru_lai_da_tra han_tt".split(" ")}),await [$item$$].asyncJoinModel2($id_app$$,assproduct,{where:{id_product:"id"},fields:["ma_loai","ten_san_pham",
|
|
15
|
+
{product_token:"token"},{gia_tri_hien_tai_san_pham:"gia_tri_hien_tai"},{tong_gia_tri_huy_dong:"tong_gia_tri"},{tong_so_token_phat_hanh:"tong_so_token"}]}),$item$$.tong_gia_tri=($item$$.gia||0)*($item$$.so_luong||0),$item$$.lai_du_tinh=Math.roundBy($item$$.lai_suat_cam_ket/365/100*$item$$.tong_gia_tri*$item$$.ky_han,0),$item$$.tong_gia_tri_dao_han=$item$$.tong_gia_tri+$item$$.lai_du_tinh);$item$$.con_lai=$item$$.da_dao_han?0:$item$$.so_luong-($item$$.da_rut_von||0);$item$$.han_tt||($item$$.han_tt=
|
|
16
|
+
1);if($item$$.trang_thai=="0"||$item$$.trang_thai=="2"){let $tg_hien_tai$$=(new Date).getTime(),$tg_tao$$=(new Date($item$$.date_created)).getTime();($tg_hien_tai$$-$tg_tao$$)/864E5>$item$$.han_tt&&($item$$.trang_thai="7")}try{$item$$.goi_dau_tu&&($item$$.market_value=await model.getInvestmentMarketValue($item$$.id_app,$item$$.token))}catch($e$$){Logger.error($e$$)}$cb$$(null,$item$$)})},async()=>{await $items$$.asyncJoinModel2(null,trangthai,[{where:$a$$=>({ma_trang_thai:$a$$.trang_thai,ma_ct:"ASSINVESTMENT"}),
|
|
17
|
+
fields:["ten_trang_thai","color"]}]);await $items$$.asyncJoinModel2($id_app$$,customer,[{where:$a$$=>({of_user:$a$$.user_created}),fields:["ma_kh","ten_kh"]}]);await $items$$.asyncJoinModel2($id_app$$,pt1,[{where:$a$$=>({id_assinvestment:$a$$._id}),fields:[{id_pt1:"_id"},{ma_ct_pt1:"ma_ct"}]}]);$next$$(null,$items$$)})},onCreating:async($frm_frm_step_product$jscomp$1_user$$,$obj$$,$next$$)=>{if(!$obj$$.id_period)return $next$$("B\u1ea1n c\u1ea7n ch\u1ecdn m\u1ed9t g\u00f3i \u0111\u1ea7u t\u01b0");
|
|
18
|
+
if(!await global.getModel("asskey").findOne({id_app:$frm_frm_step_product$jscomp$1_user$$.current_id_app,username:$frm_frm_step_product$jscomp$1_user$$.email,address:$obj$$.creator}).lean())return $next$$("\u0110\u1ecba ch\u1ec9 v\u00ed n\u00e0y kh\u00f4ng thu\u1ed9c v\u1ec1 b\u1ea1n");$obj$$.da_rut_von=0;$obj$$.da_dao_han=!1;$obj$$.user_created=$frm_frm_step_product$jscomp$1_user$$.email;await xacdinhnguoinhanhoahong($obj$$);const $period$$=await assperiod.findOne({id_app:$frm_frm_step_product$jscomp$1_user$$.current_id_app,
|
|
19
|
+
id:$obj$$.id_period});if(!$period$$)return Logger.error("Can't find period",{id_app:$frm_frm_step_product$jscomp$1_user$$.current_id_app,id:$obj$$.id_period}),$next$$("G\u00f3i \u0111\u1ea7u t\u01b0 kh\u00f4ng t\u1ed3n t\u1ea1i");if($period$$.goi_dau_tu&&$period$$.frm_step_code){$frm_frm_step_product$jscomp$1_user$$=await global.getModel("financialroadmap").findOne({id_app:$period$$.id_app,code:$period$$.id_product.toString()}).lean();if(!$frm_frm_step_product$jscomp$1_user$$)return $next$$("L\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh cho g\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");
|
|
20
|
+
$frm_frm_step_product$jscomp$1_user$$=($frm_frm_step_product$jscomp$1_user$$.steps||[]).find($s$$=>$s$$.code===$period$$.frm_step_code);if(!$frm_frm_step_product$jscomp$1_user$$)return $next$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i trong l\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh");if($frm_frm_step_product$jscomp$1_user$$.trang_thai=="5")return $next$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y \u0111\u00e3 ho\u00e0n th\u00e0nh k\u00eau g\u1ecdi v\u1ed1n");if($frm_frm_step_product$jscomp$1_user$$.trang_thai!=
|
|
21
|
+
"4")return $next$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y ch\u01b0a c\u00f3 hi\u1ec7u l\u1ef1c")}if(!$period$$.hoat_dong)return $next$$($period$$.ten_ky_han+" doesn't active");if($period$$.tong_so_token>0&&($period$$.da_dau_tu||0)+($obj$$.so_luong||0)>$period$$.tong_so_token)return $next$$("This package has sold out");$frm_frm_step_product$jscomp$1_user$$=await assproduct.findOne({id_app:$period$$.id_app,id:$period$$.id_product});if(!$frm_frm_step_product$jscomp$1_user$$)throw"D\u1ef1 \u00e1n kh\u00f4ng t\u1ed3n t\u1ea1i";
|
|
22
|
+
$obj$$.product_token=$frm_frm_step_product$jscomp$1_user$$.token;$obj$$.id=(new Date).getTime().toString();$obj$$.token=`${$obj$$.product_token}${$obj$$.id}`;if($obj$$.trang_thai!="1")return $next$$(null,$obj$$);try{await phathanh($period$$,$obj$$,$frm_frm_step_product$jscomp$1_user$$)}catch($e$$){return $next$$($e$$)}$next$$(null,$obj$$)}});$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){if(!isSupperAdmin($user$$.email.toLowerCase()))return $fn$$("B\u1ea1n kh\u00f4ng th\u1ec3 x\u00f3a");
|
|
23
|
+
$fn$$(null,$obj$$)};$contr_router$$.updating=async function($product$jscomp$2_user$$,$data$$,$obj$$,$fn$$){var $frm$jscomp$1_frm_step$jscomp$1_id_app$jscomp$1_tg_hien_tai$$=$product$jscomp$2_user$$.current_id_app,$creator_tg_tao$$=$obj$$.creator;if(!await global.getModel("asskey").findOne({id_app:$frm$jscomp$1_frm_step$jscomp$1_id_app$jscomp$1_tg_hien_tai$$,username:$product$jscomp$2_user$$.email,address:$creator_tg_tao$$}).lean())return $fn$$("\u0110\u1ecba ch\u1ec9 v\u00ed n\u00e0y kh\u00f4ng thu\u1ed9c v\u1ec1 b\u1ea1n");
|
|
24
|
+
if($data$$.trang_thai=="0"&&$obj$$.trang_thai!="0")return $fn$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt");if($data$$.trang_thai&&$data$$.trang_thai!="1")return $fn$$(null,$data$$,$obj$$);delete $data$$.da_rut_von;delete $data$$.da_dao_han;$data$$.user_created=$obj$$.user_created;$data$$.creator=$obj$$.creator;$data$$.id_period=$data$$.id_period||$obj$$.id_period;$data$$.id_app=$obj$$.id_app;await xacdinhnguoinhanhoahong($data$$);const $period$$=await assperiod.findOne({id_app:$frm$jscomp$1_frm_step$jscomp$1_id_app$jscomp$1_tg_hien_tai$$,
|
|
25
|
+
id:$data$$.id_period});if(!$period$$)return $fn$$("G\u00f3i \u0111\u1ea7u t\u01b0 kh\u00f4ng t\u1ed3n t\u1ea1i");$product$jscomp$2_user$$=await assproduct.findOne({id_app:$period$$.id_app,id:$period$$.id_product});if(!$product$jscomp$2_user$$)throw"D\u1ef1 \u00e1n kh\u00f4ng t\u1ed3n t\u1ea1i";$data$$.product_token=$product$jscomp$2_user$$.token;$data$$.id=$obj$$.id;$data$$.token=$obj$$.token;$data$$.id&&($data$$.id=(new Date).getTime().toString());$data$$.token&&($data$$.token=`${$data$$.product_token}${$data$$.id}`);
|
|
26
|
+
if($data$$.trang_thai=="1"&&$obj$$.trang_thai!="1"){if($period$$.goi_dau_tu&&$period$$.frm_step_code){$frm$jscomp$1_frm_step$jscomp$1_id_app$jscomp$1_tg_hien_tai$$=await global.getModel("financialroadmap").findOne({id_app:$period$$.id_app,code:$period$$.id_product.toString()}).lean();if(!$frm$jscomp$1_frm_step$jscomp$1_id_app$jscomp$1_tg_hien_tai$$)return $fn$$("L\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh cho g\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$frm$jscomp$1_frm_step$jscomp$1_id_app$jscomp$1_tg_hien_tai$$=
|
|
27
|
+
($frm$jscomp$1_frm_step$jscomp$1_id_app$jscomp$1_tg_hien_tai$$.steps||[]).find($s$$=>$s$$.code===$period$$.frm_step_code);if(!$frm$jscomp$1_frm_step$jscomp$1_id_app$jscomp$1_tg_hien_tai$$)return $fn$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i trong l\u1ed9 tr\u00ecnh t\u00e0i ch\u00ednh");if($frm$jscomp$1_frm_step$jscomp$1_id_app$jscomp$1_tg_hien_tai$$.trang_thai=="5")return $fn$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y \u0111\u00e3 ho\u00e0n th\u00e0nh k\u00eau g\u1ecdi v\u1ed1n");
|
|
28
|
+
if($frm$jscomp$1_frm_step$jscomp$1_id_app$jscomp$1_tg_hien_tai$$.trang_thai!="4")return $fn$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y ch\u01b0a c\u00f3 hi\u1ec7u l\u1ef1c")}if(!$period$$.hoat_dong)return $fn$$($period$$.ten_ky_han+" doesn't active");if($period$$.tong_so_token>0&&($period$$.da_dau_tu||0)+($obj$$.so_luong||0)>$period$$.tong_so_token)return $fn$$("This package has sold out");if($obj$$.trang_thai=="0"||$obj$$.trang_thai=="2")if($frm$jscomp$1_frm_step$jscomp$1_id_app$jscomp$1_tg_hien_tai$$=
|
|
29
|
+
(new Date).getTime(),$creator_tg_tao$$=(new Date($obj$$.date_created)).getTime(),($frm$jscomp$1_frm_step$jscomp$1_id_app$jscomp$1_tg_hien_tai$$-$creator_tg_tao$$)/864E5>($period$$.han_tt||1))return model.updateMany({_id:$obj$$._id},{trang_thai:"7"}).then($rs$$=>{Logger.info("update investment",$rs$$.id)}),$fn$$("G\u00f3i \u0111\u1ea7u t\u01b0 n\u00e0y \u0111\u00e3 h\u1ebft h\u1ea1n thanh to\u00e1n");$data$$.creator=$data$$.creator||$obj$$.creator;$data$$.id_period=$data$$.id_period||$obj$$.id_period;
|
|
30
|
+
$data$$.so_luong=$data$$.so_luong||$obj$$.so_luong;$data$$.ty_le_hoa_hong=$data$$.ty_le_hoa_hong!=void 0?Number($data$$.ty_le_hoa_hong):$obj$$.ty_le_hoa_hong;$data$$.denom_hoa_hong=$data$$.denom_hoa_hong||$obj$$.denom_hoa_hong||"";$data$$.address_hoa_hong=$data$$.address_hoa_hong||$obj$$.address_hoa_hong||"";$data$$.ky_tra_hoa_hong=$data$$.ky_tra_hoa_hong==void 0?$obj$$.ky_tra_hoa_hong:$data$$.ky_tra_hoa_hong;$data$$.ky_tinh_lai=$data$$.ky_tinh_lai!=void 0?$data$$.ky_tinh_lai:$obj$$.ky_tinh_lai;try{await phathanh($period$$,
|
|
31
|
+
$data$$,$product$jscomp$2_user$$)}catch($e$$){return $fn$$($e$$)}$fn$$(null,$data$$,$obj$$)}else return $fn$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt")};$contr_router$$.route()};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const model=global.getModel("assissue"),assbank=global.getModel("assbank"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils");
|
|
2
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"assissue",{sort:{date_created:-1}});$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){return isSupperAdmin($user$$.email.toLowerCase())?$fn$$(null,$obj$$):$fn$$("Kh\u00f4ng th\u1ec3 x\u00f3a")};$contr_router$$.creating=async($user$$,$data$$,$fn$$)=>{try{await assbank.issueCoins($user$$,$data$$)}catch($e$$){return $fn$$($e$$)}$fn$$(null,$data$$)};$contr_router$$.updating=function($user$$,$data$$,$obj$$,
|
|
3
|
+
$fn$$){return $fn$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt")};$contr_router$$.route()};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const model=global.getModel("asskey"),assrequest=global.getModel("assrequest"),assinvestment=global.getModel("assinvestment"),assproduct=global.getModel("assproduct"),assperiod=global.getModel("assperiod"),User=global.getModel("user"),Receiver=global.getModel("assreceiver"),controller=require("../../controllers/controller"),{isSupperAdmin}=require("../../libs/utils"),async=require("async"),moment=require("moment"),{getWallet,getKeyInfo,bankBalancesGet,spend,getLatestHash,getHashById,mining,validHash}=
|
|
2
|
+
require("../../libs/blockchainconnect");
|
|
3
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"asskey",{unique:["address"],sort:{date_created:1},notNeedRight:!0,requireOtp:($data$$,$options$$)=>$options$$.action=="delete"?!0:!1,onFinding:async($user$$,$condition$$,$next$$,$options$$={})=>{$options$$.req&&$options$$.req.query&&!$options$$.req.query.has_balance&&($options$$.req.query.has_balance=$condition$$.has_balance);$condition$$.wallet_type={$in:[9,8]};delete $condition$$.has_balance;if($options$$.req&&
|
|
4
|
+
$options$$.req.query&&!$options$$.req.query.count&&await model.countDocuments({user_created:$user$$.email,id_app:$user$$.current_id_app,wallet_type:9,address:{$regex:global.configs.ADDRESS_PREFIX||""}})===0)try{await model.createWallet($user$$.current_id_app,$user$$.email,$user$$.name,9)}catch($e$$){Logger.error($e$$)}$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$,$options$$={})=>{await $items$$.asyncJoinModel2(null,User,{where:{username:"email"},fields:{fullname:"name"}});$options$$.req&&
|
|
5
|
+
$options$$.req.query&&$options$$.req.query.has_balance?async.mapSeries($items$$,($item$$,$callback$$)=>{setImmediate(async()=>{delete $item$$.mnemonic;delete $item$$.private_key;delete $item$$.privateKey;$item$$.name=$item$$.name.replace("V\u00ed","T\u00e0i kho\u1ea3n").replace("v\u00ed","t\u00e0i kho\u1ea3n");try{let $bls$$=await bankBalancesGet($item$$.id_app,$item$$.address);await $bls$$.filter($b$$=>$b$$.denom!==configs.MAIN_DENOM).asyncJoinModel2($user$$.current_id_app,assinvestment,{where:{denom:"token"},
|
|
6
|
+
fields:[{price:"gia"},"id_product","id_period"]});$bls$$.forEach($r$$=>{$r$$.amount=Number($r$$.amount);$r$$.price=$r$$.price||1;$r$$.value=$r$$.price*$r$$.amount;delete $r$$.key});$item$$.balances=$bls$$;model.updateOne({_id:$item$$._id},{balances:$bls$$}).then(()=>{}).catch($e$$=>{Logger.error("can't update balances for wallet",$item$$.address,$e$$)});$callback$$(null,$item$$)}catch($e$$){$callback$$($e$$)}})},$e$$=>$next$$($e$$)):async.mapSeries($items$$,($item$$,$callback$$)=>{setImmediate(()=>
|
|
7
|
+
{delete $item$$.mnemonic;delete $item$$.private_key;delete $item$$.balances;$item$$.name=$item$$.name.replace("V\u00ed","T\u00e0i kho\u1ea3n").replace("v\u00ed","t\u00e0i kho\u1ea3n");$callback$$()})},()=>{$next$$(null,$items$$)})}});$contr_router$$.creating=async($user$$,$obj$$,$next$$)=>{if(!isSupperAdmin($user$$.email.toLowerCase())&&await model.countDocuments({user_created:$user$$.email,id_app:$user$$.current_id_app,asset:{$nin:["BTC","ETH"]}})>=3)return $next$$("B\u1ea1n kh\u00f4ng th\u1ec3 t\u1ea1o th\u00eam v\u00ed m\u1edbi");
|
|
8
|
+
$obj$$.username||($obj$$.username=$user$$.email);try{let {address:$address$$,privateKey:$privateKey$$}=await model.createWallet($user$$.current_id_app,$user$$.email,$obj$$.name,9,!1);$obj$$.address=$address$$;$obj$$.privateKey=$privateKey$$;$next$$(null,$obj$$)}catch($e$$){$next$$($e$$.message||$e$$.error||$e$$)}};$contr_router$$.deleting=function($user$$,$obj$$,$fn$$){if($user$$.email!==$obj$$.user_created&&!isSupperAdmin($user$$.email.toLowerCase()))return $fn$$("Can't delete this key");Receiver.deleteMany({address:$obj$$.address});
|
|
9
|
+
$fn$$(null,$obj$$)};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$fn$$){$fn$$("Can't update this wallet")};$contr_router$$.createRoute(":address/balance",async($req$$,$fn$$)=>{let $address$$=$req$$.params.address;try{const $bls$$=await bankBalancesGet($req$$.user.current_id_app,$address$$);await $bls$$.filter($b$$=>$b$$.denom!==configs.MAIN_DENOM).asyncJoinModel2($req$$.user.current_id_app,assinvestment,{where:{denom:"token"},asyncSetFields:async($item$$,$investment_ref$$,$callback$$)=>
|
|
10
|
+
{if(!$investment_ref$$.id)return $callback$$();try{$item$$.price=$investment_ref$$.gia||0;$investment_ref$$={...$investment_ref$$};await [$investment_ref$$].asyncJoinModel2($req$$.user.current_id_app,assproduct,{where:{id_product:"id"},fields:["ma_loai","ten_san_pham","logo","hinh_anh",{gia_tri_hien_tai_san_pham:"gia_tri_hien_tai"},{tong_gia_tri_huy_dong:"tong_gia_tri"},{tong_so_token_phat_hanh:"tong_so_token"}]});await [$investment_ref$$].asyncJoinModel2($req$$.user.current_id_app,assperiod,{where:{id_period:"id",
|
|
11
|
+
id_product:"id_product"},fields:"ten_lh_dt ten_ky_han id_rpt ky_han ky_tinh_lai loi_nhuan_duoc_chia goi_dau_tu tru_lai_da_tra".split(" ")});$investment_ref$$.wallet_address=$address$$;let $tong_so_luong$$=$investment_ref$$.so_luong;$investment_ref$$.so_luong=$item$$.amount;$investment_ref$$.con_lai=$item$$.amount;$investment_ref$$.lai_da_tra&&$tong_so_luong$$>0&&($investment_ref$$.lai_da_tra_1_token=Math.roundBy($investment_ref$$.lai_da_tra/$tong_so_luong$$),$investment_ref$$.lai_da_tra=$investment_ref$$.lai_da_tra_1_token*
|
|
12
|
+
$investment_ref$$.con_lai);$investment_ref$$.tong_gia_tri=$investment_ref$$.so_luong*$investment_ref$$.gia;$investment_ref$$.lai_du_tinh=Math.roundBy($investment_ref$$.lai_suat_cam_ket/365/100*$investment_ref$$.tong_gia_tri*$investment_ref$$.ky_han);$investment_ref$$.tong_gia_tri_dao_han=$investment_ref$$.tong_gia_tri+$investment_ref$$.lai_du_tinh;$investment_ref$$.ky_han&&!$investment_ref$$.co_phan?($investment_ref$$.so_ngay_hien_tai=Math.roundBy(((new Date).getTime()-(new Date($investment_ref$$.ngay_phat_hanh)).getTime())/
|
|
13
|
+
864E5),$investment_ref$$.tien_lai_hien_tai=Math.roundBy($investment_ref$$.tong_gia_tri*$investment_ref$$.so_ngay_hien_tai*(($investment_ref$$.lai_suat_cam_ket||0)/365/100)),$investment_ref$$.tien_lai_truoc_han_hien_tai=Math.roundBy($investment_ref$$.tong_gia_tri*$investment_ref$$.so_ngay_hien_tai*(($investment_ref$$.lai_suat_truoc_han||0)/365/100))):($investment_ref$$.tien_lai_hien_tai=0,$investment_ref$$.so_ngay_hien_tai=0);$investment_ref$$.gia_ban_de_xuat=$investment_ref$$.so_luong?Math.roundBy(($investment_ref$$.tong_gia_tri+
|
|
14
|
+
$investment_ref$$.tien_lai_hien_tai)/$investment_ref$$.so_luong):0;if($investment_ref$$.goi_dau_tu)try{$investment_ref$$.market_value=await assinvestment.getInvestmentMarketValue($investment_ref$$.id_app,$investment_ref$$.token)}catch($e$$){Logger.error($e$$)}$item$$.investment=$investment_ref$$;$callback$$()}catch($e$$){Logger.error($e$$),$callback$$()}}});$bls$$.forEach($r$$=>{$r$$.amount=Number($r$$.amount);$r$$.price=$r$$.price||1;$r$$.value=$r$$.price*$r$$.amount;delete $r$$.key});model.updateOne({address:$address$$,
|
|
15
|
+
id_app:$req$$.user.current_id_app},{balances:$bls$$}).then(()=>{}).catch($e$$=>{Logger.error("can't update balances for wallet",$address$$,$e$$)});$fn$$(null,$bls$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});const $permission$$=require("../../libs/permission");$contr_router$$.createRoute("spend",async($req$$,$fn$$)=>{var $address$$=await global.getModel("assuser_identity").findOne({id_app:$req$$.user.current_id_app,user_created:$req$$.user.email}).lean();
|
|
16
|
+
if(!$address$$)return $fn$$({error:"B\u1ea1n c\u1ea7n x\u00e1c th\u1ef1c th\u00f4ng tin ng\u01b0\u1eddi d\u00f9ng tr\u01b0\u1edbc khi th\u1ef1c hi\u1ec7n giao d\u1ecbch"});if($address$$.trang_thai!=="1")return $fn$$({error:"H\u1ed3 s\u01a1 th\u00f4ng tin c\u1ee7a b\u1ea1n ch\u01b0a \u0111\u01b0\u1ee3c duy\u1ec7t"});let $data$$=$req$$.body;$address$$=$data$$.from;if(!await model.findOne({id_app:$req$$.user.current_id_app,address:$address$$,username:$req$$.user.email}).lean())return $fn$$({error:"sender's address is not valid"});
|
|
17
|
+
const $to_address$$=$data$$.to||$data$$.receiver_address;let {denom:$denom$$,amount:$amount$$}=$data$$;if(!($address$$&&$to_address$$&&$denom$$&&$amount$$))return $fn$$({error:"Data miss 'from' or 'to' or 'denom' or 'amount'"});if($address$$===$to_address$$)return $fn$$({error:"\u0110\u1ecba ch\u1ec9 v\u00ed g\u1eedi v\u00e0 nh\u1eadn ph\u1ea3i kh\u00e1c nhau"});try{await $permission$$.verifyOTP($req$$.user.email,$data$$["otp-id"],$data$$["otp-code"])}catch($e$$){return $fn$$({error:$e$$.message||
|
|
18
|
+
$e$$.error||$e$$,code:4001})}if($data$$.assrequest_id){if(!global.mongoose.Types.ObjectId.isValid($data$$.assrequest_id))return $fn$$({error:"Y\u00eau c\u1ea7u thanh to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7"});var $_url_assreq$$=await assrequest.findOne({_id:$data$$.assrequest_id,amount:$amount$$,denom:$denom$$,receiver_address:$to_address$$,request_id:$data$$.request_id,order_id:$data$$.order_id});if(!$_url_assreq$$)return $fn$$({error:"Y\u00eau c\u1ea7u thanh to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7"});
|
|
19
|
+
if($_url_assreq$$.trang_thai==="1")return $fn$$({error:"Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n"});if($_url_assreq$$.trang_thai==="9")return $fn$$({error:"Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 b\u1ecb h\u1ee7y"})}try{const $rs$$=await spend($req$$.user.current_id_app,$req$$.user.token,$address$$,$to_address$$,{denom:$denom$$,amount:$amount$$});if($rs$$.code)return $rs$$.code===5?$fn$$({error:"B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y"}):
|
|
20
|
+
$fn$$({error:$rs$$.rawLog});let $walletReceiver$$=await model.findOne({id_app:$req$$.user.current_id_app,address:$to_address$$});if($walletReceiver$$){let $_userReceiver$$=await User.findOne({email:$walletReceiver$$.username});Receiver.findOne({id_app:$req$$.user.current_id_app,address:$to_address$$,user_created:$req$$.user.email},($e$$,$rs$$)=>{$rs$$||Receiver.create({id_app:$req$$.user.current_id_app,name:$data$$.name||($_userReceiver$$||{}).name,address:$to_address$$,user_created:$req$$.user.email})})}if($_url_assreq$$){$_url_assreq$$.trang_thai=
|
|
21
|
+
"1";$_url_assreq$$.sender_address=$address$$;$_url_assreq$$.sender_name=$data$$.sender_name||$req$$.user.name;$_url_assreq$$.sender_user=$req$$.user.email;$_url_assreq$$.sender_date=new Date;$_url_assreq$$.date_updated=new Date;await $_url_assreq$$.save();let $ctrlReq$$=global.controllers.ASSREQUEST,$assreq_views$$=await $ctrlReq$$.asyncView($req$$.user,[$_url_assreq$$.toObject()],{req:$req$$});controller.pushNotification($ctrlReq$$,$assreq_views$$[0]);const $assreq_data$$=$_url_assreq$$.toObject();
|
|
22
|
+
$assreq_data$$.is_success=!0;$assreq_data$$.message="Giao d\u1ecbch th\u00e0nh c\u00f4ng";$assreq_data$$._id&&($assreq_data$$.trans_id=$assreq_data$$._id.toString());delete $assreq_data$$.trang_thai;delete $assreq_data$$._id;delete $assreq_data$$.__v;delete $assreq_data$$.transaction;delete $assreq_data$$.id_app;delete $assreq_data$$.exfields;delete $assreq_data$$.status;delete $assreq_data$$.date_created;delete $assreq_data$$.date_updated;delete $assreq_data$$.user_created;delete $assreq_data$$.user_updated;
|
|
23
|
+
var $JSCompiler_inline_result$$=$assreq_data$$;if($assreq_data$$.return_url){$_url_assreq$$="";for(let $key$$ in $JSCompiler_inline_result$$)$_url_assreq$$=$_url_assreq$$?`${$_url_assreq$$}&${$key$$}=${encodeURIComponent($JSCompiler_inline_result$$[$key$$])}`:`${$key$$}=${encodeURIComponent($JSCompiler_inline_result$$[$key$$])}`;$_url_assreq$$=`${$assreq_data$$.return_url}?${$_url_assreq$$}`;$JSCompiler_inline_result$$.return_url=$_url_assreq$$}return $fn$$(null,$JSCompiler_inline_result$$)}$fn$$(null,
|
|
24
|
+
$rs$$)}catch($e$$){Logger.error($e$$),$fn$$({error:$e$$.message||$e$$.error||$e$$})}},{method:"POST"});$contr_router$$.createRoute(":address/info",async($req$$,$fn$$)=>{let $address$$=$req$$.params.address;try{let $info$$=await getKeyInfo($req$$.user.current_id_app,$req$$.user.email,$address$$);$fn$$(null,$info$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute(":address/download",async($req$$,$fn$$)=>
|
|
25
|
+
{if(!$req$$.query["otp-id"]||!$req$$.query["otp-code"])return $fn$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u otp-id v\u00e0 otp-code");try{await $permission$$.verifyOTP($req$$.user.email,$req$$.query["otp-id"],$req$$.query["otp-code"])}catch($e$$){return $fn$$($e$$.message||$e$$.error||$e$$)}let $address$$=$req$$.params.address;Logger.info("download wallet",$address$$);try{const $wallet$$=await getWallet($req$$.user.current_id_app,$req$$.user.email,$address$$);Logger.info("download wallet",
|
|
26
|
+
$address$$,$wallet$$);$fn$$(null,$wallet$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute("txs/:tx_id",async($id_app_req$$,$fn$$)=>{let $tx_id$$=$id_app_req$$.params.tx_id;$id_app_req$$=$id_app_req$$.user.current_id_app;try{const $rs$$=await global.getModel("asstransaction").findOne({id_app:$id_app_req$$,_id:$tx_id$$}).lean();$fn$$(null,$rs$$)}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);
|
|
27
|
+
$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute("txs",async($req$$,$fn$$)=>{let $page$$=Number($req$$.query.page||0),$limit$$=Number($req$$.query.limit||20),$condition$$={id_app:$req$$.user.current_id_app};for(let $key$$ in $req$$.query)$key$$!=="page"&&$key$$!=="limit"&&$key$$!=="access_token"&&$key$$!=="id_app"&&($condition$$[$key$$]=$req$$.query[$key$$]);try{let $rs$$;if($page$$){let $skip$$=(Number($page$$)-1)*$limit$$;$rs$$=await global.getModel("asstransaction").find($condition$$).skip($skip$$).limit($limit$$).sort({date_created:-1})}else $rs$$=
|
|
28
|
+
await global.getModel("asstransaction").find($condition$$).limit($limit$$).sort({date_created:-1});$fn$$(null,$rs$$.lean())}catch($e$$){if($e$$.message&&$e$$.message.error)return $fn$$($e$$.message);$fn$$({error:$e$$.message})}},{method:"GET"});$contr_router$$.createRoute("txs",async($req$$,$fn$$)=>{let $id_app$$=$req$$.user.current_id_app,{values:$values$$,typeUrl:$typeUrl$$,from_address:$from_address$$}=$req$$.body,$cmd$$=$typeUrl$$.split(".").pop();switch($cmd$$){case "MsgCreateFindhash":if(!global.configs.COIN_CAN_MINT)return $fn$$("Can't mint coins");
|
|
29
|
+
if(!$values$$||!$values$$.creator)return $fn$$("findhash is not valid");if(global.configs.DAILY_MINING_LIMIT){var $rs$$=await global.getModel("assfindhash").countDocuments({id_app:$id_app$$,creator:$values$$.creator,date_created:{$gte:moment().startOf("date").toDate(),$lte:moment().endOf("date").toDate()}});if($rs$$>=global.configs.DAILY_MINING_LIMIT)return Logger.error(`${$values$$.creator} \u0111\u00e3 h\u1ebft l\u01b0\u1ee3t \u0111\u00e0o`,$rs$$,global.configs.DAILY_MINING_LIMIT),$fn$$({code:9,
|
|
30
|
+
msg:"B\u1ea1n \u0111\u00e3 h\u1ebft s\u1ed1 l\u01b0\u1ee3t \u0111\u01b0\u1ee3c \u0111\u00e0o trong m\u1ed9t ng\u00e0y"})}$values$$.creator=$values$$.creator||$from_address$$;try{const {id:$id$$}=await validHash($id_app$$,$values$$);await global.getModel("assfindhash").create({...$values$$,id:$id$$,id_app:$id_app$$,user_created:$req$$.user.email});await global.getModel("assbank").mintCoins($id_app$$,$values$$.creator,1,global.configs.COIN_CAN_MINT,void 0,{push_notify:!1});return $fn$$(null,{msg:`M\u1ed9t block m\u1edbi \u0111\u00e3 \u0111\u01b0\u1ee3c t\u00ecm th\u1ea5y. B\u1ea1n \u0111\u01b0\u1ee3c th\u01b0\u1edfng ${1} ${global.configs.COIN_CAN_MINT}`,
|
|
31
|
+
creator:$values$$.creator,amount:1,denom:global.configs.COIN_CAN_MINT})}catch($e$$){return Logger.error("txs",$cmd$$,$values$$,$e$$),$fn$$($e$$)}case "MsgCreateToken":try{if(!$req$$.body["otp-id"]||!$req$$.body["otp-code"])return $fn$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u x\u00e1c th\u1ef1c qua OTP");try{await $permission$$.verifyOTP($req$$.user.email,$req$$.body["otp-id"],$req$$.body["otp-code"])}catch($e$$){return $fn$$({error:$e$$.message||$e$$.error||$e$$,code:4001})}$values$$.denom=
|
|
32
|
+
$values$$.denom||$values$$.name;await global.getModel("assbank").issueCoins($req$$.user,$values$$);$values$$.id_app=$req$$.user.current_id_app;$values$$.user_created=$req$$.user.email;$rs$$=await global.getModel("assissue").create($values$$);return $fn$$(null,$rs$$)}catch($e$$){return Logger.error("txs",$cmd$$,$values$$,$e$$),$fn$$($e$$)}default:Logger.error("Ch\u01b0a tri\u1ec3n khai",$cmd$$,$typeUrl$$),$fn$$(`Ch\u01b0a tri\u1ec3n khai l\u1ec7nh:${$cmd$$} (${$typeUrl$$})`)}},{method:"POST"});$contr_router$$.createRoute("findhash/:id",
|
|
33
|
+
async($id_app$jscomp$3_req$$,$fn$$)=>{let $id$$=$id_app$jscomp$3_req$$.params.id;$id_app$jscomp$3_req$$=$id_app$jscomp$3_req$$.user.current_id_app;try{if($id$$==="latest"){let $lastest$$=await getLatestHash($id_app$jscomp$3_req$$);if(!$lastest$$)return $fn$$("Not found latest hash");$fn$$(null,$lastest$$)}else{let $hash$$=await getHashById($id_app$jscomp$3_req$$,$id$$);$fn$$(null,$hash$$)}}catch($e$$){$fn$$($e$$.message||$e$$.error||$e$$)}},{method:"GET"});$contr_router$$.createRoute("findhash/broadcast",
|
|
34
|
+
async($req$$,$fn$$)=>{if(!global.configs.COIN_CAN_MINT)return $fn$$("Can't mint coins");let {findhash:$findhash$$}=$req$$.body,$id_app$$=$req$$.user.current_id_app;if(!$findhash$$)return $fn$$("findhash is not valid");if(!$findhash$$.creator)return $fn$$("findhash miss creator's address");if(global.configs.DAILY_MINING_LIMIT){const $so_lan_dao_trong_ngay$$=await global.getModel("assfindhash").countDocuments({id_app:$id_app$$,creator:$findhash$$.creator,date_created:{$gte:moment().startOf("date").toDate(),
|
|
35
|
+
$lte:moment().endOf("date").toDate()}});if($so_lan_dao_trong_ngay$$>=global.configs.DAILY_MINING_LIMIT)return Logger.error(`${$findhash$$.creator} \u0111\u00e3 h\u1ebft l\u01b0\u1ee3t \u0111\u00e0o`,$so_lan_dao_trong_ngay$$,global.configs.DAILY_MINING_LIMIT),$fn$$({code:9,msg:"B\u1ea1n \u0111\u00e3 h\u1ebft s\u1ed1 l\u01b0\u1ee3t \u0111\u01b0\u1ee3c \u0111\u00e0o trong m\u1ed9t ng\u00e0y"})}try{const {id:$id$$}=await validHash($id_app$$,$findhash$$);await global.getModel("assfindhash").create({...$findhash$$,
|
|
36
|
+
id:$id$$,id_app:$id_app$$,user_created:$req$$.user.email});await global.getModel("assbank").mintCoins($id_app$$,$findhash$$.creator,1,global.configs.COIN_CAN_MINT,void 0,{push_notify:!0});$fn$$(null,{msg:`M\u1ed9t block m\u1edbi \u0111\u00e3 \u0111\u01b0\u1ee3c t\u00ecm th\u1ea5y. B\u1ea1n \u0111\u01b0\u1ee3c th\u01b0\u1edfng ${1} ${global.configs.COIN_CAN_MINT}`,creator:$findhash$$.creator,amount:1,denom:global.configs.COIN_CAN_MINT})}catch($e$$){$fn$$($e$$)}},{method:"POST"});$contr_router$$.createRoute("test-mining/:creator",
|
|
37
|
+
async($req$$,$fn$$)=>{if($req$$.user.email!=="invncur@gmail.com")return $fn$$("Kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p th\u1ef1c hi\u1ec7n ch\u1ee9c n\u0103ng n\u00e0y");mining($req$$.user.current_id_app,$fn$$)},{method:"GET"});$contr_router$$.createRoute("query",async($offset_page$jscomp$2_req$$,$fn$$)=>{var $address$jscomp$5_rs$$=$offset_page$jscomp$2_req$$.query.path;if(!$address$jscomp$5_rs$$)return $fn$$({error:"query path is required"});var $ps_query$$=$address$jscomp$5_rs$$.split("/");if($ps_query$$.length<
|
|
38
|
+
3)return $fn$$({error:"Path is not valid"});$address$jscomp$5_rs$$=$ps_query$$[1];var $events_limit$$=$ps_query$$[2].split("-");$ps_query$$={id_app:$offset_page$jscomp$2_req$$.user.current_id_app};let [$action$$,$nam$$,$quy$$,$thang$$,$ngayd$$]=$events_limit$$;$nam$$&&($events_limit$$=moment().set("years",Number($nam$$)),$thang$$?$events_limit$$=$events_limit$$.set("months",Number($thang$$)-1):$quy$$&&($events_limit$$=$events_limit$$.set("quarters",Number($quy$$))),$ngayd$$&&($events_limit$$=$events_limit$$.set("dates",
|
|
39
|
+
Number($ngayd$$))),$ps_query$$.date_created={$gte:$events_limit$$.startOf("date").toDate(),$lte:$events_limit$$.endOf("date").toDate()});$events_limit$$=20;$offset_page$jscomp$2_req$$.query.limit&&($events_limit$$=Number($offset_page$jscomp$2_req$$.query.limit),isNaN($events_limit$$)||$events_limit$$==0)&&($events_limit$$=20);$offset_page$jscomp$2_req$$.query.page&&($offset_page$jscomp$2_req$$=Number($offset_page$jscomp$2_req$$.query.page),isNaN($offset_page$jscomp$2_req$$)||$offset_page$jscomp$2_req$$<
|
|
40
|
+
1)&&($offset_page$jscomp$2_req$$=1);$offset_page$jscomp$2_req$$=0*$events_limit$$;$action$$=="receiver"?$ps_query$$["data.to_address"]=$address$jscomp$5_rs$$:$action$$=="sender"?$ps_query$$["data.from_address"]=$address$jscomp$5_rs$$:$ps_query$$.$or=[{"data.from_address":$address$jscomp$5_rs$$},{"data.to_address":$address$jscomp$5_rs$$}];$address$jscomp$5_rs$$=await global.getModel("asstransaction").find($ps_query$$).skip($offset_page$jscomp$2_req$$).limit($events_limit$$).sort({date_created:-1}).lean();
|
|
41
|
+
$address$jscomp$5_rs$$.forEach(($r$$,$index$$)=>{$r$$.date=(new Date($r$$.date||$r$$.date_created)).getTime()/1E3;$r$$.receiver=($r$$.data||{}).to_address;$r$$.sender=($r$$.data||{}).from_address;$r$$.amount=($r$$.data||{}).amount||0;$r$$.denom=($r$$.data||{}).denom;$r$$.memo=$r$$.memo||($r$$.data||{}).memo;$r$$.id=$index$$.toString()});$fn$$(null,{TransferLog:$address$jscomp$5_rs$$})},{method:"GET"});$contr_router$$.route()};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const model=global.getModel("assneedtobuy"),controller=require("../../controllers/controller"),Trangthai=global.getModel("trangthai"),{isSupperAdmin}=require("../../libs/utils"),async=require("async");
|
|
2
|
+
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"assneedtobuy",{sort:{date_created:-1},notNeedRight:!0,requireOtp:($data$$,$options$$)=>isSupperAdmin($options$$.user.email.toLowerCase())?!1:!0,onFinding:async($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)},onView:async($user$$,$items$$,$next$$)=>{async.mapSeries($items$$,($item$$,$cb$$)=>{setImmediate(async()=>{try{await model.updateNeedToBy($item$$)}catch($e$$){Logger.error("view asssell",
|
|
3
|
+
$e$$)}$cb$$(null,$item$$)})},async()=>{await $items$$.asyncJoinModel2(null,Trangthai,{where:$item$$=>({ma_ct:"ASSNEEDTOBUY",ma_trang_thai:$item$$.trang_thai}),fields:["ten_trang_thai","color"]});$next$$(null,$items$$)})},onCreating:async($id_app_user$$,$NeedToBuy$$,$next$$)=>{var $creator_period_totalMoney$$=$NeedToBuy$$.creator;if(!await global.getModel("asskey").findOne({id_app:$id_app_user$$.current_id_app,username:$id_app_user$$.email,address:$creator_period_totalMoney$$}).lean())return $next$$("\u0110\u1ecba ch\u1ec9 v\u00ed n\u00e0y kh\u00f4ng thu\u1ed9c v\u1ec1 b\u1ea1n");
|
|
4
|
+
$id_app_user$$=$id_app_user$$.current_id_app;$creator_period_totalMoney$$=await global.getModel("assperiod").findOne({id_app:$id_app_user$$,id:$NeedToBuy$$.id_period});if(!$creator_period_totalMoney$$)return $next$$("Kh\u00f4ng t\u1ed3n t\u1ea1i g\u00f3i \u0111\u1ea7u t\u01b0");$NeedToBuy$$.id_product=$creator_period_totalMoney$$.id_product;$NeedToBuy$$.gia_mua=$creator_period_totalMoney$$.gia;$NeedToBuy$$.ky_han=$creator_period_totalMoney$$.ky_han;$NeedToBuy$$.cho_phep_rut_von=$creator_period_totalMoney$$.cho_phep_rut_von;
|
|
5
|
+
$NeedToBuy$$.lai_suat_truoc_han=$creator_period_totalMoney$$.lai_suat_truoc_han;$NeedToBuy$$.cho_phep_chuyen_nhuong=$creator_period_totalMoney$$.cho_phep_chuyen_nhuong;$NeedToBuy$$.so_luong_da_mua=0;$NeedToBuy$$.so_luong_con_lai=$NeedToBuy$$.so_luong;$creator_period_totalMoney$$=$NeedToBuy$$.so_luong*$NeedToBuy$$.gia_mua;try{await global.getModel("assbank").sendCoinsFromAccountToSystem($id_app_user$$,$NeedToBuy$$.creator,$creator_period_totalMoney$$,$NeedToBuy$$.denom,{...$NeedToBuy$$.toObject(),
|
|
6
|
+
event:"NEEDTOBUY",memo:`Chuy\u1ec3n ${$creator_period_totalMoney$$}${$NeedToBuy$$.denom} l\u00ean s\u00e0n ch\u1edd kh\u1edbp l\u1ec7nh`})}catch($e$$){return $next$$($e$$)}$next$$(null,$NeedToBuy$$)},onCreated:async($user$$,$obj$$,$next$$)=>{$obj$$.id=$obj$$._id.toString();await model.updateOne({_id:$obj$$._id},{id:$obj$$.id});$next$$(null,$obj$$)}});$contr_router$$.deleting=async function($id_app$jscomp$1_user$$,$obj$$,$next$$){if(isSupperAdmin($id_app$jscomp$1_user$$.email.toLowerCase()))return $next$$(null,
|
|
7
|
+
$obj$$);if($id_app$jscomp$1_user$$.email!==$obj$$.user_created)return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n c\u1eadp nh\u1eadt");$id_app$jscomp$1_user$$=$obj$$.id_app;if($obj$$.so_luong_con_lai>0&&$obj$$.trang_thai=="0"){const $totalMoney$$=$obj$$.so_luong_con_lai*$obj$$.gia_mua;try{return await global.getModel("assbank").sendCoinsFromSystemToAccount($id_app$jscomp$1_user$$,$obj$$.creator,$totalMoney$$,$obj$$.denom,{...$obj$$,event:"SELL-CANCEL",memo:`Hu\u1ef7 l\u1ec7nh mua. Nh\u1eadn ${$totalMoney$$}${$obj$$.denom} c\u00f2n l\u1ea1i`}),
|
|
8
|
+
await model.updateOne({_id:$obj$$._id},{trang_thai:9}),$next$$("\u0110\u00e3 hu\u1ef7 th\u00e0nh c\u00f4ng l\u1ec7nh n\u00e0y")}catch($e$$){return $next$$($e$$)}}return $next$$("B\u1ea1n kh\u00f4ng th\u1ec3 xo\u00e1 l\u1ec7nh n\u00e0y")};$contr_router$$.updating=async function($id_app$jscomp$2_user$$,$data$$,$obj$$,$next$$){if($id_app$jscomp$2_user$$.email!==$obj$$.user_created&&!isSupperAdmin($id_app$jscomp$2_user$$.email.toLowerCase()))return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n c\u1eadp nh\u1eadt");
|
|
9
|
+
if($data$$.id_period!=void 0&&$data$$.id_period!==$obj$$.id_period)return $next$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt g\u00f3i \u0111\u1ea7u t\u01b0");$id_app$jscomp$2_user$$=$obj$$.id_app;if($obj$$.so_luong_con_lai>0&&$obj$$.trang_thai=="0"&&$data$$.trang_thai==9){const $totalMoney$$=$obj$$.so_luong_con_lai*$obj$$.gia_mua;try{return await global.getModel("assbank").sendCoinsFromSystemToAccount($id_app$jscomp$2_user$$,$obj$$.creator,$totalMoney$$,$obj$$.denom,{...$obj$$.toObject(),event:"SELL-CANCEL",
|
|
10
|
+
memo:`Hu\u1ef7 l\u1ec7nh mua. Nh\u1eadn ${$totalMoney$$}${$obj$$.denom} c\u00f2n l\u1ea1i`}),$data$$={so_luong_con_lai:0,trang_thai:9},$next$$(null,$data$$,$obj$$)}catch($e$$){return $next$$($e$$)}}$next$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt l\u1ec7nh n\u00e0y")};$contr_router$$.route()};
|