UNPKG

flexbiz-server

Version:

Flexible Server

15 lines (14 loc) 5.96 kB
'use strict';const validAccount=require("../libs/validator-account"),validator=require("../libs/validator"),moment=require("moment"),detailSchema=new Schema({ma_nguon_von:{type:String,uppercase:!0,default:"",maxlength:32},nguyen_gia:{type:Number,default:0},gia_tri_da_kh:{type:Number,default:0},gia_tri_con_lai:{type:Number,default:0},gia_tri_kh_ky:{type:Number,default:0},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={ma_nguon_von:validator.existsNguonvon}; const phutungSchema=new Schema({ten_phu_tung:{type:String,required:!0,default:"",maxlength:1024},so_luong:{type:Number,default:1},gia_tri:{type:Number,default:0},line:{type:Number,default:0}}),qtsSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"QTS",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"1",maxlength:32,enum:["1","2"]},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32}, ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},so_the_ts:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},so_luong:{type:Number,default:1},ngay_tang:{type:Date,default:Date.now,required:!0},ten_ts:{type:String,required:!0,maxlength:1024},ma_loai_ts:{type:String,uppercase:!0,required:!0,maxlength:1024},ma_tang_giam_ts:{type:String,uppercase:!0, required:!0,maxlength:1024},ma_bp:{type:String,uppercase:!0,required:!0,maxlength:32},ma_phi:{type:String,uppercase:!0,maxlength:32},ma_dt:{type:String,uppercase:!0,maxlength:32},ma_hd:{type:String,uppercase:!0,maxlength:32},ma_kho:{type:String,uppercase:!0,maxlength:32},ma_nv:{type:String,maxlength:32,uppercase:!0},pp_tinh_kh:{type:String,default:"1",maxlength:32,enum:["1"]},ngay_kh:{type:Date,default:Date.now,required:!0},so_ky_kh:{type:Number,default:0},lam_tron_kh:{type:Number,default:0},tinh_kh_gia_tri_con_lai:{type:Boolean, default:!0},tk_ts:{type:String,uppercase:!0,required:"T\u00e0i kho\u1ea3n t\u00e0i s\u1ea3n(tk_ts) kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng",maxlength:32},tk_kh:{type:String,uppercase:!0,required:"T\u00e0i kho\u1ea3n kh\u1ea5u hao(tk_kh) kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng",maxlength:32},tk_cp:{type:String,uppercase:!0,required:"T\u00e0i kho\u1ea3n chi ph\u00ed(tk_cp) kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ed1ng",maxlength:32},so_hieu:{type:String,maxlength:1024},thong_tin_ky_thuat:{type:String, maxlength:1024},nuoc_san_xuat:{type:String,maxlength:1024},nam_san_xuat:{type:String,maxlength:1024},ngay_su_dung:{type:Date},ngay_dinh_chi:{type:Date},ly_do_dinh_chi:{type:String,maxlength:1024},ngay_het_han_sd:{type:Date},ngay_giam:{type:Date},ly_do_giam:{type:String,maxlength:1024},so_ct_giam:{type:String,maxlength:32},ngay_thoi_kh:{type:Date},exfields:Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String, default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],details:{type:[detailSchema]},phutungs:{type:[phutungSchema]}}); qtsSchema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ma_bp:validator.existsBp,tk_ts:validAccount.existsTk,tk_cp:validAccount.existsTk,tk_kh:validAccount.existsTk,ma_loai_ts:validator.existsLts,ma_tang_giam_ts:validator.existsTgts,pp_tinh_kh:[function($id_app$$,$value$$,$callback$$){"1"==$value$$?$callback$$(!0):$callback$$(!1)},"Ph\u01b0\u01a1ng ph\u00e1p t\u00ednh kh\u1ea5u hao(pp_tinh_kh): 1-\u0110\u01b0\u1eddng th\u1eb3ng"],ma_gd:[function($id_app$$,$value$$,$callback$$){"1"== $value$$||"2"==$value$$?$callback$$(!0):$callback$$(!1)},"Ki\u1ec3u (ma_gd): 1-t\u00e0i s\u1ea3n,2-c\u00f4ng c\u1ee5, d\u1ee5ng c\u1ee5"]}; (global.configs||{}).createIndexes&&(qtsSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1,so_the_ts:1},{name:"qts_index_1"}),qtsSchema.index({ma_ct:1}),qtsSchema.index({ma_kho:1}),qtsSchema.index({ma_bp:1}),qtsSchema.index({ma_nv:1}),qtsSchema.index({ma_dt:1}),qtsSchema.index({ten_ts:1}),qtsSchema.index({user_created:1,date_created:-1}),qtsSchema.index({date_updated:-1}),qtsSchema.index({so_ct:"text",so_the_ts:"text",ten_ts:"text"},{name:"qts_index_text"}),qtsSchema.index({status:1}),qtsSchema.index({user_created:1, visible_to:1,visible_to_users:1}));const model=mongoose.models.qts||mongoose.model("qts",qtsSchema); model.bophansudung=async($dc_id_app$$,$id_ts$$,$den_ngay$$)=>{let $ts$$=await model.findOne({_id:$id_ts$$,id_app:$dc_id_app$$}).lean();if(!$ts$$)throw"T\u00e0i s\u1ea3n kh\u00f4ng t\u1ed3n t\u1ea1i";$den_ngay$$=moment($den_ngay$$).endOf("date").toDate();$dc_id_app$$=await global.getModel("qts_dieuchuyen").find({id_app:$dc_id_app$$,id_ts:$id_ts$$,ngay_ct:{$lte:$den_ngay$$}}).lean();let $bs$$=[{ma_bp:$ts$$.ma_bp,ma_nv:$ts$$.ma_nv||"",so_luong:$ts$$.so_luong||1}];$dc_id_app$$.forEach($d$$=>{$bs$$.push({ma_bp:$d$$.tu_bp, ma_nv:$d$$.tu_nv||$ts$$.ma_nv||"",so_luong:0-$d$$.so_luong});$bs$$.push({ma_bp:$d$$.den_bp,ma_nv:$d$$.ma_nv_sd||$ts$$.ma_nv||"",so_luong:$d$$.so_luong})});$bs$$=await $bs$$.asyncGroupBy(["ma_bp","ma_nv"],["so_luong"]);return $bs$$.filter($b$$=>0<$b$$.so_luong)};model.exists=[function($id_app$$,$so_the_ts$$,$callback$$){$so_the_ts$$?model.findOne({id_app:$id_app$$,so_the_ts:$so_the_ts$$},function($error$$,$v$$){return $error$$||!$v$$?$callback$$(!1):$callback$$(!0)}):$callback$$(!0)},"S\u1ed1 th\u1ebb t\u00e0i s\u1ea3n ({PATH}) {VALUE} kh\u00f4ng t\u1ed3n t\u1ea1i"]; model.idExists=[function($id_app$$,$id$$,$callback$$){$id$$?model.findOne({id_app:$id_app$$,_id:$id$$},function($error$$,$v$$){return $error$$||!$v$$?$callback$$(!1):$callback$$(!0)}):$callback$$(!0)},"T\u00e0i s\u1ea3n ({PATH}) {VALUE} kh\u00f4ng t\u1ed3n t\u1ea1i"];module.exports=model;