UNPKG

flexbiz-server

Version:

Flexible Server

10 lines (9 loc) 3.9 kB
const async=require("async"),moment=require("moment"),tdttnoSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ngay_hd:{type:Date,required:!0},so_hd:{type:String,uppercase:!0,maxlength:32},ma_nt:{type:String, default:"VND",required:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},tk_no:{type:String,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},ngay_tt:Date,tat_toan:{type:Boolean,default:!1},ma_kho:{type:String,default:"",uppercase:!0,maxlength:32},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,default:"", uppercase:!0,maxlength:32},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32},exfields_detail:global.Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},listinfo_code:String}); (global.configs||{}).createIndexes&&(tdttnoSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:1}),tdttnoSchema.index({id_app:1,tat_toan:1}),tdttnoSchema.index({id_app:1,han_tt:1,ngay_tt:-1}),tdttnoSchema.index({id_ct:1}),tdttnoSchema.index({id_app:1,so_ct:1,so_hd:1}),tdttnoSchema.index({id_app:1,ngay_ct:1}),tdttnoSchema.index({id_app:1,ngay_hd:1}),tdttnoSchema.index({id_app:1,tk_co:1}),tdttnoSchema.index({id_app:1,ma_kh:1}),tdttnoSchema.index({id_app:1,ma_kho:1}),tdttnoSchema.index({id_app:1,ma_kho:1, ma_kh:1}),tdttnoSchema.index({id_app:1,status:1}),tdttnoSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1}));tdttnoSchema.pre("save",function($next$$){this.ngay_tt=moment(this.ngay_hd).add(this.han_tt||0,"days").toDate();$next$$()});const model=mongoose.models.tdttno||mongoose.model("tdttno",tdttnoSchema); model.getBalance=$condition$$=>new Promise(($resolve$$,$reject$$)=>{async.series({invoices:function($callback$$){setImmediate(()=>{let $query$$={...$condition$$};delete $query$$.access_token;$query$$.id_ct&&delete $query$$.id_ct;$query$$.id_hd&&($query$$.id_ct=$query$$.id_hd,delete $query$$.id_hd);model.find($query$$).lean().then($results$$=>{let $invoices$$=[];for(let $i$$=0;$i$$<$results$$.length;$i$$++){const $invoice$$=$results$$[$i$$];$invoice$$.line=$i$$;$invoices$$.push($invoice$$)}$callback$$(null, $invoices$$)}).catch($error$$=>{$callback$$($error$$)})})}},function($error$$,$results$$){if($error$$)return $reject$$($error$$);async.mapLimit($results$$.invoices,20,($t_invoice$$,$callback$$)=>{setImmediate(()=>{let $query$$={id_tdtt:$t_invoice$$._id,id_app:$t_invoice$$.id_app};$condition$$.id_ct&&($query$$.id_ct={$ne:$condition$$.id_ct});global.getModel("tdttno_tt").find($query$$).lean().then($results$$=>{$t_invoice$$.da_thanh_toan_nt=0;$t_invoice$$.da_thanh_toan=0;$t_invoice$$.chenh_lech_ty_gia= 0;for(let $i$$=0;$i$$<$results$$.length;$i$$++)$t_invoice$$.da_thanh_toan_nt+=$results$$[$i$$].thanh_toan_qd,$t_invoice$$.da_thanh_toan+=$results$$[$i$$].tien,$t_invoice$$.chenh_lech_ty_gia+=$results$$[$i$$].chenh_lech_ty_gia||0;$t_invoice$$.con_lai_nt=$t_invoice$$.tien_nt-$t_invoice$$.da_thanh_toan_nt;$t_invoice$$.con_lai=$t_invoice$$.tien-$t_invoice$$.da_thanh_toan;$callback$$(null,$t_invoice$$)}).catch($error$$=>{$callback$$($error$$)})})},function($error$$,$results$$){if($error$$)return $reject$$($error$$); $resolve$$($results$$)})})});module.exports=model;