flexbiz-server 12.3.2 → 12.3.4

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.
Files changed (166) hide show
  1. package/package.json +3 -3
  2. package/server/app.js +4 -4
  3. package/server/cluster.js +2 -2
  4. package/server/controllers/controller.js +109 -107
  5. package/server/data/account.js +479 -0
  6. package/server/data/ckgtluong.js +65 -0
  7. package/server/data/currency.js +4 -0
  8. package/server/data/dmdvt.js +54 -0
  9. package/server/data/dmkho.js +3 -0
  10. package/server/data/dvcs.js +3 -0
  11. package/server/data/kbm_bcdkt.js +4843 -0
  12. package/server/data/kbm_kqhdkd.js +655 -0
  13. package/server/data/kbm_lcttgt.js +2386 -0
  14. package/server/data/kbm_lctttt.js +934 -0
  15. package/server/data/kbm_tkgtgt.js +560 -0
  16. package/server/data/parameter.js +178 -0
  17. package/server/data/ptthanhtoan.js +3 -0
  18. package/server/data/rpt.js +123 -0
  19. package/server/data/rptobject.js +2 -0
  20. package/server/data/sys/labelinfo.js +2 -0
  21. package/server/data/sys/listinfo.js +225430 -0
  22. package/server/data/sys/menuinfo.js +1 -0
  23. package/server/data/sys/moduleinfo.js +523 -0
  24. package/server/data/sys/quanhuyen.js +9928 -0
  25. package/server/data/sys/reportinfo.js +14045 -0
  26. package/server/data/sys/tableinfo.js +5873 -0
  27. package/server/data/sys/templatestore.js +1988 -0
  28. package/server/data/sys/tinhthanh.js +821 -0
  29. package/server/data/sys/trangthai.js +12301 -0
  30. package/server/data/sys/user.js +21 -0
  31. package/server/data/sys/vietqrbanks.js +1 -0
  32. package/server/data/tc.js +5 -0
  33. package/server/data/usergroup.js +47 -0
  34. package/server/data/vat.js +115 -0
  35. package/server/global.js +1 -1
  36. package/server/libs/databanle.js +12 -9
  37. package/server/libs/databanletheongay.js +1 -1
  38. package/server/libs/docs.js +304 -0
  39. package/server/libs/dtbanletheosp.js +2 -2
  40. package/server/libs/getGiaban.js +57 -53
  41. package/server/libs/htmlReport.js +6 -6
  42. package/server/libs/mongooseDeletePost.js +4 -3
  43. package/server/libs/permission.js +25 -20
  44. package/server/libs/post-socai.js +6 -5
  45. package/server/libs/post-sokho.js +1 -1
  46. package/server/libs/tuoinophaithu.js +10 -10
  47. package/server/libs/tuoinophaitra.js +11 -9
  48. package/server/libs/utils.js +29 -5
  49. package/server/libs/validator.js +3 -2
  50. package/server/models/app.js +4 -3
  51. package/server/models/bds_area.js +2 -2
  52. package/server/models/bds_block.js +2 -2
  53. package/server/models/bds_building.js +3 -3
  54. package/server/models/bds_floor.js +2 -2
  55. package/server/models/bds_floordetail.js +3 -3
  56. package/server/models/bds_nhadat.js +6 -4
  57. package/server/models/bds_nhomnhadat.js +3 -0
  58. package/server/models/bds_phanloainhadat.js +2 -0
  59. package/server/models/customer.js +5 -5
  60. package/server/models/dh2.js +5 -5
  61. package/server/models/ecomproductlines.js +2 -0
  62. package/server/models/hd2.js +17 -15
  63. package/server/models/hd4.js +12 -0
  64. package/server/models/listinfo.js +12 -1
  65. package/server/models/moduleinfo.js +3 -3
  66. package/server/models/pn3.js +4 -4
  67. package/server/models/so9.js +7 -7
  68. package/server/models/tdttco.js +9 -8
  69. package/server/models/tdttco_tt.js +1 -1
  70. package/server/models/tdttno.js +9 -8
  71. package/server/models/tdttno_tt.js +2 -2
  72. package/server/models/user.js +7 -7
  73. package/server/models/vatra.js +5 -5
  74. package/server/models/vatvao.js +5 -5
  75. package/server/modules/lists/bg-cddiem.js +6 -7
  76. package/server/modules/lists/bg-cddt.js +7 -8
  77. package/server/modules/lists/bg-cdkh.js +11 -10
  78. package/server/modules/lists/bg-cdnphep.js +6 -7
  79. package/server/modules/lists/bg-cdtk.js +9 -9
  80. package/server/modules/lists/bg-cdvt.js +8 -9
  81. package/server/modules/lists/bg-cdvtnpp.js +7 -8
  82. package/server/modules/lists/ls-account.js +4 -4
  83. package/server/modules/lists/ls-afflink.js +2 -2
  84. package/server/modules/lists/ls-bds_area.js +4 -3
  85. package/server/modules/lists/ls-bds_block.js +1 -1
  86. package/server/modules/lists/ls-bds_building.js +2 -2
  87. package/server/modules/lists/ls-bds_floor.js +2 -2
  88. package/server/modules/lists/ls-bds_floordetail.js +18 -18
  89. package/server/modules/lists/ls-bds_nhadat.js +16 -7
  90. package/server/modules/lists/ls-bds_nhomnhadat.js +1 -0
  91. package/server/modules/lists/ls-bds_phanloainhadat.js +1 -0
  92. package/server/modules/lists/ls-currency.js +1 -1
  93. package/server/modules/lists/ls-dknphep.js +1 -1
  94. package/server/modules/lists/ls-dmban.js +3 -3
  95. package/server/modules/lists/ls-dmca.js +1 -1
  96. package/server/modules/lists/ls-dmchucvu.js +2 -1
  97. package/server/modules/lists/ls-dmcpmh.js +1 -1
  98. package/server/modules/lists/ls-dmdvt.js +1 -1
  99. package/server/modules/lists/ls-dmhoahonghd.js +2 -1
  100. package/server/modules/lists/ls-dmhoahongnpp.js +2 -1
  101. package/server/modules/lists/ls-dmkhuyenmai.js +4 -4
  102. package/server/modules/lists/ls-dmkhuyenmaihd.js +2 -2
  103. package/server/modules/lists/ls-dmletet.js +1 -1
  104. package/server/modules/lists/ls-dmloaicong.js +1 -1
  105. package/server/modules/lists/ls-dmloaits.js +1 -1
  106. package/server/modules/lists/ls-dmnckkm.js +5 -5
  107. package/server/modules/lists/ls-dmnghiepvu.js +1 -1
  108. package/server/modules/lists/ls-dmnguonvon.js +1 -1
  109. package/server/modules/lists/ls-dmnhnv.js +5 -5
  110. package/server/modules/lists/ls-dmnhtask.js +5 -5
  111. package/server/modules/lists/ls-dmnkh.js +5 -5
  112. package/server/modules/lists/ls-dmntt.js +5 -5
  113. package/server/modules/lists/ls-dmnvt.js +4 -4
  114. package/server/modules/lists/ls-dmqddvt.js +2 -2
  115. package/server/modules/lists/ls-dmtanggiamts.js +1 -1
  116. package/server/modules/lists/ls-dmvt.js +20 -19
  117. package/server/modules/lists/ls-dvcs.js +1 -1
  118. package/server/modules/lists/ls-fbpage.js +1 -1
  119. package/server/modules/lists/ls-hlink.js +1 -1
  120. package/server/modules/lists/ls-hlinkvalue.js +1 -1
  121. package/server/modules/lists/ls-hmcn.js +2 -2
  122. package/server/modules/lists/ls-kbm-bcdkt.js +1 -1
  123. package/server/modules/lists/ls-kbm-bcqt.js +4 -4
  124. package/server/modules/lists/ls-kbm-kqhdkd.js +1 -1
  125. package/server/modules/lists/ls-kbm-lcttgt.js +1 -1
  126. package/server/modules/lists/ls-kbm-lctttt.js +1 -1
  127. package/server/modules/lists/ls-kbm-pttct.js +2 -2
  128. package/server/modules/lists/ls-kbm-tkgtgt.js +2 -1
  129. package/server/modules/lists/ls-kbm-tmbctc.js +2 -2
  130. package/server/modules/lists/ls-label.js +1 -1
  131. package/server/modules/lists/ls-like-module.js +2 -2
  132. package/server/modules/lists/ls-newsfeed.js +3 -3
  133. package/server/modules/lists/ls-participant.js +3 -3
  134. package/server/modules/lists/ls-ptthanhtoan.js +2 -2
  135. package/server/modules/lists/ls-rpt.js +4 -4
  136. package/server/modules/lists/ls-rptform.js +4 -4
  137. package/server/modules/lists/ls-tc.js +1 -1
  138. package/server/modules/lists/ls-templaterpt.js +4 -3
  139. package/server/modules/lists/ls-templatevoucher.js +1 -1
  140. package/server/modules/lists/ls-vat.js +1 -1
  141. package/server/modules/lists/ls-vatra.js +5 -0
  142. package/server/modules/lists/ls-vatvao.js +5 -0
  143. package/server/modules/reports/calc-tinhgiatb.js +6 -6
  144. package/server/modules/reports/calc-tinhgiathanh.js +6 -7
  145. package/server/modules/reports/calc-tinhkhauhaots.js +3 -4
  146. package/server/modules/reports/calc-tinhluong.js +17 -17
  147. package/server/modules/reports/rp-congnophaithutheotuoino.js +2 -2
  148. package/server/modules/reports/rp-congnophaitratheotuoino.js +2 -2
  149. package/server/modules/reports/rp-congnosapthu.js +4 -0
  150. package/server/modules/reports/rp-congnosaptra.js +4 -0
  151. package/server/modules/reports/rp-congviectheotimeline.js +2 -1
  152. package/server/modules/reports/rp-dtbanletheoct.js +15 -15
  153. package/server/modules/reports/rp-dtbanletheokh.js +5 -5
  154. package/server/modules/reports/rp-dtbanletheokho.js +1 -1
  155. package/server/modules/reports/rp-dtbanletheonv.js +3 -3
  156. package/server/modules/reports/rp-kcsns.js +16 -16
  157. package/server/modules/reports/rp-tongquancongty.js +3 -0
  158. package/server/modules/systems/sys-ecomproductlines.js +1 -0
  159. package/server/modules/vouchers/vo-dh2.js +25 -24
  160. package/server/modules/vouchers/vo-hd1.js +18 -18
  161. package/server/modules/vouchers/vo-hd2.js +12 -6
  162. package/server/modules/vouchers/vo-hd3.js +37 -33
  163. package/server/modules/vouchers/vo-hd4.js +15 -0
  164. package/server/modules/vouchers/vo-pn3.js +5 -4
  165. package/server/modules/vouchers/vo-pn5.js +18 -13
  166. package/server/route.js +6 -4
@@ -1,11 +1,11 @@
1
1
  'use strict';const validator=require("validator"),redisCache=require("../libs/redis-cache"),customerSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_kh:{type:String,uppercase:!0,required:!0,default:"",trim:!0,maxlength:32},ten_kh:{type:String,required:"Y\u00eau c\u1ea7u nh\u1eadp t\u00ean kh\u00e1ch h\u00e0ng",trim:!0,maxlength:1024},device_user_id:String,gioi_tinh:{type:String,maxlength:1024},ngay_sinh:Date,dia_chi:{type:String,maxlength:1024},xa_phuong:{type:String,maxlength:1024},
2
2
  quan_huyen:{type:String,maxlength:1024},tinh_thanh:{type:String,maxlength:1024},location:Schema.Types.Mixed,dien_thoai:{type:String,maxlength:1024,trim:!0},dia_chi2:{type:String,maxlength:1024},xa_phuong2:{type:String,maxlength:1024},quan_huyen2:{type:String,maxlength:1024},tinh_thanh2:{type:String,maxlength:1024},location2:Schema.Types.Mixed,dien_thoai2:{type:String,maxlength:1024,trim:!0},fax:{type:String,maxlength:1024},email:{type:String,maxlength:1024},website:{type:String,maxlength:1024},ma_so_thue:{type:String,
3
- maxlength:1024},phu_trach:{type:String,maxlength:1024},ten_phu_trach:String,loai_kh:{type:String,default:"",trim:!0,maxlength:1024},nh_kh:{type:String,default:"",trim:!0,maxlength:1024},ten_nh_kh:String,nh_kh2:[String],nh_kh3:[String],nh_kh4:[String],nh_kh5:[String],ma_nganh_hang:[String],isdistributor:{type:Boolean},khu_vuc_phu_trach:[],ma_kho_npp:String,ghi_chu:{type:String,default:"",trim:!0,maxlength:1024},ncc_yn:{type:Boolean,default:!0},kh_yn:{type:Boolean,default:!0},from_updated:{type:String,
3
+ maxlength:1024},phu_trach:{type:String,maxlength:1024},ten_phu_trach:String,loai_kh:{type:String,default:"",trim:!0,maxlength:1024},nh_kh:{type:String,default:"",trim:!0,maxlength:1024},ten_nh_kh:String,nh_kh2:[String],nh_kh3:[String],nh_kh4:[String],nh_kh5:[String],nh_kh6:[String],ma_nganh_hang:[String],khu_vuc_phu_trach:[],ma_kho_npp:String,ghi_chu:{type:String,default:"",trim:!0,maxlength:1024},isdistributor:{type:Boolean},ncc_yn:{type:Boolean,default:!0},kh_yn:{type:Boolean,default:!0},from_updated:{type:String,
4
4
  default:"M",maxlength:1024},of_user:{type:String,lowercase:!0,maxlength:1024,set:function($of_user$$){this._previous_of_user=this.of_user;return $of_user$$}},group_user:String,default_password:{type:String},exfields:Schema.Types.Mixed,trang_thai:{type:String,default:"1"},activities:{},status:{type:Boolean,default:!0},ngay_mua_dau_tien:Date,ngay_mua_gan_nhat:Date,ngay_tuong_tac_gan_nhat:{type:Date,default:Date.now},latest_note:Schema.Types.Mixed,labels:[String],hinh_anh:String,date_created:{type:Date,
5
- 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],visible_to_usergroups:[String],update_right:[String],delete_right:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String]},{toJSON:{virtuals:!0}});customerSchema.index({id_app:1});customerSchema.index({ma_kh:1});customerSchema.index({ten_kh:1});customerSchema.index({nh_kh:1});customerSchema.index({nh_kh2:1});
6
- customerSchema.index({nh_kh3:1});customerSchema.index({nh_kh4:1});customerSchema.index({nh_kh5:1});customerSchema.index({isdistributor:1});customerSchema.index({khu_vuc_phu_trach:1});customerSchema.index({activities:1});customerSchema.index({ma_nganh_hang:1});customerSchema.index({ngay_mua_gan_nhat:1});customerSchema.index({ngay_mua_dau_tien:1});customerSchema.index({ngay_tuong_tac_gan_nhat:1});customerSchema.index({dien_thoai:1});customerSchema.index({email:1});customerSchema.index({tinh_thanh:1});
7
- customerSchema.index({date_updated:-1});customerSchema.index({date_created:-1});customerSchema.index({user_created:1});customerSchema.index({labels:1});customerSchema.index({of_user:1});customerSchema.index({ten_kh:"text",ma_kh:"text",dia_chi:"text",xa_phuong:"text",quan_huyen:"text",tinh_thanh:"text",dien_thoai:"text",email:"text",ma_so_thue:"text",phu_trach:"text",ten_phu_trach:"text",nh_kh:"text",ten_nh_kh:"text"},{name:"customer_index"});customerSchema.index({id_app:1,ma_kh:1},{unique:!0});customerSchema.index({status:1});
8
- customerSchema.index({user_created:1,visible_to:1,visible_to_users:1});customerSchema.index({trang_thai:1});
5
+ 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],visible_to_usergroups:[String],update_right:[String],delete_right:[String],dataview_to:{type:Number,default:0},dataview_to_users:[String]},{toJSON:{virtuals:!0}});customerSchema.index({id_app:1});customerSchema.index({ma_kh:1});customerSchema.index({ten_kh:1});customerSchema.index({loai_kh:1});customerSchema.index({nh_kh:1});
6
+ customerSchema.index({nh_kh2:1});customerSchema.index({nh_kh3:1});customerSchema.index({nh_kh4:1});customerSchema.index({nh_kh5:1});customerSchema.index({nh_kh6:1});customerSchema.index({isdistributor:1});customerSchema.index({khu_vuc_phu_trach:1});customerSchema.index({activities:1});customerSchema.index({ma_nganh_hang:1});customerSchema.index({ngay_mua_gan_nhat:1});customerSchema.index({ngay_mua_dau_tien:1});customerSchema.index({ngay_tuong_tac_gan_nhat:1});customerSchema.index({dien_thoai:1});
7
+ customerSchema.index({email:1});customerSchema.index({tinh_thanh:1});customerSchema.index({date_updated:-1});customerSchema.index({date_created:-1});customerSchema.index({user_created:1});customerSchema.index({labels:1});customerSchema.index({of_user:1});customerSchema.index({ten_kh:"text",ma_kh:"text",dia_chi:"text",xa_phuong:"text",quan_huyen:"text",tinh_thanh:"text",dien_thoai:"text",email:"text",ma_so_thue:"text",phu_trach:"text",ten_phu_trach:"text",nh_kh:"text",ten_nh_kh:"text"},{name:"customer_index"});
8
+ customerSchema.index({id_app:1,ma_kh:1},{unique:!0});customerSchema.index({status:1});customerSchema.index({user_created:1,visible_to:1,visible_to_users:1});customerSchema.index({trang_thai:1});
9
9
  customerSchema.pre("save",function($next$$){if(!this.of_user)return $next$$();const $self$$=this;if(this.isNew||this.of_user!=this._previous_of_user){let $condition$$={id_app:this.id_app,of_user:this.of_user,ma_kh:{$ne:this.ma_kh}};console.log("Check of_user, previous of_user:",this._previous_of_user,"new of_user:",this.of_user,"ma_kh:",this.ma_kh);mongoose.models.customer.find($condition$$,{ten_kh:1,ma_kh:1},($e$$,$khs$$)=>{0<$khs$$.length?$next$$(Error(`Ng\u01b0\u1eddi s\u1eed d\u1ee5ng '${$self$$.of_user}' \u0111\u00e3 \u0111\u01b0\u1ee3c g\u1eafn cho kh\u00e1ch h\u00e0ng '${$khs$$.map($kh$$=>
10
10
  $kh$$.ma_kh+" - "+$kh$$.ten_kh).join(",")}'`)):$next$$()})}else $next$$()});const model=mongoose.models.customer||mongoose.model("customer",customerSchema);
11
11
  model.on("index",async function($err$$){$err$$?(console.error("Customer index error",$err$$),(await model.aggregate([{$group:{_id:{id_app:"$id_app",ma_kh:"$ma_kh"},count:{$sum:1},ids:{$push:"$_id"}}},{$match:{count:{$gt:1}}}])).forEach($d$$=>{console.info("customer duplication",$d$$._id,$d$$.ids);$d$$.ids.forEach(($id$$,$index$$)=>{0<$index$$&&console.info("you should delete customer",$id$$)})})):console.info("Customer indexing complete")});
@@ -1,9 +1,9 @@
1
1
  'use strict';const validAccount=require("../libs/validator-account"),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},ma_kho:{type:String,uppercase:!0,maxlength:32},ma_nvt:String,tk_vt:{type:String,uppercase:!0,maxlength:32},tk_gv:{type:String,uppercase:!0,maxlength:32},tk_dt:{type:String,uppercase:!0,maxlength:32},tk_ck:{type:String,uppercase:!0,
2
- maxlength:32},px_gia_dd:{type:Boolean,default:!1},ton_kho:{type:Number,default:0},so_luong:{type:Number,default:0},sl_xuat:{type:Number,default:0},gia_mua:{type:Number,default:0},tien_xuat_tmp:{type:Number,default:0},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_ct_nt:{type:Number},gia_ban_ct:{type:Number},tien_ct:{type:Number,default:0},tien_ct_nt:{type:Number,default:0},ma_thue:String,thue_suat:{type:Number,
3
- default:0},tien_thue:{type:Number,default:0},tien_thue_nt:{type:Number,default:0},ten_vt_vat:{type:String},gia_ban_niem_yet_nt:Number,gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_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},tt_nt:{type:Number,default:0},tt:{type:Number,default:0},promotion:Schema.Types.Mixed,dien_giai:{type:String,maxlength:1024},
4
- ty_le_hoa_hong:Number,tien_hoa_hong:Number,chuyen_ngay:Boolean,ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,chuyen_ngay_gt:Boolean,ty_le_hoa_hong_ctv:Number,tien_hoa_hong_ctv:Number,chuyen_ngay_ctv:Boolean,ty_le_hoa_hong_ctv2:Number,tien_hoa_hong_ctv2:Number,chuyen_ngay_ctv2:Boolean,ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,chuyen_ngay_ql:Boolean,ty_le_hoa_hong_kho:Number,tien_hoa_hong_kho:Number,chuyen_ngay_kho:Boolean,combo:Schema.Types.Mixed,sl_ap_dung_km:{type:Number,default:0},km_yn_for:String,
5
- id_cs:String,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_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},nh_tt:String,ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},
6
- ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_vt:validAccount.existsTk,tk_gv:validAccount.existsTk,tk_dt:validAccount.existsTk,tk_ck:validAccount.existsTk,ma_vt:validVt.existsVt,ma_kho:validVt.existsKho,ma_dvt:validator.existsDvt};
2
+ maxlength:32},px_gia_dd:{type:Boolean,default:!1},ton_kho:{type:Number,default:0},so_luong:{type:Number,default:0},sl_xuat:{type:Number,default:0},he_so_qd:{type:Number,default:1},sl_xuat_qd:Number,gia_mua:{type:Number,default:0},tien_xuat_tmp:{type:Number,default:0},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_ct_nt:{type:Number},gia_ban_ct:{type:Number},tien_ct:{type:Number,default:0},tien_ct_nt:{type:Number,
3
+ default:0},ma_thue:String,thue_suat:{type:Number,default:0},tien_thue:{type:Number,default:0},tien_thue_nt:{type:Number,default:0},ten_vt_vat:{type:String},gia_ban_niem_yet_nt:Number,gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_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},tt_nt:{type:Number,default:0},tt:{type:Number,default:0},promotion:Schema.Types.Mixed,
4
+ dien_giai:{type:String,maxlength:1024},ty_le_hoa_hong:Number,tien_hoa_hong:Number,chuyen_ngay:Boolean,ty_le_hoa_hong_gt:Number,tien_hoa_hong_gt:Number,chuyen_ngay_gt:Boolean,ty_le_hoa_hong_ctv:Number,tien_hoa_hong_ctv:Number,chuyen_ngay_ctv:Boolean,ty_le_hoa_hong_ctv2:Number,tien_hoa_hong_ctv2:Number,chuyen_ngay_ctv2:Boolean,ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,chuyen_ngay_ql:Boolean,ty_le_hoa_hong_kho:Number,tien_hoa_hong_kho:Number,chuyen_ngay_kho:Boolean,combo:Schema.Types.Mixed,sl_ap_dung_km:{type:Number,
5
+ default:0},km_yn_for:String,id_cs:String,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_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},nh_tt:String,ma_tt2:{type:String,default:"",
6
+ uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_vt:validAccount.existsTk,tk_gv:validAccount.existsTk,tk_dt:validAccount.existsTk,tk_ck:validAccount.existsTk,ma_vt:validVt.existsVt,ma_kho:validVt.existsKho,ma_dvt:validator.existsDvt};
7
7
  const dh2Schema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"DH2",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},
8
8
  ong_ba:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,required:!0,default:"",maxlength:32},ten_kh:String,ma_so_thue:{type:String,maxlength:1024},tk_no:{type:String,uppercase:!0,default:"",maxlength:32},ten_nguoi_nhan:String,sdt_nguoi_nhan:String,dia_chi_nguoi_nhan:String,tinh_thanh:String,quan_huyen:String,xa_phuong:String,note_ship:String,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},
9
9
  so_hd:{type:String,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_co:{type:String,uppercase:!0,maxlength:32},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},tien_phi_vc:{type:Number,default:0},
@@ -0,0 +1,2 @@
1
+ 'use strict';const ecomproductlinesScheam=new Schema({id_apps:[],ma_nganh_hang:String,ten_nganh_hang: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:""}});ecomproductlinesScheam.index({id_apps:1});ecomproductlinesScheam.index({status:1});ecomproductlinesScheam.index({ten_nganh_hang:1});ecomproductlinesScheam.index({ma_nganh_hang:1});
2
+ ecomproductlinesScheam.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.ecomproductlines||mongoose.model("ecomproductlines",ecomproductlinesScheam);
@@ -1,17 +1,19 @@
1
1
  'use strict';const validAccount=require("../libs/validator-account"),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},ma_kho:{type:String,uppercase:!0,maxlength:32},ma_nvt:String,tk_vt:{type:String,uppercase:!0,maxlength:32},tk_gv:{type:String,uppercase:!0,maxlength:32},tk_dt:{type:String,uppercase:!0,maxlength:32},tk_ck:{type:String,uppercase:!0,
2
- maxlength:32},px_gia_dd:{type:Boolean,default:!1},ton_kho:{type:Number,default:0},so_luong:{type:Number,default:0},sl_xuat:{type:Number,default:0},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,default:0},tien_xuat_tmp:{type:Number,default:0},gia_ban_ct_nt:{type:Number},gia_ban_ct:{type:Number},tien_ct:{type:Number,default:0},tien_ct_nt:{type:Number,default:0},ma_thue:String,thue_suat:{type:Number,
3
- default:0},tien_thue:{type:Number,default:0},tien_thue_nt:{type:Number,default:0},gia_ban_niem_yet_nt:Number,gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_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},tt_nt:{type:Number,default:0},tt:{type:Number,default:0},promotion:Schema.Types.Mixed,dien_giai:{type:String,maxlength:1024},ten_vt_vat:String,ma_bp:{type:String,
4
- 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_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},nh_tt:String,ma_tt2:{type:String,default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",
5
- uppercase:!0,maxlength:32},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,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_ctv2:Number,tien_hoa_hong_ctv2:Number,ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,chuyen_ngay_ql:Boolean,tk_no_hoa_hong_ql:String,
6
- tk_co_hoa_hong_ql:String,ty_le_hoa_hong_kho:Number,tien_hoa_hong_kho:Number,chuyen_ngay_kho:Boolean,tk_no_hoa_hong_kho:String,tk_co_hoa_hong_kho:String,combo:Schema.Types.Mixed,sl_ap_dung_km:{type:Number,default:0},km_yn_for:String,id_cs:String,exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});detailSchema.validate={tk_vt:validAccount.existsTk,tk_gv:validAccount.existsTk,tk_dt:validAccount.existsTk,tk_ck:validAccount.existsTk,ma_vt:validVt.existsVt,ma_kho:validVt.existsKho,ma_dvt:validator.existsDvt};
2
+ maxlength:32},px_gia_dd:{type:Boolean,default:!1},ton_kho:{type:Number,default:0},so_luong:{type:Number,default:0},sl_xuat:{type:Number,default:0},he_so_qd:{type:Number,default:1},sl_xuat_qd:Number,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,default:0},tien_xuat_tmp:{type:Number,default:0},gia_ban_ct_nt:{type:Number},gia_ban_ct:{type:Number},tien_ct:{type:Number,default:0},tien_ct_nt:{type:Number,
3
+ default:0},ma_thue:String,thue_suat:{type:Number,default:0},tien_thue:{type:Number,default:0},tien_thue_nt:{type:Number,default:0},gia_ban_niem_yet_nt:Number,gia_ban:{type:Number,default:0},gia_ban_nt:{type:Number,default:0},tien:{type:Number,default:0},tien_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},tt_nt:{type:Number,default:0},tt:{type:Number,default:0},promotion:Schema.Types.Mixed,dien_giai:{type:String,
4
+ maxlength:1024},ten_vt_vat:String,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_lo:{type:String,default:"",uppercase:!0,maxlength:32},han_sd:{type:Date},ma_tt1:{type:String,default:"",uppercase:!0,maxlength:32},nh_tt:String,ma_tt2:{type:String,default:"",uppercase:!0,
5
+ maxlength:32},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},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,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_ctv2:Number,tien_hoa_hong_ctv2:Number,ty_le_hoa_hong_ql:Number,tien_hoa_hong_ql:Number,
6
+ chuyen_ngay_ql:Boolean,tk_no_hoa_hong_ql:String,tk_co_hoa_hong_ql:String,ty_le_hoa_hong_kho:Number,tien_hoa_hong_kho:Number,chuyen_ngay_kho:Boolean,tk_no_hoa_hong_kho:String,tk_co_hoa_hong_kho:String,combo:Schema.Types.Mixed,sl_ap_dung_km:{type:Number,default:0},km_yn_for:String,id_cs:String,exfields_detail:Schema.Types.Mixed,line:{type:Number,default:0}});
7
+ detailSchema.validate={tk_vt:validAccount.existsTk,tk_gv:validAccount.existsTk,tk_dt:validAccount.existsTk,tk_ck:validAccount.existsTk,ma_vt:validVt.existsVt,ma_kho:validVt.existsKho,ma_dvt:validator.existsDvt};
7
8
  const hd2Schema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"HD2",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},
8
- ong_ba:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,required:!0,default:"",maxlength:32},ten_kh:String,ma_so_thue:{type:String,maxlength:1024},tk_no:{type:String,uppercase:!0,required:!0,default:"",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,uppercase:!0,maxlength:32},so_seri:{type:String,uppercase:!0,maxlength:32},ngay_hd:{type:Date,uppercase:!0},ma_thue:{type:String,
9
- uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_co:{type:String,uppercase:!0,maxlength:32},dia_chi:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai_thue:{type:String,default:"",maxlength:1024},tien_thue_dc_nt:Number,t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},tien_phi_vc:{type:Number,default:0},tien_phi_vc_nt:{type:Number,default:0},tk_phi_vc:String,han_tt:{type:Number,default:0},hinh_thuc_tt:{type:String,maxlength:1024},
10
- dien_giai:{type:String,default:"",maxlength:1024},exfields: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],details:{type:[detailSchema]},promotion:Schema.Types.Mixed,id_contract:{type:String,maxlength:1024},
11
- id_dh2:{type:String,maxlength:1024},ma_kho:{type:String,uppercase:!0,maxlength:32},ma_kho_npp:{type:String,uppercase:!0,maxlength:32},of_user:{type:String},id_cs_ck_hd:String,ty_le_ck_hd:{type:Number,default:0},tien_ck_hd:{type:Number,default:0},tk_ck:String,result_export_einvoice:Schema.Types.Mixed,ma_nv:{type:String,uppercase:!0,maxlength:32},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,tk_co_hoa_hong:String,
12
- 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,da_chuyen_hoa_hong_ctv:Boolean,
13
- user_ctv2:String,ma_ctv2:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ctv2:Number,thu_nhap_ctv2:Number,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,user_kho:String,ma_kh_hoa_hong_kho:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_kho:Number,tien_hoa_hong_kho:Number,tk_no_hoa_hong_kho:String,tk_co_hoa_hong_kho:String,
14
- chuyen_ngay_kho:Boolean,da_chuyen_hoa_hong_kho:Boolean,trang_thai_dh:String,user_nv_dong_hang:{type:String,maxlength:128},ngay_dong_hang:Date,ngay_hoan_dong_hang:Date,ngay_dong_hang_hoan_thanh:Date,trang_thai_gh:String,user_nv_giao_hang:{type:String,maxlength:128},ngay_giao_hang:Date,ngay_hoan_giao_hang:Date,ngay_kg_giao_duoc:Date,ngay_giao_hang_hoan_thanh:Date,khong_tinh_lai_hoa_hong:Boolean,ma_bp:{type:String,uppercase:!0,maxlength:32},ma_phi:{type:String,uppercase:!0,maxlength:32},ma_hd:{type:String,
15
- uppercase:!0,maxlength:32},ma_dt:{type:String,uppercase:!0,maxlength:32},ma_lo:{type:String,uppercase:!0,maxlength:32},id_client:String});hd2Schema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,tk_no:validAccount.existsTk,ma_thue:validator.existsVat,tk_thue_co:validAccount.existsTk};hd2Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1});hd2Schema.index({dien_giai:"text",ma_kh:"text",ten_kh:"text",so_ct:"text"},{name:"hd2_index_text"});
16
- hd2Schema.index({ma_ct:1});hd2Schema.index({ma_kh:1});hd2Schema.index({ma_kho:1});hd2Schema.index({ma_kho_npp:1});hd2Schema.index({of_user:1});hd2Schema.index({"details.ma_vt":1});hd2Schema.index({"details.id_cs_ck":1});hd2Schema.index({"details.id_cs":1});hd2Schema.index({id_cs_ck_hd:1});hd2Schema.index({id_dh2:1});hd2Schema.index({id_contract:1});hd2Schema.index({user_created:1,date_created:-1});hd2Schema.index({date_updated:-1});hd2Schema.index({user_nv:1});hd2Schema.index({user_gt:1});hd2Schema.index({user_ctv:1});
17
- hd2Schema.index({user_ql:1});hd2Schema.index({user_ctv2:1});hd2Schema.index({user_kho:1});hd2Schema.index({trang_thai_dh:1});hd2Schema.index({trang_thai_gh:1});hd2Schema.index({user_nv_dong_hang:1});hd2Schema.index({user_nv_giao_hang:1});hd2Schema.index({status:1});hd2Schema.index({user_created:1,visible_to:1,visible_to_users:1});hd2Schema.index({trang_thai:1});hd2Schema.index({id_client:1});module.exports=mongoose.models.hd2||mongoose.model("hd2",hd2Schema);
9
+ ong_ba:{type:String,maxlength:1024},ma_kh:{type:String,uppercase:!0,required:!0,default:"",maxlength:32},ten_kh:String,ma_so_thue:{type:String,maxlength:1024},tk_no:{type:String,uppercase:!0,required:!0,default:"",maxlength:32},id_invoice:String,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,uppercase:!0,maxlength:32},so_seri:{type:String,uppercase:!0,maxlength:32},ngay_hd:{type:Date,
10
+ uppercase:!0},ma_thue:{type:String,uppercase:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_co:{type:String,uppercase:!0,maxlength:32},dia_chi:{type:String,default:"",maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai_thue:{type:String,default:"",maxlength:1024},tien_thue_dc_nt:Number,t_thue:{type:Number,default:0},t_thue_nt:{type:Number,default:0},tien_phi_vc:{type:Number,default:0},tien_phi_vc_nt:{type:Number,default:0},tk_phi_vc:String,han_tt:{type:Number,default:0},
11
+ hinh_thuc_tt:{type:String,maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024},exfields: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],details:{type:[detailSchema]},promotion:Schema.Types.Mixed,
12
+ id_contract:{type:String,maxlength:1024},id_dh2:{type:String,maxlength:1024},ma_kho:{type:String,uppercase:!0,maxlength:32},ma_kho_npp:{type:String,uppercase:!0,maxlength:32},of_user:{type:String},id_cs_ck_hd:String,ty_le_ck_hd:{type:Number,default:0},tien_ck_hd:{type:Number,default:0},tk_ck:String,result_export_einvoice:Schema.Types.Mixed,ma_nv:{type:String,uppercase:!0,maxlength:32},user_nv:String,ma_kh_hoa_hong:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong:Number,tien_hoa_hong:Number,
13
+ tk_no_hoa_hong:String,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,
14
+ chuyen_ngay_ctv:Boolean,da_chuyen_hoa_hong_ctv:Boolean,user_ctv2:String,ma_ctv2:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_ctv2:Number,thu_nhap_ctv2:Number,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,user_kho:String,ma_kh_hoa_hong_kho:{type:String,uppercase:!0,maxlength:32},ty_le_hoa_hong_kho:Number,tien_hoa_hong_kho:Number,
15
+ tk_no_hoa_hong_kho:String,tk_co_hoa_hong_kho:String,chuyen_ngay_kho:Boolean,da_chuyen_hoa_hong_kho:Boolean,trang_thai_dh:String,user_nv_dong_hang:{type:String,maxlength:128},ngay_dong_hang:Date,ngay_hoan_dong_hang:Date,ngay_dong_hang_hoan_thanh:Date,trang_thai_gh:String,user_nv_giao_hang:{type:String,maxlength:128},ngay_giao_hang:Date,ngay_hoan_giao_hang:Date,ngay_kg_giao_duoc:Date,ngay_giao_hang_hoan_thanh:Date,khong_tinh_lai_hoa_hong:Boolean,ma_bp:{type:String,uppercase:!0,maxlength:32},ma_phi:{type:String,
16
+ uppercase:!0,maxlength:32},ma_hd:{type:String,uppercase:!0,maxlength:32},ma_dt:{type:String,uppercase:!0,maxlength:32},ma_lo:{type:String,uppercase:!0,maxlength:32},id_client:String});hd2Schema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,tk_no:validAccount.existsTk,ma_thue:validator.existsVat,tk_thue_co:validAccount.existsTk};hd2Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1});
17
+ hd2Schema.index({dien_giai:"text",ma_kh:"text",ten_kh:"text",so_ct:"text"},{name:"hd2_index_text"});hd2Schema.index({ma_ct:1});hd2Schema.index({ma_kh:1});hd2Schema.index({ma_kho:1});hd2Schema.index({ma_kho_npp:1});hd2Schema.index({of_user:1});hd2Schema.index({"details.ma_vt":1});hd2Schema.index({"details.id_cs_ck":1});hd2Schema.index({"details.id_cs":1});hd2Schema.index({id_cs_ck_hd:1});hd2Schema.index({id_dh2:1});hd2Schema.index({id_contract:1});hd2Schema.index({user_created:1,date_created:-1});
18
+ hd2Schema.index({date_updated:-1});hd2Schema.index({user_nv:1});hd2Schema.index({user_gt:1});hd2Schema.index({user_ctv:1});hd2Schema.index({user_ql:1});hd2Schema.index({user_ctv2:1});hd2Schema.index({user_kho:1});hd2Schema.index({trang_thai_dh:1});hd2Schema.index({trang_thai_gh:1});hd2Schema.index({user_nv_dong_hang:1});hd2Schema.index({user_nv_giao_hang:1});hd2Schema.index({status:1});hd2Schema.index({user_created:1,visible_to:1,visible_to_users:1});hd2Schema.index({trang_thai:1});hd2Schema.index({id_client:1});
19
+ module.exports=mongoose.models.hd2||mongoose.model("hd2",hd2Schema);
@@ -0,0 +1,12 @@
1
+ 'use strict';const validAccount=require("../libs/validator-account"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new Schema({id_hd:{type:String,required:!0,maxlength:1024},line_hd:Number,ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},ma_dvt:{type:String,required:!0,maxlength:32},ma_kho:{type:String,uppercase:!0,maxlength:32},tk_no:{type:String,uppercase:!0,maxlength:32},sl_xuat:{type:Number,default:0},gia_von:{type:Number,default:0},gia_von_nt:{type:Number,
2
+ 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},details_cp:[],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,
3
+ 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},exfields_detail:Schema.Types.Mixed,line:{type:Number,
4
+ default:0}});detailSchema.validate={tk_no:validAccount.existsTk,ma_kh:validator.existsKh,ma_vt:validVt.existsVt,ma_kho:validVt.existsKho,ma_dvt:validator.existsDvt};
5
+ 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:"",required:!0,uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,default:"",required:!0,uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",required:!0,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},
6
+ 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},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String,default:"",
7
+ maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024},exfields_detail:Schema.Types.Mixed,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};
8
+ const ctcpbhSchema=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"},tk_no:String,line:{type:Number,default:0}}),hd4Schema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,default:"HD4",required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},so_ct:{type:String,required:!0,uppercase:!0,
9
+ 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,tk_co:{type:String,uppercase:!0,required:!0,default:"",maxlength:32},ong_ba:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},hinh_thuc_tt:{type:String,maxlength:1024},dien_giai:{type:String,
10
+ default:"",maxlength:1024},exfields:Schema.Types.Mixed,trang_thai:{type:String,maxlength:32},id_contract:{type:String,maxlength:1024},ma_dt:{type:String,uppercase:!0,default:"",maxlength:32},ma_nv:{type:String,uppercase:!0,default:"",maxlength:32},ma_kho:String,ten_kho: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},
11
+ visible_to_users:[String],update_right:[String],delete_right:[String],details:{type:[detailSchema]},vatvaos:[vatvaoSchema],ctcpbhs:[ctcpbhSchema]});hd4Schema.validate={ma_dvcs:validator.existsDvcs,ma_nt:validator.existsNt,ngay_ct:validator.unlockBook,ma_kh:validator.existsKh,tk_co:validAccount.existsTk};hd4Schema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:-1});hd4Schema.index({dien_giai:"text",so_ct:"text",ma_kh:"text",ten_kh:"text"},{name:"hd4_index_text"});hd4Schema.index({ma_ct:1});hd4Schema.index({ma_kh:1});
12
+ hd4Schema.index({user_created:1,date_created:-1});hd4Schema.index({date_updated:-1});hd4Schema.index({status:1});hd4Schema.index({user_created:1,visible_to:1,visible_to_users:1});hd4Schema.index({trang_thai:1});module.exports=mongoose.models.hd4||mongoose.model("hd4",hd4Schema);
@@ -21,7 +21,8 @@ const fieldScheme = new global.Schema(
21
21
  type:{type: String, default:'String',trim:true},
22
22
  form:{type: String,trim:true},//user for type array or Mixed
23
23
  header:{type: String, required: "Yêu cầu nhập tên trường"},
24
- header2:{type: String,default:''},
24
+ header2:{type: String},
25
+ api_description:{type: String},//Miêu tả field trong tài liệu api
25
26
  sort:Number,
26
27
  unique:Boolean,
27
28
  default:global.Schema.Types.Mixed,
@@ -58,6 +59,11 @@ const fieldScheme = new global.Schema(
58
59
  html_variant_display:{type:String},
59
60
  html_component_display:{type:String},
60
61
  html_component_input:{type:String},
62
+
63
+ render_on_list:String,
64
+ render_on_view:String,
65
+ render_title:String,
66
+
61
67
  grid_configs:{type:String,trim:true},
62
68
 
63
69
  handle_value_changed:{type:String,trim:true},
@@ -213,6 +219,8 @@ model.createSchema = (info)=>{
213
219
  delete _field.tab;
214
220
  delete _field.help_text;
215
221
  delete _field.grid_configs;
222
+ delete _field.render_on_list;
223
+ delete _field.render_on_view;
216
224
  delete _field.is_tmp;
217
225
  delete _field.is_title;
218
226
  delete _field.on_view;
@@ -336,6 +344,9 @@ model.updateModel = async (info,_newModel)=>{
336
344
  delete _field.tab;
337
345
  delete _field.help_text;
338
346
  delete _field.grid_configs;
347
+ delete _field.render_on_list;
348
+ delete _field.render_on_view;
349
+
339
350
  delete _field.is_tmp;
340
351
  delete _field.is_title;
341
352
  delete _field.on_view;
@@ -1,4 +1,4 @@
1
- 'use strict';const itemSchema=new Schema({code:{type:String,required:!0,maxlength:1024,trim:!0},title:{type:String,required:!0,maxlength:1024},path:{type:String,maxlength:3024,trim:!0},href:{type:String,maxlength:3024,trim:!0},rights:[String],type:{type:String,maxlength:32,trim:!0},dashboard:{type:String,maxlength:1024},horizontal:Boolean,stt:Number,icon:String,system:Boolean,group:String,visible:{type:Boolean,default:!0},line:{type:Number,default:0}}),moduleinfoSchema=new Schema({app:{type:String,
1
+ 'use strict';const itemSchema=new Schema({code:{type:String,required:!0,maxlength:1024,trim:!0},title:{type:String,required:!0,maxlength:1024},path:{type:String,maxlength:3024,trim:!0},href:{type:String,maxlength:3024,trim:!0},rights:[String],type:{type:String,maxlength:32,trim:!0},dashboard:{type:String,maxlength:1024},horizontal:Boolean,horizontal_menu:String,stt:Number,icon:String,system:Boolean,group:String,visible:{type:Boolean,default:!0},line:{type:Number,default:0}}),moduleinfoSchema=new Schema({app:{type:String,
2
2
  required:!0,maxlength:1024,uppercase:!0,trim:!0},code:{type:String,required:!0,maxlength:1024,uppercase:!0,trim:!0},title:{type:String,required:!0,maxlength:1024},mother_module:{type:String,maxlength:1024,trim:!0},name_mother_module:{type:String,maxlength:2024},items:[itemSchema],stt:Number,visible:{type:Boolean,default:!0},only_for_companies:[String],not_for_companies:[String],active_require:{type:Boolean,default:!0},allow_users:{type:String},icon:String,status:{type:Boolean,default:!0},date_created:{type:Date,
3
- default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});moduleinfoSchema.index({app:1,code:1,moduleinfo:1,mother_module:1});moduleinfoSchema.index({title:"text"});moduleinfoSchema.index({title:1});moduleinfoSchema.index({"items.code":1});moduleinfoSchema.index({status:1});moduleinfoSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.menu||mongoose.model("moduleinfo",moduleinfoSchema);
4
- module.exports=model;
3
+ default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});moduleinfoSchema.index({app:1,code:1,mother_module:1});moduleinfoSchema.index({title:"text"});moduleinfoSchema.index({title:1});moduleinfoSchema.index({code:1});moduleinfoSchema.index({app:1});moduleinfoSchema.index({"items.code":1});moduleinfoSchema.index({status:1});moduleinfoSchema.index({user_created:1,visible_to:1,visible_to_users:1});
4
+ const model=mongoose.models.menu||mongoose.model("moduleinfo",moduleinfoSchema);module.exports=model;
@@ -1,7 +1,7 @@
1
- 'use strict';const validAccount=require("../libs/validator-account"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new Schema({id_hd:{type:String,required:!0,maxlength:1024},ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},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},sl_nhap:{type:Number,default:0},
2
- 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},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},ma_bp:{type:String,uppercase:!0,default:"",maxlength:32},ma_phi:{type:String,
3
- 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},
4
- ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},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};
1
+ 'use strict';const validAccount=require("../libs/validator-account"),validVt=require("../libs/validator-vt"),validator=require("../libs/validator"),detailSchema=new Schema({id_hd:{type:String,required:!0,maxlength:1024},line_hd:Number,ma_vt:{type:String,required:!0,uppercase:!0,maxlength:1024},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},sl_nhap:{type:Number,
2
+ 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},details_cp:[],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_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,
4
+ default:"",uppercase:!0,maxlength:32},ma_tt3:{type:String,default:"",uppercase:!0,maxlength:32},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};
5
5
  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:"",required:!0,uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,default:"",required:!0,uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",required:!0,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},
6
6
  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},ten_kh:{type:String,default:"",maxlength:1024},dia_chi:{type:String,default:"",maxlength:1024},ma_so_thue:{type:String,default:"",
7
7
  maxlength:1024},ten_vt:{type:String,default:"",maxlength:1024},dien_giai:{type:String,default:"",maxlength:1024},exfields_detail:Schema.Types.Mixed,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};
@@ -1,10 +1,10 @@
1
- 'use strict';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_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,default:0},tien_ck:{type:Number,
3
- 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,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};
1
+ 'use strict';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,
2
+ default:0},tien_xuat_nt:{type:Number,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},
3
+ 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,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,
4
+ chuyen_ngay:Boolean,tk_no_hoa_hong:String,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},
5
+ 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_thue:String,ma_kho:{type:String,uppercase:!0,default:"",maxlength:32},ma_lo:{type:String,
6
+ 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},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}],
7
+ 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,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
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
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
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,
@@ -1,8 +1,9 @@
1
- 'use strict';const async=require("async"),tdttcoSchema=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,required:!0,uppercase:!0,maxlength:32},ma_nt:{type:String,
2
- 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_co:{type:String,required:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},tat_toan:{type:Boolean,default:!1},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32},ma_hd:{type:String,default:"",
3
- uppercase:!0,maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,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:""},exfields_detail:global.Schema.Types.Mixed});tdttcoSchema.index({id_app:1,ma_dvcs:1,id_ct:1,ngay_ct:-1,ma_kh:1});tdttcoSchema.index({status:1});
4
- tdttcoSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.tdttco||mongoose.model("tdttco",tdttcoSchema);
5
- model.getBalance=$condition$$=>new Promise(($resolve$$,$reject$$)=>{async.series({invoices:function($callback$$){setImmediate(()=>{let $query$$={...$condition$$};$condition$$.ma_dvcs&&($query$$.ma_dvcs=$condition$$.ma_dvcs);delete $query$$.access_token;$query$$.id_ct&&delete $query$$.id_ct;model.find($query$$).lean().exec(($error$$,$results$$)=>{if($error$$)return $callback$$($error$$);$error$$=[];for(let $i$$=0;$i$$<$results$$.length;$i$$++){const $invoice$$=$results$$[$i$$];$invoice$$.line=$i$$;
6
- $error$$.push($invoice$$)}$callback$$(null,$error$$)})})}},function($error$jscomp$0$$,$results$jscomp$0$$){if($error$jscomp$0$$)return $reject$$($error$jscomp$0$$);async.mapSeries($results$jscomp$0$$.invoices,($t_invoice$$,$callback$$)=>{setImmediate(()=>{let $query$$={id_tdtt:$t_invoice$$._id};$condition$$.id_ct&&($query$$.id_ct={$ne:$condition$$.id_ct});global.getModel("tdttco_tt").find($query$$).lean().exec(($error$jscomp$3_i$$,$results$$)=>{$t_invoice$$.da_thanh_toan_nt=0;$t_invoice$$.da_thanh_toan=
7
- 0;for($error$jscomp$3_i$$=0;$error$jscomp$3_i$$<$results$$.length;$error$jscomp$3_i$$++)$t_invoice$$.da_thanh_toan_nt+=$results$$[$error$jscomp$3_i$$].thanh_toan_qd,$t_invoice$$.da_thanh_toan+=$results$$[$error$jscomp$3_i$$].tien;$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$$)})})},function($error$$,$results$$){if($error$$)return $reject$$($error$$);$resolve$$($results$$)})})});
8
- module.exports=model;
1
+ 'use strict';const async=require("async"),moment=require("moment"),tdttcoSchema=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},
2
+ 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_co:{type:String,required:!0,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_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32},
3
+ 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},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:""},exfields_detail:global.Schema.Types.Mixed});tdttcoSchema.index({id_app:1,ma_dvcs:1,id_ct:1,ngay_ct:-1,ma_kh:1});tdttcoSchema.index({tat_toan:1});
4
+ tdttcoSchema.index({han_tt:1});tdttcoSchema.index({ngay_tt:1});tdttcoSchema.index({id_ct:1});tdttcoSchema.index({so_ct:1});tdttcoSchema.index({ngay_ct:1});tdttcoSchema.index({so_hd:1});tdttcoSchema.index({ngay_hd:1});tdttcoSchema.index({tk_co:1});tdttcoSchema.index({ma_kh:1});tdttcoSchema.index({status:1});tdttcoSchema.index({user_created:1,visible_to:1,visible_to_users:1});tdttcoSchema.pre("save",function($next$$){this.ngay_tt=moment(this.ngay_hd).add(this.han_tt||0,"days").toDate();$next$$()});
5
+ const model=mongoose.models.tdttco||mongoose.model("tdttco",tdttcoSchema);
6
+ model.getBalance=$condition$$=>new Promise(($resolve$$,$reject$$)=>{async.series({invoices:function($callback$$){setImmediate(()=>{let $query$$={...$condition$$};$condition$$.ma_dvcs&&($query$$.ma_dvcs=$condition$$.ma_dvcs);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().exec(($error$$,$results$$)=>{if($error$$)return $callback$$($error$$);$error$$=[];for(let $i$$=0;$i$$<$results$$.length;$i$$++){const $invoice$$=
7
+ $results$$[$i$$];$invoice$$.line=$i$$;$error$$.push($invoice$$)}$callback$$(null,$error$$)})})}},function($error$jscomp$0$$,$results$jscomp$0$$){if($error$jscomp$0$$)return $reject$$($error$jscomp$0$$);async.mapSeries($results$jscomp$0$$.invoices,($t_invoice$$,$callback$$)=>{setImmediate(()=>{let $query$$={id_tdtt:$t_invoice$$._id};$condition$$.id_ct&&($query$$.id_ct={$ne:$condition$$.id_ct});global.getModel("tdttco_tt").find($query$$).lean().exec(($error$jscomp$3_i$$,$results$$)=>{$t_invoice$$.da_thanh_toan_nt=
8
+ 0;$t_invoice$$.da_thanh_toan=0;for($error$jscomp$3_i$$=0;$error$jscomp$3_i$$<$results$$.length;$error$jscomp$3_i$$++)$t_invoice$$.da_thanh_toan_nt+=$results$$[$error$jscomp$3_i$$].thanh_toan_qd,$t_invoice$$.da_thanh_toan+=$results$$[$error$jscomp$3_i$$].tien;$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$$)})})},function($error$$,$results$$){if($error$$)return $reject$$($error$$);
9
+ $resolve$$($results$$)})})});module.exports=model;
@@ -1,5 +1,5 @@
1
1
  'use strict';const tdttco_ttSchema=new Schema({line:{type:Number,default:0},id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},id_tdtt:{type:String,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},ma_nt:{type:String,default:"VND",required:!0,uppercase:!0,
2
2
  maxlength:32},ty_gia:{type:Number,default:1},id_hd:{type:String,required:!0,maxlength:1024},ngay_hd:{type:Date,required:!0},so_hd:{type:String,required:!0,uppercase:!0,maxlength:32},ma_nt_hd:{type:String,required:!0,maxlength:32},ty_gia_hd:{type:Number,default:1},tien_hd_nt:{type:Number,default:0},da_thanh_toan_nt:{type:Number,default:0},con_lai_nt:{type:Number,default:0},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},thanh_toan_qd:{type:Number,default:0},ma_kh:{type:String,uppercase:!0,
3
3
  default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},tk_co:{type:String,required:!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},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,
4
- default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},exfields_detail:global.Schema.Types.Mixed});tdttco_ttSchema.index({id_app:1,ma_dvcs:1,id_ct:1,id_tdtt:1});tdttco_ttSchema.index({ngay_ct:-1});tdttco_ttSchema.index({ma_ct:-1});tdttco_ttSchema.index({ma_kh:1});tdttco_ttSchema.index({id_ct:1});tdttco_ttSchema.index({status:1});tdttco_ttSchema.index({user_created:1,visible_to:1,visible_to_users:1});
4
+ default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},exfields_detail:global.Schema.Types.Mixed});tdttco_ttSchema.index({id_app:1,ma_dvcs:1,id_ct:1,id_tdtt:1});tdttco_ttSchema.index({ngay_ct:-1});tdttco_ttSchema.index({ma_ct:-1});tdttco_ttSchema.index({ma_kh:1});tdttco_ttSchema.index({id_ct:1});tdttco_ttSchema.index({id_tdtt:1});tdttco_ttSchema.index({status:1});tdttco_ttSchema.index({user_created:1,visible_to:1,visible_to_users:1});
5
5
  module.exports=mongoose.models.tdttco_tt||mongoose.model("tdttco_tt",tdttco_ttSchema);
@@ -1,8 +1,9 @@
1
- 'use strict';const async=require("async"),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,required:!0,uppercase:!0,maxlength:32},ma_nt:{type:String,
2
- 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,required:!0,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},tat_toan:{type:Boolean,default:!1},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32},ma_hd:{type:String,default:"",
3
- 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:""}});tdttnoSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:1});tdttnoSchema.index({status:1});
4
- tdttnoSchema.index({user_created:1,visible_to:1,visible_to_users:1});const model=mongoose.models.tdttno||mongoose.model("tdttno",tdttnoSchema);
5
- model.getBalance=$condition$$=>new Promise(($resolve$$,$reject$$)=>{async.series({invoices:function($callback$$){setImmediate(()=>{let $query$$={...$condition$$};$condition$$.ma_dvcs&&($query$$.ma_dvcs=$condition$$.ma_dvcs);delete $query$$.access_token;$query$$.id_ct&&delete $query$$.id_ct;model.find($query$$).lean().exec(($error$$,$results$$)=>{if($error$$)return $callback$$($error$$);$error$$=[];for(let $i$$=0;$i$$<$results$$.length;$i$$++){const $invoice$$=$results$$[$i$$];$invoice$$.line=$i$$;
6
- $error$$.push($invoice$$)}$callback$$(null,$error$$)})})}},function($error$jscomp$0$$,$results$jscomp$0$$){if($error$jscomp$0$$)return $reject$$($error$jscomp$0$$);async.mapSeries($results$jscomp$0$$.invoices,($t_invoice$$,$callback$$)=>{setImmediate(()=>{let $query$$={id_tdtt:$t_invoice$$._id};$condition$$.id_ct&&($query$$.id_ct={$ne:$condition$$.id_ct});global.getModel("tdttno_tt").find($query$$).lean().exec(($error$jscomp$3_i$$,$results$$)=>{$t_invoice$$.da_thanh_toan_nt=0;$t_invoice$$.da_thanh_toan=
7
- 0;for($error$jscomp$3_i$$=0;$error$jscomp$3_i$$<$results$$.length;$error$jscomp$3_i$$++)$t_invoice$$.da_thanh_toan_nt+=$results$$[$error$jscomp$3_i$$].thanh_toan_qd,$t_invoice$$.da_thanh_toan+=$results$$[$error$jscomp$3_i$$].tien;$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$$)})})},function($error$$,$results$$){if($error$$)return $reject$$($error$$);$resolve$$($results$$)})})});
8
- module.exports=model;
1
+ 'use strict';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},
2
+ 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,required:!0,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_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,default:"",uppercase:!0,maxlength:32},
3
+ 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:""}});tdttnoSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:1});tdttnoSchema.index({tat_toan:1});
4
+ tdttnoSchema.index({han_tt:1});tdttnoSchema.index({ngay_tt:1});tdttnoSchema.index({id_ct:1});tdttnoSchema.index({so_ct:1});tdttnoSchema.index({ngay_ct:1});tdttnoSchema.index({so_hd:1});tdttnoSchema.index({ngay_hd:1});tdttnoSchema.index({tk_co:1});tdttnoSchema.index({ma_kh:1});tdttnoSchema.index({status:1});tdttnoSchema.index({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$$()});
5
+ const model=mongoose.models.tdttno||mongoose.model("tdttno",tdttnoSchema);
6
+ model.getBalance=$condition$$=>new Promise(($resolve$$,$reject$$)=>{async.series({invoices:function($callback$$){setImmediate(()=>{let $query$$={...$condition$$};$condition$$.ma_dvcs&&($query$$.ma_dvcs=$condition$$.ma_dvcs);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().exec(($error$$,$results$$)=>{if($error$$)return $callback$$($error$$);$error$$=[];for(let $i$$=0;$i$$<$results$$.length;$i$$++){const $invoice$$=
7
+ $results$$[$i$$];$invoice$$.line=$i$$;$error$$.push($invoice$$)}$callback$$(null,$error$$)})})}},function($error$jscomp$0$$,$results$jscomp$0$$){if($error$jscomp$0$$)return $reject$$($error$jscomp$0$$);async.mapSeries($results$jscomp$0$$.invoices,($t_invoice$$,$callback$$)=>{setImmediate(()=>{let $query$$={id_tdtt:$t_invoice$$._id};$condition$$.id_ct&&($query$$.id_ct={$ne:$condition$$.id_ct});global.getModel("tdttno_tt").find($query$$).lean().exec(($error$jscomp$3_i$$,$results$$)=>{if($error$jscomp$3_i$$)return $callback$$($error$jscomp$3_i$$);
8
+ $t_invoice$$.da_thanh_toan_nt=0;$t_invoice$$.da_thanh_toan=0;for($error$jscomp$3_i$$=0;$error$jscomp$3_i$$<$results$$.length;$error$jscomp$3_i$$++)$t_invoice$$.da_thanh_toan_nt+=$results$$[$error$jscomp$3_i$$].thanh_toan_qd,$t_invoice$$.da_thanh_toan+=$results$$[$error$jscomp$3_i$$].tien;$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$$)})})},function($error$$,$results$$){if($error$$)return $reject$$($error$$);
9
+ $resolve$$($results$$)})})});module.exports=model;
@@ -1,5 +1,5 @@
1
1
  'use strict';const tdttno_ttSchema=new Schema({line:{type:Number,default:0},id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},id_tdtt:{type:String,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},ma_nt:{type:String,default:"VND",required:!0,uppercase:!0,
2
2
  maxlength:32},ty_gia:{type:Number,default:1},id_hd:{type:String,required:!0,maxlength:1024},ngay_hd:{type:Date,required:!0},so_hd:{type:String,required:!0,uppercase:!0,maxlength:32},ma_nt_hd:{type:String,required:!0,maxlength:32},ty_gia_hd:{type:Number,default:1},tien_hd_nt:{type:Number,default:0},da_thanh_toan_nt:{type:Number,default:0},con_lai_nt:{type:Number,default:0},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},thanh_toan_qd:{type:Number,default:0},ma_kh:{type:String,uppercase:!0,
3
- default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},tk_no:{type:String,required:!0,maxlength:32},tk_co:{type:String,required:!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,
4
- 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:""}});tdttno_ttSchema.index({id_app:1,ma_dvcs:1,id_tdtt:1});tdttno_ttSchema.index({ngay_ct:-1});tdttno_ttSchema.index({ma_ct:-1});tdttno_ttSchema.index({ma_kh:1});tdttno_ttSchema.index({id_ct:1});tdttno_ttSchema.index({status:1});tdttno_ttSchema.index({user_created:1,visible_to:1,visible_to_users:1});
3
+ default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},tk_no:{type:String,maxlength:32},tk_co:{type:String,required:!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,
4
+ 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:""}});tdttno_ttSchema.index({id_app:1,ma_dvcs:1,id_tdtt:1});tdttno_ttSchema.index({ngay_ct:-1});tdttno_ttSchema.index({ma_ct:-1});tdttno_ttSchema.index({ma_kh:1});tdttno_ttSchema.index({id_ct:1});tdttno_ttSchema.index({id_tdtt:1});tdttno_ttSchema.index({status:1});tdttno_ttSchema.index({user_created:1,visible_to:1,visible_to_users:1});
5
5
  module.exports=mongoose.models.tdttno_tt||mongoose.model("tdttno_tt",tdttno_ttSchema);
@@ -18,13 +18,13 @@ console.error($error$$)})}};
18
18
  User.socketSendTo=async($email$$,$event_name$$,$msg$$,$send_to_other_servers$$=!0)=>{$email$$&&$event_name$$&&(global.socketContainer.socketIO&&($email$$=$email$$.toLowerCase(),setImmediate(async()=>{try{0<[...(await global.socketContainer.socketIO.in($email$$).allSockets())].length&&(global.socketContainer.socketIO.to($email$$).emit($event_name$$,$msg$$),global.socketContainer.socketIO.to($email$$).emit("allevents",{event:$event_name$$,msg:$msg$$}))}catch($e$$){console.error("socketio error send msg ",{email:$email$$,
19
19
  event_name:$event_name$$,msg:$msg$$},$e$$)}})),$send_to_other_servers$$&&User.socketSendToOtherServer($email$$,$event_name$$,$msg$$))};
20
20
  User.socketSendToOtherServer=async($email$$,$event_name$$,$msg$$)=>{if(global.socketContainer.socketIO){let $clientIO$$=await global.socketContainer.loadConnectionId();global.configs.clientSockets&&0<global.configs.clientSockets.length&&async.mapSeries(global.configs.clientSockets.filter($s$$=>$s$$.name&&$s$$.port&&$s$$.port!=global.port),($s$$,$callback$$)=>{setImmediate(async()=>{try{let $u$$=`${$s$$.name}-${global.port}`;Object.values($clientIO$$).find($c$$=>$c$$.email===$u$$)&&0<[...(await global.socketContainer.socketIO.in($u$$).allSockets())].length&&
21
- global.socketContainer.socketIO.to($u$$).emit("otherserver",{event:$event_name$$,email:$email$$,data:$msg$$,from_server_port:global.port})}catch($e$$){console.error("socket io error when send msg to server",$s$$.name,{email:$email$$,event_name:$event_name$$,msg:$msg$$},$e$$)}$callback$$()})},()=>{})}else console.log("socket servers",Object.keys(global.clientSockets)),Object.values(global.clientSockets).forEach($socket$$=>{console.log("send to server socket...");$socket$$.emit("otherserver",{event:$event_name$$,
22
- email:$email$$,data:$msg$$,from_server_port:global.port})})};User.isOnline=async $email$$=>{try{return global.socketContainer.socketIO?0<[...(await global.socketContainer.socketIO.in($email$$).allSockets())].length?!0:!1:!1}catch($e$$){return console.error($e$$),!1}};const ioClient=require("socket.io-client");
23
- User.initClientSockets=()=>{setTimeout(()=>{global.clientSockets={};const $config$$=(global.configs.clientSockets||[]).find($s$$=>$s$$.port==global.port);$config$$&&async.mapSeries(global.configs.serverSockets.filter($s$$=>$s$$.name&&$s$$.port&&$s$$.port!=$config$$.port),($s$$,$callback$$)=>{setImmediate(()=>{let $url$$=`https://127.0.0.1:${$s$$.port}`;console.log("connecting to server socket",$url$$);try{const $socketClient$$=ioClient($url$$,{rejectUnauthorized:!1});$socketClient$$.on("connect",
24
- function(){console.log("socket Connected to server. Loging...",$url$$);$socketClient$$.emit("login",{token:$config$$.token,server:$config$$.name})});$socketClient$$.on("disconnect",function(){console.error("socket disconnected");delete global.clientSockets[$url$$]});$socketClient$$.on("connect_error",function($e$$){console.error("error connect to server socket",$e$$.message||$e$$,$url$$);delete global.clientSockets[$url$$]});$socketClient$$.on("connect_timeout",$timeout$$=>{console.error("socket connect timeout",
25
- $timeout$$,$url$$);delete global.clientSockets[$url$$]});$socketClient$$.io.on("reconnect",function(){console.log("socket reconnected. Loging...",$s$$.name,$s$$.port);$socketClient$$.emit("login",{token:$config$$.token,server:$config$$.name})});$socketClient$$.on("login",$msg$$=>{$msg$$.success?(global.clientSockets[$url$$]=$socketClient$$,console.log("Socket logined successsfull",$s$$.name,$s$$.port)):console.error("Error login to server",$s$$.name,$s$$.port,". Error: ",$msg$$.message)});$socketClient$$.on("otherserver",
26
- async function($msg$jscomp$3_obj$$){$msg$jscomp$3_obj$$.from_server_port!=global.port&&"system"===$msg$jscomp$3_obj$$.email&&("listinfo_updated"==$msg$jscomp$3_obj$$.event&&($msg$jscomp$3_obj$$.data||{}).listinfo_id?(console.log("update api",$msg$jscomp$3_obj$$.data||{}),($msg$jscomp$3_obj$$=await global.getModel("listinfo").findOne({_id:($msg$jscomp$3_obj$$.data||{}).listinfo_id}))&&global.getModel("listinfo").createController(global.routerAPI,$msg$jscomp$3_obj$$)):console.log("don't handle msg from system",
27
- $msg$jscomp$3_obj$$))})}catch($e$$){console.error("error connect to io server",$url$$,$e$$)}$callback$$()})},()=>{console.log("finish connect client socket")})},5E3)};
21
+ global.socketContainer.socketIO.to($u$$).emit("otherserver",{event:$event_name$$,email:$email$$,data:$msg$$,from_server_port:global.port})}catch($e$$){console.error("socket io error when send msg to server",$s$$.name,{email:$email$$,event_name:$event_name$$,msg:$msg$$},$e$$)}$callback$$()})},()=>{})}else console.log("socket servers",Object.keys(global.clientSockets||{})),Object.values(global.clientSockets||{}).forEach($socket$$=>{console.log("send to server socket...");$socket$$.emit("otherserver",
22
+ {event:$event_name$$,email:$email$$,data:$msg$$,from_server_port:global.port})})};User.isOnline=async $email$$=>{try{return global.socketContainer.socketIO?0<[...(await global.socketContainer.socketIO.in($email$$).allSockets())].length?!0:!1:!1}catch($e$$){return console.error($e$$),!1}};const ioClient=require("socket.io-client");
23
+ User.initClientSockets=()=>{setTimeout(()=>{const $config$$=(global.configs.clientSockets||[]).find($s$$=>$s$$.port==global.port);$config$$&&async.mapSeries(global.configs.serverSockets.filter($s$$=>$s$$.name&&$s$$.port&&$s$$.port!=$config$$.port),($s$$,$callback$$)=>{setImmediate(()=>{let $url$$=`https://127.0.0.1:${$s$$.port}`;console.log("connecting to server socket",$url$$);try{const $socketClient$$=ioClient($url$$,{rejectUnauthorized:!1});$socketClient$$.on("connect",function(){console.log("socket Connected to server. Loging...",
24
+ $url$$);$socketClient$$.emit("login",{token:$config$$.token,server:$config$$.name})});$socketClient$$.on("disconnect",function(){console.error("socket disconnected");delete global.clientSockets[$url$$]});$socketClient$$.on("connect_error",function($e$$){console.error("error connect to server socket",$e$$.message||$e$$,$url$$);delete global.clientSockets[$url$$]});$socketClient$$.on("connect_timeout",$timeout$$=>{console.error("socket connect timeout",$timeout$$,$url$$);delete global.clientSockets[$url$$]});
25
+ $socketClient$$.io.on("reconnect",function(){console.log("socket reconnected. Loging...",$s$$.name,$s$$.port);$socketClient$$.emit("login",{token:$config$$.token,server:$config$$.name})});$socketClient$$.on("login",$msg$$=>{$msg$$.success?(global.clientSockets[$url$$]=$socketClient$$,console.log("Socket logined successsfull",$s$$.name,$s$$.port)):console.error("Error login to server",$s$$.name,$s$$.port,". Error: ",$msg$$.message)});$socketClient$$.on("otherserver",async function($msg$jscomp$3_obj$$){$msg$jscomp$3_obj$$.from_server_port!=
26
+ global.port&&"system"===$msg$jscomp$3_obj$$.email&&("listinfo_updated"==$msg$jscomp$3_obj$$.event&&($msg$jscomp$3_obj$$.data||{}).listinfo_id?(console.log("update api",$msg$jscomp$3_obj$$.data||{}),($msg$jscomp$3_obj$$=await global.getModel("listinfo").findOne({_id:($msg$jscomp$3_obj$$.data||{}).listinfo_id}))&&global.getModel("listinfo").createController(global.routerAPI,$msg$jscomp$3_obj$$)):console.log("don't handle msg from system",$msg$jscomp$3_obj$$))})}catch($e$$){console.error("error connect to io server",
27
+ $url$$,$e$$)}$callback$$()})},()=>{console.log("finish connect client socket")})},5E3)};
28
28
  User.initSocket=$server$$=>{setTimeout(()=>{console.log("start server socket at ",global.port);global.socketContainer.socketIO=require("socket.io")($server$$,{allowEIO3:!0,cors:{origin:"*",methods:["GET","POST"],credentials:!0}});const $redisAdapter$$=require("socket.io-redis");global.socketContainer.socketIO.adapter($redisAdapter$$({host:"127.0.0.1",port:6379,key:"flexbiz"}));global.socketContainer.socketIO.on("connection",function($socket$$){$socket$$.auth=!1;setTimeout(()=>{$socket$$.auth||$socket$$.disconnect("unauthorized")},
29
29
  1E3);$socket$$.on("login",async $msg$jscomp$0$$=>{if($msg$jscomp$0$$.token)if(global.configs.clientSockets&&0<global.configs.clientSockets.length&&global.configs.clientSockets.find($s$$=>$s$$.token==$msg$jscomp$0$$.token)){var $clientIO$jscomp$2_email$$=`${$msg$jscomp$0$$.server}-${global.port}`;$socket$$.auth=!0;$socket$$.join($clientIO$jscomp$2_email$$);let $clientIO$$=await global.socketContainer.loadConnectionId();$clientIO$$[$socket$$.id]={token:$msg$jscomp$0$$.token,email:$clientIO$jscomp$2_email$$};
30
30
  global.socketContainer.saveConnectionId($clientIO$$);global.socketContainer.socketIO.to($socket$$.id).emit("login",{user:$msg$jscomp$0$$.server,success:!0});$socket$$.on("otherserver",async function($msg$jscomp$5_obj$$){$msg$jscomp$5_obj$$.from_server_port!=global.port&&("system"===$msg$jscomp$5_obj$$.email?"listinfo_updated"==$msg$jscomp$5_obj$$.event&&($msg$jscomp$5_obj$$.data||{}).listinfo_id?(console.log("update api",$msg$jscomp$5_obj$$.data||{}),($msg$jscomp$5_obj$$=await global.getModel("listinfo").findOne({_id:($msg$jscomp$5_obj$$.data||
@@ -1,5 +1,5 @@
1
- 'use strict';const taxSchema=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,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,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,
2
- default:"",uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date,required:!0},ma_nt:{type:String,default:"VND",required:!0,maxlength:32},ty_gia:{type:Number,default:1},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,required:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_co:{type:String,default:"33311",maxlength:32},tk_du_thue:{type:String,maxlength:32},t_thue:{type:Number,default:0},
3
- t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh_cn:{type:String,default:"",maxlength:32},ten_kh_cn:{type:String,default:"",maxlength:1024},ma_kh:{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:""},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,status:{type:Boolean,
4
- 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:""}});taxSchema.index({id_app:1,ma_dvcs:1,id_ct:1,ngay_hd:-1,ngay_ct:-1,ma_thue:1},{name:"vatra_index_1"});taxSchema.index({so_ct:"text",so_hd:"text",dien_giai:"text",ma_kh:"text",ten_kh:"text",so_seri:"text",ma_so_thue:"text"},{name:"vatra_index_text"});taxSchema.index({status:1});taxSchema.index({user_created:1,visible_to:1,visible_to_users:1});
5
- module.exports=mongoose.models.vatra||mongoose.model("vatra",taxSchema);
1
+ 'use strict';const taxSchema=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},id_hd:String,ma_ct:{type:String,required:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,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},
2
+ so_hd:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date,required:!0},ma_nt:{type:String,default:"VND",required:!0,maxlength:32},ty_gia:{type:Number,default:1},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,required:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_co:{type:String,default:"33311",maxlength:32},tk_du_thue:{type:String,maxlength:32},t_thue:{type:Number,
3
+ default:0},t_thue_nt:{type:Number,default:0},t_hd:{type:Number,default:0},t_hd_nt:{type:Number,default:0},ma_kh_cn:{type:String,default:"",maxlength:32},ten_kh_cn:{type:String,default:"",maxlength:1024},ma_kh:{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:""},dien_giai:{type:String,default:"",maxlength:1024},exfields:Schema.Types.Mixed,
4
+ 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:""}});taxSchema.index({id_app:1,ma_dvcs:1,id_ct:1,ngay_hd:-1,ngay_ct:-1,ma_thue:1},{name:"vatra_index_1"});taxSchema.index({so_ct:"text",so_hd:"text",dien_giai:"text",ma_kh:"text",ten_kh:"text",so_seri:"text",ma_so_thue:"text"},{name:"vatra_index_text"});taxSchema.index({ngay_ct:-1});taxSchema.index({ma_ct:1});
5
+ taxSchema.index({so_ct:1});taxSchema.index({so_hd:1});taxSchema.index({ma_kh:1});taxSchema.index({ma_thue:1});taxSchema.index({thue_suat:1});taxSchema.index({id_ct:1});taxSchema.index({id_hd:1});taxSchema.index({status:1});taxSchema.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.vatra||mongoose.model("vatra",taxSchema);
@@ -1,5 +1,5 @@
1
- 'use strict';const taxSchema=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,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,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},ma_tc:{type:String,
2
- default:"1",required:!0,uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date},ma_nt:{type:String,default:"VND",required:!0,maxlength:32},ty_gia:{type:Number,default:1},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,required:!0,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_no:{type:String,maxlength:32},tk_du_thue:{type:String,
3
- 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,default:"",maxlength:32},ma_kh_cn:{type:String,default:"",maxlength:32},ten_kh_cn:{type:String,default:"",maxlength:1024},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:""},dien_giai:{type:String,default:"",maxlength:1024},
4
- 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:""}});taxSchema.index({id_app:1,ma_dvcs:1,id_ct:1,ngay_hd:-1,ngay_ct:-1,ma_thue:1},{name:"vatvao_index_1"});taxSchema.index({so_ct:"text",so_hd:"text",dien_giai:"text",ma_kh:"text",ten_kh:"text",so_seri:"text",ma_so_thue:"text"},{name:"vatvao_index_text"});taxSchema.index({status:1});
5
- taxSchema.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.vatvao||mongoose.model("vatvao",taxSchema);
1
+ 'use strict';const taxSchema=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},id_hd:String,ma_ct:{type:String,required:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,maxlength:32},co_quan_thue:String,ma_hoa_don:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ky_hieu_hoa_don:{type:String,default:"",uppercase:!0,
2
+ trim:!0,maxlength:32},ma_tc:{type:String,default:"1",required:!0,uppercase:!0,trim:!0,maxlength:32},so_hd:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},so_seri:{type:String,default:"",uppercase:!0,trim:!0,maxlength:32},ngay_hd:{type:Date},ma_nt:{type:String,default:"VND",required:!0,maxlength:32},ty_gia:{type:Number,default:1},t_tien:{type:Number,default:0},t_tien_nt:{type:Number,default:0},ma_thue:{type:String,maxlength:32},thue_suat:{type:Number,default:0},tk_thue_no:{type:String,maxlength:32},
3
+ tk_du_thue:{type:String,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,default:"",maxlength:32},ma_kh_cn:{type:String,default:"",maxlength:32},ten_kh_cn:{type:String,default:"",maxlength:1024},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:""},dien_giai:{type:String,
4
+ default:"",maxlength:1024},hddt:Schema.Types.Mixed,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:""}});taxSchema.index({id_app:1,ma_dvcs:1,id_ct:1,ngay_hd:-1,ngay_ct:-1,ma_thue:1},{name:"vatvao_index_1"});taxSchema.index({so_ct:"text",so_hd:"text",dien_giai:"text",ma_kh:"text",ten_kh:"text",so_seri:"text",ma_so_thue:"text"},{name:"vatvao_index_text"});
5
+ taxSchema.index({id_app:1,ma_kh:1,so_hd:1,so_seri:1},{unique:!0});taxSchema.index({ngay_ct:-1});taxSchema.index({ma_ct:1});taxSchema.index({so_ct:1});taxSchema.index({so_ct:1});taxSchema.index({id_ct:1});taxSchema.index({id_hd:1});taxSchema.index({ma_kh:1});taxSchema.index({ma_thue:1});taxSchema.index({thue_suat:1});taxSchema.index({status:1});taxSchema.index({user_created:1,visible_to:1,visible_to_users:1});module.exports=mongoose.models.vatvao||mongoose.model("vatvao",taxSchema);
@@ -1,7 +1,6 @@
1
- 'use strict';const model=global.getModel("cddiem"),controller=require("../../controllers/controller"),moment=require("moment"),dvcs=global.getModel("dvcs"),async=require("async"),cddiem=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"cddiem",{sort:{nam:-1,ma_dvcs:1,email:1}});$contr_router$$.route();$contr_router$$.view=function($user$$,$result$$,$fn$$){const $id_app$$=$user$$.current_id_app;async.series({dvcs:function($callback$$){$result$$.joinModel2($id_app$$,dvcs,
2
- [{where:{ma_dvcs:"_id"},fields:[{name:"ten_dvcs",value:"ten_dvcs"}]}],function($kq$$){$callback$$(null,$kq$$)})}},function($error$$){if($error$$)return $fn$$($error$$);$fn$$(null,$result$$)})};$contr_router$$.creating=async function($_app_ngay_ks_user$$,$obj$$,$callback$$){$_app_ngay_ks_user$$=await global.getModel("app").findOne({_id:$_app_ngay_ks_user$$.current_id_app});if(!$_app_ngay_ks_user$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$obj$$.nam||($obj$$.nam=$_app_ngay_ks_user$$.nam_bd);
3
- $_app_ngay_ks_user$$=moment($_app_ngay_ks_user$$.ngay_ks).startOf("date").toDate();let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($_app_ngay_ks_user$$.getTime()>=$den_ngay$$.getTime())return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app_ngay_ks_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$obj$$)};$contr_router$$.updating=async function($_app$jscomp$1_ngay_ks$jscomp$1_user$$,$data$$,$obj$$,$callback$$){$_app$jscomp$1_ngay_ks$jscomp$1_user$$=
4
- await global.getModel("app").findOne({_id:$_app$jscomp$1_ngay_ks$jscomp$1_user$$.current_id_app});if(!$_app$jscomp$1_ngay_ks$jscomp$1_user$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$_app$jscomp$1_ngay_ks$jscomp$1_user$$=moment($_app$jscomp$1_ngay_ks$jscomp$1_user$$.ngay_ks).startOf("date").toDate();let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($_app$jscomp$1_ngay_ks$jscomp$1_user$$.getTime()>=$den_ngay$$.getTime())return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app$jscomp$1_ngay_ks$jscomp$1_user$$).format("DD/MM/YYYY")}`);
5
- $data$$.nam=$data$$.nam||$obj$$.nam;if($data$$.nam&&($den_ngay$$=moment([$data$$.nam,0,1]).endOf("year").toDate(),$_app$jscomp$1_ngay_ks$jscomp$1_user$$.getTime()>=$den_ngay$$.getTime()))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app$jscomp$1_ngay_ks$jscomp$1_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$data$$,$obj$$)};$contr_router$$.deleting=async($_app$jscomp$2_ngay_ks$jscomp$2_user$$,$obj$$,$callback$$)=>{$_app$jscomp$2_ngay_ks$jscomp$2_user$$=await global.getModel("app").findOne({_id:$_app$jscomp$2_ngay_ks$jscomp$2_user$$.current_id_app});
6
- if(!$_app$jscomp$2_ngay_ks$jscomp$2_user$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$_app$jscomp$2_ngay_ks$jscomp$2_user$$=moment($_app$jscomp$2_ngay_ks$jscomp$2_user$$.ngay_ks).startOf("date").toDate();let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($_app$jscomp$2_ngay_ks$jscomp$2_user$$.getTime()>=$den_ngay$$.getTime())return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app$jscomp$2_ngay_ks$jscomp$2_user$$).format("DD/MM/YYYY")}`);
7
- $callback$$(null,$obj$$)}};module.exports=cddiem;
1
+ 'use strict';const model=global.getModel("cddiem"),controller=require("../../controllers/controller"),moment=require("moment"),dvcs=global.getModel("dvcs"),async=require("async"),utils=require("../../libs/utils"),cddiem=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"cddiem",{sort:{nam:-1,ma_dvcs:1,email:1}});$contr_router$$.route();$contr_router$$.view=function($user$$,$result$$,$fn$$){const $id_app$$=$user$$.current_id_app;async.series({dvcs:function($callback$$){$result$$.joinModel2($id_app$$,
2
+ dvcs,[{where:{ma_dvcs:"_id"},fields:[{name:"ten_dvcs",value:"ten_dvcs"}]}],function($kq$$){$callback$$(null,$kq$$)})}},function($error$$){if($error$$)return $fn$$($error$$);$fn$$(null,$result$$)})};$contr_router$$.creating=async function($ngay_ks_user$$,$obj$$,$callback$$){let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$obj$$.nam||($obj$$.nam=$_app$$.nam_bd);let $den_ngay$$=
3
+ moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks_user$$=await utils.isBookLocked({id_app:$ngay_ks_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn h\u1ebft ng\u00e0y ${moment($ngay_ks_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$obj$$)};$contr_router$$.updating=async function($ngay_ks$jscomp$2_user$$,$data$$,$obj$$,$callback$$){var $_app$jscomp$1_ngay_ks$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$2_user$$.current_id_app});
4
+ if(!$_app$jscomp$1_ngay_ks$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($_app$jscomp$1_ngay_ks$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$2_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$jscomp$1_ngay_ks$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn h\u1ebft ng\u00e0y ${moment($_app$jscomp$1_ngay_ks$$).format("DD/MM/YYYY")}`);$data$$.nam=$data$$.nam||$obj$$.nam;
5
+ if($data$$.nam&&($den_ngay$$=moment([$data$$.nam,0,1]).endOf("year").toDate(),$ngay_ks$jscomp$2_user$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$2_user$$.current_id_app,ngay_ct:$den_ngay$$})))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn h\u1ebft ng\u00e0y ${moment($ngay_ks$jscomp$2_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$data$$,$obj$$)};$contr_router$$.deleting=async($ngay_ks$jscomp$3_user$$,$obj$$,$callback$$)=>{let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$3_user$$.current_id_app});
6
+ if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks$jscomp$3_user$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$3_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn h\u1ebft ng\u00e0y ${moment($ngay_ks$jscomp$3_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$obj$$)}};module.exports=cddiem;
@@ -1,8 +1,7 @@
1
- 'use strict';const model=global.getModel("cddt"),controller=require("../../controllers/controller"),moment=require("moment"),dvcs=global.getModel("dvcs"),dmtk=global.getModel("account"),dmdt=global.getModel("dmdt"),async=require("async"),cddt=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"cddt",{sort:{ma_dvcs:1,nam:-1,ma_dt:1,tk:1},unique:["ma_dvcs","tk","ma_dt","nam"]});$contr_router$$.route();$contr_router$$.view=function($user$$,$result$$,$fn$$){const $id_app$$=
2
- $user$$.current_id_app;async.series({dvcs:function($callback$$){$result$$.joinModel2($id_app$$,dvcs,[{where:{ma_dvcs:"_id"},fields:[{name:"ten_dvcs",value:"ten_dvcs"}]}],function($kq$$){$callback$$(null,$kq$$)})},tk:function($callback$$){$result$$.joinModel2($id_app$$,dmtk,[{where:"tk",fields:[{name:"ten_tk",value:"ten_tk"}]}],function($kq$$){$callback$$(null,$kq$$)})},dt:function($callback$$){$result$$.joinModel2($id_app$$,dmdt,[{where:"ma_dt",fields:[{name:"ten_dt",value:"ten_dt"}]}],function($kq$$){$callback$$(null,
3
- $kq$$)})}},function($error$$){if($error$$)return $fn$$($error$$);$fn$$(null,$result$$)})};$contr_router$$.creating=async function($_app_ngay_ks_user$$,$obj$$,$callback$$){$_app_ngay_ks_user$$=await global.getModel("app").findOne({_id:$_app_ngay_ks_user$$.current_id_app});if(!$_app_ngay_ks_user$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$obj$$.nam||($obj$$.nam=$_app_ngay_ks_user$$.nam_bd);$_app_ngay_ks_user$$=moment($_app_ngay_ks_user$$.ngay_ks).startOf("date").toDate();
4
- let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($_app_ngay_ks_user$$.getTime()>=$den_ngay$$.getTime())return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app_ngay_ks_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$obj$$)};$contr_router$$.updating=async function($_app$jscomp$1_ngay_ks$jscomp$1_user$$,$data$$,$obj$$,$callback$$){$_app$jscomp$1_ngay_ks$jscomp$1_user$$=await global.getModel("app").findOne({_id:$_app$jscomp$1_ngay_ks$jscomp$1_user$$.current_id_app});
5
- if(!$_app$jscomp$1_ngay_ks$jscomp$1_user$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$_app$jscomp$1_ngay_ks$jscomp$1_user$$=moment($_app$jscomp$1_ngay_ks$jscomp$1_user$$.ngay_ks).startOf("date").toDate();let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($_app$jscomp$1_ngay_ks$jscomp$1_user$$.getTime()>=$den_ngay$$.getTime())return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app$jscomp$1_ngay_ks$jscomp$1_user$$).format("DD/MM/YYYY")}`);
6
- $data$$.nam=$data$$.nam||$obj$$.nam;if($data$$.nam&&($den_ngay$$=moment([$data$$.nam,0,1]).startOf("date").toDate(),$_app$jscomp$1_ngay_ks$jscomp$1_user$$.getTime()>=$den_ngay$$.getTime()))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app$jscomp$1_ngay_ks$jscomp$1_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$data$$,$obj$$)};$contr_router$$.deleting=async($_app$jscomp$2_ngay_ks$jscomp$2_user$$,$obj$$,$callback$$)=>{$_app$jscomp$2_ngay_ks$jscomp$2_user$$=
7
- await global.getModel("app").findOne({_id:$_app$jscomp$2_ngay_ks$jscomp$2_user$$.current_id_app});if(!$_app$jscomp$2_ngay_ks$jscomp$2_user$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$_app$jscomp$2_ngay_ks$jscomp$2_user$$=moment($_app$jscomp$2_ngay_ks$jscomp$2_user$$.ngay_ks).startOf("date").toDate();let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($_app$jscomp$2_ngay_ks$jscomp$2_user$$.getTime()>=$den_ngay$$.getTime())return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app$jscomp$2_ngay_ks$jscomp$2_user$$).format("DD/MM/YYYY")}`);
8
- $callback$$(null,$obj$$)}};module.exports=cddt;
1
+ 'use strict';const model=global.getModel("cddt"),controller=require("../../controllers/controller"),moment=require("moment"),dvcs=global.getModel("dvcs"),dmtk=global.getModel("account"),dmdt=global.getModel("dmdt"),async=require("async"),utils=require("../../libs/utils"),cddt=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"cddt",{sort:{ma_dvcs:1,nam:-1,ma_dt:1,tk:1},unique:["ma_dvcs","tk","ma_dt","nam"]});$contr_router$$.route();$contr_router$$.view=function($user$$,
2
+ $result$$,$fn$$){const $id_app$$=$user$$.current_id_app;async.series({dvcs:function($callback$$){$result$$.joinModel2($id_app$$,dvcs,[{where:{ma_dvcs:"_id"},fields:[{name:"ten_dvcs",value:"ten_dvcs"}]}],function($kq$$){$callback$$(null,$kq$$)})},tk:function($callback$$){$result$$.joinModel2($id_app$$,dmtk,[{where:"tk",fields:[{name:"ten_tk",value:"ten_tk"}]}],function($kq$$){$callback$$(null,$kq$$)})},dt:function($callback$$){$result$$.joinModel2($id_app$$,dmdt,[{where:"ma_dt",fields:[{name:"ten_dt",
3
+ value:"ten_dt"}]}],function($kq$$){$callback$$(null,$kq$$)})}},function($error$$){if($error$$)return $fn$$($error$$);$fn$$(null,$result$$)})};$contr_router$$.creating=async function($ngay_ks_user$$,$obj$$,$callback$$){let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$obj$$.nam||($obj$$.nam=$_app$$.nam_bd);let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks_user$$=
4
+ await utils.isBookLocked({id_app:$ngay_ks_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$obj$$)};$contr_router$$.updating=async function($ngay_ks$jscomp$2_user$$,$data$$,$obj$$,$callback$$){var $_app$jscomp$1_ngay_ks$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$2_user$$.current_id_app});if(!$_app$jscomp$1_ngay_ks$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");
5
+ let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($_app$jscomp$1_ngay_ks$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$2_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$jscomp$1_ngay_ks$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app$jscomp$1_ngay_ks$$).format("DD/MM/YYYY")}`);$data$$.nam=$data$$.nam||$obj$$.nam;if($data$$.nam&&($den_ngay$$=moment([$data$$.nam,0,1]).startOf("date").toDate(),$ngay_ks$jscomp$2_user$$=
6
+ await utils.isBookLocked({id_app:$ngay_ks$jscomp$2_user$$.current_id_app,ngay_ct:$den_ngay$$})))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks$jscomp$2_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$data$$,$obj$$)};$contr_router$$.deleting=async($ngay_ks$jscomp$3_user$$,$obj$$,$callback$$)=>{let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$3_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");
7
+ let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks$jscomp$3_user$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$3_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks$jscomp$3_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$obj$$)}};module.exports=cddt;
@@ -1,10 +1,11 @@
1
- 'use strict';const model=global.getModel("cdkh"),controller=require("../../controllers/controller"),customer=global.getModel("customer"),dmkho=global.getModel("dmkho"),dmdt=global.getModel("dmdt"),dmnv=global.getModel("dmnv"),contract=global.getModel("contract"),dmbp=global.getModel("dmbp"),dvcs=global.getModel("dvcs"),dmtk=global.getModel("account"),async=require("async"),moment=require("moment"),cdkh=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"cdkh",{sort:{ma_dvcs:1,
2
- nam:-1,tk:1},unique:"ma_dvcs tk ma_kh ma_kho ma_dt ma_bp ma_hd ma_nv nam".split(" ")});$contr_router$$.route();$contr_router$$.view=function($user$$,$result$$,$fn$$){const $id_app$$=$user$$.current_id_app;async.series({dv:function($callback$$){$result$$.joinModel2($id_app$$,dvcs,{where:{ma_dvcs:"_id"},fields:{ten_dvcs:"ten_dvcs"}},function(){$callback$$()})},kh:function($callback$$){$result$$.joinModel2($id_app$$,customer,{where:"ma_kh",fields:{ten_kh:"ten_kh"}},function(){$callback$$()})},tk:function($callback$$){$result$$.joinModel2($id_app$$,
3
- dmtk,{where:"tk",fields:["ten_tk","ma_nt"]},function(){$callback$$()})},kho:function($callback$$){$result$$.joinModel2($id_app$$,dmkho,{where:"ma_kho",fields:{ten_kho:"ten_kho"}},function(){$callback$$()})},dmbp:function($callback$$){$result$$.joinModel2($id_app$$,dmbp,{where:"ma_bp",fields:{ten_bp:"ten_bp"}},function(){$callback$$()})},dmdt:function($callback$$){$result$$.joinModel2($id_app$$,dmdt,{where:"ma_dt",fields:{ten_dt:"ten_dt"}},function(){$callback$$()})},contract:function($callback$$){$result$$.joinModel2($id_app$$,
4
- contract,{where:{ma_hd:"so_hd"},fields:{ten_hd:"ten_hd"}},function(){$callback$$()})},nv:function($callback$$){$result$$.joinModel2($id_app$$,dmnv,{where:"ma_nv",fields:{ten_nv:"ten_nv"}},function(){$callback$$()})}},function(){$fn$$(null,$result$$)})};$contr_router$$.updating=async function($id_app$jscomp$1_tk_user$$,$data$$,$obj$$,$callback$$){var $_app_ngay_ks$$=await global.getModel("app").findOne({_id:$id_app$jscomp$1_tk_user$$.current_id_app});if(!$_app_ngay_ks$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");
5
- $_app_ngay_ks$$=moment($_app_ngay_ks$$.ngay_ks).startOf("date").toDate();let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($_app_ngay_ks$$.getTime()>=$den_ngay$$.getTime())return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app_ngay_ks$$).format("DD/MM/YYYY")}`);$data$$.nam=$data$$.nam||$obj$$.nam;if($data$$.nam&&($den_ngay$$=moment([$data$$.nam,0,1]).endOf("year").toDate(),$_app_ngay_ks$$.getTime()>=$den_ngay$$.getTime()))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app_ngay_ks$$).format("DD/MM/YYYY")}`);
6
- $id_app$jscomp$1_tk_user$$=$id_app$jscomp$1_tk_user$$.current_id_app;void 0==$data$$.tk&&($data$$.tk=$obj$$.tk);void 0==$data$$.du_no_nt00&&($data$$.du_no_nt00=$obj$$.du_no_nt00);void 0==$data$$.du_co_nt00&&($data$$.du_co_nt00=$obj$$.du_co_nt00);void 0==$data$$.du_no_nt1&&($data$$.du_no_nt1=$obj$$.du_no_nt1);void 0==$data$$.du_co_nt1&&($data$$.du_co_nt1=$obj$$.du_co_nt1);($id_app$jscomp$1_tk_user$$=await dmtk.findOne({tk:$data$$.tk,id_app:$id_app$jscomp$1_tk_user$$},{ma_nt:1}).lean())&&"VND"===$id_app$jscomp$1_tk_user$$.ma_nt&&
7
- ($data$$.du_no_nt00=$data$$.du_no00,$data$$.du_co_nt00=$data$$.du_co00,$data$$.du_no_nt1=$data$$.du_no1,$data$$.du_co_nt1=$data$$.du_co1);$callback$$(null,$data$$,$obj$$)};$contr_router$$.creating=async function($tk$jscomp$1_user$$,$obj$$,$callback$$){var $_app$jscomp$1_ngay_ks$$=await global.getModel("app").findOne({_id:$tk$jscomp$1_user$$.current_id_app});if(!$_app$jscomp$1_ngay_ks$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$obj$$.nam||($obj$$.nam=$_app$jscomp$1_ngay_ks$$.nam_bd);
8
- $_app$jscomp$1_ngay_ks$$=moment($_app$jscomp$1_ngay_ks$$.ngay_ks).startOf("date").toDate();let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($_app$jscomp$1_ngay_ks$$.getTime()>=$den_ngay$$.getTime())return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app$jscomp$1_ngay_ks$$).format("DD/MM/YYYY")}`);($tk$jscomp$1_user$$=await dmtk.findOne({tk:$obj$$.tk,id_app:$tk$jscomp$1_user$$.current_id_app},{ma_nt:1}).lean())&&"VND"===$tk$jscomp$1_user$$.ma_nt&&
9
- ($obj$$.du_no_nt00=$obj$$.du_no00,$obj$$.du_co_nt00=$obj$$.du_co00,$obj$$.du_no_nt1=$obj$$.du_no1,$obj$$.du_co_nt1=$obj$$.du_co1);$callback$$(null,$obj$$)};$contr_router$$.deleting=async($_app$jscomp$2_ngay_ks$jscomp$2_user$$,$obj$$,$callback$$)=>{$_app$jscomp$2_ngay_ks$jscomp$2_user$$=await global.getModel("app").findOne({_id:$_app$jscomp$2_ngay_ks$jscomp$2_user$$.current_id_app});if(!$_app$jscomp$2_ngay_ks$jscomp$2_user$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");
10
- $_app$jscomp$2_ngay_ks$jscomp$2_user$$=moment($_app$jscomp$2_ngay_ks$jscomp$2_user$$.ngay_ks).startOf("date").toDate();let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($_app$jscomp$2_ngay_ks$jscomp$2_user$$.getTime()>=$den_ngay$$.getTime())return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app$jscomp$2_ngay_ks$jscomp$2_user$$).format("DD/MM/YYYY")}`);$callback$$(null,$obj$$)}};module.exports=cdkh;
1
+ 'use strict';const model=global.getModel("cdkh"),controller=require("../../controllers/controller"),customer=global.getModel("customer"),dmkho=global.getModel("dmkho"),dmdt=global.getModel("dmdt"),dmnv=global.getModel("dmnv"),contract=global.getModel("contract"),dmbp=global.getModel("dmbp"),dvcs=global.getModel("dvcs"),dmtk=global.getModel("account"),async=require("async"),moment=require("moment"),utils=require("../../libs/utils"),cdkh=function($contr_router$$){$contr_router$$=new controller($contr_router$$,
2
+ model,"cdkh",{sort:{ma_dvcs:1,nam:-1,tk:1},unique:"ma_dvcs tk ma_kh ma_kho ma_dt ma_bp ma_hd ma_nv nam".split(" ")});$contr_router$$.route();$contr_router$$.view=function($user$$,$result$$,$fn$$){const $id_app$$=$user$$.current_id_app;async.series({dv:function($callback$$){$result$$.joinModel2($id_app$$,dvcs,{where:{ma_dvcs:"_id"},fields:{ten_dvcs:"ten_dvcs"}},function(){$callback$$()})},kh:function($callback$$){$result$$.joinModel2($id_app$$,customer,{where:"ma_kh",fields:{ten_kh:"ten_kh"}},function(){$callback$$()})},
3
+ tk:function($callback$$){$result$$.joinModel2($id_app$$,dmtk,{where:"tk",fields:["ten_tk","ma_nt"]},function(){$callback$$()})},kho:function($callback$$){$result$$.joinModel2($id_app$$,dmkho,{where:"ma_kho",fields:{ten_kho:"ten_kho"}},function(){$callback$$()})},dmbp:function($callback$$){$result$$.joinModel2($id_app$$,dmbp,{where:"ma_bp",fields:{ten_bp:"ten_bp"}},function(){$callback$$()})},dmdt:function($callback$$){$result$$.joinModel2($id_app$$,dmdt,{where:"ma_dt",fields:{ten_dt:"ten_dt"}},function(){$callback$$()})},
4
+ contract:function($callback$$){$result$$.joinModel2($id_app$$,contract,{where:{ma_hd:"so_hd"},fields:{ten_hd:"ten_hd"}},function(){$callback$$()})},nv:function($callback$$){$result$$.joinModel2($id_app$$,dmnv,{where:"ma_nv",fields:{ten_nv:"ten_nv"}},function(){$callback$$()})}},function(){$fn$$(null,$result$$)})};$contr_router$$.updating=async function($id_app$jscomp$1_tk_user$$,$data$$,$obj$$,$callback$$){var $_app_ngay_ks$$=await global.getModel("app").findOne({_id:$id_app$jscomp$1_tk_user$$.current_id_app});
5
+ if(!$_app_ngay_ks$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");var $den_ngay_ngay_ks$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($den_ngay_ngay_ks$$=await utils.isBookLocked({id_app:$id_app$jscomp$1_tk_user$$.current_id_app,ngay_ct:$den_ngay_ngay_ks$$,ngay_ks:$_app_ngay_ks$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($den_ngay_ngay_ks$$).format("DD/MM/YYYY")}`);$data$$.nam=$data$$.nam||$obj$$.nam;if($data$$.nam&&
6
+ ($den_ngay_ngay_ks$$=moment([$data$$.nam,0,1]).endOf("year").toDate(),$_app_ngay_ks$$=await utils.isBookLocked({id_app:$id_app$jscomp$1_tk_user$$.current_id_app,ngay_ct:$den_ngay_ngay_ks$$,ngay_ks:$_app_ngay_ks$$.ngay_ks})))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app_ngay_ks$$).format("DD/MM/YYYY")}`);$id_app$jscomp$1_tk_user$$=$id_app$jscomp$1_tk_user$$.current_id_app;void 0==$data$$.tk&&($data$$.tk=$obj$$.tk);void 0==$data$$.du_no_nt00&&($data$$.du_no_nt00=
7
+ $obj$$.du_no_nt00);void 0==$data$$.du_co_nt00&&($data$$.du_co_nt00=$obj$$.du_co_nt00);void 0==$data$$.du_no_nt1&&($data$$.du_no_nt1=$obj$$.du_no_nt1);void 0==$data$$.du_co_nt1&&($data$$.du_co_nt1=$obj$$.du_co_nt1);($id_app$jscomp$1_tk_user$$=await dmtk.findOne({tk:$data$$.tk,id_app:$id_app$jscomp$1_tk_user$$},{ma_nt:1}).lean())&&"VND"===$id_app$jscomp$1_tk_user$$.ma_nt&&($data$$.du_no_nt00=$data$$.du_no00,$data$$.du_co_nt00=$data$$.du_co00,$data$$.du_no_nt1=$data$$.du_no1,$data$$.du_co_nt1=$data$$.du_co1);
8
+ $callback$$(null,$data$$,$obj$$)};$contr_router$$.creating=async function($tk$jscomp$1_user$$,$obj$$,$callback$$){var $_app$jscomp$1_ngay_ks$$=await global.getModel("app").findOne({_id:$tk$jscomp$1_user$$.current_id_app});if(!$_app$jscomp$1_ngay_ks$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");$obj$$.nam||($obj$$.nam=$_app$jscomp$1_ngay_ks$$.nam_bd);let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($_app$jscomp$1_ngay_ks$$=await utils.isBookLocked({id_app:$tk$jscomp$1_user$$.current_id_app,
9
+ ngay_ct:$den_ngay$$,ngay_ks:$_app$jscomp$1_ngay_ks$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($_app$jscomp$1_ngay_ks$$).format("DD/MM/YYYY")}`);($tk$jscomp$1_user$$=await dmtk.findOne({tk:$obj$$.tk,id_app:$tk$jscomp$1_user$$.current_id_app},{ma_nt:1}).lean())&&"VND"===$tk$jscomp$1_user$$.ma_nt&&($obj$$.du_no_nt00=$obj$$.du_no00,$obj$$.du_co_nt00=$obj$$.du_co00,$obj$$.du_no_nt1=$obj$$.du_no1,$obj$$.du_co_nt1=$obj$$.du_co1);$callback$$(null,$obj$$)};
10
+ $contr_router$$.deleting=async($ngay_ks$jscomp$3_user$$,$obj$$,$callback$$)=>{let $_app$$=await global.getModel("app").findOne({_id:$ngay_ks$jscomp$3_user$$.current_id_app});if(!$_app$$)return $callback$$("C\u00f4ng ty n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");let $den_ngay$$=moment([$obj$$.nam,0,1]).startOf("date").toDate();if($ngay_ks$jscomp$3_user$$=await utils.isBookLocked({id_app:$ngay_ks$jscomp$3_user$$.current_id_app,ngay_ct:$den_ngay$$,ngay_ks:$_app$$.ngay_ks}))return $callback$$(`\u0110\u00e3 kh\u00f3a s\u1ed5 \u0111\u1ebfn ng\u00e0y ${moment($ngay_ks$jscomp$3_user$$).format("DD/MM/YYYY")}`);
11
+ $callback$$(null,$obj$$)}};module.exports=cdkh;