UNPKG

flexbiz-server

Version:

Flexible Server

21 lines (20 loc) 8.95 kB
const validAccount=require("../libs/validator-account"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),pknhapSchema=new Schema({ma_pk_nhap:String,ma_dvt_pk_nhap:String,ma_kho_pk_nhap:String,sl_pk_nhap:Number,gia_von_pk_nhap_nt:{type:Number,default:0},tien_nhap_pk_nt:{type:Number,default:0},xuat_kho_kh:Boolean,ma_vt_ref:String}),pkxuatSchema=new Schema({ma_pk_xuat:String,ma_dvt_pk_xuat:String,ma_kho_pk_xuat:String,sl_pk_xuat:Number,gia_von_pk_xuat_nt:{type:Number,default:0}, tien_xuat_pk_nt:{type:Number,default:0},nhap_kho_kh:Boolean,ma_vt_ref:String}),detailSchema=new Schema({ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ten_vt:String,ma_dvt:{type:String,required:!0,maxlength:32},ma_kho:{type:String,uppercase:!0,maxlength:32},tk_vt:{type:String,required:!0,uppercase:!0,maxlength:32},tk_co:{type:String,uppercase:!0,maxlength:32},ton_kho:{type:Number,default:0},so_luong:{type:Number,default:0},sl_da_nhap:{type:Number,default:0},sl_nhap:{type:Number,default:0}, gia_von:{type:Number,default:0},gia_von_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},tien_phi:{type:Number,default:0},tien_phi_nt:{type:Number,default:0},tien_nhap:{type:Number,default:0},tien_nhap_nt:{type:Number,default:0},tien_tinh_thue_nt:Number,ma_thue:String,thue_suat:{type:Number,default:0},tk_thue_no:String,tien_thue:{type:Number,default:0}, tien_thue_nt:{type:Number,default:0},tien_thue_nt_dc:{type:Number,default:0},ma_hoa_don:{type:String,uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,uppercase:!0,trim:!0,maxlength:32},ma_tc:{type:String,uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date},dien_giai:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ma_bp:{type:String,uppercase:!0, default:"",maxlength:32},ma_phi:{type:String,uppercase:!0,default:"",maxlength:32},ma_hd:{type:String,uppercase:!0,default:"",maxlength:32},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_sp:{type:String,uppercase:!0,maxlength:32},ma_lo:{type:String,default:"",uppercase:!0,maxlength:32},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},ma_pk_nhap:String,ma_dvt_pk_nhap:String,ma_kho_pk_nhap:String,sl_pk_nhap:Number,gia_von_pk_nhap_nt:{type:Number,default:0},tien_nhap_pk_nt:{type:Number,default:0},xuat_kho_kh:Boolean,ma_pk_xuat:String,ma_dvt_pk_xuat:String,ma_kho_pk_xuat:String,sl_pk_xuat:Number,gia_von_pk_xuat_nt:{type:Number,default:0},tien_xuat_pk_nt:{type:Number,default:0},nhap_kho_kh:Boolean,ma_vt_du:String,sl_vt_du:Number,ma_dvt_vt_du:String, don_gia_vt_du:Number,tk_dt_vt_du:String,dien_giai_vt_du:String,gt_vt_du:Number,exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_vt:validAccount.existsTk,ma_kh:validator.existsKh,ma_vt:validVt.existsVt,ma_kho:validVt.existsKho,ma_dvt:validator.existsDvt}; const vatvaoSchema=new Schema({ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ma_tc:{type:String,default:"1",uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,default:"",required:!0,uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date,required:!0},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,required:!0, uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_no:{type:String,required:!0,maxlength:32},tk_du_thue:{type:String,required:!0,maxlength:32},t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ma_kh_cn:{type:String,default:"",maxlength:32},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String, default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024},exfields_detail:Schema.Types.Mixed,id_client:String,listinfo_code:String,line:{type:Number,default:0}});vatvaoSchema.validate={tk_thue_no:validAccount.existsTk,tk_du_thue:validAccount.existsTk,ma_kh:validator.existsKh,ma_thue:validator.existsVat}; const ctcpmhSchema=new Schema({ma_cp:{type:String,uppercase:!0,required:!0},tien_cp_nt:{type:Number,default:0},tien_cp:{type:Number,default:0},kieu_pb:{type:String,default:"0"},line:{type:Number,default:0}}),pn1Schema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"PN1",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},so_ct:{type:String,required:!0,uppercase:!0,trim:!0,maxlength:32}, ngay_ct:{type:Date,default:Date.now,required:!0},ma_nt:{type:String,required:"ma_nt is required",default:"VND",trim:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,required:!0,min:0,default:1},ma_kh:{type:String,uppercase:!0,required:!0,default:"",maxlength:32},ten_kh:String,ma_kho:{type:String,uppercase:!0,required:!0,default:""},ten_kho:String,tk_co:{type:String,uppercase:!0,required:!0,default:""},ong_ba:{type:String,default:"",maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024}, han_tt:{type:Number,default:0},hinh_thuc_tt:{type:String,maxlength:1024},exfields:Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},id_contract:{type:String,maxlength:1024},id_po1:{type:String,maxlength:1024},id_dnm:{type:String,maxlength:1024},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_bp:{type:String,uppercase:!0,maxlength:32},ma_phi:{type:String,uppercase:!0,maxlength:32},ma_hd:{type:String,uppercase:!0,maxlength:32}, ma_lo:{type:String,uppercase:!0,maxlength:32},id_link:String,ma_ct_link:String,so_ct_link:String,ma_thue:{type:String,uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_no:String,ma_hoa_don:{type:String,uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,uppercase:!0,trim:!0,maxlength:32},ma_tc:{type:String,uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date}, 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]},vatvaos:[vatvaoSchema],ctcpmhs:[ctcpmhSchema],ds_pk_nhap:[pknhapSchema],ds_pk_xuat:[pkxuatSchema]}); pn1Schema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,ma_kho:validVt.existsKho,tk_co:validAccount.existsTk}; (global.configs||{}).createIndexes&&(pn1Schema.index({id_app:1,ma_ct:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1}),pn1Schema.index({id_app:1,ngay_ct:-1,ma_ct:1}),pn1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,ma_kh:1}),pn1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,ma_kho:1}),pn1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,"details.ma_vt":1}),pn1Schema.index({id_app:1,id_po1:1}),pn1Schema.index({id_app:1,id_contract:1}),pn1Schema.index({id_po1:1}),pn1Schema.index({id_contract:1}),pn1Schema.index({id_app:1,ma_ct:1,date_updated:-1}), pn1Schema.index({id_app:1,ma_ct:1,status:1}),pn1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,user_created:1,visible_to:1,visible_to_users:1}),pn1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,trang_thai:1}),pn1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,user_created:1,visible_to:1,visible_to_users:1,trang_thai:1}),pn1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,user_created:1,visible_to:1,visible_to_users:1,trang_thai:1,so_ct:-1}),pn1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,user_created:1,visible_to:1,visible_to_users:1, trang_thai:1,ma_kh:1}),pn1Schema.index({id_app:1,ma_ct:1,ngay_ct:-1,user_created:1,visible_to:1,visible_to_users:1,trang_thai:1,ma_kho:1}),pn1Schema.index({dien_giai:"text",so_ct:"text",ma_kho:"text",ten_kho:"text",ma_kh:"text",ten_kh:"text"},{name:"pn1_index_text"}));const model=mongoose.models.pn1||mongoose.model("pn1",pn1Schema);if((global.configs||{}).createIndexes)model.on("index",async function($err$$){$err$$?Logger.error("pn1 index error",$err$$):console.info("pn1 indexing complete")}); module.exports=model;