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,2 @@
|
|
|
1
|
+
const loaidiemSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ten_loai_diem:{type:String,required:!0},diem:{type:Number,default:1},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&&(loaidiemSchema.index({id_app:1}),loaidiemSchema.index({ten_loai_diem:1}),loaidiemSchema.index({ten_loai_diem:"text"}),loaidiemSchema.index({status:1}),loaidiemSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.loaidiem||mongoose.model("loaidiem",loaidiemSchema);module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const lockSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});(global.configs||{}).createIndexes&&(lockSchema.index({id_app:1,id_ct:1}),lockSchema.index({status:1}),lockSchema.index({user_created:1,visible_to:1,visible_to_users:1}));
|
|
2
|
+
const model=mongoose.models.lock||mongoose.model("lock",lockSchema);module.exports=model;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const mongoose=require("mongoose"),Schema=mongoose.Schema,{onAfterCommit}=require("../libs/sessionContext.js"),logSchema=new Schema({id_app:{type:String},id_func:{type:String},action:{type:String},description:{type:String},data:{},result:Schema.Types.Mixed,ip:{type:String},user_agent:{type:String},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now,expires:7552E3},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
2
|
+
(global.configs||{}).createIndexes&&(logSchema.index({id_app:1,date_created:-1},{background:!0}),logSchema.index({id_app:1,user_created:1,date_created:-1},{background:!0}),logSchema.index({id_app:1,ip:1},{background:!0}),logSchema.index({id_app:1,id_func:1,action:1,date_created:-1}),logSchema.index({id_app:1,id_func:1,"data.data.id_link":1}),logSchema.index({id_app:1,id_func:1,"data.newData.id_link":1}),logSchema.index({id_app:1,"data.id":1}),logSchema.index({id_app:1,"data.id":1,"data.data.id_link":1,
|
|
3
|
+
"data.oldData.id_link":1,action:1,date_created:-1}));const Log=mongoose.models.log||mongoose.model("log",logSchema);function sanitizeData($obj$$){if($obj$$===null||$obj$$===void 0)return $obj$$;try{return JSON.parse(JSON.stringify($obj$$))}catch($e$$){return{error:"[Serialization Failed]",message:$e$$.message}}}
|
|
4
|
+
class LogBuffer{constructor($gracefulShutdown_model$$,$batchSize$$=1E3,$flushInterval$$=5E3){this.model=$gracefulShutdown_model$$;this.buffer=[];this.batchSize=$batchSize$$;this.flushInterval=$flushInterval$$;this.timer=null;this.startTimer();$gracefulShutdown_model$$=async()=>{typeof Logger!=="undefined"&&Logger.info("Server stopping... Flushing logs...");await this.flush()};process.on("SIGTERM",$gracefulShutdown_model$$);process.on("SIGINT",$gracefulShutdown_model$$)}startTimer(){this.timer&&clearInterval(this.timer);
|
|
5
|
+
this.timer=setInterval(()=>this.flush(),this.flushInterval)}add($logData$$){this.buffer.push($logData$$);this.buffer.length>=this.batchSize&&this.flush()}async flush(){if(this.buffer.length!==0){var $logsToWrite$$=[...this.buffer];this.buffer=[];this.startTimer();try{var $safeLogs$$=sanitizeData($logsToWrite$$);await this.model.insertMany($safeLogs$$,{ordered:!1,lean:!0})}catch($err$$){typeof Logger!=="undefined"?Logger.error("\u274c[log] L\u1ed7i ghi log batch:",$err$$.message,JSON.stringify($safeLogs$$,
|
|
6
|
+
null,2)):console.error("\u274c[log] L\u1ed7i ghi log batch:",$err$$.message)}}}}const accessLogBuffer=new LogBuffer(Log);
|
|
7
|
+
Log.create=async function($log$$,$user_created$$,$user_agent$$,$req$$){onAfterCommit(()=>{const $l$$={id_app:$log$$.id_app,id_func:$log$$.id_func,action:$log$$.action,description:$log$$.description,data:$log$$.data,result:$log$$.result,user_agent:$user_agent$$,user_created:$user_created$$,date_created:new Date};if($req$$){let $ip$$=$req$$.ip;!$ip$$&&$req$$.headers&&$req$$.headers["x-forwarded-for"]&&($ip$$=$req$$.headers["x-forwarded-for"].split(",")[0].trim());!$ip$$&&$req$$.connection&&($ip$$=$req$$.connection.remoteAddress);
|
|
8
|
+
$ip$$&&$ip$$.includes("::ffff:")&&($ip$$=$ip$$.split("::ffff:")[1]);$l$$.ip=$ip$$||""}accessLogBuffer.add($l$$)})};module.exports=Log;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const imapSchema=new Schema({host:{type:String},port:{type:Number,default:993},secure:{type:Boolean,default:!0},mailbox:{type:String,default:"INBOX"},fetchsenders:{type:String,default:"invoice,hoadon"}},{_id:!1}),smtpSchema=new Schema({host:{type:String},port:{type:Number,default:465},ssl:{type:Boolean,default:!0}},{_id:!1}),mailaccountSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_link:{type:String},fullname:{type:String,required:!0},username:{type:String,required:!0},password:{type:String,
|
|
2
|
+
required:!0},imap:imapSchema,smtp:smtpSchema,error:{},status_string:{type:String},status_code:Number,provider:{type:String,default:"generic"},last_checked:{type:Date,default:null},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&&(mailaccountSchema.index({id_app:1,username:"text",fullname:"text"}),mailaccountSchema.index({id_app:1,username:1}),mailaccountSchema.index({id_app:1,fullname:1}),mailaccountSchema.index({id_app:1,id_link:1}),mailaccountSchema.index({id_app:1,status:1}),mailaccountSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.mailaccount||mongoose.model("mailaccount",mailaccountSchema);module.exports=model;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const mailgroupSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},group_name:{type:String,required:!0},nh_khs:[String],ma_khs:[String],ma_bps:[String],ma_hds:[String],ma_dts:[String],exfields:Schema.Types.Mixed,visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,
|
|
2
|
+
default:""}});(global.configs||{}).createIndexes&&(mailgroupSchema.index({id_app:1,group_name:"text"}),mailgroupSchema.index({group_name:1}),mailgroupSchema.index({nh_khs:1}),mailgroupSchema.index({ma_khs:1}),mailgroupSchema.index({ma_bps:1}),mailgroupSchema.index({ma_hds:1}),mailgroupSchema.index({ma_dts:1}),mailgroupSchema.index({status:1}),mailgroupSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.mailgroup||mongoose.model("mailgroup",mailgroupSchema);
|
|
3
|
+
module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const mailreceivedSchema=new Schema({id_app:{type:String},account_id:{type:String,required:!0},messageId:{type:String,required:!0},from:[],to:[],subject:{type:String},mail:{},small_text:{},read:Boolean,attachments:[],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&&(mailreceivedSchema.index({messageId:1,account_id:1}),mailreceivedSchema.index({user_created:"text",date_created:-1}),mailreceivedSchema.index({status:1}),mailreceivedSchema.index({user_created:1}));const model=mongoose.models.mailreceived||mongoose.model("mailreceived",mailreceivedSchema);module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const mailsentSchema=new Schema({id_app:{type:String},account_id:{type:String,required:!0},cid:String,id_template:{type:String},from:[],to:[],subject:{type:String},mail:{},attachments:[],small_text:{},sent:{type:Boolean,default:!1},schedule:{type:Date,default:Date.now},repeat:{type:Number},send_type:{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,
|
|
2
|
+
default:""}});(global.configs||{}).createIndexes&&(mailsentSchema.index({account_id:1,cid:1,id_app:1}),mailsentSchema.index({user_created:"text"}),mailsentSchema.index({date_created:-1}),mailsentSchema.index({user_created:1}),mailsentSchema.index({status:1}));const model=mongoose.models.mailsent||mongoose.model("mailsent",mailsentSchema);module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const mailtemplateSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},name:{type:String,required:!0},nhom:{type:String},subject:{type:String},mail:{},attachments:[],small_text:{},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String]});
|
|
2
|
+
(global.configs||{}).createIndexes&&(mailtemplateSchema.index({name:1,nhom:1,subject:1}),mailtemplateSchema.index({status:1}),mailtemplateSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.mailtemplate||mongoose.model("mailtemplate",mailtemplateSchema);model.actions={send:($campaign$$,$obj_ev$$,$model_id$$,$next$$)=>{Logger.info("run action send email",$model_id$$,$obj_ev$$);$next$$()}};module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const maudanhgiaSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},loai_mau_danh_gia:{type:Number,default:6},ma_mau_danh_gia:{type:String,uppercase:!0,required:!0},ten_mau_danh_gia:{type:String,required:!0},nh_mau_danh_gia:{type:String},exfields:Schema.Types.Mixed,visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},
|
|
2
|
+
user_created:{type:String,default:""},user_updated:{type:String,default:""}});(global.configs||{}).createIndexes&&(maudanhgiaSchema.index({id_app:1,loai_mau_danh_gia:1,ten_mau_danh_gia:"text"}),maudanhgiaSchema.index({ten_mau_danh_gia:1}),maudanhgiaSchema.index({status:1}),maudanhgiaSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.maudanhgia||mongoose.model("maudanhgia",maudanhgiaSchema);module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const menuinfoSchema=new Schema({code:{type:String,required:!0,maxlength:32,uppercase:!0,trim:!0},title:{type:String,required:!0,maxlength:1024},icon:String,default_datas:[],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&&(menuinfoSchema.index({code:1},{unique:!0}),menuinfoSchema.index({title:"text"}),menuinfoSchema.index({status:1}),menuinfoSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.menu||mongoose.model("menuinfo",menuinfoSchema);module.exports=model;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const User=require("./user"),Colleague=require("./colleague"),messageSchema=new Schema({email_sender:{type:String,required:!0},email_receiver:{type:String,required:!0},email_owner:{type:String,required:!0},title:{type:String},content:{type:String,required:!0},image:String,audio:String,video:String,location:Schema.Types.Mixed,object:Schema.Types.Mixed,id_origin:String,read:{type:Boolean,default:!1},status:{type:Boolean,default:!1},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},
|
|
2
|
+
user_created:{type:String,default:""},user_updated:{type:String,default:""}});(global.configs||{}).createIndexes&&(messageSchema.index({email_sender:1,email_receiver:1}),messageSchema.index({email_owner:1}),messageSchema.index({date_created:-1}),messageSchema.index({title:"text"}),messageSchema.index({title:1}),messageSchema.index({content:1}),messageSchema.index({status:1}),messageSchema.index({user_created:1,visible_to:1,visible_to_users:1}));
|
|
3
|
+
const message=mongoose.models.message||mongoose.model("message",messageSchema);
|
|
4
|
+
message.sendMessage=async $obj$$=>{Colleague.findOne({email_owner:$obj$$.email_sender,email:$obj$$.email_receiver},function($error$$,$coll$$){if($error$$)return Logger.info($error$$);$coll$$||=new Colleague({email_owner:$obj$$.email_sender,email:$obj$$.email_receiver,active:!0,status:!0});$coll$$.latest_message=$obj$$.content;$coll$$.latest_message_id=$obj$$._id.toString();$coll$$.latest_message_date=$obj$$.date_created;$coll$$.save(function($error$$){if($error$$)return Logger.info($error$$)})});
|
|
5
|
+
Colleague.findOne({email_owner:$obj$$.email_receiver,email:$obj$$.email_sender},function($error$$,$coll$$){if($error$$)return Logger.info($error$$);$coll$$||=new Colleague({email_owner:$obj$$.email_receiver,email:$obj$$.email_sender,active:!0,status:!0});$coll$$.latest_message=$obj$$.content;$coll$$.latest_message_id=$obj$$._id.toString();$coll$$.latest_message_date=$obj$$.date_created;$coll$$.save(function($error$$){if($error$$)return Logger.info($error$$)})});const $msg$$=$obj$$.toObject();$msg$$.code=
|
|
6
|
+
"message";$msg$$.action="NEW";$msg$$.email_sender.indexOf("guest@")>=0?$msg$$.title=(new Buffer($msg$$.email_sender.split("@")[1],"base64")).toString():$msg$$.title=await User.getInfo({email:$msg$$.email_sender},"name")||$msg$$.email_sender;$msg$$.body=$msg$$.content;$msg$$.sender=$msg$$.email_sender;$msg$$.channel="chat-messages";User.emitEvent($msg$$.email_receiver,"message:new",$msg$$)};
|
|
7
|
+
message.createMessage=function($email_sender$$,$email_receiver$$,$title$$,$content$$,$fn$$){const $notifi$$=new message;$notifi$$.email_owner=$email_sender$$;$notifi$$.email_sender=$email_sender$$;$notifi$$.email_receiver=$email_receiver$$;$notifi$$.title=$title$$;$notifi$$.content=$content$$;$notifi$$.user_created=$email_sender$$;$notifi$$.read=!0;$notifi$$.save(function($err$$){if($err$$)$fn$$&&$fn$$($err$$);else{global.alertMessage($email_sender$$);var $notifi_re$$=new message;$notifi_re$$.email_owner=
|
|
8
|
+
$email_receiver$$;$notifi_re$$.email_sender=$email_sender$$;$notifi_re$$.email_receiver=$email_receiver$$;$notifi_re$$.title=$title$$;$notifi_re$$.content=$content$$;$notifi_re$$.user_created=$email_sender$$;$notifi_re$$.save(function($err$$){$err$$?$fn$$&&$fn$$($err$$):(message.sendMessage($notifi_re$$),global.alertMessage($email_receiver$$),$fn$$&&$fn$$(null,$notifi$$,$notifi_re$$))})}})};module.exports=message;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const message2Schema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_link:{type:String,required:!0,maxlength:1024},code_link:{type:String,maxlength:1024},title:{type:String},text:{type:String},file:String,meta:Schema.Types.Mixed,location:Schema.Types.Mixed,trang_thai:{type:String,default:"1"},sender:String,receiver:String,read:[String],phu_trach:String,attends:[String],reply:Schema.Types.Mixed,is_system:{type:Boolean,default:!1},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:""}});
|
|
3
|
+
(global.configs||{}).createIndexes&&(message2Schema.index({id_app:1,id_link:1}),message2Schema.index({id_app:1,id_link:1,sender:1}),message2Schema.index({id_app:1,id_link:1,receiver:1}),message2Schema.index({id_app:1,user_created:1}),message2Schema.index({id_app:1,date_created:-1}),message2Schema.index({id_app:1,title:"text",sender:"text",phu_trach:"text",text:"text"}),message2Schema.index({id_app:1,id_link:1,phu_trach:1,attends:1,sender:1,receiver:1}),message2Schema.index({id_app:1,id_group:1,read:1}),
|
|
4
|
+
message2Schema.index({id_app:1,status:1}),message2Schema.index({id_app:1,id_link:1,trang_thai:1}));const message2=mongoose.models.message2||mongoose.model("message2",message2Schema);module.exports=message2;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const message2settingSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_link:{type:String,maxlength:1024},code_link:{type:String,maxlength:1024,default:"other"},title:{type:String,maxlength:1024},latest_message:String,name_sender_latest_message:String,id_latest_message:String,phu_trach:String,attends:[String],status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,
|
|
2
|
+
default:""}});(global.configs||{}).createIndexes&&(message2settingSchema.index({id_app:1}),message2settingSchema.index({id_app:1,id_link:1}),message2settingSchema.index({id_app:1,phu_trach:1}),message2settingSchema.index({id_app:1,title:"text"}),message2settingSchema.index({id_app:1,user_created:1,attends:1,phu_trach:1}),message2settingSchema.index({id_app:1,date_created:-1}),message2settingSchema.index({id_app:1,date_updated:-1}),message2settingSchema.index({id_app:1,status:1}));
|
|
3
|
+
const message2setting=mongoose.models.message2setting||mongoose.model("message2setting",message2settingSchema);module.exports=message2setting;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const itemSchema=new Schema({code:{type:String,required:!0,maxlength:1024,trim:!0},title:{type:String,required:!0,maxlength:1024},path:{type:String,maxlength:3024,trim:!0},href:{type:String,maxlength:3024,trim:!0},rights:[String],type:{type:String,maxlength:32,trim:!0},dashboard:{type:String,maxlength:1024},horizontal:Boolean,horizontal_menu:String,stt:Number,icon:String,system:Boolean,group:String,only_for_companies:[String],not_for_companies:[String],visible:{type:Boolean,default:!0},line:{type:Number,
|
|
2
|
+
default:0}}),moduleinfoSchema=new Schema({app:{type:String,required:!0,maxlength:1024,uppercase:!0,trim:!0},code:{type:String,required:!0,maxlength:1024,uppercase:!0,trim:!0},title:{type:String,required:!0,maxlength:1024},mother_module:{type:String,maxlength:1024,trim:!0},name_mother_module:{type:String,maxlength:2024},items:[itemSchema],stt:Number,visible:{type:Boolean,default:!0},only_for_companies:[String],not_for_companies:[String],active_require:{type:Boolean,default:!0},allow_users:{type:String},
|
|
3
|
+
icon:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
4
|
+
(global.configs||{}).createIndexes&&(moduleinfoSchema.index({app:1,code:1,mother_module:1}),moduleinfoSchema.index({title:"text"}),moduleinfoSchema.index({title:1}),moduleinfoSchema.index({code:1}),moduleinfoSchema.index({app:1}),moduleinfoSchema.index({"items.code":1}),moduleinfoSchema.index({status:1}),moduleinfoSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.menu||mongoose.model("moduleinfo",moduleinfoSchema);module.exports=model;
|
|
@@ -0,0 +1,18 @@
|
|
|
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"),momoScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0},pt_thanh_toan:{type:String,required:!0},client_ip:{type:String,required:!0},trang_thai:{type:String,
|
|
2
|
+
default:"0",enum:["0","1","2"]}});(global.configs||{}).createIndexes&&(momoScheam.index({id_app:1}),momoScheam.index({id_ct:1}),momoScheam.index({trang_thai:1}),momoScheam.index({pt_thanh_toan:1}));const model=mongoose.models.momo||mongoose.model("momo",momoScheam),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$$,$_paymentViamomo$$)=>{if(!$pt_thanh_toan$$||!global.mongoose.Types.ObjectId.isValid($pt_thanh_toan$$))return null;$_paymentViamomo$$||=await Ptthanhtoan.getInfo($id_app$$,{_id:$pt_thanh_toan$$});return $_paymentViamomo$$||$_paymentViamomo$$.payment_service==="momo"?($id_app$$=$_paymentViamomo$$.momo_configs)&&$id_app$$.endpoint&&($id_app$$.partnerCode||$id_app$$.partnercode)&&($id_app$$.accessKey||$id_app$$.accesskey)&&$id_app$$.serectkey?($id_app$$.partnerCode=
|
|
5
|
+
$id_app$$.partnerCode||$id_app$$.partnercode,$id_app$$.accessKey=$id_app$$.accessKey||$id_app$$.accesskey,$id_app$$):null:(Logger.info("Phuong thuc thanh toan khong ton tai"),null)};
|
|
6
|
+
model.createVirtualPaymentClientURL=async($order$$,$client_ip$$,$_paymentViamomo$$)=>{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 $momo_configs$$=await model.getConfigs($id_app$$,$order$$.pt_thanh_toan,$_paymentViamomo$$);if(!$momo_configs$$)return Logger.info("not found momo configs"),"";let $_momo$$=new model({id_app:$id_app$$,id_ct:$order$$._id,ma_ct:$order$$.ma_ct,
|
|
7
|
+
pt_thanh_toan:$order$$.pt_thanh_toan,client_ip:$client_ip$$||":11"});return new Promise(($resolve$$,$reject$$)=>{$_momo$$.save(($e$$,$requestId_rs$$)=>{if($e$$)return $reject$$(Error($e$$.message));$e$$=`${configs.domain?`https://${configs.domain}`:configs.api_url}/public/${$id_app$$}/momo/${$requestId_rs$$._id.toString()}/callback`;let $ipnUrl$$=`${configs.domain?`https://${configs.domain}`:configs.api_url}/public/${$id_app$$}/momo/notify`,$orderId$$=$order$$._id.toString();$requestId_rs$$=$requestId_rs$$._id.toString();
|
|
8
|
+
let $orderInfo$$=$order$$.dien_giai||"pay with MoMo",$signature$$=hmacSHA256(`accessKey=${$momo_configs$$.accessKey}&amount=${$amount$$}&extraData=${"merchantName=;merchantId="}&ipnUrl=${$ipnUrl$$}&orderId=${$orderId$$}&orderInfo=${$orderInfo$$}&partnerCode=${$momo_configs$$.partnerCode}&redirectUrl=${$e$$}&requestId=${$requestId_rs$$}&requestType=${"captureWallet"}`,$momo_configs$$.serectkey).toString();axios.post($momo_configs$$.endpoint,{partnerCode:$momo_configs$$.partnerCode,accessKey:$momo_configs$$.accessKey,
|
|
9
|
+
requestId:$requestId_rs$$,amount:$amount$$.toString(),orderId:$orderId$$,orderInfo:$orderInfo$$,redirectUrl:$e$$,extraData:"merchantName=;merchantId=",requestType:"captureWallet",ipnUrl:$ipnUrl$$,signature:$signature$$}).then($res$$=>{if($res$$.data.resultCode)return $reject$$(Error($res$$.data.localMessage));$resolve$$($res$$.data.payUrl)}).catch($response$$=>{if($response$$.data&&$response$$.data.resultCode)return $reject$$(Error($response$$.data.localMessage));$reject$$($response$$)})})})};
|
|
10
|
+
model.handleNotify=async($id_app$$,$body_receiver$$,$callback$$)=>{let $id_transaction$$=$body_receiver$$.requestId;try{const $trans$$=await model.findOne({_id:$id_transaction$$}),$service_configs$$=await model.getConfigs($id_app$$,$trans$$.pt_thanh_toan);let $resultCode$$=$body_receiver$$.resultCode,$message$$=$body_receiver$$.localMessage,$responseTime$$=moment().format("YYYY-MM-DD HH:mm:ss"),$body_return$$={partnerCode:$body_receiver$$.partnerCode,accessKey:$body_receiver$$.accessKey,requestId:$body_receiver$$.requestId,
|
|
11
|
+
orderId:$body_receiver$$.orderId,resultCode:$resultCode$$,message:$message$$,responseTime:$responseTime$$,extraData:"",signature:hmacSHA256(`partnerCode=${$body_receiver$$.partnerCode}&accessKey=${$body_receiver$$.accessKey}&requestId=${$body_receiver$$.requestId}&orderId=${$body_receiver$$.orderId}&resultCode=${$resultCode$$}&message=${$message$$}&responseTime=${$responseTime$$}&extraData=${""}`,$service_configs$$.serectkey).toString()};$callback$$(null,$body_return$$)}catch($e$$){Logger.error($e$$),
|
|
12
|
+
$callback$$($e$$.message)}};
|
|
13
|
+
model.verifyReturnUrl=async($id_app$jscomp$4_orderId$$,$id_transaction$$)=>{let $_momo$$=await model.getInfo($id_app$jscomp$4_orderId$$,{_id:$id_transaction$$}),$momo_configs$$=await model.getConfigs($id_app$jscomp$4_orderId$$,$_momo$$.pt_thanh_toan);if(!$momo_configs$$)throw"Miss configures for momo";$id_app$jscomp$4_orderId$$=$_momo$$.id_ct;let $requestId$$=$_momo$$._id.toString(),$signature$$=hmacSHA256(`accessKey=${$momo_configs$$.accessKey}&orderId=${$id_app$jscomp$4_orderId$$}&partnerCode=${$momo_configs$$.partnerCode}&requestId=${$requestId$$}`,$momo_configs$$.serectkey).toString(),
|
|
14
|
+
$body$$={partnerCode:$momo_configs$$.partnerCode,accessKey:$momo_configs$$.accessKey,requestId:$requestId$$,orderId:$id_app$jscomp$4_orderId$$,lang:"vi",signature:$signature$$};return new Promise(($resolve$$,$reject$$)=>{axios.post($momo_configs$$.endpoint_query||$momo_configs$$.endpoint,$body$$).then(async $obj_updated$jscomp$1_obj_updated$jscomp$2_response$$=>{const $results$$=$obj_updated$jscomp$1_obj_updated$jscomp$2_response$$.data;$results$$.isSuccess=$results$$.resultCode==0;let $_v$$=global.getModel(`${$_momo$$.ma_ct.toLowerCase()}`);
|
|
15
|
+
if($results$$.isSuccess)try{await executeInTransaction(async()=>{await model.updateOne({_id:$id_transaction$$},{trang_thai:$results$$.isSuccess==0?"1":"2"});await $_v$$.updateOne({_id:$_momo$$.id_ct},{trang_thai:"5"});const $obj_updated$$=await $_v$$.findOne({_id:$_momo$$.id_ct});let $ctrl$$=global.controllers[$_momo$$.ma_ct.toUpperCase()];$ctrl$$&&$obj_updated$$&&($ctrl$$.post&&(await controller.asyncPostData($obj_updated$$,$ctrl$$),controller.pushNotification($ctrl$$,$obj_updated$$,"update")),$ctrl$$.handleAfterPayment&&
|
|
16
|
+
(await $ctrl$$.handleAfterPayment($obj_updated$$),controller.pushNotification($ctrl$$,$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("[momo]error update status for voucher",$_momo$$.ma_ct,$e$$),$obj_updated$jscomp$1_obj_updated$jscomp$2_response$$=await $_v$$.findOne({_id:$_momo$$.id_ct}),$results$$.result_url=$obj_updated$jscomp$1_obj_updated$jscomp$2_response$$.again_link||
|
|
17
|
+
again_link}else $obj_updated$jscomp$1_obj_updated$jscomp$2_response$$=await $_v$$.findOne({_id:$_momo$$.id_ct}),$results$$.result_url=$obj_updated$jscomp$1_obj_updated$jscomp$2_response$$.again_link||again_link;$results$$.result_url=$results$$.result_url||again_link;$results$$.error_url="";$results$$.message=$results$$.localMessage;$resolve$$($results$$)}).catch($response$$=>{if($response$$.data&&$response$$.data.resultCode)return $reject$$(Error($response$$.data.localMessage));$reject$$($response$$)})})};
|
|
18
|
+
module.exports=model;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const newsSchema=new Schema({id_app:{type:String,required:!0},title:{type:String,required:!0},content:{type:String},picture:{type:String},other_pictures:[String],exfields:Schema.Types.Mixed,newsfeed:{type:Boolean,default:!0},ngon_ngu:String,slug:String,trans:[],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&&(newsSchema.index({id_app:1,title:1}),newsSchema.index({date_updated:-1}),newsSchema.index({date_created:-1}),newsSchema.index({user_created:1}),newsSchema.index({title:"text",content:"text"}),newsSchema.index({title:1},{unique:!0}),newsSchema.index({content:1}),newsSchema.index({ngon_ngu:1}),newsSchema.index({slug:1}),newsSchema.index({"trans.slug":1}),newsSchema.index({status:1}),newsSchema.index({user_created:1,visible_to:1,visible_to_users:1}));
|
|
3
|
+
const model=mongoose.models.news||mongoose.model("news",newsSchema);module.exports=model;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const {onAfterCommit}=require("../libs/sessionContext"),newsfeedSchema=new Schema({id_app:{type:String,required:!0},model_name:{type:String,required:!0},id:{type:String,required:!0},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
2
|
+
(global.configs||{}).createIndexes&&(newsfeedSchema.index({id_app:1,model_name:1,id:1}),newsfeedSchema.index({date_updated:-1}),newsfeedSchema.index({date_created:-1}),newsfeedSchema.index({user_created:1}),newsfeedSchema.index({model_name:"text"}),newsfeedSchema.index({model_name:1}),newsfeedSchema.index({status:1}),newsfeedSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.newsfeed||mongoose.model("newsfeed",newsfeedSchema);
|
|
3
|
+
model.add=async($modelName$$,$obj$$)=>{onAfterCommit(async()=>{await model.delete($obj$$._id.toString());let $newsfeed$$=new model({id_app:$obj$$.id_app,model_name:$modelName$$,id:$obj$$._id.toString(),status:$obj$$.status,date_created:$obj$$.date_created,date_updated:$obj$$.date_updated,user_created:$obj$$.user_created,user_updated:$obj$$.user_updated});await new Promise(($resolve$$,$reject$$)=>{$newsfeed$$.save(($e$$,$rs$$)=>{if($e$$)return $reject$$(Error($e$$.message));$resolve$$($rs$$.toObject())})})})};
|
|
4
|
+
model.delete=async $id$$=>{onAfterCommit(async()=>{await new Promise(($resolve$$,$reject$$)=>{model.deleteMany({id:$id$$},($e$$,$rs$$)=>{if($e$$)return $reject$$(Error($e$$.message));$resolve$$($rs$$)})})})};module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const noteSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_link:{type:String},title:{type:String,maxlength:1024},content:{type:String,required:"B\u1ea1n ch\u01b0a nh\u1eadp n\u1ed9i d\u1ee5ng ghi ch\u00fa"},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],
|
|
2
|
+
delete_right:[String]});(global.configs||{}).createIndexes&&(noteSchema.index({id_app:1}),noteSchema.index({id_link:1}),noteSchema.index({id_app:1,id_link:1}),noteSchema.index({id_app:1,title:1}),noteSchema.index({id_app:1,content:1}),noteSchema.index({id_app:1,title:"text",content:"text"}),noteSchema.index({id_app:1,status:1}),noteSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.note||mongoose.model("note",noteSchema);module.exports=model;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const {runWithoutSession}=require("../libs/sessionContext"),notificationSchema=new Schema({key:String,email_sender:{type:String,required:!0},email_receiver:{type:String,required:!0},email_owner:{type:String,required:!0},title:{type:String,required:!0},content:{type:String},exfields:Schema.Types.Mixed,read:{type:Boolean,default:!1},status:{type:Boolean,default:!1},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,
|
|
2
|
+
default:""}});
|
|
3
|
+
(global.configs||{}).createIndexes&&(notificationSchema.index({email_owner:1}),notificationSchema.index({email_owner:1,email_receiver:1}),notificationSchema.index({email_owner:1,email_sender:1}),notificationSchema.index({"exfields.id_app":1}),notificationSchema.index({"exfields.id_app":1,email_owner:1}),notificationSchema.index({"exfields.id_app":1,email_owner:1,read:1}),notificationSchema.index({"exfields.id_app":1,email_owner:1,date_created:-1}),notificationSchema.index({"exfields.id_app":1,email_receiver:1,
|
|
4
|
+
email_owner:1,read:-1}),notificationSchema.index({key:1},{unique:!0}),notificationSchema.index({email_owner:1,user_created:1,visible_to:1,visible_to_users:1}));const Notification=mongoose.models.notification||mongoose.model("notification",notificationSchema);
|
|
5
|
+
Notification.createNotification=function($email_sender$$,$email_receiver$$,$title$$,$content$$,$fn$$,$exfields$$,$emitEvent$$){runWithoutSession(async()=>{if(!$email_sender$$||!$email_receiver$$){if($fn$$){$fn$$("Kh\u00f4ng c\u00f3 \u0111\u1ee7 th\u00f4ng tin ng\u01b0\u1eddi nh\u1eadn v\u00e0 ng\u01b0\u1eddi g\u1eedi");return}throw"Kh\u00f4ng c\u00f3 \u0111\u1ee7 th\u00f4ng tin ng\u01b0\u1eddi nh\u1eadn v\u00e0 ng\u01b0\u1eddi g\u1eedi";}$content$$=typeof $content$$=="object"?JSON.stringify($content$$):
|
|
6
|
+
($content$$||"").toString();let $key$$=($exfields$$||{}).key||`${$email_receiver$$}-${(new Date).getTime()}`,$ex$$;($exfields$$||{}).key&&($ex$$=await Notification.findOne({key:$key$$}));if(!$ex$$){const $notifi_re$$=new Notification;$notifi_re$$.email_owner=$email_receiver$$;$notifi_re$$.email_sender=$email_sender$$;$notifi_re$$.email_receiver=$email_receiver$$;$notifi_re$$.title=$title$$;$notifi_re$$.content=$content$$;$notifi_re$$.exfields=$exfields$$;$notifi_re$$.exfields&&($notifi_re$$.exfields.app_info&&
|
|
7
|
+
$notifi_re$$.exfields.app_info._id&&!$notifi_re$$.exfields.id_app&&($notifi_re$$.exfields.id_app=$notifi_re$$.exfields.app_info._id.toString()),$notifi_re$$.exfields.app_info=void 0);$notifi_re$$.key=$key$$;$notifi_re$$.user_created=$email_sender$$;$notifi_re$$.user_updated=$email_sender$$;$notifi_re$$.save(function($err$$,$m$$){$err$$?(Logger.error($err$$),$fn$$&&$fn$$($err$$)):(global.alertNotification($email_receiver$$,$notifi_re$$.exfields?.id_app),global.sendNotification($email_receiver$$,$m$$._id,
|
|
8
|
+
$m$$.toObject(),$emitEvent$$!==!1),$fn$$&&$fn$$(null,$m$$,$m$$))})}})};module.exports=Notification;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const okrSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_link:{type:String,maxlength:1024},title:{type:String,required:!0,maxlength:1024},type:{type:String,maxlength:1024},ma_bp:{type:String},phu_trach:String,ten_phu_trach:String,attends:[],description:{type:String,maxlength:4E3},start_date:Date,due_date:Date,color:String,id_parent:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,
|
|
2
|
+
default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],visible_to_usergroups:[String],update_right:[String],delete_right:[String]});
|
|
3
|
+
(global.configs||{}).createIndexes&&(okrSchema.index({id_app:1}),okrSchema.index({id_link:1}),okrSchema.index({id_parent:1}),okrSchema.index({phu_trach:1}),okrSchema.index({ten_phu_trach:1}),okrSchema.index({title:1}),okrSchema.index({description:1}),okrSchema.index({phu_trach:"text",ten_phu_trach:"text",title:"text",description:"text"},{name:"okr_index_text"}),okrSchema.index({attends:1}),okrSchema.index({status:1}),okrSchema.index({user_created:1,visible_to:1,visible_to_users:1}));
|
|
4
|
+
const model=mongoose.models.okr||mongoose.model("okr",okrSchema);model.referenceKeys={_id:[{model:"okr",key:"id_parent",error:"B\u1ea1n ph\u1ea3i xo\u00e1 t\u1ea5t c\u1ea3 m\u1ee5c ti\u00eau con c\u1ee7a m\u1ee5c ti\u00eau n\u00e0y tr\u01b0\u1edbc khi xo\u00e1 n\u00f3"},{model:"keyresult",key:"id_link",error:"B\u1ea1n ph\u1ea3i xo\u00e1 t\u1ea5t c\u1ea3 k\u1ebft qu\u1ea3 c\u1ed1t l\u00f5i c\u1ee7a m\u1ee5c ti\u00eau n\u00e0y tr\u01b0\u1edbc khi xo\u00e1 n\u00f3"}]};module.exports=model;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const okrdiagramSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_link:{type:String,maxlength:1024},title:{type:String,required:!0,maxlength:1024},description:{type:String,maxlength:4E3},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],
|
|
2
|
+
delete_right:[String]});(global.configs||{}).createIndexes&&(okrdiagramSchema.index({id_app:1}),okrdiagramSchema.index({id_link:1}),okrdiagramSchema.index({title:1}),okrdiagramSchema.index({description:1}),okrdiagramSchema.index({title:"text",description:"text"}),okrdiagramSchema.index({status:1}),okrdiagramSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.okrdiagram||mongoose.model("okrdiagram",okrdiagramSchema);
|
|
3
|
+
model.referenceKeys={_id:[{model:"okr",key:"id_link",error:"B\u1ea1n ph\u1ea3i xo\u00e1 t\u1ea5t c\u1ea3 m\u1ee5c ti\u00eau c\u1ee7a diagram n\u00e0y tr\u01b0\u1edbc khi xo\u00e1 n\u00f3"}]};module.exports=model;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const {OnePayDomestic}=require("vn-payments"),{OnePayInternational}=require("vn-payments"),{pack,toUpperCase,hashHmac}=require("vn-payments/dist/utils"),axios=require("axios"),controller=require("../controllers/controller"),{executeInTransaction}=require("../libs/sessionContext"),App=global.getModel("app"),Customer=global.getModel("customer"),Ptthanhtoan=global.getModel("ptthanhtoan"),onepayScheam=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},
|
|
2
|
+
ma_ct:{type:String,required:!0,uppercase:!0},pt_thanh_toan:{type:String,required:!0},vpc_OrderInfo:{type:String,required:!0},vpc_Amount:{type:Number,required:!0},vpc_Version:{type:Number,required:!0,default:2},vpc_Command:{type:String,required:!0,default:"pay"},vpc_Locale:{type:String,required:!0,default:"vn"},vpc_TicketNo:{type:String,required:!0},trang_thai:{type:String,default:"0",enum:["0","1","2"]}});
|
|
3
|
+
(global.configs||{}).createIndexes&&(onepayScheam.index({id_app:1}),onepayScheam.index({id_ct:1}),onepayScheam.index({ma_ct:1}),onepayScheam.index({pt_thanh_toan:1}),onepayScheam.index({trang_thai:1}));const model=mongoose.models.onepay||mongoose.model("onepay",onepayScheam),again_link=`${configs.domain?`https://${configs.domain}`:configs.api_url}/public/payment/again`;
|
|
4
|
+
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$$)})})};
|
|
5
|
+
model.getConfigs=async($id_app$$,$pt_thanh_toan$$,$_paymentViaOnePay$$)=>{if(!$pt_thanh_toan$$||!global.mongoose.Types.ObjectId.isValid($pt_thanh_toan$$))return null;$_paymentViaOnePay$$||=await Ptthanhtoan.getInfo($id_app$$,{payment_service:"onepay",_id:$pt_thanh_toan$$});return $_paymentViaOnePay$$&&$_paymentViaOnePay$$.payment_service==="onepay"?($id_app$$=$_paymentViaOnePay$$.onepay_configs)&&$id_app$$.vpc_url_payment&&($id_app$$.vpc_Merchant||$id_app$$.vpc_merchant)&&($id_app$$.vpc_AccessCode||
|
|
6
|
+
$id_app$$.vpc_accessCode)&&($id_app$$.SECURE_SECRET||$id_app$$.secure_secret)?($id_app$$.vpc_Merchant=$id_app$$.vpc_merchan||$id_app$$.vpc_Merchantt,$id_app$$.vpc_AccessCode=$id_app$$.vpc_accesscode||$id_app$$.vpc_accessCode||$id_app$$.vpc_AccessCode,$id_app$$.SECURE_SECRET=$id_app$$.secure_secret,$id_app$$):null:null};
|
|
7
|
+
model.createVirtualPaymentClientURL=async($order$$,$client_ip$$,$_cust__paymentViaOnePay$$)=>{let $id_app$$=$order$$.id_app,$onepay_configs$$=await model.getConfigs($id_app$$,$order$$.pt_thanh_toan,$_cust__paymentViaOnePay$$);if(!$onepay_configs$$)return Logger.error("not found onepay configs"),"";let $virtualPaymentClientURL$$=$onepay_configs$$.vpc_url_payment,$_app$$=await App.getInfo($id_app$$);$_cust__paymentViaOnePay$$=await Customer.findOne({id_app:$id_app$$,ma_kh:$order$$.ma_kh}).lean()||{};
|
|
8
|
+
let $_onepay$$=new model({id_app:$id_app$$,id_ct:$order$$._id,ma_ct:$order$$.ma_ct,pt_thanh_toan:$order$$.pt_thanh_toan,vpc_OrderInfo:`${$_app$$.short_name||""}_${$_cust__paymentViaOnePay$$.dien_thoai||$order$$.user_created}`.substring(0,32),vpc_Amount:$order$$.amount||$order$$.t_tien,vpc_Locale:$order$$.payment_getway_lang||($order$$.ma_nt=="VND"?"vn":"en"),vpc_TicketNo:$client_ip$$||":11"});return new Promise(($resolve$$,$reject$$)=>{$_onepay$$.save(($e$$,$rs$$)=>{if($e$$)return $reject$$(Error($e$$.message));
|
|
9
|
+
$e$$=`${configs.domain?`https://${configs.domain}`:configs.api_url}/public/${$id_app$$}/onepay/${$rs$$._id.toString()}/callback`;let $onepayIntl$$;$onepayIntl$$=$onepay_configs$$.domestic?new OnePayDomestic({paymentGateway:$virtualPaymentClientURL$$,merchant:$onepay_configs$$.vpc_Merchant,accessCode:$onepay_configs$$.vpc_AccessCode,secureSecret:$onepay_configs$$.SECURE_SECRET}):new OnePayInternational({paymentGateway:$virtualPaymentClientURL$$,merchant:$onepay_configs$$.vpc_Merchant,accessCode:$onepay_configs$$.vpc_AccessCode,
|
|
10
|
+
secureSecret:$onepay_configs$$.SECURE_SECRET});let $data$$={amount:$order$$.amount||$order$$.t_tien,customerId:$order$$.ma_kh};$data$$.billingCity=$order$$.quan_huyen;$data$$.billingCountry=$order$$.quoc_gia;$data$$.billingPostCode=$order$$.post_code;$data$$.billingStateProvince=$order$$.tinh_thanh;$data$$.billingStreet=$order$$.dia_chi;$data$$.againLink=again_link;$data$$.title=$_app$$.name;$data$$.vpcCommand="pay";$data$$.customerId=$order$$.ma_kh;$data$$.customerPhone=$order$$.dien_thoai;$data$$.locale=
|
|
11
|
+
$rs$$.vpc_Locale;$data$$.transactionId=$rs$$._id.toString();$data$$.orderId=$rs$$.vpc_OrderInfo;$data$$.returnUrl=$e$$;$data$$.clientIp=$rs$$.vpc_TicketNo;$onepayIntl$$.buildCheckoutUrl($data$$).then($checkoutUrl$$=>{$resolve$$($checkoutUrl$$.href);$onepay_configs$$.vpc_querydr_url&&setTimeout(async()=>{try{let $rs$$=await model.queryTransaction($id_app$$,$order$$._id);$rs$$.vpc_DRExists=="Y"&&$rs$$.vpc_TxnResponseCode!="0"&&setTimeout(async()=>{try{let $rs$$=await model.queryTransaction($id_app$$,
|
|
12
|
+
$order$$._id);$rs$$.vpc_DRExists=="Y"&&$rs$$.vpc_TxnResponseCode!="0"&&setTimeout(async()=>{try{await model.queryTransaction($id_app$$,$order$$._id)}catch($e$$){Logger.error($e$$)}},122E4)}catch($e$$){Logger.error($e$$)}},122E4)}catch($e$$){Logger.error($e$$)}},12E5)}).catch($err$$=>{$reject$$(Error($err$$))})})})};
|
|
13
|
+
function parseQuery($pairs_queryString$$){var $query$$={};$pairs_queryString$$=($pairs_queryString$$[0]==="?"?$pairs_queryString$$.substring(0,1):$pairs_queryString$$).split("&");for(var $i$$=0;$i$$<$pairs_queryString$$.length;$i$$++){var $pair$$=$pairs_queryString$$[$i$$].split("=");$query$$[decodeURIComponent($pair$$[0])]=decodeURIComponent($pair$$[1]||"")}return $query$$}
|
|
14
|
+
model.queryTransaction=async($id_app$jscomp$3_onepay_configs$$,$id_ct_query$$)=>{let $onepay_transaction$$=await model.getInfo($id_app$jscomp$3_onepay_configs$$,{id_ct:$id_ct_query$$});if(!$onepay_transaction$$)throw"Giao d\u1ecbch kh\u00f4ng t\u1ed3n t\u1ea1i";$id_app$jscomp$3_onepay_configs$$=await model.getConfigs($id_app$jscomp$3_onepay_configs$$,$onepay_transaction$$.pt_thanh_toan);if(!$id_app$jscomp$3_onepay_configs$$)throw"not found onepay configs";if(!$id_app$jscomp$3_onepay_configs$$.vpc_querydr_url||
|
|
15
|
+
!$id_app$jscomp$3_onepay_configs$$.vpc_User||!$id_app$jscomp$3_onepay_configs$$.vpc_Password)throw"Ch\u01b0a khai b\u00e1o queryDR api cho ph\u01b0\u01a1ng th\u1ee9c thanh to\u00e1n qua onepay";let $_v$$=global.getModel(`${$onepay_transaction$$.ma_ct.toLowerCase()}`);const $obj_updated$$=await $_v$$.findOne({_id:$onepay_transaction$$.id_ct});if(!$obj_updated$$)throw"Ch\u1ee9ng t\u1eeb kh\u00f4ng t\u1ed3n t\u1ea1i";$id_ct_query$$=$obj_updated$$.virtual_payment_client_url;if(!$id_ct_query$$)throw"Ch\u1ee9ng t\u1eeb kh\u00f4ng t\u1ed3n t\u1ea1i giao d\u1ecbch n\u00e0y";
|
|
16
|
+
$id_ct_query$$=parseQuery($id_ct_query$$);let $data$$={vpc_AccessCode:$id_app$jscomp$3_onepay_configs$$.vpc_AccessCode,vpc_Command:"queryDR",vpc_MerchTxnRef:$id_ct_query$$.vpc_MerchTxnRef,vpc_Merchant:$id_app$jscomp$3_onepay_configs$$.vpc_Merchant,vpc_Password:$id_app$jscomp$3_onepay_configs$$.vpc_Password,vpc_User:$id_app$jscomp$3_onepay_configs$$.vpc_User,vpc_Version:"1"};const $secureCode$$=[];Object.keys($data$$).sort().forEach($key$$=>{const $value$$=$data$$[$key$$];$value$$.length>0&&$secureCode$$.push(`${$key$$}=${$value$$}`)});
|
|
17
|
+
$id_ct_query$$=toUpperCase(hashHmac("SHA256",$secureCode$$.join("&"),pack($id_app$jscomp$3_onepay_configs$$.SECURE_SECRET)));$data$$.vpc_SecureHash=$id_ct_query$$;$id_app$jscomp$3_onepay_configs$$=`${$id_app$jscomp$3_onepay_configs$$.vpc_querydr_url}`;let $rs$$;try{$rs$$=(await axios.post($id_app$jscomp$3_onepay_configs$$,new URLSearchParams($data$$))).data,$rs$$=parseQuery($rs$$)}catch($e$$){throw Logger.error($e$$,$id_app$jscomp$3_onepay_configs$$),$e$$;}if($onepay_transaction$$.trang_thai!="5"&&
|
|
18
|
+
$rs$$){let $id_transaction$$=$onepay_transaction$$._id;$rs$$.vpc_DRExists=="Y"&&$rs$$.vpc_TxnResponseCode=="0"&&await executeInTransaction(async()=>{await model.updateOne({_id:$id_transaction$$},{trang_thai:$rs$$.vpc_TxnResponseCode=="0"?"1":"2"});if($rs$$.vpc_TxnResponseCode=="0"){let $ctrl$$=global.controllers[$onepay_transaction$$.ma_ct.toUpperCase()];$ctrl$$&&$obj_updated$$&&($ctrl$$.handleAfterPayment?(await $ctrl$$.handleAfterPayment($obj_updated$$),controller.pushNotification($ctrl$$,$obj_updated$$,
|
|
19
|
+
"payment",null,!1,{title:`Bill ${$obj_updated$$.so_ct} \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n`})):(await $_v$$.updateOne({_id:$onepay_transaction$$.id_ct},{trang_thai:"5"}),$obj_updated$$.trang_thai="5",$ctrl$$.post&&(await controller.asyncPostData($obj_updated$$,$ctrl$$),controller.pushNotification($ctrl$$,$obj_updated$$,"update"))))}})}return $rs$$};
|
|
20
|
+
model.verifyReturnUrl=async($id_app$jscomp$4_virtualPaymentClientURL$$,$id_transaction$$,$query$$)=>{let $_onepay$$=await model.getInfo($id_app$jscomp$4_virtualPaymentClientURL$$,{_id:$id_transaction$$}),$onepay_configs$$=await model.getConfigs($id_app$jscomp$4_virtualPaymentClientURL$$,$_onepay$$.pt_thanh_toan);if(!$onepay_configs$$)throw"Miss configures for OnePay";$id_app$jscomp$4_virtualPaymentClientURL$$=$onepay_configs$$.vpc_url_payment;let $onepayIntl$$;$onepayIntl$$=$onepay_configs$$.domestic?
|
|
21
|
+
new OnePayDomestic({paymentGateway:$id_app$jscomp$4_virtualPaymentClientURL$$,merchant:$onepay_configs$$.vpc_Merchant,accessCode:$onepay_configs$$.vpc_AccessCode,secureSecret:$onepay_configs$$.SECURE_SECRET}):new OnePayInternational({paymentGateway:$id_app$jscomp$4_virtualPaymentClientURL$$,merchant:$onepay_configs$$.vpc_Merchant,accessCode:$onepay_configs$$.vpc_AccessCode,secureSecret:$onepay_configs$$.SECURE_SECRET});return new Promise($resolve$$=>{$onepayIntl$$.verifyReturnUrl($query$$).then(async $results$$=>
|
|
22
|
+
{try{await executeInTransaction(async()=>{await model.updateOne({_id:$id_transaction$$},{trang_thai:$results$$.isSuccess?"1":"2"});let $_v$$=global.getModel(`${$_onepay$$.ma_ct.toLowerCase()}`);const $obj_updated$$=await $_v$$.findOne({_id:$_onepay$$.id_ct});if($results$$.isSuccess){let $ctrl$$=global.controllers[$_onepay$$.ma_ct.toUpperCase()];$ctrl$$&&$obj_updated$$&&($ctrl$$.handleAfterPayment?(await $ctrl$$.handleAfterPayment($obj_updated$$),controller.pushNotification($ctrl$$,$obj_updated$$,
|
|
23
|
+
"payment",null,!1,{title:`Bill ${$obj_updated$$.so_ct} \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n`})):(await $_v$$.updateOne({_id:$_onepay$$.id_ct},{trang_thai:"5"}),$ctrl$$.post&&await controller.asyncPostData($obj_updated$$,$ctrl$$),controller.pushNotification($ctrl$$,$obj_updated$$,"update")),$results$$.result_url=$obj_updated$$.again_link||again_link)}else $results$$.result_url=$obj_updated$$.again_link||again_link;$results$$.result_url=$results$$.result_url||$onepay_configs$$.result_url;
|
|
24
|
+
$results$$.error_url=$onepay_configs$$.error_url})}catch($e$$){Logger.error("[onepay]error update status for voucher",$e$$)}$resolve$$($results$$)})})};module.exports=model;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const validator=require("../libs/validator"),opportunitySchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ten_co_hoi:{type:String,required:!0},ngay_het_han:{type:Date},tien_nt:{type:Number,default:0},ma_nt:{type:String,default:"VND"},tinh_tren:{type:Number,default:0},mieu_ta:{type:String},nh_co_hoi:{type:String},phu_trach:{type:String,lowercase:!0},ten_phu_trach:String,status_opp:{type:Number,default:0},status_reason:String,kha_nang_thanh_cong:{type:Number,default:0},exfields:Schema.Types.Mixed,
|
|
2
|
+
id_kh:{type:String},labels:[String],status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String]});opportunitySchema.validate={ma_nt:validator.existsNt};
|
|
3
|
+
(global.configs||{}).createIndexes&&(opportunitySchema.index({id_app:1}),opportunitySchema.index({ten_co_hoi:1}),opportunitySchema.index({nh_co_hoi:1}),opportunitySchema.index({phu_trach:1}),opportunitySchema.index({ten_phu_trach:1}),opportunitySchema.index({mieu_ta:1}),opportunitySchema.index({status_opp:1}),opportunitySchema.index({status_reason:1}),opportunitySchema.index({kha_nang_thanh_cong:1}),opportunitySchema.index({labels:1}),opportunitySchema.index({ten_co_hoi:"text",phu_trach:"text",ten_phu_trach:"text"},
|
|
4
|
+
{name:"opportunity_index_text"}),opportunitySchema.index({status:1}),opportunitySchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.opportunity||mongoose.model("opportunity",opportunitySchema);module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const optionsSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_func:{type:String,required:!0,lowercase:!0},option:{},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});(global.configs||{}).createIndexes&&(optionsSchema.index({id_app:1,id_func:1}),optionsSchema.index({status:1}),optionsSchema.index({user_created:1,visible_to:1,visible_to_users:1}));
|
|
2
|
+
const model=mongoose.models.options||mongoose.model("options",optionsSchema);model.getInfo=async($id_app$$,$condition$$,$fields$$)=>{$condition$$.id_app=$id_app$$;return new Promise(($resolve$$,$reject$$)=>{model.findOne($condition$$).lean().then($rs$$=>{if($fields$$&&$fields$$==="option")return $resolve$$($rs$$?$rs$$.option||{}:{});if(!$rs$$)return $reject$$(Error("Can't find option"));$resolve$$($fields$$?$rs$$[$fields$$]:$rs$$)}).catch($e$$=>{$reject$$($e$$)})})};module.exports=model;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const originimportidSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},old_id:{type:String},new_id:{type:String}});(global.configs||{}).createIndexes&&(originimportidSchema.index({id_app:1,old_id:1},{unique:!0}),originimportidSchema.index({new_id:1}));const model=mongoose.models.originimportid||mongoose.model("originimportid",originimportidSchema);module.exports=model;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const otpSchema=new Schema({phone:{type:String,required:!0,maxlength:128,trim:!0},otp:{type:String,required:!0,maxlength:32,trim:!0},expire_time:{type:Date},verified:Boolean,tried_number:Number,date_created:{type:Date,default:Date.now}});(global.configs||{}).createIndexes&&(otpSchema.index({otp:1}),otpSchema.index({phone:1}),otpSchema.index({phone:"text"}),otpSchema.index({date_created:-1}));const otp=mongoose.models.otp||mongoose.model("otp",otpSchema);module.exports=otp;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const parameterSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_rpt:{type:String,required:"Y\u00eau c\u1ea7u ID c\u1ee7a m\u1eabu in",maxlength:1024},name:{type:String,required:"Y\u00eau c\u1ea7u t\u00ean tham s\u1ed1",maxlength:32},type:{type:String,required:"Y\u00eau c\u1ea7u ki\u1ec3u d\u1eef li\u1ec7u",uppercase:!0,maxlength:32},value:{type:String,required:"Y\u00eau c\u1ea7u gi\u00e1 tr\u1ecb c\u1ee7a tham s\u1ed1"},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:""}});(global.configs||{}).createIndexes&&(parameterSchema.index({id_app:1,id_rpt:1,name:1,type:1,value:1}),parameterSchema.index({name:"text"}),parameterSchema.index({status:1}),parameterSchema.index({user_created:1,visible_to:1,visible_to_users:1}));var model=mongoose.models.parameter||mongoose.model("parameter",parameterSchema);module.exports=model;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const validator=require("validator"),utils=require("../libs/utils"),participantScheam=new global.Schema({id_app:{type:String,required:!0,maxlength:1024},email:{type:String,required:!0,lowercase:!0,maxlength:128,trim:!0},phone:{type:String,lowercase:!0,maxlength:128,trim:!0},name:{type:String,maxlength:1024},admin:{type:Boolean,default:!1},active:{type:Boolean,default:!1},cancel:{type:Boolean,default:!1},auto_create_user:{type:Boolean,default:!0},group_id:{type:String,maxlength:1024,ref:"usergroup",
|
|
2
|
+
localField:["group_id"],foreignField:["_id"]},password:{type:String,maxlength:1024},hotline:{type:String,maxlength:1024},ext:{type:String,maxlength:1024},exts:[String],signature_image:String,session_created:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},user_created:{type:String,default:""},date_updated:{type:Date,default:Date.now},user_updated:{type:String,default:""}});
|
|
3
|
+
(global.configs||{}).createIndexes&&(participantScheam.index({id_app:1}),participantScheam.index({id_app:1,email:1},{unique:!0}),participantScheam.index({id_app:1,phone:1,email:1,name:1,status:1}),participantScheam.index({id_app:1,admin:1}),participantScheam.index({session_created:1}),participantScheam.index({id_app:1,group_id:1}),participantScheam.index({id_app:1,ext:1,exts:1,hotline:1}),participantScheam.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1}),participantScheam.index({id_app:1,
|
|
4
|
+
user_created:1,visible_to:1,visible_to_users:1,email:1,name:1}),participantScheam.index({id_app:1,email:"text",name:"text",ext:"text"}));
|
|
5
|
+
participantScheam.pre("save",async function($next$$){if(this.email==="public"&&this.admin)return $next$$("T\u00e0i kho\u1ea3n public kh\u00f4ng th\u1ec3 l\u00e0 qu\u1ea3n tr\u1ecb vi\u00ean");if(!this.admin&&!{}.is_employee_group){const $app$$=await global.getModel("app").findOne({_id:this.id_app}).lean();if(!$app$$)return $next$$("id_app is not valid");if($app$$.account_types_accept&&$app$$.account_types_accept.length>0){if($app$$.account_types_accept.indexOf("email")<0&&validator.isEmail(this.email))return $next$$(`T\u00e0i kho\u1ea3n kh\u00f4ng \u0111\u01b0\u1ee3c l\u00e0 \u0111\u1ecba ch\u1ec9 email: ${this.email}`);
|
|
6
|
+
if($app$$.account_types_accept.indexOf("phone")<0&&utils.isMobilePhone(this.email,["vi-VN"]))return $next$$(`T\u00e0i kho\u1ea3n kh\u00f4ng \u0111\u01b0\u1ee3c l\u00e0 m\u1ed9t s\u1ed1 \u0111i\u1ec7n tho\u1ea1i: ${this.email}`)}}this.exts=(this.ext||"").split(",");$next$$()});const model=global.mongoose.models.participant||global.mongoose.model("participant",participantScheam);
|
|
7
|
+
model.ofApp=async($id_app$$,$email$$)=>{let $condition$$={id_app:$id_app$$};$email$$&&($condition$$.email=$email$$);return new Promise(($resolve$$,$reject$$)=>{model.find($condition$$).lean().then($rs$$=>{$resolve$$($rs$$)}).catch($e$$=>{$reject$$(Error($e$$.message))})})};model.appsOfUser=async $email$$=>model.find({email:$email$$}).lean();
|
|
8
|
+
model.createParticipant=async($data$$,$callback$$)=>{$data$$.name=$data$$.name||$data$$.email;model.findOne({id_app:$data$$.id_app,email:$data$$.email},async($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);if($rs$$)return $callback$$(null,$rs$$);Logger.warn("[Participant][createParticipant] \u0111ang t\u1ea1o participant cho",$data$$.email,",cty:",$data$$.id_app,"group:",$data$$.group_id);$data$$.group_id&&global.mongoose.Types.ObjectId.isValid($data$$.group_id)?(Logger.warn("[Participant][createParticipant] \u0111ang t\u00ecm group",
|
|
9
|
+
$data$$.group_id),$e$$=await global.getModel("usergroup").findOne({id_app:$data$$.id_app,_id:$data$$.group_id,allow_signup:!0}).lean()):(Logger.warn("[Participant][createParticipant] \u0111ang l\u1ea5y m\u1eb7c \u0111\u1ecbnh m\u1ed9t group"),($e$$=await global.getModel("usergroup").findOne({id_app:$data$$.id_app,is_customer_group:!0,default_group:!0}).lean())||($e$$=await global.getModel("usergroup").findOne({id_app:$data$$.id_app,is_customer_group:!0}).lean()));if($e$$)$data$$.active=$e$$.not_need_active!=
|
|
10
|
+
0,$data$$.group_id=$e$$._id.toString();else{if(!$data$$.admin)return $callback$$("User group is not valid");$data$$.active=!0}$data$$.password&&($data$$.password=utils.generatePasswordHash($data$$.email+$data$$.password));model.create($data$$,($e$$,$rs$$)=>{$callback$$($e$$,$rs$$)})})};model.asyncCreateParticipant=async $data$$=>new Promise(($resolve$$,$reject$$)=>{model.createParticipant($data$$,($e$$,$rs$$)=>{if($e$$)return $reject$$($e$$);$resolve$$($rs$$)})});
|
|
11
|
+
model.referredUsers=async($id_app$$,$be_introduced_by_level1$$,$level$$=1)=>{$be_introduced_by_level1$$=await global.getModel("introducer").find({id_app:$id_app$$,be_introduced_by:$be_introduced_by_level1$$}).lean();$be_introduced_by_level1$$=$be_introduced_by_level1$$.filter($l$$=>$l$$.be_introduced!=$l$$.be_introduced_by).map($l$$=>({user:$l$$.be_introduced,by:$l$$.be_introduced_by,introduce_code:$l$$.introduce_code,referral_code:$l$$.introduce_code,date:$l$$.date_created,level:$level$$}));if($be_introduced_by_level1$$.lenth==
|
|
12
|
+
0)return $be_introduced_by_level1$$;let $level2$$=await Promise.all($be_introduced_by_level1$$.map($intro$$=>model.referredUsers($id_app$$,$intro$$.user,$intro$$.level+1)));return $be_introduced_by_level1$$.concat($level2$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]))};
|
|
13
|
+
const referByUsers=async($id_app$$,$be_introduced_level1$$,$level$$=1)=>{$be_introduced_level1$$=await global.getModel("introducer").find({id_app:$id_app$$,be_introduced:$be_introduced_level1$$}).lean();$be_introduced_level1$$=$be_introduced_level1$$.filter($l$$=>$l$$.be_introduced!=$l$$.be_introduced_by).map($l$$=>({user:$l$$.be_introduced,by:$l$$.be_introduced_by,introduce_code:$l$$.introduce_code,referral_code:$l$$.introduce_code,date:$l$$.date_created,level:$level$$}));if($be_introduced_level1$$.lenth==
|
|
14
|
+
0)return $be_introduced_level1$$;let $level2$$=await Promise.all($be_introduced_level1$$.map($intro$$=>referByUsers($id_app$$,$intro$$.by,$intro$$.level+1)));return $be_introduced_level1$$.concat($level2$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]))};
|
|
15
|
+
model.referByUsers=async($id_app$jscomp$3_rs$$,$be_introduced$$)=>{$id_app$jscomp$3_rs$$=(await referByUsers($id_app$jscomp$3_rs$$,$be_introduced$$)).sort(($a$$,$b$$)=>$b$$.level-$a$$.level);$id_app$jscomp$3_rs$$.forEach(($r$$,$index$$)=>{$r$$.level=$index$$+1});return $id_app$jscomp$3_rs$$};
|
|
16
|
+
model.getPar=async($stocks_user$$,$appInfo$$)=>{if(!$appInfo$$||!$appInfo$$._id)return null;var $_ps_par$$=await model.findOne({id_app:$appInfo$$._id,email:$stocks_user$$.email}).lean();if($_ps_par$$){if($_ps_par$$.group_id&&global.mongoose.Types.ObjectId.isValid($_ps_par$$.group_id)){delete $_ps_par$$.password;var $customer_info_group$$=await global.getModel("usergroup").findOne({_id:$_ps_par$$.group_id}).lean();$customer_info_group$$&&($_ps_par$$.group=$customer_info_group$$)}$customer_info_group$$=
|
|
17
|
+
await global.getModel("customer").findOne({id_app:$appInfo$$._id.toString(),of_user:$stocks_user$$.email},{default_password:0,ghi_chu:0}).lean();if(!$customer_info_group$$){let $cust$$={ten_kh:$stocks_user$$.name,email:$stocks_user$$.email,id_app:$appInfo$$._id,user_created:$stocks_user$$.email,user_updated:$stocks_user$$.email,kh_yn:!0,of_user:$stocks_user$$.email,nh_kh:$_ps_par$$.nh_kh};utils.isMobilePhone($stocks_user$$.email,["vi-VN"])&&($cust$$.dien_thoai=$stocks_user$$.email);try{$customer_info_group$$=
|
|
18
|
+
await global.getModel("customer").asyncCreateCustomer($cust$$),$customer_info_group$$=$customer_info_group$$.toObject()}catch($e$$){Logger.error("Auto create new customer with error:",$e$$.message)}}$_ps_par$$.customer_info=$customer_info_group$$;$_ps_par$$.employee_info=await global.getModel("dmnv").findOne({id_app:$appInfo$$._id.toString(),user:$stocks_user$$.email},{default_password:0,ghi_chu:0,cong_viec_chi_tiet:0}).lean();$_ps_par$$.stock_info=await global.getModel("dmkho").findOne({id_app:$appInfo$$._id.toString(),
|
|
19
|
+
user_npp:$stocks_user$$.email,la_kho_npp:!0,status:!0},{ma_kho:1,user_npp:1,la_kho_npp:1}).lean();$_ps_par$$.stock_info||($_ps_par$$.stock_info=await global.getModel("dmkho").findOne({id_app:$appInfo$$._id.toString(),user_cho_thue:$stocks_user$$.email,la_kho_thue:!0,status:!0},{ma_kho:1,user_cho_thue:1,la_kho_thue:1,tk_tien_giu_ho:1}).lean());$_ps_par$$.stock_info||($stocks_user$$=await global.getModel("dmkho").find({status:!0,id_app:$appInfo$$._id.toString(),$or:[{ds_ctv_npp:$stocks_user$$.email,
|
|
20
|
+
la_kho_npp:!0},{ds_ctv_kho_thue:$stocks_user$$.email,la_kho_thue:!0},{ma_kho:$customer_info_group$$.ma_kho_npp,la_kho_npp:!0}]},{ma_kho:1,ten_kho:1,user_npp:1,la_kho_npp:1,user_cho_thue:1,la_kho_thue:1}).lean(),$stocks_user$$.length==1&&($_ps_par$$.stock_info=$stocks_user$$[0]))}else $_ps_par$$={},$_ps_par$$.admin=$appInfo$$.user_created===$stocks_user$$.email;$_ps_par$$=$_ps_par$$||{};$_ps_par$$.ma_nt=$_ps_par$$.ma_nt||($_ps_par$$.group||{}).ma_nt||"VND";$_ps_par$$.ty_gia=$_ps_par$$.ma_nt==="VND"?
|
|
21
|
+
1:(await global.getModel("currency").findOne({id_app:$appInfo$$._id.toString(),ma_nt:$_ps_par$$.ma_nt}).lean()||{}).ty_gia||1;return $_ps_par$$};module.exports=model;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const partnerSchema=new Schema({nguoi_cap:{type:String,required:!0},body:{type:String,required:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});(global.configs||{}).createIndexes&&partnerSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.partner||mongoose.model("partner",partnerSchema);module.exports=model;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const payloadSchema=new Schema({ep_id:{type:String,required:!0,maxlength:1024},payload:{type:String,required:!0},endpoint:{type:String,required:!0,maxlength:1024},read:{type:Boolean,default:!1},user:{type:String}});(global.configs||{}).createIndexes&&(payloadSchema.index({ep_id:1,user:1}),payloadSchema.index({status:1}),payloadSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.payload||mongoose.model("payload",payloadSchema);module.exports=model;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const moment=require("moment"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024,trim:!0},ma_dvt:{type:String,required:!0,maxlength:32,trim:!0},px_gia_dd:{type:Boolean,default:!1},ton_kho:{type:Number,default:0},sl_order:{type:Number,default:0},sl_xuat:{type:Number,default:0},sl_gui_bep:{type:Number,default:0},sl_gui_bartender:{type:Number,default:0},sl_ht:{type:Number,default:0},gia_von:{type:Number,
|
|
2
|
+
default:0},gia_von_nt:{type:Number,default:0},tien_xuat:{type:Number,default:0},tien_xuat_nt:{type:Number,default:0},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien_hang:{type:Number,default:0},tien_hang_nt:{type:Number,default:0},gia_ban_chua_thue:Boolean,id_cs_ck:String,ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},gia_ban_ct_nt:{type:Number},gia_ban_ct:{type:Number},
|
|
3
|
+
tien_hang_ct:{type:Number,default:0},tien_hang_ct_nt:{type:Number,default:0},tien_thue_nt:{type:Number},tien_thue:{type:Number},thue_suat:{type:Number},tk_thue_co:String,tk_thue_co_treo:String,cs_discount:Schema.Types.Mixed,cs_tien_ck:{type:Number,default:0},cs_ty_le_ck:{type:Number,default:0},cs_sl_ap_dung:{type:Number,default:0},cs_gt_hd_tu:{type:Number,default:0},cs_gt_hd_den:{type:Number,default:0},ck_sl_tu2:[],tien_evoucher_duoc_pb:{type:Number,default:0},promotion:Schema.Types.Mixed,combo:Schema.Types.Mixed,
|
|
4
|
+
sl_ap_dung_km:{type:Number,default:0},km_yn_for:String,id_cs:String,ma_thue:String,ma_hoa_don:{type:String,uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,uppercase:!0,trim:!0,maxlength:32},ma_tc:{type:String,uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date},ong_ba:String,ma_so_thue:String,ma_bp:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_phi:{type:String,
|
|
5
|
+
uppercase:!0,default:"",maxlength:32,trim:!0},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3:{type:String,default:"",uppercase:!0,
|
|
6
|
+
maxlength:32,trim:!0},options:[],tien_hang_options:Number,tien_hang_options_ct:Number,tien_thue_options:Number,sign_user:String,sign_data:Schema.Types.Mixed,signature:String,order_time:{type:Date,default:Date.now},finish_time:{type:Date},ghi_chu:{type:String},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0},het_hang:{type:Boolean,default:!1}});detailSchema.validate={ma_vt:validVt.existsVt,ma_kho:validVt.existsKho,ma_dvt:validator.existsDvt};
|
|
7
|
+
const pblSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"PBL",required:!0,uppercase:!0,maxlength:32,trim:!0},ma_gd:{type:String,default:"0",maxlength:32,trim:!0},so_ct:{type:String,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},
|
|
8
|
+
ma_kh:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ten_kh:String,ma_kho:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ten_kho:String,ma_bp:{type:String,uppercase:!0,maxlength:32,trim:!0},ten_bp:String,ma_ban:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_ban0:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_ca:{type:String,uppercase:!0,maxlength:32,trim:!0},ty_le_ck_hd:{type:Number,default:0},tien_ck_hd:{type:Number,default:0},ong_ba:{type:String,maxlength:1024},sender_email:{type:String,
|
|
9
|
+
maxlength:128},id_trans:{type:String,maxlength:1024},paymentByPoints:{type:Number,default:0},exchangeRate:Number,tien_paymentByPoints:{type:Number,default:0},evouchers:[global.Schema.Types.Mixed],tien_evoucher:Number,tk_no_evoucher:String,tk_co_evoucher:String,pt_thanh_toan:{type:String},tien_thu:{type:Number,default:0},bank_payment_info:{},pt_thanh_toan2:{type:String},tien_thu2:{type:Number,default:0},bank_payment_info2:{},ghi_chu_tt:String,con_no:{type:Number,default:0},phai_tra:{type:Number,default:0},
|
|
10
|
+
dien_giai:{type:String,default:"",maxlength:1024},nguoi_giao_dich:{type:String,maxlength:1024},so_khach:{type:Number,default:1},tu_ngay:{type:Date,default:Date.now},den_ngay:{type:Date,default:Date.now},trang_thai:{type:String,default:"2"},ma_hoa_don:{type:String,uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,uppercase:!0,trim:!0,maxlength:32},ma_tc:{type:String,uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,uppercase:!0,
|
|
11
|
+
trim:!0,maxlength:32},ngay_hd:{type:Date},sign_user:String,sign_data:Schema.Types.Mixed,signature:String,gio:Number,ngay:Number,thang:Number,quy:Number,nam:Number,t_sl:Number,t_sl_order:Number,t_tien_hang_ct:Number,t_tien_hang_ct_nt:Number,t_thue_nt:Number,t_thue:Number,t_tien_hang:Number,t_tien_hang_nt:Number,t_ck:Number,t_ck_nt:Number,t_tien_nt:Number,t_tien:Number,t_tt:Number,exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,
|
|
12
|
+
default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},cashier:{type:String,default:""},payment_time:{type:Date},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],details:{type:[detailSchema]},id_client:String,listinfo_code:String,promotion:Schema.Types.Mixed});pblSchema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,ma_kho:validVt.existsKho};
|
|
13
|
+
(global.configs||{}).createIndexes&&(pblSchema.index({id_app:1,ma_ct:1,ngay_ct:-1,so_ct:-1}),pblSchema.index({id_app:1,ma_ct:1,ngay_ct:-1,ma_kho:1}),pblSchema.index({id_app:1,ma_ct:1,ngay_ct:-1}),pblSchema.index({id_app:1,ma_ct:1,ngay_ct:-1,ma_kh:1}),pblSchema.index({id_app:1,ma_ct:1,ngay_ct:-1,ma_bp:1}),pblSchema.index({id_app:1,ma_ct:1,ngay_ct:-1,"details.ma_vt":1}),pblSchema.index({id_app:1,ma_ct:1,ngay_ct:-1,ma_ban:1}),pblSchema.index({id_app:1,ma_ct:1,ngay_ct:-1,trang_thai:1}),pblSchema.index({id_app:1,
|
|
14
|
+
ma_ct:1,ngay_ct:-1,ma_ca:1}),pblSchema.index({id_app:1,ma_ct:1,user_created:1,date_created:-1}),pblSchema.index({id_app:1,ma_ct:1,ngay_ct:-1,trang_thai:1,user_created:1,visible_to:1,visible_to_users:1}),pblSchema.index({id_app:1,ma_ct:1,ngay_ct:-1,trang_thai:1,user_created:1,visible_to:1,visible_to_users:1,so_ct:1}),pblSchema.index({id_app:1,ma_ct:1,ngay_ct:-1,trang_thai:1,user_created:1,visible_to:1,visible_to_users:1,ma_kh:1}),pblSchema.index({id_app:1,ma_ct:1,ngay_ct:-1,trang_thai:1,user_created:1,
|
|
15
|
+
visible_to:1,visible_to_users:1,ma_kho:1}),pblSchema.index({id_app:1,so_ct:"text",ma_kh:"text",ten_kh:"text",dien_giai:"text",ma_kho:"text",ten_kho:"text"},{name:"pbl_index_text"}));pblSchema.pre("save",function($next$$){let $ngay_ct$$=moment(this.ngay_ct);this.gio=$ngay_ct$$.get("hours");this.ngay=$ngay_ct$$.get("dates");this.quy=$ngay_ct$$.get("quarters");this.thang=$ngay_ct$$.get("months")+1;this.nam=$ngay_ct$$.get("year");$next$$()});const model=mongoose.models.pbl||mongoose.model("pbl",pblSchema);
|
|
16
|
+
if((global.configs||{}).createIndexes)model.on("index",async function($err$$){$err$$?Logger.error("pbl index error",$err$$):console.info("pbl indexing complete")});module.exports=model;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const validator=require("../libs/validator"),detailSchema=new Schema({tk_no:{type:String,uppercase:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},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,maxlength:32},ma_nv:{type:String,uppercase:!0,maxlength:32},ma_sp:{type:String,uppercase:!0,maxlength:32},
|
|
2
|
+
dien_giai:String,exfields_detail:Schema.Types.Mixed,ma_td1:Schema.Types.Mixed,ma_td2:Schema.Types.Mixed,ma_td3:Schema.Types.Mixed,ma_td4:Schema.Types.Mixed,ma_td5:Schema.Types.Mixed,ma_td6:Schema.Types.Mixed,ma_td7:Schema.Types.Mixed,ma_td8:Schema.Types.Mixed,ma_td9:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={ma_kh:validator.existsKh};
|
|
3
|
+
const vatvaoSchema=new Schema({ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ma_tc:{type:String,default:"1",uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,default:"",required:!0,uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,required:!0,
|
|
4
|
+
uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_no:{type:String,uppercase:!0,maxlength:32},tk_du_thue:{type:String,uppercase:!0,maxlength:32},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String,default:"",maxlength:1024},ten_vt:{type:String,
|
|
5
|
+
default:"",maxlength:1024},exfields_detail:global.Schema.Types.Mixed,line:{type:Number,default:0}});vatvaoSchema.validate={ma_kh:validator.existsKh,ma_thue:validator.existsVat};
|
|
6
|
+
const tdttco_ttSchema=new Schema({line:{type:Number,default:0},id_hd:{type:String,required:!0,maxlength:1024},id_tdtt:{type:String,maxlength:1024},ngay_hd:{type:Date},so_hd:{type:String,required:!0,uppercase:!0,maxlength:32},ma_nt_hd:{type:String,required:!0,maxlength:32},ty_gia_hd:{type:Number,default:1},tien_hd_nt:{type:Number,default:0},da_thanh_toan_nt:{type:Number,default:0},con_lai_nt:{type:Number,default:0},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},thanh_toan_qd:{type:Number,
|
|
7
|
+
default:0},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},tk_no:{type:String,maxlength:32},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,maxlength:32},ma_nv:{type:String,uppercase:!0,maxlength:32},ma_sp:{type:String,uppercase:!0,maxlength:32},exfields_detail:global.Schema.Types.Mixed});tdttco_ttSchema.validate={ma_kh:validator.existsKh};
|
|
8
|
+
const pc0Schema=new Schema({ct_ngan_hang:{type:Boolean,default:!1},id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},kieu_tt:{type:String,default:"1"},ma_ct:{type:String,default:"pc0",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"1",maxlength:32},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,
|
|
9
|
+
maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},tk_co:{type:String,uppercase:!0,required:!1,maxlength:32},ong_ba:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,required:!0,maxlength:32},ten_kh:String,dien_giai:{type:String,default:"",maxlength:1024},id_po1:{type:String,maxlength:1024},id_pc1:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,
|
|
10
|
+
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]},vatvaos:[vatvaoSchema],tdttcos:[tdttco_ttSchema],ma_bp:{type:String,uppercase:!0},ma_phi:{type:String,uppercase:!0},ma_hd:{type:String,uppercase:!0},ma_dt:{type:String,uppercase:!0},ma_nv:{type:String,uppercase:!0},ma_kho:String,ten_kho:String,ten_ngan_hang:String,ten_tk:String,
|
|
11
|
+
so_tk:String,so_tien:Number,du_co_nt:Number,du_co:Number});pc0Schema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_gd:[function($id_app$$,$value$$,$callback$$){return $value$$!="1"&&$value$$!="2"?$callback$$(!1):$callback$$(!0)},"ma_gd:1-Thu chi m\u1eb7t, 2- B\u00e1o n\u1ee3"]};
|
|
12
|
+
(global.configs||{}).createIndexes&&(pc0Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1}),pc0Schema.index({dien_giai:"text"}),pc0Schema.index({ma_ct:1}),pc0Schema.index({kieu_tt:1}),pc0Schema.index({ma_kh:1}),pc0Schema.index({id_po1:1}),pc0Schema.index({id_pc1:1}),pc0Schema.index({user_created:1,date_created:-1}),pc0Schema.index({date_updated:-1}),pc0Schema.index({status:1}),pc0Schema.index({user_created:1,visible_to:1,visible_to_users:1}),pc0Schema.index({trang_thai:1}),pc0Schema.index({so_ct:"text",
|
|
13
|
+
ma_kh:"text",ten_kh:"text",dien_giai:"text",ong_ba:"text"},{name:"pc0_index_text"}));const model=mongoose.models.pc0||mongoose.model("pc0",pc0Schema);model.referenceKeys={_id:[{model:"pc1",key:"id_pc0",error:"Phi\u1ebfu n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n"}]};module.exports=model;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const validAccount=require("../libs/validator-account"),validator=require("../libs/validator"),detailSchema=new global.Schema({tk_no:{type:String,required:!0,uppercase:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},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_dot_tt:{type:Number},ma_dt:{type:String,uppercase:!0,maxlength:32},
|
|
2
|
+
ma_nv:{type:String,uppercase:!0,maxlength:32},ma_sp:{type:String,uppercase:!0,maxlength:32},dien_giai:String,exfields_detail:global.Schema.Types.Mixed,ma_td1:Schema.Types.Mixed,ma_td2:Schema.Types.Mixed,ma_td3:Schema.Types.Mixed,ma_td4:Schema.Types.Mixed,ma_td5:Schema.Types.Mixed,ma_td6:Schema.Types.Mixed,ma_td7:Schema.Types.Mixed,ma_td8:Schema.Types.Mixed,ma_td9:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_no:validAccount.existsTk,ma_kh:validator.existsKh};
|
|
3
|
+
const vatvaoSchema=new global.Schema({ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ma_tc:{type:String,default:"1",uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,default:"",required:!0,uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date,required:!0},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,
|
|
4
|
+
required:!0,uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_no:{type:String,required:!0,uppercase:!0,maxlength:32},tk_du_thue:{type:String,required:!0,uppercase:!0,maxlength:32},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ma_kh_cn:{type:String,default:"",maxlength:32},ten_kh_cn:{type:String,default:"",maxlength:1024},ten_kh:{type:String,default:"",
|
|
5
|
+
maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String,default:"",maxlength:32},ten_vt:{type:String,default:"",maxlength:1024},exfields_detail:global.Schema.Types.Mixed,line:{type:Number,default:0}});vatvaoSchema.validate={tk_thue_no:validAccount.existsTk,tk_du_thue:validAccount.existsTk,ma_kh:validator.existsKh,ma_thue:validator.existsVat};
|
|
6
|
+
const tdttco_ttSchema=new global.Schema({line:{type:Number,default:0},id_hd:{type:String,required:!0,maxlength:1024},id_tdtt:{type:String,maxlength:1024},ngay_hd:{type:Date,required:!0},so_hd:{type:String,required:!0,uppercase:!0,maxlength:32},ma_nt_hd:{type:String,required:!0,maxlength:32},ty_gia_hd:{type:Number,default:1},tien_hd_nt:{type:Number,default:0},da_thanh_toan_nt:{type:Number,default:0},con_lai_nt:{type:Number,default:0},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},thanh_toan_qd:{type:Number,
|
|
7
|
+
default:0},chenh_lech_ty_gia:Number,ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},tk_no:{type:String,required:!0,maxlength:32},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_dot_tt:{type:Number},ma_dt:{type:String,uppercase:!0,maxlength:32},ma_nv:{type:String,uppercase:!0,maxlength:32},ma_sp:{type:String,uppercase:!0,maxlength:32},dien_giai:String,exfields_detail:global.Schema.Types.Mixed});
|
|
8
|
+
tdttco_ttSchema.validate={tk_no:validAccount.existsTk,ma_kh:validator.existsKh};
|
|
9
|
+
const pc1Schema=new global.Schema({ct_ngan_hang:{type:Boolean,default:!1},id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"PC1",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"1",enum:["1","2"],maxlength:32},kieu_tt:{type:String,default:"1"},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",
|
|
10
|
+
trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},tk_co:{type:String,uppercase:!0,required:!0,maxlength:32},ong_ba:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,required:!0,maxlength:32},ten_kh:String,dien_giai:{type:String,default:"",maxlength:1024},id_pc0:String,id_dn0:String,id_pn6:String,id_asscashwithdraw:String,exfields:global.Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},
|
|
11
|
+
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]},vatvaos:[vatvaoSchema],tdttcos:[tdttco_ttSchema],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,maxlength:32},ma_nv:{type:String,
|
|
12
|
+
uppercase:!0,maxlength:32},ma_kho:String,ten_kho:String});pc1Schema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,tk_co:validAccount.existsTk,ma_gd:[function($id_app$$,$value$$,$callback$$){return $value$$!="1"&&$value$$!="2"?$callback$$(!1):$callback$$(!0)},"ma_gd:1-Thu chi m\u1eb7t, 2- B\u00e1o n\u1ee3"]};
|
|
13
|
+
(global.configs||{}).createIndexes&&(pc1Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1}),pc1Schema.index({dien_giai:"text"}),pc1Schema.index({ma_ct:1}),pc1Schema.index({ma_kh:1}),pc1Schema.index({kieu_tt:1}),pc1Schema.index({trang_thai:1}),pc1Schema.index({id_pc0:1}),pc1Schema.index({id_dn0:1}),pc1Schema.index({id_pn6:1}),pc1Schema.index({id_asscashwithdraw:1}),pc1Schema.index({user_created:1,date_created:-1}),pc1Schema.index({date_updated:-1}),pc1Schema.index({so_ct:"text",ma_kh:"text",ten_kh:"text",
|
|
14
|
+
dien_giai:"text",ong_ba:"text"},{name:"pc1_index_text"}),pc1Schema.index({status:1}),pc1Schema.index({user_created:1,visible_to:1,visible_to_users:1}));module.exports=global.mongoose.models.pc1||global.mongoose.model("pc1",pc1Schema);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const validAccount=require("../libs/validator-account"),validator=require("../libs/validator"),detailSchema=new Schema({tk_no:{type:String,required:!0,uppercase:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},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,maxlength:32},ma_nv:{type:String,uppercase:!0,
|
|
2
|
+
maxlength:32},ma_sp:{type:String,uppercase:!0,maxlength:32},dien_giai:String,exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_no:validAccount.existsTk,ma_kh:validator.existsKh};
|
|
3
|
+
const vatvaoSchema=new Schema({ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ma_tc:{type:String,default:"1",uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,default:"",required:!0,uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date,required:!0},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,
|
|
4
|
+
required:!0,uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_no:{type:String,required:!0,uppercase:!0,maxlength:32},tk_du_thue:{type:String,required:!0,uppercase:!0,maxlength:32},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String,
|
|
5
|
+
default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},exfields_detail:global.Schema.Types.Mixed,line:{type:Number,default:0}});vatvaoSchema.validate={tk_thue_no:validAccount.existsTk,tk_du_thue:validAccount.existsTk,ma_kh:validator.existsKh,ma_thue:validator.existsVat};
|
|
6
|
+
const tdttco_ttSchema=new Schema({line:{type:Number,default:0},id_hd:{type:String,required:!0,maxlength:1024},id_tdtt:{type:String,maxlength:1024},ngay_hd:{type:Date,required:!0},so_hd:{type:String,required:!0,uppercase:!0,maxlength:32},ma_nt_hd:{type:String,required:!0,maxlength:32},ty_gia_hd:{type:Number,default:1},tien_hd_nt:{type:Number,default:0},da_thanh_toan_nt:{type:Number,default:0},con_lai_nt:{type:Number,default:0},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},thanh_toan_qd:{type:Number,
|
|
7
|
+
default:0},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},tk_no:{type:String,required:!0,maxlength:32},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,maxlength:32},ma_nv:{type:String,uppercase:!0,maxlength:32},ma_sp:{type:String,uppercase:!0,maxlength:32},exfields_detail:global.Schema.Types.Mixed});tdttco_ttSchema.validate={tk_no:validAccount.existsTk,ma_kh:validator.existsKh};
|
|
8
|
+
const pc2Schema=new Schema({ct_ngan_hang:{type:Boolean,default:!1},id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"PC2",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"1",maxlength:32},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,
|
|
9
|
+
required:!0,min:0,default:1},tk_co:{type:String,uppercase:!0,required:!0,maxlength:32},ong_ba:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,required:!0,maxlength:32},ten_kh:String,dien_giai:{type:String,default:"",maxlength:1024},id_pc3:{type:String,maxlength:1024},id_pn6:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,
|
|
10
|
+
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]},vatvaos:[vatvaoSchema],tdttcos:[tdttco_ttSchema],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,maxlength:32},ma_nv:{type:String,uppercase:!0,maxlength:32},ma_kho:String,ten_kho:String});
|
|
11
|
+
pc2Schema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,tk_co:validAccount.existsTk,ma_gd:[function($id_app$$,$value$$,$callback$$){return $value$$!="1"&&$value$$!="2"?$callback$$(!1):$callback$$(!0)},"ma_gd:1-Thu chi m\u1eb7t, 2- B\u00e1o n\u1ee3"]};
|
|
12
|
+
(global.configs||{}).createIndexes&&(pc2Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1}),pc2Schema.index({ma_ct:1}),pc2Schema.index({ma_kh:1}),pc2Schema.index({id_pc3:1}),pc2Schema.index({id_pn6:1}),pc2Schema.index({user_created:1,date_created:-1}),pc2Schema.index({date_updated:-1}),pc2Schema.index({so_ct:"text",ma_kh:"text",ten_kh:"text",dien_giai:"text",ong_ba:"text"},{name:"pc2_index_text"}),pc2Schema.index({status:1}),pc2Schema.index({user_created:1,visible_to:1,visible_to_users:1}),pc2Schema.index({trang_thai:1}));
|
|
13
|
+
const model=mongoose.models.pc2||mongoose.model("pc2",pc2Schema);model.referenceKeys={_id:[{model:"pn6",key:"id_pc2",error:"Phi\u1ebfu n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n"}]};module.exports=model;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const validator=require("../libs/validator"),detailSchema=new Schema({tk_no:{type:String,uppercase:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},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,maxlength:32},ma_nv:{type:String,uppercase:!0,maxlength:32},ma_sp:{type:String,uppercase:!0,maxlength:32},
|
|
2
|
+
dien_giai:String,exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={ma_kh:validator.existsKh};
|
|
3
|
+
const vatvaoSchema=new Schema({ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ma_tc:{type:String,default:"1",uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,default:"",required:!0,uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date,required:!0},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,
|
|
4
|
+
required:!0,uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_no:{type:String,required:!0,uppercase:!0,maxlength:32},tk_du_thue:{type:String,required:!0,uppercase:!0,maxlength:32},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String,
|
|
5
|
+
default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},exfields_detail:global.Schema.Types.Mixed,line:{type:Number,default:0}});vatvaoSchema.validate={ma_kh:validator.existsKh,ma_thue:validator.existsVat};
|
|
6
|
+
const tdttco_ttSchema=new Schema({line:{type:Number,default:0},id_hd:{type:String,required:!0,maxlength:1024},id_tdtt:{type:String,maxlength:1024},ngay_hd:{type:Date,required:!0},so_hd:{type:String,required:!0,uppercase:!0,maxlength:32},ma_nt_hd:{type:String,required:!0,maxlength:32},ty_gia_hd:{type:Number,default:1},tien_hd_nt:{type:Number,default:0},da_thanh_toan_nt:{type:Number,default:0},con_lai_nt:{type:Number,default:0},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},thanh_toan_qd:{type:Number,
|
|
7
|
+
default:0},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},tk_no:{type:String,required:!0,maxlength:32},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,maxlength:32},ma_nv:{type:String,uppercase:!0,maxlength:32},ma_sp:{type:String,uppercase:!0,maxlength:32},exfields_detail:global.Schema.Types.Mixed});tdttco_ttSchema.validate={ma_kh:validator.existsKh};
|
|
8
|
+
const pc3Schema=new Schema({ct_ngan_hang:{type:Boolean,default:!1},id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"PC3",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"1",maxlength:32},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,
|
|
9
|
+
required:!0,min:0,default:1},tk_co:{type:String,uppercase:!0,maxlength:32},ong_ba:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,required:!0,maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,
|
|
10
|
+
default:0},visible_to_users:[String],update_right:[String],delete_right:[String],id_pc2:String,details:{type:[detailSchema]},vatvaos:[vatvaoSchema],tdttcos:[tdttco_ttSchema],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,maxlength:32},ma_nv:{type:String,uppercase:!0,maxlength:32},ma_kho:String,ten_kho:String});
|
|
11
|
+
pc3Schema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_gd:[function($id_app$$,$value$$,$callback$$){return $value$$!="1"&&$value$$!="2"?$callback$$(!1):$callback$$(!0)},"ma_gd:1-Thu chi m\u1eb7t, 2- B\u00e1o n\u1ee3"]};
|
|
12
|
+
(global.configs||{}).createIndexes&&(pc3Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1}),pc3Schema.index({so_ct:"text",ma_kh:"text",ten_kh:"text",dien_giai:"text",ong_ba:"text"},{name:"pc3_index_text"}),pc3Schema.index({ma_ct:1}),pc3Schema.index({ma_kh:1}),pc3Schema.index({id_pc2:1}),pc3Schema.index({user_created:1,date_created:-1}),pc3Schema.index({date_updated:-1}),pc3Schema.index({status:1}),pc3Schema.index({user_created:1,visible_to:1,visible_to_users:1}),pc3Schema.index({trang_thai:1}));
|
|
13
|
+
const model=mongoose.models.pc3||mongoose.model("pc3",pc3Schema);model.referenceKeys={_id:[{model:"pc2",key:"id_pc3",error:"Phi\u1ebfu n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c chi"}]};module.exports=model;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const validAccount=require("../libs/validator-account"),validator=require("../libs/validator"),detailSchema=new Schema({tk_no:{type:String,required:!0,uppercase:!0,maxlength:32},tk_km_no:{type:String},tk_km_co:{type:String},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},diem_khuyen_mai:{type:Number,default:0},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,
|
|
2
|
+
uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_sp:{type:String,uppercase:!0,maxlength:32},dien_giai:String,exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_no:validAccount.existsTk};
|
|
3
|
+
const pc5Schema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"PC5",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"1",enum:["1","2"]},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},
|
|
4
|
+
tk_co:{type:String,uppercase:!0,required:!0,maxlength:32},ong_ba:{type:String,maxlength:1024},email:{type:String,lowercase:!0,required:!0,maxlength:128},ma_kh:{type:String,uppercase:!0,required:!0,maxlength:32},ten_kh:String,dien_giai:{type:String,default:"",maxlength:1024},id_trans:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,
|
|
5
|
+
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]},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,maxlength:32},ma_nv:{type:String,uppercase:!0,maxlength:32},ma_kho:String,ten_kho:String});
|
|
6
|
+
pc5Schema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,tk_co:validAccount.existsTk};
|
|
7
|
+
(global.configs||{}).createIndexes&&(pc5Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1,email:1}),pc5Schema.index({dien_giai:"text",so_ct:"text",ma_kh:"text",ten_kh:"text"},{name:"pc5_index_text"}),pc5Schema.index({ma_ct:1}),pc5Schema.index({ma_kh:1}),pc5Schema.index({user_created:1,date_created:-1}),pc5Schema.index({date_updated:-1}),pc5Schema.index({status:1}),pc5Schema.index({user_created:1,visible_to:1,visible_to_users:1}),pc5Schema.index({trang_thai:1}));
|
|
8
|
+
module.exports=mongoose.models.pc5||mongoose.model("pc5",pc5Schema);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const validAccount=require("../libs/validator-account"),validator=require("../libs/validator"),detailSchema=new global.Schema({tk_no:{type:String,required:!0,uppercase:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},wallet_receiver:{type:String,required:"B\u1ea1n ch\u01b0a nh\u1eadp \u0111\u1ecba ch\u1ec9 v\u00ed nh\u1eadn ti\u1ec1n"},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},ma_bp:{type:String,uppercase:!0,maxlength:32},ma_phi:{type:String,uppercase:!0,
|
|
2
|
+
maxlength:32},ma_hd:{type:String,uppercase:!0,maxlength:32},ma_dot_tt:{type:Number},ma_dt:{type:String,uppercase:!0,maxlength:32},ma_nv:{type:String,uppercase:!0,maxlength:32},ma_sp:{type:String,uppercase:!0,maxlength:32},dien_giai:String,exfields_detail:global.Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_no:validAccount.existsTk,ma_kh:validator.existsKh};
|
|
3
|
+
const vatvaoSchema=new global.Schema({ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ma_tc:{type:String,default:"1",uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,default:"",required:!0,uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date,required:!0},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,
|
|
4
|
+
required:!0,uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_no:{type:String,required:!0,uppercase:!0,maxlength:32},tk_du_thue:{type:String,required:!0,uppercase:!0,maxlength:32},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ma_kh_cn:{type:String,default:"",maxlength:32},ten_kh_cn:{type:String,default:"",maxlength:1024},ten_kh:{type:String,default:"",
|
|
5
|
+
maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String,default:"",maxlength:32},ten_vt:{type:String,default:"",maxlength:1024},exfields_detail:global.Schema.Types.Mixed,line:{type:Number,default:0}});vatvaoSchema.validate={tk_thue_no:validAccount.existsTk,tk_du_thue:validAccount.existsTk,ma_kh:validator.existsKh,ma_thue:validator.existsVat};
|
|
6
|
+
const tdttco_ttSchema=new global.Schema({line:{type:Number,default:0},id_hd:{type:String,required:!0,maxlength:1024},id_tdtt:{type:String,maxlength:1024},ngay_hd:{type:Date,required:!0},so_hd:{type:String,required:!0,uppercase:!0,maxlength:32},ma_nt_hd:{type:String,required:!0,maxlength:32},ty_gia_hd:{type:Number,default:1},tien_hd_nt:{type:Number,default:0},da_thanh_toan_nt:{type:Number,default:0},con_lai_nt:{type:Number,default:0},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},thanh_toan_qd:{type:Number,
|
|
7
|
+
default:0},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},tk_no:{type:String,required:!0,maxlength:32},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_dot_tt:{type:Number},ma_dt:{type:String,uppercase:!0,maxlength:32},ma_nv:{type:String,uppercase:!0,maxlength:32},ma_sp:{type:String,uppercase:!0,maxlength:32},dien_giai:String,exfields_detail:global.Schema.Types.Mixed});
|
|
8
|
+
tdttco_ttSchema.validate={tk_no:validAccount.existsTk,ma_kh:validator.existsKh};
|
|
9
|
+
const pc6Schema=new global.Schema({ct_ngan_hang:{type:Boolean,default:!1},id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"pc6",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"1",enum:["1","2"],maxlength:32},kieu_tt:{type:String,default:"1"},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",
|
|
10
|
+
trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},tk_co:{type:String,uppercase:!0,required:!0,maxlength:32},ong_ba:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,required:!0,maxlength:32},ten_kh:String,dien_giai:{type:String,default:"",maxlength:1024},id_pc0:String,id_dn0:String,id_pn6:String,id_asscashwithdraw:String,exfields:global.Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},
|
|
11
|
+
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]},vatvaos:[vatvaoSchema],tdttcos:[tdttco_ttSchema],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,maxlength:32},ma_nv:{type:String,
|
|
12
|
+
uppercase:!0,maxlength:32},ma_kho:String,ten_kho:String});pc6Schema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,tk_co:validAccount.existsTk,ma_gd:[function($id_app$$,$value$$,$callback$$){return $value$$!="1"&&$value$$!="2"?$callback$$(!1):$callback$$(!0)},"ma_gd:1-Thu chi m\u1eb7t, 2- B\u00e1o n\u1ee3"]};
|
|
13
|
+
(global.configs||{}).createIndexes&&(pc6Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1}),pc6Schema.index({dien_giai:"text"}),pc6Schema.index({ma_ct:1}),pc6Schema.index({ma_kh:1}),pc6Schema.index({kieu_tt:1}),pc6Schema.index({trang_thai:1}),pc6Schema.index({id_pc0:1}),pc6Schema.index({id_dn0:1}),pc6Schema.index({id_pn6:1}),pc6Schema.index({id_asscashwithdraw:1}),pc6Schema.index({user_created:1,date_created:-1}),pc6Schema.index({date_updated:-1}),pc6Schema.index({so_ct:"text",ma_kh:"text",ten_kh:"text",
|
|
14
|
+
dien_giai:"text",ong_ba:"text"},{name:"pc6_index_text"}),pc6Schema.index({status:1}),pc6Schema.index({user_created:1,visible_to:1,visible_to_users:1}));module.exports=global.mongoose.models.pc6||global.mongoose.model("pc6",pc6Schema);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
const validAccount=require("../libs/validator-account"),validator=require("../libs/validator"),detailSchema=new Schema({tk_no:{type:String,required:!0,uppercase:!0,maxlength:32},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},dien_giai:{type:String,default:"",maxlength:1024},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,uppercase:!0,default:"",
|
|
2
|
+
maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_kho:{type:String,uppercase:!0,default:"",maxlength:32},exfields_detail:Schema.Types.Mixed,bang_luong:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_no:validAccount.existsTk};
|
|
3
|
+
const pclSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"PCL",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ky:{type:Number,required:!0},nam:{type:Number,required:!0},dot:{type:Number,required:!0},ty_le:{type:Number,required:!0},tk_co:{type:String,required:!0,
|
|
4
|
+
uppercase:!0,maxlength:32},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,
|
|
5
|
+
default:0},visible_to_users:[String],update_right:[String],delete_right:[String],details:{type:[detailSchema]},ma_kho:String,ten_kho:String});pclSchema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook};
|
|
6
|
+
(global.configs||{}).createIndexes&&(pclSchema.index({id_app:1,ma_ct:1,so_ct:-1,ngay_ct:-1}),pclSchema.index({id_app:1,dien_giai:"text",so_ct:"text"}),pclSchema.index({id_app:1,nam:-1,ky:-1}),pclSchema.index({id_app:1,nam:-1,ky:-1,"details.ma_nv":1}),pclSchema.index({id_app:1,status:1}),pclSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1,trang_thai:1}),pclSchema.index({id_app:1,trang_thai:1}));module.exports=mongoose.models.pcl||mongoose.model("pcl",pclSchema);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const validAccount=require("../libs/validator-account"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024,trim:!0},ma_dvt:{type:String,required:!0,maxlength:32,trim:!0},ma_kho_x:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_kho_n:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_vt:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},tk_du:{type:String,required:!0,uppercase:!0,
|
|
2
|
+
maxlength:32,trim:!0},ton_kho:{type:Number,default:0},sl_xuat:{type:Number,default:0},gia_von:{type:Number,default:0},gia_von_nt:{type:Number,default:0},tien_xuat:{type:Number,default:0},tien_xuat_nt:{type:Number,default:0},px_gia_dd:{type:Boolean,default:!1},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_bp:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_phi:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32,
|
|
3
|
+
trim:!0},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});
|
|
4
|
+
detailSchema.validate={tk_vt:validAccount.existsTk,tk_du:validAccount.existsTk,ma_kh:validator.existsKh,ma_vt:validVt.existsVt,ma_kho_x:validVt.existsKho,ma_kho_n:validVt.existsKho,ma_dvt:validator.existsDvt};
|
|
5
|
+
const pdnSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"pdn",required:!0,uppercase:!0,maxlength:32,trim:!0},ma_gd:{type:String,default:"0",maxlength:32,trim:!0},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,
|
|
6
|
+
min:0,default:1},ong_ba:{type:String,default:"",maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024},ma_kho_x:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ten_kho_x:String,ma_kho_n:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ten_kho_n:String,ma_bp:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_nv:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_kho:String,ten_kho:String,id_pxc:String,exfields:{type:Schema.Types.Mixed,default:{}},trang_thai:{type:String,
|
|
7
|
+
maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],details:{type:[detailSchema]}});pdnSchema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook};
|
|
8
|
+
(global.configs||{}).createIndexes&&(pdnSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1,ma_kho_n:1,ma_kho_x:1}),pdnSchema.index({so_ct:"text",ten_kho_n:"text",ten_kho_x:"text",ma_kho_n:"text",ma_kho_x:"text",dien_giai:"text",ong_ba:"text"},{name:"pdn_index_text"}),pdnSchema.index({ma_ct:1}),pdnSchema.index({user_created:1,date_created:-1}),pdnSchema.index({date_updated:-1}),pdnSchema.index({id_pxc:1}),pdnSchema.index({"details.ma_vt":1}),pdnSchema.index({status:1}),pdnSchema.index({user_created:1,
|
|
9
|
+
visible_to:1,visible_to_users:1}),pdnSchema.index({trang_thai:1}));const model=mongoose.models.pdn||mongoose.model("pdn",pdnSchema);model.referenceKeys={_id:[{model:"pxc",key:"id_dn",error:"Phi\u1ebfu n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n"}]};module.exports=model;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const validAccount=require("../libs/validator-account"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ma_dvt:{type:String,required:!0,maxlength:32},ma_kho_x:{type:String,uppercase:!0,maxlength:32},ma_kho_n:{type:String,uppercase:!0,maxlength:32},tk_vt:{type:String,required:!0,uppercase:!0,maxlength:32},tk_du:{type:String,required:!0,uppercase:!0,maxlength:32},ton_kho:{type:Number,
|
|
2
|
+
default:0},sl_xuat:{type:Number,default:0},gia_von:{type:Number,default:0},gia_von_nt:{type:Number,default:0},tien_xuat:{type:Number,default:0},tien_xuat_nt:{type:Number,default:0},px_gia_dd:{type:Boolean,default:!1},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},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,uppercase:!0,default:"",maxlength:32},
|
|
3
|
+
ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});
|
|
4
|
+
detailSchema.validate={tk_vt:validAccount.existsTk,tk_du:validAccount.existsTk,ma_kh:validator.existsKh,ma_vt:validVt.existsVt,ma_kho_x:validVt.existsKho,ma_dvt:validator.existsDvt};
|
|
5
|
+
var pdxSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"PDX",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},
|
|
6
|
+
ong_ba:{type:String,default:"",maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024},ma_kho_x:{type:String,required:!0,uppercase:!0,maxlength:32},ten_kho_x:String,ma_kho_n:{type:String,uppercase:!0,maxlength:32},ten_kho_n:String,ma_bp:{type:String,uppercase:!0,maxlength:32},ma_nv:{type:String,uppercase:!0,maxlength:32},ma_kho:String,ten_kho:String,exfields:{type:Schema.Types.Mixed,default:{}},trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,
|
|
7
|
+
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],details:{type:[detailSchema]}});pdxSchema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook};
|
|
8
|
+
(global.configs||{}).createIndexes&&(pdxSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1}),pdxSchema.index({so_ct:"text",ten_kho_n:"text",ten_kho_x:"text",ma_kho_n:"text",ma_kho_x:"text",dien_giai:"text",ong_ba:"text"},{name:"pdx_index_text"}),pdxSchema.index({ma_ct:1}),pdxSchema.index({ma_kho_x:1}),pdxSchema.index({user_created:1,date_created:-1}),pdxSchema.index({date_updated:-1}),pdxSchema.index({status:1}),pdxSchema.index({user_created:1,visible_to:1,visible_to_users:1}),pdxSchema.index({trang_thai:1}));
|
|
9
|
+
const model=mongoose.models.pdx||mongoose.model("pdx",pdxSchema);model.referenceKeys={_id:[{model:"pxk",key:"id_dn",error:"Phi\u1ebfu n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n"}]};module.exports=model;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const validator=require("../libs/validator"),detailSchema=new Schema({don_hang:{type:Schema.Types.ObjectId,ref:"hd2"},ghi_chu:String,exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}}),pghSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"pgh",required:!0,uppercase:!0,maxlength:32},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},
|
|
2
|
+
ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},ma_kho:String,user_nv_giao_hang:{type:String,required:!0},ma_kho_nv:String,so_xe:String,dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},
|
|
3
|
+
user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],details:{type:[detailSchema]}});pghSchema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook};
|
|
4
|
+
(global.configs||{}).createIndexes&&(pghSchema.index({id_app:1,ma_ct:1,ngay_ct:-1}),pghSchema.index({id_app:1,user_nv_giao_hang:1,so_xe:!0}),pghSchema.index({id_app:1,ma_ct:1,ngay_ct:-1,so_ct:-1}),pghSchema.index({id_app:1,ma_ct:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1}),pghSchema.index({id_app:1,ma_ct:1,ngay_ct:-1,trang_thai:1,of_user:1,user_created:1,visible_to:1,visible_to_users:1}),pghSchema.index({id_app:1,ma_ct:1,ngay_ct:-1,trang_thai:1,of_user:1,user_created:1,visible_to:1,visible_to_users:1,so_ct:-1}));
|
|
5
|
+
module.exports=mongoose.models.pgh||mongoose.model("pgh",pghSchema);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const phieudanhgiaSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},loai_phieu_danh_gia:{type:Number,default:6},ky:{type:Number,required:!0},nam:{type:Number,required:!0},ma_nv:{type:String,uppercase:!0,required:!0,maxlength:32},ten_nv:String,ma_mau_danh_gia:{type:String,required:!0},ma_bp:{type:String,uppercase:!0,maxlength:32},ma_doi:{type:String,uppercase:!0,maxlength:32},ma_to:{type:String,uppercase:!0,maxlength:32},nh_nv:{type:String,maxlength:32},ma_nh_nv:{type:String,uppercase:!0,
|
|
2
|
+
maxlength:32},chuc_vu:{type:String,maxlength:32},chitieus:[],muc_tieu_bieu:Number,exfields:Schema.Types.Mixed,visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
3
|
+
(global.configs||{}).createIndexes&&(phieudanhgiaSchema.index({id_app:1,loai_phieu_danh_gia:1,ky:1,nam:1,ma_nv:1},{name:"phieudanhgia_index_1"}),phieudanhgiaSchema.index({ma_nv:"text",ten_nv:"text"}),phieudanhgiaSchema.index({status:1}),phieudanhgiaSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.phieudanhgia||mongoose.model("phieudanhgia",phieudanhgiaSchema);module.exports=model;
|