flexbiz-server
Version:
Flexible Server
19 lines (18 loc) • 7.96 kB
JavaScript
'use strict';const validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),pn1=require("./pn1"),pnh=require("./pnh"),pn9=require("./pn9"),pc0=require("./pc0"),async=require("async"),detailSchema=new Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024,trim:!0},ma_dvt:{type:String,required:!0,maxlength:32,trim:!0},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},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},ty_le_qd:{type:Number,default:0},ma_kh:{type:String,
uppercase:!0,default:"",maxlength:32,trim:!0},ma_bp:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_phi:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_vt2:{type:String,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},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={ma_kh:validator.existsKh,ma_vt:validVt.existsVt,ma_dvt:validator.existsDvt};
const po1Schema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"PO1",required:!0,uppercase:!0,maxlength:32,trim:!0},ma_gd:{type:String,default:"0",maxlength:32,trim:!0},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32},ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,
min:0,default:1},ma_kh:{type:String,uppercase:!0,required:!0,default:"",maxlength:32,trim:!0},ten_kh:{type:String},ma_kho:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ma_bp:{type:String,uppercase:!0,default:"",maxlength:32,trim:!0},ngay_giao:{type:Date},id_bao_gia:{type:String,maxlength:1024},id_dnm:{type:String,maxlength:1024},id_kehoachmh:{type:String,maxlength:1024},id_contract:{type:String,maxlength:1024},id_pn1:{type:String,
maxlength:1024},id_pnh:{type:String,maxlength:1024},ma_thue:{type:String,uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},ong_ba:{type:String,default:"",maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,dot_thanh_toan:[],phi_khac_nt:{type:Number,default:0},phi_khac:{type:Number,default:0},trang_thai:{type:String,maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32,
trim:!0},nguoi_lien_he:String,dien_thoai:String,tinh_thanh:String,quan_huyen:String,xa_phuong:String,dia_chi:String,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},visible_to:{type:Number,default:0},visible_to_users:[String],update_right:[String],delete_right:[String],details:{type:[detailSchema]}});
po1Schema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh};
(global.configs||{}).createIndexes&&(po1Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1}),po1Schema.index({dien_giai:"text",so_ct:"text",ma_kh:"text",ten_kh:"text"},{name:"po1_index_text"}),po1Schema.index({ma_ct:1}),po1Schema.index({ma_kh:1}),po1Schema.index({ma_bp:1}),po1Schema.index({"details.ma_vt":1}),po1Schema.index({id_contract:1}),po1Schema.index({id_pn1:1}),po1Schema.index({id_pnh:1}),po1Schema.index({id_dnm:1}),po1Schema.index({user_created:1,date_created:-1}),po1Schema.index({date_updated:-1}),
po1Schema.index({status:1}),po1Schema.index({user_created:1,visible_to:1,visible_to_users:1}),po1Schema.index({trang_thai:1}));const model=mongoose.models.po1||mongoose.model("po1",po1Schema);model.referenceKeys={_id:[{model:"pn1",key:"id_po1",error:"\u0110\u01a1n h\u00e0ng n\u00e0y \u0111\u00e3 nh\u1eadp h\u00e0ng"},{model:"pn9",key:"id_po1",error:"\u0110\u01a1n h\u00e0ng n\u00e0y \u0111\u00e3 nh\u1eadp h\u00e0ng"}]};
model.tinhSoLuongDaNhap=($po$$,$callback$jscomp$0$$,$callbackDetail$$)=>{$po$$.details||($po$$.details=[]);async.parallel({pn1:$callback$$=>{pn1.find({id_app:$po$$.id_app,id_po1:$po$$._id}).lean().exec(($e$$,$invs$$)=>{if($e$$)return $callback$$($e$$);let $details$$=$invs$$.map($inv$$=>$inv$$.details).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);$po$$.details.forEach($contract_detail$$=>{$contract_detail$$.sl_da_nhap_tn=$details$$.filter($detail$$=>$detail$$.ma_vt===$contract_detail$$.ma_vt).map($d$$=>
$d$$.sl_nhap).reduce(($a$$,$b$$)=>$a$$+$b$$,0)});$po$$.t_sl_da_nhap_tn=$po$$.details.map($d$$=>$d$$.sl_da_nhap_tn||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$callback$$()})},pnh:$callback$$=>{pnh.find({id_app:$po$$.id_app,id_po1:$po$$._id}).lean().exec(($e$$,$invs$$)=>{if($e$$)return $callback$$($e$$);let $details$$=$invs$$.map($inv$$=>$inv$$.details).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);$po$$.details.forEach($contract_detail$$=>{$contract_detail$$.sl_da_nhap_hang=$details$$.filter($detail$$=>$detail$$.ma_vt===
$contract_detail$$.ma_vt).map($d$$=>$d$$.sl_nhap).reduce(($a$$,$b$$)=>$a$$+$b$$,0)});$po$$.t_sl_da_nhap_hang=$po$$.details.map($d$$=>$d$$.sl_da_nhap_hang||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$callback$$()})},pn9:$callback$$=>{pn9.find({id_app:$po$$.id_app,id_po1:$po$$._id}).lean().exec(($e$$,$invs$$)=>{if($e$$)return $callback$$($e$$);let $details$$=$invs$$.map($inv$$=>$inv$$.details).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);$po$$.details.forEach($contract_detail$$=>{$contract_detail$$.sl_da_nhap_khau=
$details$$.filter($detail$$=>$detail$$.ma_vt===$contract_detail$$.ma_vt).map($d$$=>$d$$.sl_nhap).reduce(($a$$,$b$$)=>$a$$+$b$$,0)});$po$$.t_sl_da_nhap_khau=$po$$.details.map($d$$=>$d$$.sl_da_nhap_khau||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$callback$$()})},pc0:$callback$$=>{pc0.find({id_app:$po$$.id_app,id_po1:$po$$._id}).lean().exec(($details$jscomp$3_e$$,$invs$$)=>{if($details$jscomp$3_e$$)return $callback$$($details$jscomp$3_e$$);$details$jscomp$3_e$$=$invs$$.map($inv$$=>$inv$$.details).reduce(($a$$,
$b$$)=>$a$$.concat($b$$),[]);$invs$$=$invs$$.map($inv$$=>$inv$$.vatvaos||[]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);let $t_tien_hang_da_chi$$=0,$t_thue_da_chi$$=0,$t_tien_hang_da_chi_nt$$=0,$t_thue_da_chi_nt$$=0;$t_tien_hang_da_chi$$=$details$jscomp$3_e$$.map($d$$=>$d$$.tien).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$t_tien_hang_da_chi_nt$$=$details$jscomp$3_e$$.map($d$$=>$d$$.tien_nt).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$t_thue_da_chi$$=$invs$$.map($d$$=>$d$$.t_thue).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$t_thue_da_chi_nt$$=
$invs$$.map($d$$=>$d$$.t_thue_nt).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$po$$.t_tien_da_tt=$t_tien_hang_da_chi$$+$t_thue_da_chi$$;$po$$.t_tien_da_tt_nt=$t_tien_hang_da_chi_nt$$+$t_thue_da_chi_nt$$;$callback$$()})}},$e$$=>{if($e$$)return $callback$jscomp$0$$($e$$);$po$$.details.forEach($detail$$=>{$detail$$.sl_da_nhap=$detail$$.sl_da_nhap_tn+$detail$$.sl_da_nhap_khau;$callbackDetail$$&&$callbackDetail$$(null,$detail$$)});$po$$.t_sl_da_nhap=$po$$.t_sl_da_nhap_tn+$po$$.t_sl_da_nhap_khau;$callback$jscomp$0$$(null,
$po$$)})};module.exports=model;