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,4 @@
|
|
|
1
|
+
const validator=require("../libs/validator"),Qts=require("./qts"),qtsdieuchuyenSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},id_ts:{type:String,required:!0,maxlength:1024},tu_bp:{type:String,required:!0,maxlength:1024,uppercase:!0},den_bp:{type:String,required:!0,maxlength:1024,uppercase:!0},tu_nv:{type:String,maxlength:1024,uppercase:!0},ma_nv_sd:{type:String,maxlength:1024,
|
|
2
|
+
uppercase:!0},so_luong:{type:Number,default:1},phutungs:[],ly_do: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:""}});qtsdieuchuyenSchema.validate={ma_nguon_von:validator.existsNguonvon,id_ts:Qts.idExists};
|
|
3
|
+
(global.configs||{}).createIndexes&&(qtsdieuchuyenSchema.index({id_app:1,id_ts:1}),qtsdieuchuyenSchema.index({so_ct:"text"}),qtsdieuchuyenSchema.index({tu_bp:1}),qtsdieuchuyenSchema.index({den_bp:1}),qtsdieuchuyenSchema.index({tu_nv:1}),qtsdieuchuyenSchema.index({ma_nv_sd:1}),qtsdieuchuyenSchema.index({status:1}),qtsdieuchuyenSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.qtsdieuchuyen||mongoose.model("qtsdieuchuyen",qtsdieuchuyenSchema);
|
|
4
|
+
module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const quanhuyenSchema=new Schema({ten_tinh_thanh:{type:String,required:!0,maxlength:1024,trim:!0},ten_quan_huyen:{type:String,required:!0,maxlength:1024,trim:!0},description:String,stt:{type:Number,default:0},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
2
|
+
(global.configs||{}).createIndexes&&(quanhuyenSchema.index({ten_tinh_thanh:1,ten_quan_huyen:1}),quanhuyenSchema.index({ten_tinh_thanh:"text",ten_quan_huyen:"text"}),quanhuyenSchema.index({status:1}),quanhuyenSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.quanhuyen||mongoose.model("quanhuyen",quanhuyenSchema);module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const reasonSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},reason_type:{type:String,uppercase:!0,required:!0,maxlength:32},reason_name:{type:String,required:!0,maxlength:1024},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
2
|
+
(global.configs||{}).createIndexes&&(reasonSchema.index({id_app:1,reason_type:1,reason_name:1}),reasonSchema.index({reason_name:"text"}),reasonSchema.index({status:1}),reasonSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.reason||mongoose.model("reason",reasonSchema);module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const InvoiceSchema$$module$models$receivedinvoice=new Schema({id_app:{type:String,required:!0},invoice_number:{type:String,required:!0},invoice_symbol:{type:String},issue_date:{type:Date},seller_taxCode:{type:String},buyer_tax_code:{type:String},total:{type:Number},items:[],xml_content:{type:String},source_email:{type:String},id_ct: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:""}});InvoiceSchema$$module$models$receivedinvoice.index({id_app:1,invoice_number:1,invoice_symbol:1,seller_tax_code:1},{unique:!0});InvoiceSchema$$module$models$receivedinvoice.index({id_app:1,source_email:1});var $jscompDefaultExport$$module$models$receivedinvoice=mongoose.model("receivedinvoice",InvoiceSchema$$module$models$receivedinvoice),module$models$receivedinvoice={};module$models$receivedinvoice.default=$jscompDefaultExport$$module$models$receivedinvoice;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const reportinfoSchema=new global.Schema({code:{type:String,required:!0,index:!0,lowercase:!0,trim:!0},title:{type:String,required:!0},title2:{type:String},table_info:{type:String,trim:!0},columns:[],form_condition_info:{type:String,trim:!0},drilldown_info:{type:String,trim:!0},search_label:{type:String,trim:!0},cancel_label:{type:String,trim:!0},allow_users:{type:String,trim:!0},api_code:{type:String,trim:!0},handle_condition:{type:String,trim:!0},handle_data:{type:String,trim:!0},handle_data_expression:{type:String,
|
|
2
|
+
trim:!0},handle_data_expression_server:{type:String,trim:!0},is_dashboard_item:{type:Boolean,default:!1},dashboard_default:{type:Boolean,default:!0},dashboard_ids:{type:String,trim:!0},dashboard_rptform_condition:{type:String,trim:!0},chart_stt:{type:Number},chart_data_key_x:{type:String,trim:!0},chart_data_key_ys:{type:String,trim:!0},chart_type:{type:String,trim:!0},chart_width:{type:Number,default:4,max:12,min:0},chart_height:{type:Number,default:2,min:0},chart_handle_data:{type:String,trim:!0},
|
|
3
|
+
display_type:String,not_need_right:Boolean,exfields:global.Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
4
|
+
(global.configs||{}).createIndexes&&(reportinfoSchema.index({code:1},{unique:!0}),reportinfoSchema.index({title:1}),reportinfoSchema.index({table_info:1}),reportinfoSchema.index({is_dashboard_item:1}),reportinfoSchema.index({dashboard_ids:1}),reportinfoSchema.index({code:"text",title:"text"}),reportinfoSchema.index({status:1}),reportinfoSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=global.mongoose.models.reportinfo||global.mongoose.model("reportinfo",reportinfoSchema);
|
|
5
|
+
module.exports=model;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const rightScheam=new global.Schema({email:{type:String,required:!0,lowercase:!0,maxlength:1024,trim:!0},id_app:{type:String,required:!0,maxlength:1024},module:{type:String,required:!0,lowercase:!0,maxlength:1024,trim:!0},view_all:{type:Boolean,default:!1},view:{type:Boolean,default:!1},view_empty_phu_trach:{type:Boolean,default:!1},view_trang_thai:{},viewOfOther:{type:Boolean,default:!1},viewOfOther_trang_thai:{},viewOfOther_user_groups:[],add:{type:Boolean,default:!1},add_trang_thai:{},import:{type:Boolean,
|
|
2
|
+
default:!1},import_trang_thai:{},update:{type:Boolean,default:!1},update_trang_thai:{},delete:{type:Boolean,default:!1},delete_trang_thai:{},print:{type:Boolean,default:!1},print_trang_thai:{},trang_thai:{},field_not_right:{},extra_condition: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&&(rightScheam.index({email:1,id_app:1,module:1}),rightScheam.index({status:1}),rightScheam.index({user_created:1,visible_to:1,visible_to_users:1}),rightScheam.index({trang_thai:1}));let model=global.mongoose.models.right||global.mongoose.model("right",rightScheam);
|
|
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 information"));$resolve$$($fields$$?$rs$$[$fields$$]:$rs$$)}).catch($e$$=>{$reject$$($e$$)})})};module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const rptSchema=new Schema({_id_o:{type:String},id_app:{type:String,required:!0,maxlength:1024},ma_cn:{type:String,required:!0,uppercase:!0,trim:!0},ten_mau_in:{type:String,required:!0},html_template:String,bluetooth_template:String,file_mau_in:{type:String},parameters:[Schema.Types.Mixed],cac_lien:[Schema.Types.Mixed],handle_data_expression:String,send_to:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,
|
|
2
|
+
default:""},user_updated:{type:String,default:""}});(global.configs||{}).createIndexes&&(rptSchema.index({id_app:1,ma_cn:1}),rptSchema.index({ten_mau_in:1}),rptSchema.index({ma_cn:"text",ten_mau_in:"text"}),rptSchema.index({status:1}),rptSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.rpt||mongoose.model("rpt",rptSchema);module.exports=model;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const rptformSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},form_code:String,form_kbm:{type:String},rptform_type:{type:String,uppercase:!0,required:!0},rptform_name:{type:String,required:!0},report:[Schema.Types.Mixed],exfields:Schema.Types.Mixed,handle_data_expression_server:{type:String,trim:!0},chart_stt:{type:Number},chart_data_key_x:{type:String,trim:!0},chart_data_key_ys:{type:String,trim:!0},chart_type:{type:String,trim:!0},chart_width:{type:Number,default:4,max:12,min:0},
|
|
2
|
+
chart_height:{type:Number,default:2,min:0},chart_handle_data:{type:String,trim:!0},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
3
|
+
(global.configs||{}).createIndexes&&(rptformSchema.index({id_app:1,rptform_type:1,rptform_name:1}),rptformSchema.index({id_app:1,status:1}),rptformSchema.index({id_app:1,form_code:1}),rptformSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.rptform||mongoose.model("rptform",rptformSchema);module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const rptobjectSchema=new Schema({code_rpt:{type:String,required:!0,trim:!0},ma_obj:{type:String,required:!0,trim:!0},ten_obj:{type:String,required:!0},model_obj:{type:String,required:!0,trim:!0},header_field:{type:String,required:!0,trim:!0},value_field:{type:String,required:!0,trim:!0},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
2
|
+
(global.configs||{}).createIndexes&&(rptobjectSchema.index({code_rpt:1,ma_obj:1,ten_obj:1}),rptobjectSchema.index({ma_obj:"text",ten_obj:"text"}),rptobjectSchema.index({model_obj:1}),rptobjectSchema.index({status:1}),rptobjectSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.rptobject||mongoose.model("rptobject",rptobjectSchema);module.exports=model;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ma_dvt:{type:String,required:!0,maxlength:32},so_luong:{type:Number,default:0},gia:{type:Number,default:0},gia_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tt:{type:Number,default:0},tt_nt:{type:Number,
|
|
2
|
+
default:0},promotion:Schema.Types.Mixed,dien_giai:{type:String,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:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,
|
|
3
|
+
default:"",uppercase:!0,maxlength:32},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={ma_vt:validVt.existsVt,ma_dvt:validator.existsDvt};
|
|
4
|
+
const sale_contractSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,maxlength:1024},ma_ct:{type:String,default:"SALE_CONTRACT",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ong_ba:{type:String,default:"",maxlength:1024},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,
|
|
5
|
+
required:!0,min:0,default:1},trang_thai:{type:String,default:"1",maxlength:32},ma_kh:{type:String,uppercase:!0,maxlength:32},ten_kh:String,ma_kho:{type:String,uppercase:!0,maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,required:"Y\u00eau c\u1ea7u nh\u1eadp s\u1ed1 h\u1ee3p \u0111\u1ed3ng",maxlength:32},id_bao_gia:{type:String,maxlength:1024},ma_thue:{type:String,uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},t_thue:{type:Number,
|
|
6
|
+
default:0},t_thue_nt:{type:Number,default:0},ty_le_ck_hd:{type:Number,default:0},tien_ck_hd:{type:Number,default:0},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,dot_thanh_toan:[],ma_dt:{type:String,uppercase:!0,default:"",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],
|
|
7
|
+
update_right:[String],delete_right:[String],details:{type:[detailSchema]},promotion:Schema.Types.Mixed});sale_contractSchema.validate={ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh};
|
|
8
|
+
(global.configs||{}).createIndexes&&(sale_contractSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1}),sale_contractSchema.index({dien_giai:"text",so_ct:"text",ma_kh:"text",ten_kh:"text",ma_hd:"text"},{name:"sale_contract_index_text"}),sale_contractSchema.index({ma_ct:1}),sale_contractSchema.index({ma_hd:1}),sale_contractSchema.index({ma_kh:1}),sale_contractSchema.index({user_created:1,date_created:-1}),sale_contractSchema.index({date_updated:-1}),sale_contractSchema.index({status:1}),sale_contractSchema.index({user_created:1,
|
|
9
|
+
visible_to:1,visible_to_users:1}),sale_contractSchema.index({trang_thai:1}));const model=mongoose.models.sale_contract||mongoose.model("sale_contract",sale_contractSchema);model.referenceKeys={_id:[{model:"hd2",key:"id_contract",error:"H\u1ee3p \u0111\u1ed3ng n\u00e0y \u0111\u00e3 xu\u1ea5t h\u00e0ng"}]};module.exports=model;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const Moment=require("moment"),fs=require("fs"),path=require("path"),app=require("./app"),schedule_log=require("./schedule_log"),_=require("lodash"),Controller=require("../controllers/controller"),{executeInTransaction}=require("../libs/sessionContext"),crypto=require("crypto"),agents=require("../agents/agents"),TIME_CHECK=6E4,actions={runAIAgent:async $data_schedule$$=>{$data_schedule$$=$data_schedule$$.data;if(_.isString($data_schedule$$))try{$data_schedule$$=JSON.parse($data_schedule$$)}catch($e$$){Logger.error("[schedule][runAIAgent] parse err:",
|
|
2
|
+
$e$$,$data_schedule$$)}if($data_schedule$$&&$data_schedule$$.prompt_message&&$data_schedule$$.user_id)try{Logger.info(`[Auto-AI] \u0110ang ch\u1ea1y t\u00e1c v\u1ee5 t\u1ef1 \u0111\u1ed9ng cho user: ${$data_schedule$$.user_id}`),await agents.runFinanceAgent($data_schedule$$.id_app,$data_schedule$$.user_id,$data_schedule$$.session_id,$data_schedule$$.prompt_message)}catch($error$$){throw Logger.error("[schedule] [runAIAgent] L\u1ed7i th\u1ef1c thi AI:",$error$$),$error$$;}},sendNotification:async $data$jscomp$1_schedule$$=>
|
|
3
|
+
{if(($data$jscomp$1_schedule$$=$data$jscomp$1_schedule$$.data)&&typeof $data$jscomp$1_schedule$$=="string")try{$data$jscomp$1_schedule$$=JSON.parse($data$jscomp$1_schedule$$)}catch($e$$){Logger.error("data of schedule is not valid",$data$jscomp$1_schedule$$,$e$$);return}if($data$jscomp$1_schedule$$&&$data$jscomp$1_schedule$$.users_will_receive&&$data$jscomp$1_schedule$$.title){var $notificationData$$={_id:$data$jscomp$1_schedule$$._id,trang_thai:$data$jscomp$1_schedule$$.trang_thai,id_app:$data$jscomp$1_schedule$$.id_app,
|
|
4
|
+
title:$data$jscomp$1_schedule$$.title,body:$data$jscomp$1_schedule$$.body,code:$data$jscomp$1_schedule$$.ma_ct||$data$jscomp$1_schedule$$.code,event:$data$jscomp$1_schedule$$.event||"reminder",action:($data$jscomp$1_schedule$$.event||"reminder").toUpperCase()};app.emitEvent($data$jscomp$1_schedule$$.id_app,$data$jscomp$1_schedule$$.event,$notificationData$$,null,$data$jscomp$1_schedule$$.users_will_receive,!0)}},updateData:async $module_name_schedule$$=>{let $data$$=$module_name_schedule$$.data;_.isString($data$$)&&
|
|
5
|
+
($data$$=JSON.parse($data$$));if($data$$&&$data$$._id&&global.mongoose.Types.ObjectId.isValid($data$$._id)&&($module_name_schedule$$=$data$$.module||$data$$.model)&&!["token","tokens","user","asskey"].includes($module_name_schedule$$.toLowerCase())){var $module$$=global.controllers[$module_name_schedule$$.toUpperCase()];if($module$$){let $_model$$=$module$$.model||global.getModel($module_name_schedule$$);delete $data$$.module;delete $data$$.model;try{await executeInTransaction(async()=>{await $_model$$.updateOne({id_app:$data$$.id_app,
|
|
6
|
+
_id:$data$$._id},$data$$);let $obj$$=await $_model$$.findOne({_id:$data$$._id});await Controller.asyncPostData($obj$$,$module$$)})}catch($e$$){throw Logger.error("[schedule] [updateData]",$e$$),$e$$;}}else Logger.error("[schedule] [updateData] module "+$data$$.module+" is not exists")}},runScript:$processPath_schedule$$=>{let $script$$=$processPath_schedule$$.script;if($script$$){$processPath_schedule$$=path.join(path.dirname(__dirname),"workers","runScript.js");if(!fs.existsSync($processPath_schedule$$))return Logger.error("runScript process is not exist"),
|
|
7
|
+
Promise.reject("runScript process is not exist");if(!global.runScriptPool){const $StaticPool$$=require("../libs/WorkerStaticPool");global.runScriptPool=new $StaticPool$$($processPath_schedule$$,0,1)}return new Promise(($resolve$$,$reject$$)=>{global.runScriptPool.exec({script:$script$$,configs:JSON.parse(JSON.stringify(global.configs))},$response$$=>{$response$$&&$response$$.error?(Logger.error($response$$.error),$reject$$($response$$.error)):(Logger.info("run script result:",$response$$),$resolve$$($response$$))})})}}},
|
|
8
|
+
mongoose=global.mongoose||require("mongoose"),Schema=mongoose.Schema,scheduleSchema=new Schema({id_link:{type:String},title:{type:String,required:!0},action:{type:String,required:!0},data:{type:Schema.Types.Mixed},script:String,time_run:{type:Date,required:!0},repeat:{type:Number,default:0},next_run:Date,finish_run:Date,trang_thai:{type:String,default:"0"},cron_expression:{type:String},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,
|
|
9
|
+
default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});(global.configs||{}).createIndexes&&(scheduleSchema.index({trang_thai:1,next_run:1,time_run:1}),scheduleSchema.index({action:1}),scheduleSchema.index({id_link:1}));
|
|
10
|
+
const model=mongoose.models.schedule||mongoose.model("schedule",scheduleSchema),acquireLock=($key$$,$ttlInMs$$)=>new Promise($resolve$$=>{if(!global.clientRedis)return $resolve$$(!0);global.clientRedis.set($key$$,"LOCKED","NX","PX",$ttlInMs$$,($err$$,$res$$)=>{$resolve$$($res$$==="OK")})}),calculateNextRun=$schedule$$=>{if($schedule$$.cron_expression)try{return require("cron-parser").CronExpressionParser.parse($schedule$$.cron_expression).next().toDate()}catch($err$$){return Logger.error("Error parsing cron expression",
|
|
11
|
+
$err$$),Moment().add(1,"hours").toDate()}let $next_run$$=Moment();switch($schedule$$.repeat){case 1:$next_run$$=$next_run$$.add(1,"days");break;case 2:$next_run$$=$next_run$$.add(1,"weeks");break;case 3:$next_run$$=$next_run$$.add(1,"months");break;case 4:$next_run$$=$next_run$$.add(1,"quarters");break;case 7:$next_run$$=$next_run$$.add(1,"hours");break;default:$next_run$$=$next_run$$.add(1,"years")}return $next_run$$.toDate()};
|
|
12
|
+
model.every=async($cron_expression$$,$action$$,$data$$,$options$$={})=>{var $cronParser$$=require("cron-parser");try{var $generatedIdLink_hashString_id_link_interval$$=$cronParser$$.CronExpressionParser.parse($cron_expression$$,{currentDate:new Date})}catch($e$$){throw Error(`[Schedule] Cron kh\u00f4ng h\u1ee3p l\u1ec7: ${$cron_expression$$}. Chi ti\u1ebft: ${$e$$.message}`);}$cronParser$$=$generatedIdLink_hashString_id_link_interval$$.next().toDate();$generatedIdLink_hashString_id_link_interval$$=
|
|
13
|
+
$cron_expression$$+$action$$+JSON.stringify($data$$||{});$generatedIdLink_hashString_id_link_interval$$=`cron_${crypto.createHash("md5").update($generatedIdLink_hashString_id_link_interval$$).digest("hex")}`;$generatedIdLink_hashString_id_link_interval$$=$options$$.id_link||$generatedIdLink_hashString_id_link_interval$$;await model.findOneAndUpdate({id_link:$generatedIdLink_hashString_id_link_interval$$},{$set:{id_link:$generatedIdLink_hashString_id_link_interval$$,title:$options$$.title||`Auto Cron Job: ${$action$$}`,
|
|
14
|
+
action:$action$$,data:$data$$,time_run:$cronParser$$,cron_expression:$cron_expression$$,repeat:-1,trang_thai:"0"}},{upsert:!0,new:!0});Logger.info(`[Schedule] \u0110\u00e3 thi\u1ebft l\u1eadp job '${$action$$}' ch\u1ea1y theo cron [${$cron_expression$$}]. L\u1ea7n ch\u1ea1y ti\u1ebfp theo: ${$cronParser$$}`)};
|
|
15
|
+
model.addSchedule=async $schedule$$=>{try{await model.create($schedule$$),Logger.info("added a schedule, time state at",$schedule$$.time_run)}catch($e$$){Logger.error("error add schedule to db",$e$$)}};model.removeSchedule=async $id$$=>{try{await model.deleteOne({_id:$id$$})}catch($e$$){Logger.error("error remove schedule",$e$$)}};model.removeScheduleLink=async $id_link$$=>{try{await model.deleteOne({id_link:$id_link$$})}catch($e$$){Logger.error("error remove schedule",$e$$)}};
|
|
16
|
+
model.check=async()=>{try{var $next_run$$=Moment().toDate(),$final_state_pendingSchedules$$=await model.find({trang_thai:"0",$or:[{next_run:{$lte:$next_run$$}},{time_run:{$lte:$next_run$$},next_run:null}]}).lean();for(const $schedule$$ of $final_state_pendingSchedules$$){if(!await acquireLock(`schedule:lock:${$schedule$$._id.toString()}`,5E4))continue;if(!await model.findOneAndUpdate({_id:$schedule$$._id,trang_thai:"0"},{$set:{trang_thai:"5"}}))continue;$next_run$$=null;$final_state_pendingSchedules$$=
|
|
17
|
+
"9";if($schedule$$.repeat){$next_run$$=calculateNextRun($schedule$$);let $finish_run$$=$schedule$$.finish_run?Moment($schedule$$.finish_run).startOf("date"):null;if(!$finish_run$$||$finish_run$$.toDate()>=$next_run$$.toDate())$final_state_pendingSchedules$$="0"}let $action$$=$schedule$$.action;if(actions[$action$$])try{await actions[$action$$]($schedule$$),await schedule_log.create({id_schedule:$schedule$$._id,message:"ok"})}catch($e$$){await schedule_log.create({id_schedule:$schedule$$._id,message:"Error: "+
|
|
18
|
+
($e$$.message||$e$$.error||$e$$)}),Logger.error($e$$)}await model.updateOne({_id:$schedule$$._id},{$set:{trang_thai:$final_state_pendingSchedules$$,next_run:$next_run$$}})}}catch($e$$){Logger.error("[schedule] Check error:",$e$$)}};const startSchedulerLoop=async()=>{await model.check();setTimeout(startSchedulerLoop,TIME_CHECK)};model.start=()=>{Logger.info("Scheduler started successfully.");startSchedulerLoop()};module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const schedule_logSchema=new Schema({id_schedule:String,message:String,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&&(schedule_logSchema.index({id_schedule:1}),schedule_logSchema.index({date_created:1}),schedule_logSchema.index({status:1}),schedule_logSchema.index({user_created:1,visible_to:1,visible_to_users:1}));
|
|
2
|
+
const model=mongoose.models.schedule_log||mongoose.model("schedule_log",schedule_logSchema);module.exports=model;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ma_dvt:{type:String,required:!0,maxlength:32},so_luong:{type:Number,default:0},gia:{type:Number,default:0},gia_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},gia_von_nk:{type:Number,default:0},
|
|
2
|
+
gia_von_nk_nt:{type:Number,default:0},tien_hang_nk:{type:Number,default:0},tien_hang_nk_nt:{type:Number,default:0},thue_suat_nk:{type:Number,default:0},tien_thue_nk:{type:Number,default:0},tien_thue_nk_nt:{type:Number,default:0},tt:{type:Number,default:0},tt_nt:{type:Number,default:0},dien_giai:{type:String,maxlength:1024},ngay_sx:Date,tk_no:{type:String,maxlength:32},tk_co:{type:String,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ma_bp:{type:String,uppercase:!0,default:"",
|
|
3
|
+
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},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});
|
|
4
|
+
detailSchema.validate={ma_kh:validator.existsKh,ma_vt:validVt.existsVt,ma_dvt:validator.existsDvt};
|
|
5
|
+
const shipbookSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"SHIPBOOK",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,
|
|
6
|
+
default:1},ma_kh:{type:String,uppercase:!0,required:!0,default:"",maxlength:32},ma_kho:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,required:"Y\u00eau c\u1ea7u nh\u1eadp s\u1ed1 h\u1ee3p \u0111\u1ed3ng",maxlength:32},id_contract:{type:String,maxlength:1024},id_dnm:{type:String,maxlength:1024},id_po1:{type:String,maxlength:1024},ngay_tau_di:{type:Date,required:!0},thoi_gian:String,ngay_tau_den:{type:Date,
|
|
7
|
+
required:!0},so_tracking:{type:String,maxlength:32},tien_cuoc:{type:Number,default:0},tien_cuoc_nt:{type:Number,default:0},ty_le_cuoc_ck:{type:Number,default:0},tien_cuoc_ck:{type:Number,default:0},tien_cuoc_ck_nt:{type:Number,default:0},tk_no:{type:String,maxlength:32},tk_co:{type:String,maxlength:32},ma_tc:{type:String,default:"1",maxlength:32},ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,
|
|
8
|
+
uppercase:!0,maxlength:32},so_seri:{type:String,uppercase:!0,maxlength:32},ngay_hd:{type:Date,uppercase:!0},ma_thue:{type:String,uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_no:{type:String,uppercase:!0,maxlength:32},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai_thue:{type:String,default:"",maxlength:1024},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},
|
|
9
|
+
ngay_sx:Date,ong_ba:{type:String,default:"",maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",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],
|
|
10
|
+
delete_right:[String],details:{type:[detailSchema]}});shipbookSchema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh};
|
|
11
|
+
(global.configs||{}).createIndexes&&(shipbookSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1}),shipbookSchema.index({dien_giai:"text",so_ct:"text"}),shipbookSchema.index({ma_ct:1}),shipbookSchema.index({ma_kh:1}),shipbookSchema.index({ma_hd:1}),shipbookSchema.index({user_created:1,date_created:-1}),shipbookSchema.index({date_updated:-1}),shipbookSchema.index({status:1}),shipbookSchema.index({user_created:1,visible_to:1,visible_to_users:1}),shipbookSchema.index({trang_thai:1}));
|
|
12
|
+
module.exports=mongoose.models.shipbook||mongoose.model("shipbook",shipbookSchema);
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const shortcutSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},title:{type:String,required:!0},link:{type:String,required:!0,maxlength:2048},stt:Number,exfields:Schema.Types.Mixed,visible_to:{type:Number,default:0},visible_to_users:[String],status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
2
|
+
(global.configs||{}).createIndexes&&(shortcutSchema.index({id_app:1}),shortcutSchema.index({title:"text"},{name:"shortcut_index_text"}),shortcutSchema.index({title:1}),shortcutSchema.index({status:1}),shortcutSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.shortcut||mongoose.model("shortcut",shortcutSchema);module.exports=model;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const {evalute}=require("../libs/utils"),axios=require("axios"),async=require("async"),smsaccountSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},account_name:{type:String,required:!0,trim:!0},account_type:{type:String,uppercase:!0,required:!0,trim:!0,default:"QC"},script_send:{type:String,required:!0},template: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&&(smsaccountSchema.index({id_app:1,account_name:1},{unique:!0}),smsaccountSchema.index({account_name:"text"}),smsaccountSchema.index({account_type:1}),smsaccountSchema.index({status:1}),smsaccountSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.smsaccount||mongoose.model("smsaccount",smsaccountSchema);
|
|
3
|
+
model.send=async($account_start$$,$phone$$,$content$$)=>{try{if(!$phone$$)throw"Y\u00eau c\u1ea7u s\u1ed1 \u0111i\u1ec7n tho\u1ea1i ng\u01b0\u1eddi nh\u1eadn";if(!$account_start$$.script_send)throw"Script \u0111\u1ec3 g\u1eedi sms kh\u00f4ng t\u1ed3n t\u1ea1i";if(!$content$$)throw"Y\u00eau c\u1ea7u n\u1ed9i dung g\u1eedi \u0111i";let $str_func$$=`return (async ()=>{
|
|
4
|
+
try{
|
|
5
|
+
${$account_start$$.script_send}
|
|
6
|
+
}catch(e){
|
|
7
|
+
return {error:e}
|
|
8
|
+
}
|
|
9
|
+
})`,$phones$$=[...(new Set($phone$$.split(",")))];if($phones$$.length<30)throw"M\u1ed7i l\u1ea7n g\u1eedi t\u1ed1i thi\u1ec3u l\u00e0 30 kh\u00e1ch h\u00e0ng, s\u1ed1 kh\u00e1ch hi\u1ec7n \u0111ang y\u00eau c\u1ea7u g\u1eedi l\u00e0 "+$phones$$.length;let $groups$$=[];for($account_start$$=0;$account_start$$<$phones$$.length;)$groups$$.push($phones$$.slice($account_start$$,$account_start$$+970)),$account_start$$+=970;if($groups$$.length>1&&$groups$$[$groups$$.length-1].length<30){let $last_group$$=
|
|
10
|
+
$groups$$.pop();$groups$$[0]=[...$groups$$[0],...$last_group$$]}return new Promise(($res$$,$rej$$)=>{async.mapSeries($groups$$,($group$$,$callback$$)=>{setImmediate(async()=>{try{let $data$$=await evalute($str_func$$,{axios,phone:$group$$.join(","),content:$content$$})();$callback$$(null,$data$$)}catch($e$$){$callback$$($e$$)}})},($e$$,$rs$$)=>{$e$$?$rej$$($e$$):$res$$($rs$$)})})}catch($e$$){throw Logger.error($e$$),$e$$;}};module.exports=model;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const smssendSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},id_account:{type:String,required:!0,trim:!0},phone:{type:String,required:!0},content:{type:String,required:!0},result: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&&(smssendSchema.index({id_app:1,content:"text"}),smssendSchema.index({phone:1}),smssendSchema.index({id_account:1}),smssendSchema.index({status:1}),smssendSchema.index({user_created:1,visible_to:1,visible_to_users:1}));const model=mongoose.models.smssend||mongoose.model("smssend",smssendSchema);module.exports=model;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const moment=require("moment"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new global.Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ma_dvt:{type:String,required:!0,maxlength:32},ton_kho:{type:Number,default:0},sl_xuat:{type:Number,default:0},px_gia_dd:{type:Boolean,default:!1},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},gia_mua:{type:Number,
|
|
2
|
+
default:0},tien_xuat_tmp:{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},id_cs_ck:String,ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},gia_ban_niem_yet_nt:{type:Number,default:0},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,
|
|
3
|
+
default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},tt_nt:{type:Number,default:0},tt:{type:Number,default:0},gia_ban_ct_nt:{type:Number},gia_ban_ct:{type:Number},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,ty_le_hoa_hong:Number,tien_hoa_hong:Number,chuyen_ngay:Boolean,tk_no_hoa_hong:String,tk_co_hoa_hong:String,ty_le_hoa_hong_gt:Number,
|
|
4
|
+
tien_hoa_hong_gt:Number,chuyen_ngay_gt:Boolean,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,ty_le_hoa_hong_ctv:Number,tien_hoa_hong_ctv:Number,chuyen_ngay_ctv:Boolean,tk_cn_ctv:String,tk_cp_ctv:String,ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,chuyen_ngay_ql:Boolean,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,gia_ban_thuc:{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,
|
|
5
|
+
default:"",maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},tk_vt:{type:String,uppercase:!0,maxlength:32},tk_dt:{type:String,uppercase:!0,maxlength:32},tk_gv:{type:String,uppercase:!0,maxlength:32},tk_ck:{type:String,uppercase:!0,maxlength:32},ma_thue:String,ma_kho:{type:String,uppercase:!0,default:"",maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_vt2:{type:String,default:"",
|
|
6
|
+
uppercase:!0,maxlength:32},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},thuoc_tinh:Schema.Types.Mixed,tien_evoucher_duoc_pb:{type:Number,default:0},exfields_detail:global.Schema.Types.Mixed,tasks:[Schema.Types.Mixed],days_of_week:[{index:Number,name:String,sel:Boolean,ghi_chu:String}],ngay_bat_dau:{type:Date},ngay_ket_thuc:{type:Date},tu_gio:{type:Date},den_gio:{type:Date},
|
|
7
|
+
so_lan:Number,diem_thuong:{type:Number,default:0},tk_km_no:{type:String},tk_km_co:{type:String},km_yn_for:String,id_cs:String,collection_cs:String,freeship:Schema.Types.Mixed,combo:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={ma_vt:validVt.existsVt,ma_dvt:validator.existsDvt};
|
|
8
|
+
const ctcpbhSchema=new global.Schema({ma_cp:{type:String,uppercase:!0,required:!0},dien_giai:{type:String,maxlength:1024},tien_cp_nt:{type:Number,default:0},tien_cp:{type:Number,default:0},line:{type:Number,default:0}}),so1Schema=new global.Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,maxlength:1024},ma_ct:{type:String,default:"SO1",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},so_ct:{type:String,uppercase:!0,trim:!0,maxlength:32},
|
|
9
|
+
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},trang_thai:{type:String,default:"1",maxlength:32},ma_kh:{type:String,uppercase:!0,maxlength:32},ten_kh:String,of_user:{type:String,maxlength:128},ma_kho:{type:String,uppercase:!0,maxlength:32},ten_kho:String,ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},user_nv_goi_hang:{type:String,maxlength:128},
|
|
10
|
+
ngay_goi_hang:Date,user_nv_giao_hang:{type:String,maxlength:128},ngay_giao_hang:Date,ngay_du_kien_nhan:Date,ngay_hoan_thanh:Date,ngay_tra_lai:Date,hinh_giao_hang:String,location:global.Schema.Types.Mixed,ten_nguoi_nhan:{type:String,maxlength:1024},dien_thoai:{type:String,maxlength:1024},email:{type:String,maxlength:1024},dia_chi:{type:String,maxlength:1024},xa_phuong:{type:String,maxlength:1024},quan_huyen:{type:String,maxlength:1024},tinh_thanh:{type:String,maxlength:1024},quoc_gia:{type:String,
|
|
11
|
+
default:"VN",maxlength:2},post_code:{type:String,maxlength:1024},note_ship:{type:String,maxlength:1024},pt_giao_hang:{type:String,default:"1",maxlength:1024},don_vi_vc:{type:String,maxlength:1024},ma_van_don:String,ma_kiem_soat:String,trang_thai_giao_hang:{type:String,maxlength:1024},ly_do_that_bai:{type:String,maxlength:1024},ly_do_huy:{type:String,maxlength:1024},ma_nv:String,user_nv:String,ma_kh_hoa_hong:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong:Number,tien_hoa_hong:Number,tk_no_hoa_hong:String,
|
|
12
|
+
tk_co_hoa_hong:String,tu_tinh_hoa_hong:Boolean,chuyen_ngay:Boolean,da_chuyen_hoa_hong:Boolean,user_gt:String,introduce_code:String,ma_kh_hoa_hong_gt:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,chuyen_ngay_gt:Boolean,da_chuyen_hoa_hong_gt:Boolean,user_ctv:String,ma_ctv:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ctv:Number,thu_nhap_ctv:Number,tk_cp_ctv:String,tk_cn_ctv:String,chuyen_ngay_ctv:Boolean,
|
|
13
|
+
da_chuyen_hoa_hong_ctv:Boolean,user_ql:String,ma_kh_hoa_hong_ql:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,chuyen_ngay_ql:Boolean,da_chuyen_hoa_hong_ql:Boolean,khong_tinh_lai_hoa_hong:Boolean,dien_giai:{type:String,default:"",maxlength:1024},exfields:global.Schema.Types.Mixed,stt_rec:String,ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},profile:global.Schema.Types.Mixed,discout_code:{type:String,
|
|
14
|
+
maxlength:32},id_cs_ck_hd:String,ty_le_ck_hd:{type:Number,default:0},tien_ck_hd:{type:Number,default:0},ma_freeship:String,tien_freeship:Number,tien_phi_vc:Number,sender_email:{type:String,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,da_tra:{type:Number,default:0},tien_con_lai:{type:Number,
|
|
15
|
+
default:0},pt_thanh_toan:{type:String,maxlength:1024},note_payment:{type:String,maxlength:1024},virtual_payment_client_url:{type:String,maxlength:2024},again_link:{type:String,maxlength:2024},payment_service:String,payment_id:String,payment_getway_lang:{type:String,maxlength:1024},details:{type:[detailSchema]},ctcpbhs:[ctcpbhSchema],shared:Boolean,gio:Number,ngay:Number,thang:Number,quy:Number,nam:Number,online:Boolean,id_afflink:String,user_afflink:String,status:{type:Boolean,default:!0},date_created:{type:Date,
|
|
16
|
+
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],id_client:String,listinfo_code:String});so1Schema.validate={ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,ma_kho:validVt.existsKho};
|
|
17
|
+
(global.configs||{}).createIndexes&&(so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,so_ct:-1}),so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,ma_kh:1}),so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,ma_kho:1}),so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,ma_bp:1}),so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,ma_nv:1}),so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,"details.ma_vt":1}),so1Schema.index({id_app:1,trang_thai:1,"details.id_cs":1}),so1Schema.index({id_app:1,trang_thai:1,"details.id_cs_ck":1}),so1Schema.index({id_app:1,
|
|
18
|
+
trang_thai:1,id_cs_ck_hd:1}),so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,trang_thai:1}),so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,trang_thai_giao_hang:1}),so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,user_nv_goi_hang:1}),so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,user_nv_giao_hang:1}),so1Schema.index({id_app:1,ma_ct:1,id_afflink:1}),so1Schema.index({id_app:1,ma_ct:1,user_afflink:1}),so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,date_created:-1}),so1Schema.index({id_app:1,status:1}),so1Schema.index({id_app:1,
|
|
19
|
+
online:1}),so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,user_nv:1}),so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,user_gt:1}),so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,user_ctv:1}),so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,user_ql:1}),so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,of_user:1}),so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,user_nv:1,user_gt:1,user_ctv:1,user_ql:1,of_user:1,user_created:1}),so1Schema.index({id_app:1,ma_ct:1,id_client:1}),so1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,
|
|
20
|
+
trang_thai:1,of_user:1,user_created:1,visible_to:1,visible_to_users:1}),so1Schema.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}),so1Schema.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,ma_kh:1}),so1Schema.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,ma_kho:1}),so1Schema.index({id_app:1,dien_giai:"text",so_ct:"text",
|
|
21
|
+
ma_kh:"text",ten_kh:"text",ma_kho:"text",ten_kho:"text"},{name:"so1_index_text"}));so1Schema.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=global.mongoose.models.so1||global.mongoose.model("so1",so1Schema);model.referenceKeys={_id:[{model:"socai",key:"id_ct_goc",error:"Phi\u1ebfu n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c ho\u1ea1ch to\u00e1n"}]};
|
|
22
|
+
module.exports=model;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const moment=require("moment"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new global.Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ma_dvt:{type:String,required:!0,maxlength:32},ton_kho:{type:Number,default:0},sl_xuat:{type:Number,default:0},px_gia_dd:{type:Boolean,default:!1},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},gia_ban:{type:Number,
|
|
2
|
+
default:0},gia_ban_nt:{type:Number,default:0},tien_hang:{type:Number,default:0},tien_hang_nt:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},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},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},gia_ban_thuc:{type:Number,default:0},ma_bp:{type:String,
|
|
3
|
+
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},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},tk_vt:{type:String,uppercase:!0,maxlength:32},tk_dt:{type:String,uppercase:!0,maxlength:32},tk_gv:{type:String,uppercase:!0,maxlength:32},tk_ck:{type:String,uppercase:!0,maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},
|
|
4
|
+
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},tien_evoucher_duoc_pb:{type:Number,default:0},exfields_detail:global.Schema.Types.Mixed,tasks:[Schema.Types.Mixed],days_of_week:[{index:Number,name:String,sel:Boolean,ghi_chu:String}],ngay_bat_dau:{type:Date},ngay_ket_thuc:{type:Date},tu_gio:{type:Date},den_gio:{type:Date},so_lan:Number,diem_thuong:{type:Number,
|
|
5
|
+
default:0},tk_km_no:{type:String},tk_km_co:{type:String},is_coin:Boolean,transferred:Boolean,wallet_receiver:String,line:{type:Number,default:0}});detailSchema.validate={ma_vt:validVt.existsVt,ma_dvt:validator.existsDvt};
|
|
6
|
+
const ctcpbhSchema=new global.Schema({ma_cp:{type:String,uppercase:!0,required:!0},dien_giai:{type:String,maxlength:1024},tien_cp_nt:{type:Number,default:0},tien_cp:{type:Number,default:0},line:{type:Number,default:0}}),so5Schema=new global.Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,maxlength:1024},ma_ct:{type:String,default:"SO5",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},so_ct:{type:String,uppercase:!0,trim:!0,maxlength:32},
|
|
7
|
+
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},trang_thai:{type:String,default:"1",maxlength:32},ma_kh:{type:String,uppercase:!0,maxlength:32},ten_kh:String,ma_kho:{type:String,uppercase:!0,maxlength:32},ten_kho:String,ten_nguoi_nhan:{type:String,maxlength:1024},dien_thoai:{type:String,maxlength:1024},email:{type:String,maxlength:1024},dia_chi:{type:String,
|
|
8
|
+
maxlength:1024},xa_phuong:{type:String,maxlength:1024},quan_huyen:{type:String,maxlength:1024},tinh_thanh:{type:String,maxlength:1024},quoc_gia:{type:String,default:"VN",maxlength:2},post_code:{type:String,maxlength:1024},location:global.Schema.Types.Mixed,note_ship:{type:String,maxlength:1024},pt_giao_hang:{type:String,default:"1",maxlength:1024},dich_vu_giao_hang:{type:String,maxlength:1024},trang_thai_giao_hang:{type:String,maxlength:1024},ma_kiem_soat:{type:String,maxlength:1024},ly_do_that_bai:{type:String,
|
|
9
|
+
maxlength:1024},ly_do_huy:{type:String,maxlength:1024},ngay_giao_hang:Date,ngay_hoan_thanh:Date,ngay_tra_lai:Date,user_nv_giao_hang:{type:String,maxlength:128},vi_tri_giao_hang:global.Schema.Types.Mixed,dien_giai:{type:String,default:"",maxlength:1024},exfields:global.Schema.Types.Mixed,stt_rec:String,ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},profile:global.Schema.Types.Mixed,discout_code:{type:String,maxlength:32},ty_le_ck_hd:{type:Number,default:0},tien_ck_hd:{type:Number,default:0},
|
|
10
|
+
sender_email:{type:String,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,da_tra:{type:Number,default:0},tien_con_lai:{type:Number,default:0},pt_thanh_toan:{type:String,maxlength:1024},note_payment:{type:String,maxlength:1024},virtual_payment_client_url:{type:String,maxlength:2024},again_link:{type:String,maxlength:2024},payment_service:String,
|
|
11
|
+
payment_id:String,payment_getway_lang:{type:String,maxlength:1024},details:{type:[detailSchema]},ctcpbhs:[ctcpbhSchema],shared:Boolean,gio:Number,ngay:Number,thang:Number,quy:Number,nam:Number,da_chuyen_token:Boolean,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]});
|
|
12
|
+
so5Schema.validate={ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,ma_kho:validVt.existsKho};
|
|
13
|
+
(global.configs||{}).createIndexes&&(so5Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1}),so5Schema.index({dien_giai:"text",so_ct:"text",ma_kh:"text",ten_kh:"text",ma_kho:"text",ten_kho:"text"},{name:"so5_index_text"}),so5Schema.index({ma_ct:1}),so5Schema.index({ma_kh:1}),so5Schema.index({ma_kho:1}),so5Schema.index({trang_thai:1}),so5Schema.index({user_nv_giao_hang:1}),so5Schema.index({user_created:1,date_created:-1}),so5Schema.index({date_updated:-1}),so5Schema.index({gio:1}),so5Schema.index({ngay:1}),
|
|
14
|
+
so5Schema.index({thang:1}),so5Schema.index({quy:1}),so5Schema.index({nam:-1}),so5Schema.index({status:1}),so5Schema.index({user_created:1,visible_to:1,visible_to_users:1}));so5Schema.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$$()});
|
|
15
|
+
const model=global.mongoose.models.so5||global.mongoose.model("so5",so5Schema);module.exports=model;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const moment=require("moment"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new global.Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ma_dvt:{type:String,required:!0,maxlength:32},ton_kho:{type:Number,default:0},sl_xuat:{type:Number,default:0},he_so_qd:{type:Number,default:1},sl_xuat_qd:Number,px_gia_dd:{type:Boolean,default:!1},gia_von:{type:Number,default:0},gia_von_nt:{type:Number,default:0},tien_xuat:{type:Number,default:0},tien_xuat_nt:{type:Number,
|
|
2
|
+
default:0},gia_mua:{type:Number,default:0},tien_xuat_tmp:{type:Number,default:0},gia_ban_ct_nt:{type:Number},gia_ban_ct:{type:Number},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,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},id_cs_ck:String,ty_le_ck:{type:Number,
|
|
3
|
+
default:0},tien_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},gia_ban_niem_yet_nt:{type:Number,default:0},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},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},tt_nt:{type:Number,default:0},tt:{type:Number,default:0},ty_le_hoa_hong:Number,tien_hoa_hong:Number,chuyen_ngay:Boolean,tk_no_hoa_hong:String,
|
|
4
|
+
tk_co_hoa_hong:String,ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,chuyen_ngay_gt:Boolean,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,ty_le_hoa_hong_ctv:Number,tien_hoa_hong_ctv:Number,chuyen_ngay_ctv:Boolean,tk_cn_ctv:String,tk_cp_ctv:String,ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,chuyen_ngay_ql:Boolean,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,gia_ban_thuc:{type:Number,default:0},ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},ma_phi:{type:String,uppercase:!0,
|
|
5
|
+
default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},tk_vt:{type:String,uppercase:!0,maxlength:32},tk_dt:{type:String,uppercase:!0,maxlength:32},tk_gv:{type:String,uppercase:!0,maxlength:32},tk_ck:{type:String,uppercase:!0,maxlength:32},ma_thue:String,ma_kho:{type:String,uppercase:!0,default:"",maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},
|
|
6
|
+
han_sd:{type:Date},ma_vt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},thuoc_tinh:Schema.Types.Mixed,tien_evoucher_duoc_pb:{type:Number,default:0},exfields_detail:global.Schema.Types.Mixed,tasks:[Schema.Types.Mixed],days_of_week:[{index:Number,name:String,sel:Boolean,ghi_chu:String}],ngay_bat_dau:{type:Date},ngay_ket_thuc:{type:Date},
|
|
7
|
+
tu_gio:{type:Date},den_gio:{type:Date},so_lan:Number,diem_thuong:{type:Number,default:0},tk_km_no:{type:String},tk_km_co:{type:String},km_yn_for:String,id_cs:String,collection_cs:String,freeship:Schema.Types.Mixed,combo:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={ma_vt:validVt.existsVt,ma_dvt:validator.existsDvt};
|
|
8
|
+
const ctcpbhSchema=new global.Schema({ma_cp:{type:String,uppercase:!0,required:!0},dien_giai:{type:String,maxlength:1024},tien_cp_nt:{type:Number,default:0},tien_cp:{type:Number,default:0},line:{type:Number,default:0}}),so9Schema=new global.Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,maxlength:1024},ma_ct:{type:String,default:"SO9",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},so_ct:{type:String,uppercase:!0,trim:!0,maxlength:32},
|
|
9
|
+
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},trang_thai:{type:String,default:"1",maxlength:32},ma_kh:{type:String,uppercase:!0,maxlength:32},ten_kh:String,of_user:{type:String,maxlength:128},ma_kho:{type:String,uppercase:!0,maxlength:32},ten_kho:String,ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},user_nv_goi_hang:{type:String,maxlength:128},
|
|
10
|
+
ngay_goi_hang:Date,user_nv_giao_hang:{type:String,maxlength:128},ngay_giao_hang:Date,ngay_hoan_thanh:Date,ngay_tra_lai:Date,vi_tri_giao_hang:global.Schema.Types.Mixed,ten_nguoi_nhan:{type:String,maxlength:1024},dien_thoai:{type:String,maxlength:1024},email:{type:String,maxlength:1024},dia_chi:{type:String,maxlength:1024},xa_phuong:{type:String,maxlength:1024},quan_huyen:{type:String,maxlength:1024},tinh_thanh:{type:String,maxlength:1024},quoc_gia:{type:String,default:"VN",maxlength:2},post_code:{type:String,
|
|
11
|
+
maxlength:1024},location:global.Schema.Types.Mixed,note_ship:{type:String,maxlength:1024},pt_giao_hang:{type:String,default:"1",maxlength:1024},dich_vu_giao_hang:{type:String,maxlength:1024},trang_thai_giao_hang:{type:String,maxlength:1024},ma_kiem_soat:{type:String,maxlength:1024},ly_do_that_bai:{type:String,maxlength:1024},ly_do_huy:{type:String,maxlength:1024},ma_nv:String,user_nv:String,ma_kh_hoa_hong:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong:Number,tien_hoa_hong:Number,tk_no_hoa_hong:String,
|
|
12
|
+
tk_co_hoa_hong:String,tu_tinh_hoa_hong:Boolean,chuyen_ngay:Boolean,da_chuyen_hoa_hong:Boolean,user_gt:String,introduce_code:String,ma_kh_hoa_hong_gt:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,chuyen_ngay_gt:Boolean,da_chuyen_hoa_hong_gt:Boolean,user_ctv:String,ma_ctv:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ctv:Number,thu_nhap_ctv:Number,tk_cp_ctv:String,tk_cn_ctv:String,chuyen_ngay_ctv:Boolean,
|
|
13
|
+
da_chuyen_hoa_hong_ctv:Boolean,user_ql:String,ma_kh_hoa_hong_ql:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,chuyen_ngay_ql:Boolean,da_chuyen_hoa_hong_ql:Boolean,dien_giai:{type:String,default:"",maxlength:1024},exfields:global.Schema.Types.Mixed,stt_rec:String,ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},profile:global.Schema.Types.Mixed,discout_code:{type:String,maxlength:32},ty_le_ck_hd:{type:Number,
|
|
14
|
+
default:0},tien_ck_hd:{type:Number,default:0},ma_freeship:String,tien_freeship:Number,tien_phi_vc:Number,sender_email:{type:String,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,da_tra:{type:Number,default:0},tien_con_lai:{type:Number,default:0},pt_thanh_toan:{type:String,maxlength:1024},
|
|
15
|
+
note_payment:{type:String,maxlength:1024},virtual_payment_client_url:{type:String,maxlength:2024},again_link:{type:String,maxlength:2024},payment_service:String,payment_id:String,payment_getway_lang:{type:String,maxlength:1024},details:{type:[detailSchema]},ctcpbhs:[ctcpbhSchema],shared:Boolean,gio:Number,ngay:Number,thang:Number,quy:Number,nam:Number,online:Boolean,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,
|
|
16
|
+
default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],id_client:String,listinfo_code:String});so9Schema.validate={ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,ma_kho:validVt.existsKho};
|
|
17
|
+
(global.configs||{}).createIndexes&&(so9Schema.index({id_app:1,so_ct:-1,ngay_ct:-1}),so9Schema.index({dien_giai:"text",so_ct:"text",ma_kh:"text",ten_kh:"text",ma_kho:"text",ten_kho:"text"},{name:"so9_index_text"}),so9Schema.index({ma_ct:1}),so9Schema.index({ma_kh:1}),so9Schema.index({ma_kho:1}),so9Schema.index({ma_bp:1}),so9Schema.index({ma_nv:1}),so9Schema.index({"details.ma_vt":1}),so9Schema.index({"details.id_cs":1}),so9Schema.index({trang_thai:1}),so9Schema.index({trang_thai_giao_hang:1}),so9Schema.index({user_nv_goi_hang:1}),
|
|
18
|
+
so9Schema.index({user_nv_giao_hang:1}),so9Schema.index({user_created:1,date_created:-1}),so9Schema.index({date_updated:-1}),so9Schema.index({gio:1}),so9Schema.index({ngay:1}),so9Schema.index({thang:1}),so9Schema.index({quy:1}),so9Schema.index({nam:-1}),so9Schema.index({status:1}),so9Schema.index({online:1}),so9Schema.index({user_created:1,visible_to:1,visible_to_users:1}),so9Schema.index({user_nv:1}),so9Schema.index({user_gt:1}),so9Schema.index({user_ctv:1}),so9Schema.index({user_ql:1}),so9Schema.index({of_user:1}));
|
|
19
|
+
so9Schema.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=global.mongoose.models.so9||global.mongoose.model("so9",so9Schema);model.referenceKeys={_id:[{model:"socai",key:"id_ct_goc",error:"Phi\u1ebfu n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c ho\u1ea1ch to\u00e1n"}]};module.exports=model;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const moment=require("moment"),{createSocaiTC}=require("../libs/utils"),socaiSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024,trim:!0},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_gd:{type:String,default:"0",maxlength:32,trim:!0},ngay_ct:{type:Date,required:!0},ngay_ct_full:{type:Date},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ngay_hd:{type:Date},
|
|
2
|
+
so_hd:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_no:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},tk_co:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_kh_no:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_kh_co:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_nt:{type:String,default:"VND",required:!0,uppercase:!0,maxlength:32,trim:!0},ty_gia:{type:Number,default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},dien_giai:{type:String,
|
|
3
|
+
default:"",maxlength:1024},ong_ba:{type:String,default:"",maxlength:1024},ma_kho:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_nv_giao_hang:{type:String,default:"",
|
|
4
|
+
uppercase:!0,maxlength:32,trim:!0},phu_xe:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_ca:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_cp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},
|
|
5
|
+
ma_sp:{type:String,default:"",uppercase:!0,maxlength:1024,trim:!0},ma_vt:{type:String,default:"",uppercase:!0,maxlength:1024,trim:!0},ma_dvt_sp:{type:String,maxlength:32,trim:!0},ma_tt1_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_cum_chi_tiet:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ten_cum_chi_tiet:{type:String,default:"",
|
|
6
|
+
maxlength:1024,trim:!0},ma_cong_doan:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},id_lenhsx:{type:String,maxlength:1024},id_cs:{type:String,maxlength:1024},id_cs_ck:{type:String,maxlength:1024},id_link:String,ma_ct_link:String,so_ct_link:String,id_ct_goc:String,ma_ct_goc:String,so_ct_goc:String,ngay_ct_goc:Date,pt_thanh_toan_goc:String,pt_thanh_toan:String,pt_thanh_toan2:String,trang_thai:{type:String,maxlength:32},nh_dk:{type:Number,default:0},id_kbbtpb:{type:String,maxlength:1024},
|
|
7
|
+
exfields:Schema.Types.Mixed,exfields_detail:Schema.Types.Mixed,flag:{type:String,maxlength:1024},gio:Number,ngay:Number,thang:Number,quy:Number,nam:Number,ma_kenh:String,ma_td1:Schema.Types.Mixed,ma_td2:Schema.Types.Mixed,ma_td3:Schema.Types.Mixed,ma_td4:Schema.Types.Mixed,ma_td5:Schema.Types.Mixed,ma_td6:Schema.Types.Mixed,ma_td7:Schema.Types.Mixed,ma_td8:Schema.Types.Mixed,ma_td9:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,
|
|
8
|
+
default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},id_client:String,listinfo_code:String},{toJSON:{virtuals:!0}});
|
|
9
|
+
(global.configs||{}).createIndexes&&(socaiSchema.index({id_app:1}),socaiSchema.index({id_app:1,ma_dvcs:1}),socaiSchema.index({id_app:1,ma_ct:1,so_ct:1}),socaiSchema.index({id_app:1,ma_ct:1}),socaiSchema.index({id_app:1,ma_nt:1,ngay_ct:-1}),socaiSchema.index({id_app:1,so_ct:1,ngay_ct:-1}),socaiSchema.index({id_app:1,gio:1}),socaiSchema.index({id_app:1,ngay:1}),socaiSchema.index({id_app:1,thang:1}),socaiSchema.index({id_app:1,quy:1}),socaiSchema.index({id_app:1,nam:-1}),socaiSchema.index({id_ct:1}),
|
|
10
|
+
socaiSchema.index({id_app:1,id_ct:1}),socaiSchema.index({id_app:1,ma_ct_goc:1,id_ct_goc:1}),socaiSchema.index({id_app:1,tk_no:1,tk_co:1,ma_bp:1,ngay_ct:-1}),socaiSchema.index({id_app:1,tk_no:1,tk_co:1,ma_phi:1,ngay_ct:-1}),socaiSchema.index({id_app:1,tk_no:1,tk_co:1,ma_hd:1,ngay_ct:-1}),socaiSchema.index({id_app:1,tk_no:1,tk_co:1,ma_dt:1,ngay_ct:-1}),socaiSchema.index({id_app:1,tk_no:1,tk_co:1,ma_nv:1,ngay_ct:-1}),socaiSchema.index({id_app:1,tk_no:1,tk_co:1,ma_nv:1,ma_nv_giao_hang:1,phu_xe:1,ngay_ct:-1}),
|
|
11
|
+
socaiSchema.index({id_app:1,tk_no:1,tk_co:1,ma_sp:1,ngay_ct:-1}),socaiSchema.index({id_app:1,tk_no:1,tk_co:1,ma_kho:1,ma_vt:1,ngay_ct:-1}),socaiSchema.index({id_app:1,tk_no:1,tk_co:1,ma_kenh:1,ngay_ct:-1}),socaiSchema.index({id_app:1,tk_no:1,tk_co:1,ma_td1:1,ngay_ct:-1}),socaiSchema.index({id_app:1,tk_no:1,tk_co:1,ma_td2:1,ngay_ct:-1}),socaiSchema.index({id_app:1,tk_no:1,tk_co:1,ma_td3:1,ngay_ct:-1}),socaiSchema.index({id_app:1,tk_no:1,tk_co:1,ma_vt:1,ma_tt1:1,ma_tt2:1,ma_tt3:1,ma_lo:1,han_sd:-1,
|
|
12
|
+
ngay_ct:-1}),socaiSchema.index({id_app:1,id_lenhsx:1}),socaiSchema.index({id_app:1,id_link:1}),socaiSchema.index({id_app:1,id_cs:1}),socaiSchema.index({id_app:1,id_cs_ck:1}),socaiSchema.index({id_app:1,id_ct:1,so_ct:-1,ma_kh_no:1,ma_kh_co:1,tk_no:1,tk_co:1,ngay_ct:-1}),socaiSchema.index({id_app:1,ma_kh_no:1,ma_kh_co:1,tk_no:1,tk_co:1,ngay_ct:-1}),socaiSchema.index({id_app:1,tk_no:1,ngay_ct:-1}),socaiSchema.index({id_app:1,tk_co:1,ngay_ct:-1}),socaiSchema.index({id_app:1,tk_no:1,tk_co:1,ngay_ct_full:-1}),
|
|
13
|
+
socaiSchema.index({id_app:1,tk_no:1,ma_kho:1,ngay_ct_full:-1}),socaiSchema.index({id_app:1,tk_co:1,ma_kho:1,ngay_ct_full:-1}),socaiSchema.index({id_app:1,date_created:-1}));
|
|
14
|
+
const {onAfterCommit,getCurrentSession,getCurrentStore}=require("../libs/sessionContext"),Logger=global.Logger||console,handleCreateSocaiTc=async $data$$=>{if($data$$)try{let $params$$=$data$$;typeof $data$$==="string"&&($params$$=JSON.parse($data$$));$params$$.id_app&&$params$$.ngay_ct&&await createSocaiTC($params$$.id_app,$params$$.ngay_ct,$params$$.ngay_ct)}catch($e$$){Logger.error("handleCreateSocaiTc error",$data$$,$e$$)}};
|
|
15
|
+
socaiSchema.pre("save",function($next$$){this.tien=this.ma_nt=="VND"?this.tien_nt=Math.roundBy(this.tien_nt,0):Math.roundBy(this.tien,0);this.ngay_ct_full=new Date(this.ngay_ct);var $ngay_ct_session$$=moment(this.ngay_ct);this.gio=$ngay_ct_session$$.get("hours");this.ngay=$ngay_ct_session$$.get("dates");this.quy=$ngay_ct_session$$.get("quarters");this.thang=$ngay_ct_session$$.get("months")+1;this.nam=$ngay_ct_session$$.get("year");this.ngay_ct=$ngay_ct_session$$.startOf("date").toDate();$ngay_ct_session$$=
|
|
16
|
+
getCurrentSession();const $store$$=getCurrentStore();$ngay_ct_session$$&&$store$$&&(this.$__param_store=$store$$,this.$__param_session=$store$$.session);$next$$()});
|
|
17
|
+
socaiSchema.post("save",async function($doc$$){const $capturedStore$$=this.$__param_store,$capturedSession$$=this.$__param_session,$handleSaveAfterCommit$$=async()=>{try{if(["SO1","HD2","HD1","PBL"].includes($doc$$.ma_ct)){const $updateCustomerLastBuy$$=async $ma_kh$$=>{if($ma_kh$$){var $dhgn$$=await global.getModel("socai").findOne({ma_kh_no:$ma_kh$$,id_app:$doc$$.id_app},{ngay_ct:1}).sort({ngay_ct:-1}).lean();if($dhgn$$){const $so_ngay_da_mua$$=moment().diff(moment($dhgn$$.ngay_ct),"days");await global.getModel("customer").updateOne({ma_kh:$ma_kh$$,
|
|
18
|
+
id_app:$doc$$.id_app},{ngay_mua_gan_nhat:$dhgn$$.ngay_ct,so_ngay_da_mua:$so_ngay_da_mua$$})}}},$promises$$=[];$doc$$.ma_kh_no&&$promises$$.push($updateCustomerLastBuy$$($doc$$.ma_kh_no));$doc$$.ma_kh_co&&$doc$$.ma_kh_co!==$doc$$.ma_kh_no&&$promises$$.push($updateCustomerLastBuy$$($doc$$.ma_kh_co));await Promise.all($promises$$)}await handleCreateSocaiTc({id_app:$doc$$.id_app,ngay_ct:$doc$$.ngay_ct})}catch($e$$){Logger.error("\u274c[socai] Error in handleSaveAfterCommit (socai):",$e$$)}};$capturedSession$$&&
|
|
19
|
+
$capturedStore$$?onAfterCommit($handleSaveAfterCommit$$,"X\u1eed l\u00fd s\u1ef1 ki\u1ec7n sau khi l\u01b0u socai",$capturedSession$$,$capturedStore$$):await $handleSaveAfterCommit$$()});
|
|
20
|
+
async function preDelete($next$$){try{let $query$$=this.getQuery(),$deletedDocsStr$$=(await global.getModel("socai").find($query$$,{id_app:1,ngay_ct:1}).lean()).map($r$$=>JSON.stringify({id_app:$r$$.id_app,ngay_ct:$r$$.ngay_ct}));this.$__deletedDocs=[...(new Set($deletedDocsStr$$))];const $session$$=this.options?.session||getCurrentSession(),$store$$=getCurrentStore();$session$$&&$store$$&&(this.$__param_store=$store$$,this.$__param_session=$store$$.session);$next$$()}catch($e$$){Logger.error("Error in socai preDelete",
|
|
21
|
+
$e$$),$next$$($e$$)}}
|
|
22
|
+
async function postDelete(){const $capturedStore$$=this.$__param_store,$capturedSession$$=this.$__param_session,$deletedDocs$$=this.$__deletedDocs;if($deletedDocs$$?.length){const $handleSaveAfterCommit$$=async()=>{const $promises$$=$deletedDocs$$.map($docStr$$=>handleCreateSocaiTc($docStr$$));await Promise.all($promises$$)};if($capturedSession$$&&$capturedStore$$)onAfterCommit($handleSaveAfterCommit$$,"X\u1eed l\u00fd s\u1ef1 ki\u1ec7n sau khi x\u00f3a socai",$capturedSession$$,$capturedStore$$);
|
|
23
|
+
else try{await $handleSaveAfterCommit$$()}catch($e$$){Logger.error("\u274c[socai] post delete immediate error:",$e$$)}}}
|
|
24
|
+
const handleInsertMany=async function($docs$$){const $session$$=getCurrentSession(),$store$$=getCurrentStore(),$handleBatch$$=async()=>{let $itemsToProcess$$=$docs$$.map($d$$=>({id_app:$d$$.id_app,ngay_ct:$d$$.ngay_ct}));for(let $item$$ of $itemsToProcess$$)await handleCreateSocaiTc($item$$)};if($session$$&&$store$$)onAfterCommit($handleBatch$$,"X\u1eed l\u00fd insertMany",$session$$,$store$$);else try{await $handleBatch$$()}catch($e$$){Logger.error("\u274c[socai] insertMany hook error:",$e$$)}};
|
|
25
|
+
socaiSchema.post("insertMany",handleInsertMany);socaiSchema.pre("deleteMany",preDelete);socaiSchema.post("deleteMany",postDelete);socaiSchema.pre("deleteOne",preDelete);socaiSchema.post("deleteOne",postDelete);const model=mongoose.models.socai||mongoose.model("socai",socaiSchema);if((global.configs||{}).createIndexes)model.on("index",async function($err$$){$err$$?Logger.error("socai index error",$err$$):console.info("socai indexing complete")});
|
|
26
|
+
model.getArise=async($query$$,$options$$={fields:void 0})=>{let $condition$$={ngay_ct:{$gte:$query$$.tu_ngay,$lte:$query$$.den_ngay},id_app:$query$$.id_app};$query$$.ma_dvcs&&($condition$$.ma_dvcs=$query$$.ma_dvcs);$query$$.ma_bp&&($condition$$.ma_bp=$query$$.ma_bp);$query$$.ma_hd&&($condition$$.ma_hd=$query$$.ma_hd);$query$$.ma_dt&&($condition$$.ma_dt=$query$$.ma_dt);$query$$.ma_sp&&($condition$$.ma_sp=$query$$.ma_sp);$query$$.ma_nv&&($condition$$.ma_nv=$query$$.ma_nv);$query$$.ma_phi&&($condition$$.ma_phi=
|
|
27
|
+
$query$$.ma_phi);$query$$.ma_kho&&($condition$$.ma_kho=$query$$.ma_kho);if($query$$.tk_no&&Array.isArray($query$$.tk_no)){var $tk_co_tk_no$$=$query$$.tk_no.reg();$condition$$.tk_no=$query$$.giam_tru_no?{$not:new RegExp($tk_co_tk_no$$)}:{$regex:$tk_co_tk_no$$,$options:"i"}}$query$$.tk_co&&Array.isArray($query$$.tk_co)&&($tk_co_tk_no$$=$query$$.tk_co.reg(),$condition$$.tk_co=$query$$.giam_tru_co&&$tk_co_tk_no$$?{$not:new RegExp($tk_co_tk_no$$)}:{$regex:$tk_co_tk_no$$,$options:"i"});return await model.find($condition$$,
|
|
28
|
+
$options$$.fields).lean()};module.exports=model;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const moment=require("moment"),{onAfterCommit,getCurrentSession}=require("../libs/sessionContext"),socainppSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024,trim:!0},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_gd:{type:String,default:"0",maxlength:32,trim:!0},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ngay_hd:{type:Date},
|
|
2
|
+
so_hd:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_no:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},tk_co:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_kh_no:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_kh_co:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_nt:{type:String,default:"VND",required:!0,uppercase:!0,maxlength:32,trim:!0},ty_gia:{type:Number,default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},dien_giai:{type:String,
|
|
3
|
+
default:"",maxlength:1024},ong_ba:{type:String,default:"",maxlength:1024},ma_kho:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_lo:{type:String,default:"",uppercase:!0,
|
|
4
|
+
maxlength:32,trim:!0},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_ca:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_cp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_sp:{type:String,default:"",uppercase:!0,maxlength:1024,trim:!0},ma_vt:{type:String,default:"",uppercase:!0,maxlength:1024,trim:!0},ma_dvt_sp:{type:String,
|
|
5
|
+
maxlength:32,trim:!0},ma_tt1_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_cum_chi_tiet:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ten_cum_chi_tiet:{type:String,default:"",maxlength:1024,trim:!0},ma_cong_doan:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},id_lenhsx:{type:String,maxlength:1024},id_cs:{type:String,maxlength:1024},
|
|
6
|
+
id_link:String,ma_ct_link:String,so_ct_link:String,id_ct_goc:String,ma_ct_goc:String,so_ct_goc:String,ngay_ct_goc:Date,pt_thanh_toan_goc:String,pt_thanh_toan:String,pt_thanh_toan2:String,trang_thai:{type:String,maxlength:32},nh_dk:{type:Number,default:0},id_kbbtpb:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,exfields_detail:Schema.Types.Mixed,flag:{type:String,maxlength:1024},gio:Number,ngay:Number,thang:Number,quy:Number,nam:Number,ma_kenh:String,ma_td1:Schema.Types.Mixed,ma_td2:Schema.Types.Mixed,
|
|
7
|
+
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,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},id_client:String,listinfo_code:String},{toJSON:{virtuals:!0}});
|
|
8
|
+
socainppSchema.pre("save",function($next$$){this.tien=this.ma_nt=="VND"?this.tien_nt=Math.roundBy(this.tien_nt,0):Math.roundBy(this.tien,0);let $ngay_ct$$=moment(this.ngay_ct);this.gio=$ngay_ct$$.get("hours");this.ngay=$ngay_ct$$.get("dates");this.quy=$ngay_ct$$.get("quarters");this.thang=$ngay_ct$$.get("months")+1;this.nam=$ngay_ct$$.get("year");this.ngay_ct=$ngay_ct$$.startOf("date").toDate();$next$$()});
|
|
9
|
+
(global.configs||{}).createIndexes&&(socainppSchema.index({id_app:1}),socainppSchema.index({id_app:1,ma_dvcs:1}),socainppSchema.index({id_app:1,ma_ct:1,so_ct:1}),socainppSchema.index({id_app:1,ma_ct:1}),socainppSchema.index({id_app:1,ngay_ct:-1,ma_nt:1}),socainppSchema.index({id_app:1,so_ct:1,ngay_ct:-1}),socainppSchema.index({id_app:1,gio:1}),socainppSchema.index({id_app:1,ngay:1}),socainppSchema.index({id_app:1,thang:1}),socainppSchema.index({id_app:1,quy:1}),socainppSchema.index({id_app:1,nam:-1}),
|
|
10
|
+
socainppSchema.index({id_ct:1}),socainppSchema.index({id_app:1,id_ct:1}),socainppSchema.index({id_app:1,ma_ct_goc:1,id_ct_goc:1}),socainppSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_bp:1}),socainppSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_phi:1}),socainppSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_hd:1}),socainppSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_dt:1}),socainppSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_nv:1}),socainppSchema.index({id_app:1,
|
|
11
|
+
ngay_ct:-1,tk_no:1,tk_co:1,ma_sp:1}),socainppSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_kho:1,ma_vt:1}),socainppSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_kenh:1}),socainppSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_td1:1}),socainppSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_td2:1}),socainppSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_td3:1}),socainppSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_vt:1,ma_tt1:1,ma_tt2:1,ma_tt3:1,ma_lo:1,han_sd:-1}),
|
|
12
|
+
socainppSchema.index({id_app:1,id_lenhsx:1}),socainppSchema.index({id_app:1,id_link:1}),socainppSchema.index({id_app:1,id_cs:1}),socainppSchema.index({id_app:1,id_cs_ck:1}),socainppSchema.index({id_app:1,id_ct:1,so_ct:-1,ngay_ct:-1,ma_kh_no:1,ma_kh_co:1,tk_no:1,tk_co:1}),socainppSchema.index({id_app:1,ngay_ct:-1,ma_kh_no:1,ma_kh_co:1,tk_no:1,tk_co:1}),socainppSchema.index({id_app:1,ngay_ct:-1,tk_no:1}),socainppSchema.index({id_app:1,ngay_ct:-1,tk_co:1}),socainppSchema.index({id_app:1,date_created:-1}));
|
|
13
|
+
socainppSchema.post("save",async function($doc$$){const $session$$=$doc$$.$session()||getCurrentSession(),$handleSaveAfterCommit$$=async()=>{if(["SO1","HD2","HD1","PBL"].indexOf($doc$$.ma_ct)>=0){if($doc$$.ma_kh_no){var $dhgn_dhgn$$=await global.getModel("socainpp").findOne({ma_kh:$doc$$.ma_kh_no,id_app:$doc$$.id_app},{ngay_ct:1}).sort({ngay_ct:-1});if($dhgn_dhgn$$){var $so_ngay_da_mua_so_ngay_da_mua$$=moment().diff(moment($dhgn_dhgn$$.ngay_ct),"days");model.updateOne({ma_kh:$doc$$.ma_kh_no,id_app:$doc$$.id_app},
|
|
14
|
+
{ngay_mua_gan_nhat:$dhgn_dhgn$$.ngay_ct,so_ngay_da_mua:$so_ngay_da_mua_so_ngay_da_mua$$})}}$doc$$.ma_kh_co&&$doc$$.ma_kh_co!=$doc$$.ma_kh_no&&($dhgn_dhgn$$=await global.getModel("socainpp").findOne({ma_kh:$doc$$.ma_kh_co,id_app:$doc$$.id_app},{ngay_ct:1}).sort({ngay_ct:-1}))&&($so_ngay_da_mua_so_ngay_da_mua$$=moment().diff(moment($dhgn_dhgn$$.ngay_ct),"days"),model.updateOne({ma_kh:$doc$$.ma_kh_co,id_app:$doc$$.id_app},{ngay_mua_gan_nhat:$dhgn_dhgn$$.ngay_ct,so_ngay_da_mua:$so_ngay_da_mua_so_ngay_da_mua$$}))}};
|
|
15
|
+
if($session$$)onAfterCommit($handleSaveAfterCommit$$,"X\u1eed l\u00fd s\u1ef1 ki\u1ec7n sau khi l\u01b0u socainpp",$session$$);else try{await $handleSaveAfterCommit$$()}catch($e$$){Logger.error("\u274c[socainpp] post save immediate error:",$e$$)}});const model=mongoose.models.socainpp||mongoose.model("socainpp",socainppSchema);
|
|
16
|
+
model.getArise=async($query$$,$options$$={fields:void 0})=>{let $condition$$={ngay_ct:{$gte:$query$$.tu_ngay,$lte:$query$$.den_ngay},id_app:$query$$.id_app};$query$$.ma_dvcs&&($condition$$.ma_dvcs=$query$$.ma_dvcs);$query$$.ma_bp&&($condition$$.ma_bp=$query$$.ma_bp);$query$$.ma_hd&&($condition$$.ma_hd=$query$$.ma_hd);$query$$.ma_dt&&($condition$$.ma_dt=$query$$.ma_dt);$query$$.ma_sp&&($condition$$.ma_sp=$query$$.ma_sp);$query$$.ma_nv&&($condition$$.ma_nv=$query$$.ma_nv);$query$$.ma_phi&&($condition$$.ma_phi=
|
|
17
|
+
$query$$.ma_phi);$query$$.ma_kho&&($condition$$.ma_kho=$query$$.ma_kho);if($query$$.tk_no&&Array.isArray($query$$.tk_no)){var $tk_co_tk_no$$=$query$$.tk_no.reg();$condition$$.tk_no=$query$$.giam_tru_no?{$not:new RegExp($tk_co_tk_no$$)}:{$regex:$tk_co_tk_no$$,$options:"i"}}$query$$.tk_co&&Array.isArray($query$$.tk_co)&&($tk_co_tk_no$$=$query$$.tk_co.reg(),$condition$$.tk_co=$query$$.giam_tru_co&&$tk_co_tk_no$$?{$not:new RegExp($tk_co_tk_no$$)}:{$regex:$tk_co_tk_no$$,$options:"i"});return await model.find($condition$$,
|
|
18
|
+
$options$$.fields).lean()};module.exports=model;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
const socaitcSchema=new Schema({id_app:{type:String,required:!1,maxlength:1024},ma_dvcs:{type:String,required:!1,maxlength:1024},ma_ct:{type:String,required:!1,uppercase:!0,maxlength:32,trim:!0},ma_gd:{type:String,default:"0",maxlength:32,trim:!0},ngay_ct:{type:Date,required:!1},tk_no:{type:String,required:!1,uppercase:!0,maxlength:32,trim:!0},ma_kh_no:String,tk_co:{type:String,required:!1,uppercase:!0,maxlength:32,trim:!0},ma_kh_co:String,ma_nt:{type:String,default:"VND",required:!1,uppercase:!0,
|
|
2
|
+
maxlength:32,trim:!0},ty_gia:{type:Number,default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_kenh:String,ma_cp:String,ma_kho:String,ma_sp:String,ma_cong_doan:String,
|
|
3
|
+
id_client:String,listinfo_code:String},{toJSON:{virtuals:!0}});
|
|
4
|
+
(global.configs||{}).createIndexes&&(socaitcSchema.index({id_app:1}),socaitcSchema.index({id_app:1,ma_dvcs:1}),socaitcSchema.index({id_app:1,ma_ct:1}),socaitcSchema.index({id_app:1,ngay_ct:-1,ma_nt:1}),socaitcSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_bp:1}),socaitcSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_phi:1}),socaitcSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_hd:1}),socaitcSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_dt:1}),socaitcSchema.index({id_app:1,
|
|
5
|
+
ngay_ct:-1,tk_no:1,tk_co:1,ma_nv:1}),socaitcSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_cp:1}),socaitcSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_kenh:1}),socaitcSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_sp:1,ma_cong_doan:1}),socaitcSchema.index({id_app:1,id_ct:1,so_ct:-1,ngay_ct:-1,ma_kh_no:1,ma_kh_co:1,tk_no:1,tk_co:1}),socaitcSchema.index({id_app:1,ngay_ct:-1,ma_kh_no:1,ma_kh_co:1,tk_no:1,tk_co:1}),socaitcSchema.index({id_app:1,ngay_ct:-1,tk_no:1}),socaitcSchema.index({id_app:1,
|
|
6
|
+
ngay_ct:-1,tk_co:1}));const model=mongoose.models.socaitc||mongoose.model("socaitc",socaitcSchema);if((global.configs||{}).createIndexes)model.on("index",async function($err$$){$err$$?Logger.error("socaitc index error",$err$$):console.info("socaitc indexing complete")});module.exports=model;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const moment=require("moment"),socaitmpSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_gd:{type:String,default:"0",maxlength:32,trim:!0},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ngay_hd:{type:Date},so_hd:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_no:{type:String,
|
|
2
|
+
required:!0,uppercase:!0,maxlength:32,trim:!0},tk_co:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_kh_no:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_kh_co:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_nt:{type:String,default:"VND",required:!0,uppercase:!0,maxlength:32,trim:!0},ty_gia:{type:Number,default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},dien_giai:{type:String,default:"",maxlength:1024},ong_ba:{type:String,default:"",
|
|
3
|
+
maxlength:1024},ma_kho:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},han_sd:{type:Date},ma_tt1:{type:String,
|
|
4
|
+
default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_ca:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_cp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_sp:{type:String,default:"",uppercase:!0,maxlength:1024,trim:!0},ma_vt:{type:String,default:"",uppercase:!0,maxlength:1024,trim:!0},ma_dvt_sp:{type:String,maxlength:32,trim:!0},ma_tt1_sp:{type:String,default:"",
|
|
5
|
+
uppercase:!0,maxlength:32,trim:!0},ma_tt2_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_cum_chi_tiet:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ten_cum_chi_tiet:{type:String,default:"",maxlength:1024},ma_cong_doan:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},id_lenhsx:{type:String,maxlength:1024},id_link:String,ma_ct_link:String,so_ct_link:String,trang_thai:{type:String,maxlength:32},
|
|
6
|
+
nh_dk:{type:Number,default:0},id_kbbtpb:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,exfields_detail:Schema.Types.Mixed,flag:{type:String,maxlength:1024},gio:Number,ngay:Number,thang:Number,quy:Number,nam:Number,ma_kenh:String,ma_td1:Schema.Types.Mixed,ma_td2:Schema.Types.Mixed,ma_td3:Schema.Types.Mixed,ma_td4:Schema.Types.Mixed,ma_td5:Schema.Types.Mixed,ma_td6:Schema.Types.Mixed,ma_td7:Schema.Types.Mixed,ma_td8:Schema.Types.Mixed,ma_td9:Schema.Types.Mixed,pt_thanh_toan:String,pt_thanh_toan2:String,
|
|
7
|
+
status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},id_client:String,listinfo_code:String},{toJSON:{virtuals:!0}});
|
|
8
|
+
socaitmpSchema.pre("save",function($next$$){this.tien=this.ma_nt=="VND"?this.tien_nt=Math.roundBy(this.tien_nt,0):Math.roundBy(this.tien,0);let $ngay_ct$$=moment(this.ngay_ct);this.gio=$ngay_ct$$.get("hours");this.ngay=$ngay_ct$$.get("dates");this.quy=$ngay_ct$$.get("quarters");this.thang=$ngay_ct$$.get("months")+1;this.nam=$ngay_ct$$.get("year");this.ngay_ct=$ngay_ct$$.startOf("date").toDate();$next$$()});
|
|
9
|
+
(global.configs||{}).createIndexes&&(socaitmpSchema.index({id_app:1}),socaitmpSchema.index({id_app:1,ma_dvcs:1}),socaitmpSchema.index({id_app:1,ma_ct:1,so_ct:1}),socaitmpSchema.index({id_app:1,ma_ct:1}),socaitmpSchema.index({id_app:1,ngay_ct:-1,ma_nt:1}),socaitmpSchema.index({id_app:1,so_ct:1,ngay_ct:-1}),socaitmpSchema.index({id_app:1,gio:1}),socaitmpSchema.index({id_app:1,ngay:1}),socaitmpSchema.index({id_app:1,thang:1}),socaitmpSchema.index({id_app:1,quy:1}),socaitmpSchema.index({id_app:1,nam:-1}),
|
|
10
|
+
socaitmpSchema.index({id_ct:1}),socaitmpSchema.index({id_app:1,id_ct:1}),socaitmpSchema.index({id_app:1,ma_ct_goc:1,id_ct_goc:1}),socaitmpSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_bp:1}),socaitmpSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_phi:1}),socaitmpSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_hd:1}),socaitmpSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_dt:1}),socaitmpSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_nv:1}),socaitmpSchema.index({id_app:1,
|
|
11
|
+
ngay_ct:-1,tk_no:1,tk_co:1,ma_sp:1}),socaitmpSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_kho:1,ma_vt:1}),socaitmpSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_kenh:1}),socaitmpSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_td1:1}),socaitmpSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_td2:1}),socaitmpSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_td3:1}),socaitmpSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_vt:1,ma_tt1:1,ma_tt2:1,ma_tt3:1,ma_lo:1,han_sd:-1}),
|
|
12
|
+
socaitmpSchema.index({id_app:1,id_lenhsx:1}),socaitmpSchema.index({id_app:1,id_link:1}),socaitmpSchema.index({id_app:1,id_cs:1}),socaitmpSchema.index({id_app:1,id_cs_ck:1}),socaitmpSchema.index({id_app:1,id_ct:1,so_ct:-1,ngay_ct:-1,ma_kh_no:1,ma_kh_co:1,tk_no:1,tk_co:1}),socaitmpSchema.index({id_app:1,ngay_ct:-1,ma_kh_no:1,ma_kh_co:1,tk_no:1,tk_co:1}),socaitmpSchema.index({id_app:1,ngay_ct:-1,tk_no:1}),socaitmpSchema.index({id_app:1,ngay_ct:-1,tk_co:1}),socaitmpSchema.index({id_app:1,date_created:-1}));
|
|
13
|
+
const model=mongoose.models.socaitmp||mongoose.model("socaitmp",socaitmpSchema);
|
|
14
|
+
model.getArise=async($query$$,$options$$={fields:void 0})=>{let $condition$$={ngay_ct:{$gte:$query$$.tu_ngay,$lte:$query$$.den_ngay},id_app:$query$$.id_app};$query$$.ma_dvcs&&($condition$$.ma_dvcs=$query$$.ma_dvcs);$query$$.ma_bp&&($condition$$.ma_bp=$query$$.ma_bp);$query$$.ma_hd&&($condition$$.ma_hd=$query$$.ma_hd);$query$$.ma_dt&&($condition$$.ma_dt=$query$$.ma_dt);$query$$.ma_sp&&($condition$$.ma_sp=$query$$.ma_sp);$query$$.ma_nv&&($condition$$.ma_nv=$query$$.ma_nv);$query$$.ma_phi&&($condition$$.ma_phi=
|
|
15
|
+
$query$$.ma_phi);$query$$.ma_kho&&($condition$$.ma_kho=$query$$.ma_kho);if($query$$.tk_no&&Array.isArray($query$$.tk_no)){var $tk_co_tk_no$$=$query$$.tk_no.reg();$condition$$.tk_no=$query$$.giam_tru_no?{$not:new RegExp($tk_co_tk_no$$)}:{$regex:$tk_co_tk_no$$,$options:"i"}}$query$$.tk_co&&Array.isArray($query$$.tk_co)&&($tk_co_tk_no$$=$query$$.tk_co.reg(),$condition$$.tk_co=$query$$.giam_tru_co&&$tk_co_tk_no$$?{$not:new RegExp($tk_co_tk_no$$)}:{$regex:$tk_co_tk_no$$,$options:"i"});return await model.find($condition$$,
|
|
16
|
+
$options$$.fields).lean()};module.exports=model;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const socaittSchema=new Schema({id_app:{type:String,required:!1,maxlength:1024},ma_dvcs:{type:String,required:!1,maxlength:1024},ma_ct:{type:String,required:!1,uppercase:!0,maxlength:32,trim:!0},ma_gd:{type:String,default:"0",maxlength:32,trim:!0},ngay_ct:{type:Date,required:!1},tk_no:{type:String,required:!1,uppercase:!0,maxlength:32,trim:!0},tk_co:{type:String,required:!1,uppercase:!0,maxlength:32,trim:!0},ma_nt:{type:String,default:"VND",required:!1,uppercase:!0,maxlength:32,trim:!0},ty_gia:{type:Number,
|
|
2
|
+
default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},id_client:String,listinfo_code:String},{toJSON:{virtuals:!0}});
|
|
3
|
+
(global.configs||{}).createIndexes&&(socaittSchema.index({id_app:1}),socaittSchema.index({id_app:1,ma_dvcs:1}),socaittSchema.index({id_app:1,ma_ct:1}),socaittSchema.index({id_app:1,ngay_ct:-1,ma_nt:1}),socaittSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_bp:1}),socaittSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_phi:1}),socaittSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_hd:1}),socaittSchema.index({id_app:1,ngay_ct:-1,tk_no:1,tk_co:1,ma_dt:1}),socaittSchema.index({id_app:1,
|
|
4
|
+
ngay_ct:-1,tk_no:1,tk_co:1,ma_nv:1}),socaittSchema.index({id_app:1,ngay_ct:-1,tk_no:1}),socaittSchema.index({id_app:1,ngay_ct:-1,tk_co:1}));const model=mongoose.models.socaitt||mongoose.model("socaitt",socaittSchema);if((global.configs||{}).createIndexes)model.on("index",async function($err$$){$err$$?Logger.error("socaitt index error",$err$$):console.info("socaitt indexing complete")});module.exports=model;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const sodiemthuongSchema=new global.Schema({id_app:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!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_kh:{type:String,maxlength:32,trim:!0},sl_nhan:{type:Number,default:0},sl_dung:{type:Number,default:0},dien_giai:{type:String,default:"",
|
|
2
|
+
maxlength:1024},exfields:global.Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String]});
|
|
3
|
+
(global.configs||{}).createIndexes&&(sodiemthuongSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1}),sodiemthuongSchema.index({ma_ct:1}),sodiemthuongSchema.index({trang_thai:1}),sodiemthuongSchema.index({ma_kh:1}),sodiemthuongSchema.index({user_created:1,date_created:-1}),sodiemthuongSchema.index({date_updated:-1}),sodiemthuongSchema.index({status:1}),sodiemthuongSchema.index({user_created:1,visible_to:1,visible_to_users:1}));
|
|
4
|
+
const model=global.mongoose.models.sodiemthuong||global.mongoose.model("sodiemthuong",sodiemthuongSchema);model.getBalance=async($id_app$$,$ma_kh$$)=>(await model.find({id_app:$id_app$$,ma_kh:$ma_kh$$})).map($s$$=>($s$$.sl_nhan||0)-($s$$.sl_dung||0)).reduce(($a$$,$b$$)=>$a$$+$b$$,0);module.exports=model;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const moment=require("moment"),sokhoSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_gd:{type:String,default:"0",maxlength:32,trim:!0},ngay_ct:{type:Date,required:!0},ngay_ct_full:Date,so_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},nxt:{type:Number,required:!0},ma_nt:{type:String,default:"VND",required:!0,
|
|
2
|
+
uppercase:!0,maxlength:32,trim:!0},ty_gia:{type:Number,default:1},ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024,trim:!0},ma_dvt:{type:String,maxlength:32,trim:!0},ma_kho:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_vt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_kho_n:{type:String},ma_kho_x:{type:String},sl_nhap:{type:Number,default:0},sl_xuat:{type:Number,default:0},he_so_qd:{type:Number,default:1},sl_nhap_qd:{type:Number,default:0},sl_xuat_qd:{type:Number,
|
|
3
|
+
default:0},pn_gia_tb:{type:Boolean,default:!1},px_gia_dd:{type:Boolean,default:!1},gia_von_nt:{type:Number,default:0},gia_von:{type:Number,default:0},tien_hang_nt:{type:Number,default:0},tien_hang:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_phi_nt:{type:Number,default:0},tien_phi:{type:Number,default:0},tien_cp_nt:{type:Number,default:0},tien_cp:{type:Number,default:0},tien_hang_nk:{type:Number,default:0},tien_hang_nk_nt:{type:Number,
|
|
4
|
+
default:0},thue_suat_nk:{type:Number,default:0},tien_thue_nk:{type:Number,default:0},tien_thue_nk_nt:{type:Number,default:0},tien_nhap_nt:{type:Number,default:0},tien_nhap:{type:Number,default:0},tien_xuat:{type:Number,default:0},tien_xuat_nt:{type:Number,default:0},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},gia_ban_ct:{type:Number,default:0},gia_ban_ct_nt:{type:Number,default:0},tien_hang_ct_nt:{type:Number,default:0},
|
|
5
|
+
tien_hang_ct:{type:Number,default:0},tien_ct:{type:Number,default:0},tien_ct_nt:{type:Number,default:0},thue_suat:{type:Number,default:0},tien_thue_nt:{type:Number,default:0},tien_thue:{type:Number,default:0},dien_giai:{type:String,default:"",maxlength:1024},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:"",
|
|
6
|
+
uppercase:!0,maxlength:32,trim:!0},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_nv_giao_hang:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},
|
|
7
|
+
phu_xe:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},loai_phuong_tien:String,tk_vt:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_gv:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_du:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_tl:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_dt:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_ck:{type:String,uppercase:!0,maxlength:32,trim:!0},gio:Number,ngay:Number,thang:Number,quy:Number,nam:Number,ma_kenh:String,ma_td1:Schema.Types.Mixed,
|
|
8
|
+
ma_td2:Schema.Types.Mixed,ma_td3:Schema.Types.Mixed,ma_td4:Schema.Types.Mixed,ma_td5:Schema.Types.Mixed,ma_td6:Schema.Types.Mixed,ma_td7:Schema.Types.Mixed,ma_td8:Schema.Types.Mixed,ma_td9:Schema.Types.Mixed,pt_thanh_toan:String,pt_thanh_toan2:String,tien_paymentByPoints:Number,tien_evoucher:Number,cashier:String,ma_ca:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_sp:{type:String,default:"",uppercase:!0,maxlength:1024,trim:!0},sl_sp:Number,ma_dvt_sp:{type:String,maxlength:32,trim:!0},ma_tt1_sp:{type:String,
|
|
9
|
+
default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_cum_chi_tiet:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ten_cum_chi_tiet:{type:String,default:"",maxlength:1024},ma_cong_doan:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},id_lenhsx:{type:String,maxlength:1024},id_dinhmucsx:{type:String,maxlength:1024},id_lenhcapphat:{type:String,maxlength:1024},
|
|
10
|
+
id_cs:{type:String,maxlength:1024},id_cs_ck:{type:String,maxlength:1024},trang_thai:{type:String,maxlength:32},id_reason:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,exfields_detail:Schema.Types.Mixed,user_nv:String,ty_le_hoa_hong:Number,tien_hoa_hong:Number,chuyen_ngay:Boolean,tk_no_hoa_hong:String,tk_co_hoa_hong:String,user_gt:String,ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,chuyen_ngay_gt:Boolean,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,user_ctv:String,ty_le_hoa_hong_ctv:Number,
|
|
11
|
+
tien_hoa_hong_ctv:Number,chuyen_ngay_ctv:Boolean,tk_cn_ctv:String,tk_cp_ctv:String,user_ql:String,ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,chuyen_ngay_ql:Boolean,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,so_seri:String,line:Number,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},id_client:String,listinfo_code:String},{toJSON:{virtuals:!0}});
|
|
12
|
+
(global.configs||{}).createIndexes&&(sokhoSchema.index({id_app:1}),sokhoSchema.index({id_app:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_dvcs:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,so_ct:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_ct:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_ct:1,ngay_ct:-1,ma_vt:1,ma_nv:1,ma_kh:1}),sokhoSchema.index({id_app:1,ma_ct:1,ngay_ct:-1,ma_vt:1,ma_nv_giao_hang:1,ma_kh:1}),sokhoSchema.index({id_app:1,ma_ct:1,ngay_ct:-1,ma_vt:1,phu_xe:1,ma_kh:1}),sokhoSchema.index({id_app:1,
|
|
13
|
+
ma_vt:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_vt:1,ma_lo:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_vt:1,ma_lo:1,han_sd:-1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_vt:1,ma_tt1:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_vt:1,ma_tt2:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_vt:1,ma_tt3:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_kho:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_kho:1,ma_vt:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_kho:1,ma_vt:1,ma_lo:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,
|
|
14
|
+
ma_kho:1,ma_vt:1,ma_lo:1,han_sd:-1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_kho:1,ma_vt:1,ma_tt1:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_kho:1,ma_vt:1,ma_tt2:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_kho:1,ma_vt:1,ma_tt3:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_kho:1,ma_vt:1,nxt:1,pn_gia_tb:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_kho:1,ma_vt:1,nxt:1,px_gia_dd:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_kho_n:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_kho_x:1,ngay_ct:-1}),
|
|
15
|
+
sokhoSchema.index({id_app:1,ma_kh:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_bp:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_phi:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_nv:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_dt:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_kenh:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_sp:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_sp:1,ma_tt1_sp:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_sp:1,ma_tt2_sp:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_sp:1,
|
|
16
|
+
ma_tt3_sp:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_sp:1,ma_cum_chi_tiet:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_sp:1,ma_cong_doan:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_sp:1,id_lenhsx:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_sp:1,id_dinhmucsx:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_sp:1,id_lenhcapphat:1,ngay_ct:-1}),sokhoSchema.index({id_ct:1}),sokhoSchema.index({id_app:1,id_ct:1}),sokhoSchema.index({id_app:1,id_cs:1}),sokhoSchema.index({id_app:1,id_cs_ck:1}),sokhoSchema.index({id_app:1,
|
|
17
|
+
cashier:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,nam:-1,quy:1,thang:1,ngay:1,gio:1}),sokhoSchema.index({id_app:1,ma_td1:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_td2:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,ma_td3:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,user_nv:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,user_ctv:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,user_ql:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,user_gt:1,ngay_ct:-1}),sokhoSchema.index({id_app:1,date_created:-1}));
|
|
18
|
+
const {createSokhoTC}=require("../libs/utils"),{onAfterCommit,getCurrentSession,getCurrentStore}=require("../libs/sessionContext"),handleCreateSokhoTc=async $data$$=>{if($data$$)try{let $params$$=$data$$;typeof $data$$==="string"&&($params$$=JSON.parse($data$$));$params$$.id_app&&$params$$.ngay_ct&&await createSokhoTC($params$$.id_app,$params$$.ngay_ct,$params$$.ngay_ct)}catch($e$$){Logger.error("handleCreateSokhoTc error",$data$$,$e$$)}};
|
|
19
|
+
sokhoSchema.pre("save",function($next$$){this.ma_nt==="VND"?(this.tien_nhap_nt=Math.roundBy(this.tien_nhap_nt,0),this.tien_xuat_nt=Math.roundBy(this.tien_xuat_nt,0),this.tien_nhap=this.tien_nhap_nt,this.tien_xuat=this.tien_xuat_nt):(this.tien_nhap=Math.roundBy(this.tien_nhap,0),this.tien_xuat=Math.roundBy(this.tien_xuat,0));this.ngay_ct_full=new Date(this.ngay_ct);var $ngay_ct_session$$=moment(this.ngay_ct);this.gio=$ngay_ct_session$$.get("hours");this.ngay=$ngay_ct_session$$.get("dates");this.quy=
|
|
20
|
+
$ngay_ct_session$$.get("quarters");this.thang=$ngay_ct_session$$.get("months")+1;this.nam=$ngay_ct_session$$.get("year");this.ngay_ct=$ngay_ct_session$$.startOf("date").toDate();this.han_sd&&(this.han_sd=moment(this.han_sd).endOf("date").toDate());$ngay_ct_session$$=getCurrentSession();const $store$$=getCurrentStore();$ngay_ct_session$$&&$store$$&&(this.$__param_store=$store$$,this.$__param_session=$store$$.session);$next$$()});
|
|
21
|
+
sokhoSchema.post("save",async function($doc$$){const $capturedStore$$=this.$__param_store,$capturedSession$$=this.$__param_session,$handleSaveAfterCommit$$=async()=>{let $key$$=JSON.stringify({id_app:$doc$$.id_app,ngay_ct:$doc$$.ngay_ct});handleCreateSokhoTc($key$$)};if($capturedSession$$&&$capturedStore$$)onAfterCommit($handleSaveAfterCommit$$,"X\u1eed l\u00fd s\u1ef1 ki\u1ec7n sau khi l\u01b0u sokho",$capturedSession$$,$capturedStore$$);else try{await $handleSaveAfterCommit$$()}catch($e$$){Logger.error("\u274c post save immediate error:",
|
|
22
|
+
$e$$)}});
|
|
23
|
+
async function preDelete($next$$){try{const $query$$=this.getQuery(),$deletedDocsStr$$=(await global.getModel("sokho").find($query$$,{id_app:1,ngay_ct:1}).lean()).map($r$$=>JSON.stringify({id_app:$r$$.id_app,ngay_ct:$r$$.ngay_ct}));this.$__deletedDocs=[...(new Set($deletedDocsStr$$))];const $session$$=this.options?.session||getCurrentSession(),$store$$=getCurrentStore();$session$$&&$store$$&&(this.$__param_store=$store$$,this.$__param_session=$store$$.session);$next$$()}catch($e$$){$next$$($e$$)}}
|
|
24
|
+
async function postDelete(){const $capturedStore$$=this.$__param_store,$capturedSession$$=this.$__param_session,$deletedDocs$$=this.$__deletedDocs;if($deletedDocs$$&&$deletedDocs$$.length>0){const $handleDeletionAfterCommit$$=async()=>{const $promises$$=$deletedDocs$$.map($docStr$$=>handleCreateSokhoTc($docStr$$));await Promise.all($promises$$)};if($capturedSession$$&&$capturedStore$$)onAfterCommit($handleDeletionAfterCommit$$,"X\u1eed l\u00fd s\u1ef1 ki\u1ec7n sau khi xo\u00e1 sokho",$capturedSession$$,
|
|
25
|
+
$capturedStore$$);else try{await $handleDeletionAfterCommit$$()}catch($e$$){Logger.error("\u274c post delete immediate error:",$e$$)}}}
|
|
26
|
+
const handleInsertMany=async function($docs$$){const $session$$=getCurrentSession(),$store$$=getCurrentStore(),$handleBatch$$=async()=>{let $itemsToProcess$$=$docs$$.map($d$$=>({id_app:$d$$.id_app,ngay_ct:$d$$.ngay_ct}));for(let $item$$ of $itemsToProcess$$)await handleCreateSokhoTc($item$$)};if($session$$&&$store$$)onAfterCommit($handleBatch$$,"X\u1eed l\u00fd insertMany",$session$$,$store$$);else try{await $handleBatch$$()}catch($e$$){Logger.error("\u274c insertMany hook error:",$e$$)}};
|
|
27
|
+
sokhoSchema.post("insertMany",handleInsertMany);sokhoSchema.pre("deleteMany",preDelete);sokhoSchema.post("deleteMany",postDelete);sokhoSchema.pre("deleteOne",preDelete);sokhoSchema.post("deleteOne",postDelete);const model=mongoose.models.sokho||mongoose.model("sokho",sokhoSchema);if((global.configs||{}).createIndexes)model.on("index",async function($err$$){$err$$?Logger.error("sokho index error",$err$$):Logger.info("sokho indexing complete")});module.exports=model;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const moment=require("moment"),sokhocapphatSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_gd:{type:String,default:"0",maxlength:32,trim:!0},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},nxt:{type:Number,required:!0},ma_nt:{type:String,default:"VND",required:!0,uppercase:!0,
|
|
2
|
+
maxlength:32,trim:!0},ty_gia:{type:Number,default:1},ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024,trim:!0},ma_dvt:{type:String,maxlength:32,trim:!0},ma_kho:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_kho_n:{type:String},ma_kho_x:{type:String},sl_nhap:{type:Number,default:0},sl_xuat:{type:Number,default:0},he_so_qd:{type:Number,default:1},sl_nhap_qd:{type:Number,default:0},sl_xuat_qd:{type:Number,default:0},pn_gia_tb:{type:Boolean,default:!1},px_gia_dd:{type:Boolean,
|
|
3
|
+
default:!1},gia_von_nt:{type:Number,default:0},gia_von:{type:Number,default:0},tien_hang_nt:{type:Number,default:0},tien_hang:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_phi_nt:{type:Number,default:0},tien_phi:{type:Number,default:0},tien_hang_nk:{type:Number,default:0},tien_hang_nk_nt:{type:Number,default:0},thue_suat_nk:{type:Number,default:0},tien_thue_nk:{type:Number,default:0},tien_thue_nk_nt:{type:Number,default:0},
|
|
4
|
+
tien_nhap_nt:{type:Number,default:0},tien_nhap:{type:Number,default:0},tien_xuat:{type:Number,default:0},tien_xuat_nt:{type:Number,default:0},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},gia_ban_ct:{type:Number,default:0},gia_ban_ct_nt:{type:Number,default:0},tien_hang_ct_nt:{type:Number,default:0},tien_hang_ct:{type:Number,default:0},tien_ct:{type:Number,default:0},tien_ct_nt:{type:Number,default:0},thue_suat:{type:Number,
|
|
5
|
+
default:0},tien_thue_nt:{type:Number,default:0},tien_thue:{type:Number,default:0},tk_vt:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_gv:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_du:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_tl:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_dt:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_ck:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},dien_giai:{type:String,default:"",
|
|
6
|
+
maxlength:1024},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},han_sd:{type:Date},ma_vt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt1:{type:String,
|
|
7
|
+
default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_sp:{type:String,default:"",uppercase:!0,maxlength:1024,trim:!0},ma_dvt_sp:{type:String,maxlength:32,trim:!0},ma_tt1_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_cum_chi_tiet:{type:String,
|
|
8
|
+
uppercase:!0,default:"",maxlength:32,trim:!0},ten_cum_chi_tiet:{type:String,default:"",maxlength:1024},ma_cong_doan:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},id_lenhsx:{type:String,maxlength:1024},id_lenhcapphat:{type:String,maxlength:1024},id_dinhmucsx:{type:String,maxlength:1024},ma_ca:{type:String,uppercase:!0,maxlength:32,trim:!0},cashier:String,gio:Number,ngay:Number,thang:Number,quy:Number,nam:Number,ma_kenh:String,ma_td1:Schema.Types.Mixed,ma_td2:Schema.Types.Mixed,ma_td3:Schema.Types.Mixed,
|
|
9
|
+
ma_td4:Schema.Types.Mixed,ma_td5:Schema.Types.Mixed,ma_td6:Schema.Types.Mixed,ma_td7:Schema.Types.Mixed,ma_td8:Schema.Types.Mixed,ma_td9:Schema.Types.Mixed,pt_thanh_toan:String,pt_thanh_toan2:String,tien_paymentByPoints:Number,tien_evoucher:Number,id_reason:{type:String,maxlength:1024},id_cs:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,exfields_detail:Schema.Types.Mixed,line:Number,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},
|
|
10
|
+
user_created:{type:String,default:""},user_updated:{type:String,default:""},id_client:String,listinfo_code:String});
|
|
11
|
+
sokhocapphatSchema.pre("save",function($next$$){this.ma_nt=="VND"?(this.tien_nhap_nt=Math.roundBy(this.tien_nhap_nt,0),this.tien_xuat_nt=Math.roundBy(this.tien_xuat_nt,0),this.tien_nhap=this.tien_nhap_nt,this.tien_xuat=this.tien_xuat_nt):(this.tien_nhap=Math.roundBy(this.tien_nhap,0),this.tien_xuat=Math.roundBy(this.tien_xuat,0));let $ngay_ct$$=moment(this.ngay_ct);this.gio=$ngay_ct$$.get("hours");this.ngay=$ngay_ct$$.get("dates");this.quy=$ngay_ct$$.get("quarters");this.thang=$ngay_ct$$.get("months")+
|
|
12
|
+
1;this.nam=$ngay_ct$$.get("year");this.ngay_ct=$ngay_ct$$.startOf("date").toDate();$next$$()});
|
|
13
|
+
(global.configs||{}).createIndexes&&(sokhocapphatSchema.index({id_app:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_dvcs:1}),sokhocapphatSchema.index({id_app:1,so_ct:-1}),sokhocapphatSchema.index({id_app:1,so_ct:1,ngay_ct:-1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_ct:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_vt:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_lo:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,
|
|
14
|
+
ma_vt:1,ma_lo:1,han_sd:-1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_tt1:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_tt2:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_tt3:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_kho:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_lo:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_lo:1,han_sd:-1}),
|
|
15
|
+
sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_tt1:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_tt2:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_tt3:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_kho_n:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_kho_x:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_kh:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_bp:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_phi:1}),
|
|
16
|
+
sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_sp:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_nv:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_dt:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_kenh:1}),sokhocapphatSchema.index({id_ct:1}),sokhocapphatSchema.index({id_app:1,id_ct:1}),sokhocapphatSchema.index({id_app:1,id_cs:1}),sokhocapphatSchema.index({id_app:1,id_cs_ck:1}),sokhocapphatSchema.index({id_app:1,id_lenhsx:1}),sokhocapphatSchema.index({id_app:1,id_dinhmucsx:1}),
|
|
17
|
+
sokhocapphatSchema.index({id_app:1,ngay_ct:-1,cashier:1}),sokhocapphatSchema.index({id_app:1,gio:1}),sokhocapphatSchema.index({id_app:1,ngay:1}),sokhocapphatSchema.index({id_app:1,thang:1}),sokhocapphatSchema.index({id_app:1,quy:1}),sokhocapphatSchema.index({id_app:1,nam:-1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_td1:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_td2:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,ma_td3:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,user_nv:1}),
|
|
18
|
+
sokhocapphatSchema.index({id_app:1,ngay_ct:-1,user_ctv:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,user_ql:1}),sokhocapphatSchema.index({id_app:1,ngay_ct:-1,user_gt:1}),sokhocapphatSchema.index({id_app:1,date_created:-1}));module.exports=mongoose.models.sokhocapphat||mongoose.model("sokhocapphat",sokhocapphatSchema);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const moment=require("moment"),sokhokhongtonSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},nxt:{type:Number,required:!0},ma_nt:{type:String,default:"VND",required:!0,uppercase:!0,
|
|
2
|
+
maxlength:32,trim:!0},ty_gia:{type:Number,default:1},ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024,trim:!0},ma_dvt:{type:String,maxlength:32,trim:!0},ma_kho:{type:String,required:!0,uppercase:!0,maxlength:32,trim:!0},ma_kho_n:{type:String},ma_kho_x:{type:String},sl_nhap:{type:Number,default:0},sl_xuat:{type:Number,default:0},he_so_qd:{type:Number,default:1},sl_nhap_qd:{type:Number,default:0},sl_xuat_qd:{type:Number,default:0},pn_gia_tb:{type:Boolean,default:!1},px_gia_dd:{type:Boolean,
|
|
3
|
+
default:!1},gia_von_nt:{type:Number,default:0},gia_von:{type:Number,default:0},tien_hang_nt:{type:Number,default:0},tien_hang:{type:Number,default:0},ty_le_ck:{type:Number,default:0},tien_ck_nt:{type:Number,default:0},tien_ck:{type:Number,default:0},tien_phi_nt:{type:Number,default:0},tien_phi:{type:Number,default:0},tien_cp_nt:{type:Number,default:0},tien_cp:{type:Number,default:0},tien_hang_nk:{type:Number,default:0},tien_hang_nk_nt:{type:Number,default:0},thue_suat_nk:{type:Number,default:0},tien_thue_nk:{type:Number,
|
|
4
|
+
default:0},tien_thue_nk_nt:{type:Number,default:0},tien_nhap_nt:{type:Number,default:0},tien_nhap:{type:Number,default:0},tien_xuat:{type:Number,default:0},tien_xuat_nt:{type:Number,default:0},gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_nt:{type:Number,default:0},gia_ban_ct:{type:Number,default:0},gia_ban_ct_nt:{type:Number,default:0},tien_hang_ct_nt:{type:Number,default:0},tien_hang_ct:{type:Number,default:0},tien_ct:{type:Number,default:0},
|
|
5
|
+
tien_ct_nt:{type:Number,default:0},thue_suat:{type:Number,default:0},tien_thue_nt:{type:Number,default:0},tien_thue:{type:Number,default:0},tk_vt:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_gv:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_du:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_tl:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_dt:{type:String,uppercase:!0,maxlength:32,trim:!0},tk_ck:{type:String,uppercase:!0,maxlength:32,trim:!0},ma_kh:{type:String,uppercase:!0,default:"",
|
|
6
|
+
maxlength:32,trim:!0},dien_giai:{type:String,default:"",maxlength:1024},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},han_sd:{type:Date},ma_vt2:{type:String,
|
|
7
|
+
default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_sp:{type:String,default:"",uppercase:!0,maxlength:1024,trim:!0},sl_sp:Number,ma_dvt_sp:{type:String,maxlength:32,trim:!0},ma_tt1_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},ma_tt2_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},
|
|
8
|
+
ma_tt3_sp:{type:String,default:"",uppercase:!0,maxlength:32,trim:!0},gio:Number,ngay:Number,thang:Number,quy:Number,nam:Number,ma_kenh:String,ma_td1:Schema.Types.Mixed,ma_td2:Schema.Types.Mixed,ma_td3:Schema.Types.Mixed,ma_td4:Schema.Types.Mixed,ma_td5:Schema.Types.Mixed,ma_td6:Schema.Types.Mixed,ma_td7:Schema.Types.Mixed,ma_td8:Schema.Types.Mixed,ma_td9:Schema.Types.Mixed,pt_thanh_toan:String,pt_thanh_toan2:String,tien_paymentByPoints:Number,tien_evoucher:Number,cashier:String,ma_cum_chi_tiet:{type:String,
|
|
9
|
+
uppercase:!0,default:"",maxlength:32,trim:!0},ten_cum_chi_tiet:{type:String,default:"",maxlength:1024},ma_cong_doan:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},id_lenhsx:{type:String,maxlength:1024},id_lenhcapphat:{type:String,maxlength:1024},id_dinhmucsx:{type:String,maxlength:1024},id_cs:{type:String,maxlength:1024},ma_ca:{type:String,uppercase:!0,maxlength:32,trim:!0},trang_thai:{type:String,maxlength:32},id_reason:{type:String,maxlength:1024,trim:!0},user_nv:String,ty_le_hoa_hong:Number,
|
|
10
|
+
tien_hoa_hong:Number,chuyen_ngay:Boolean,tk_no_hoa_hong:String,tk_co_hoa_hong:String,user_gt:String,ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,chuyen_ngay_gt:Boolean,tk_no_hoa_hong_gt:String,tk_co_hoa_hong_gt:String,user_ctv:String,ty_le_hoa_hong_ctv:Number,tien_hoa_hong_ctv:Number,chuyen_ngay_ctv:Boolean,tk_cn_ctv:String,tk_cp_ctv:String,user_ql:String,ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,chuyen_ngay_ql:Boolean,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,exfields:Schema.Types.Mixed,
|
|
11
|
+
exfields_detail:Schema.Types.Mixed,line:Number,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},id_client:String,listinfo_code:String},{toJSON:{virtuals:!0}});
|
|
12
|
+
sokhokhongtonSchema.pre("save",function($next$$){this.ma_nt==="VND"?(this.tien_nhap_nt=Math.roundBy(this.tien_nhap_nt,0),this.tien_xuat_nt=Math.roundBy(this.tien_xuat_nt,0),this.tien_nhap=this.tien_nhap_nt,this.tien_xuat=this.tien_xuat_nt):(this.tien_nhap=Math.roundBy(this.tien_nhap,0),this.tien_xuat=Math.roundBy(this.tien_xuat,0));let $ngay_ct$$=moment(this.ngay_ct);this.gio=$ngay_ct$$.get("hours");this.ngay=$ngay_ct$$.get("dates");this.quy=$ngay_ct$$.get("quarters");this.thang=$ngay_ct$$.get("months")+
|
|
13
|
+
1;this.nam=$ngay_ct$$.get("year");this.ngay_ct=$ngay_ct$$.startOf("date").toDate();$next$$()});
|
|
14
|
+
(global.configs||{}).createIndexes&&(sokhokhongtonSchema.index({id_app:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_dvcs:1}),sokhokhongtonSchema.index({id_app:1,so_ct:-1}),sokhokhongtonSchema.index({id_app:1,so_ct:1,ngay_ct:-1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_ct:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_vt:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_lo:1}),sokhokhongtonSchema.index({id_app:1,
|
|
15
|
+
ngay_ct:-1,ma_vt:1,ma_lo:1,han_sd:-1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_tt1:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_tt2:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_vt:1,ma_tt3:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_kho:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_lo:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_lo:1,
|
|
16
|
+
han_sd:-1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_tt1:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_tt2:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_kho:1,ma_vt:1,ma_tt3:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_kho_n:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_kho_x:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_kh:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_bp:1}),sokhokhongtonSchema.index({id_app:1,
|
|
17
|
+
ngay_ct:-1,ma_phi:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_sp:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_nv:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_dt:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_kenh:1}),sokhokhongtonSchema.index({id_ct:1}),sokhokhongtonSchema.index({id_app:1,id_ct:1}),sokhokhongtonSchema.index({id_app:1,id_cs:1}),sokhokhongtonSchema.index({id_app:1,id_cs_ck:1}),sokhokhongtonSchema.index({id_app:1,id_lenhsx:1}),sokhokhongtonSchema.index({id_app:1,
|
|
18
|
+
id_dinhmucsx:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,cashier:1}),sokhokhongtonSchema.index({id_app:1,gio:1}),sokhokhongtonSchema.index({id_app:1,ngay:1}),sokhokhongtonSchema.index({id_app:1,thang:1}),sokhokhongtonSchema.index({id_app:1,quy:1}),sokhokhongtonSchema.index({id_app:1,nam:-1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_td1:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_td2:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,ma_td3:1}),sokhokhongtonSchema.index({id_app:1,
|
|
19
|
+
ngay_ct:-1,user_nv:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,user_ctv:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,user_ql:1}),sokhokhongtonSchema.index({id_app:1,ngay_ct:-1,user_gt:1}),sokhokhongtonSchema.index({id_app:1,date_created:-1}));const model=mongoose.models.sokhokhongton||mongoose.model("sokhokhongton",sokhokhongtonSchema);module.exports=model;
|