flexbiz-server 12.0.10 → 12.0.13

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 (52) hide show
  1. package/package.json +2 -1
  2. package/server/auths/facebook.js +10 -9
  3. package/server/auths/google.js +9 -8
  4. package/server/controllers/controller.js +79 -78
  5. package/server/global.js +2 -2
  6. package/server/libs/blockchainconnect.js +11 -10
  7. package/server/libs/ckvt.js +10 -9
  8. package/server/libs/ckvtcapphat.js +2 -2
  9. package/server/libs/ckvttt.js +5 -5
  10. package/server/libs/databanle.js +14 -14
  11. package/server/libs/dkvt.js +2 -2
  12. package/server/libs/dkvttt.js +3 -3
  13. package/server/libs/permission.js +12 -12
  14. package/server/libs/post-book.js +2 -2
  15. package/server/libs/thnxt.js +7 -7
  16. package/server/libs/thnxttt.js +7 -7
  17. package/server/libs/tinhgiatb.js +22 -19
  18. package/server/models/app.js +4 -4
  19. package/server/models/asskey.js +2 -2
  20. package/server/models/asssell.js +3 -3
  21. package/server/models/dmvt.js +5 -5
  22. package/server/models/hd2.js +5 -5
  23. package/server/models/listinfo.js +2 -2
  24. package/server/models/pbl.js +5 -5
  25. package/server/models/pn1.js +2 -2
  26. package/server/models/pn5.js +3 -3
  27. package/server/models/pn9.js +2 -2
  28. package/server/models/po1.js +1 -1
  29. package/server/models/so1.js +3 -3
  30. package/server/models/tontucthoi.js +3 -3
  31. package/server/models/transaction.js +3 -3
  32. package/server/models/user.js +7 -6
  33. package/server/modules/lists/ls-asskey.js +17 -14
  34. package/server/modules/lists/ls-asssell.js +13 -12
  35. package/server/modules/lists/ls-cart.js +12 -9
  36. package/server/modules/lists/ls-dmvt.js +32 -27
  37. package/server/modules/lists/ls-file.js +13 -13
  38. package/server/modules/lists/ls-participant.js +4 -4
  39. package/server/modules/public/file.js +10 -0
  40. package/server/modules/reports/rp-bkct.js +7 -7
  41. package/server/modules/reports/rp-ckvt.js +8 -4
  42. package/server/modules/reports/rp-dtbanletheovt.js +6 -6
  43. package/server/modules/reports/rp-thnxt.js +8 -7
  44. package/server/modules/reports/rp-tkbanhangtheogioithieu.js +6 -6
  45. package/server/modules/reports/rpt-tkdiemtichluy.js +2 -2
  46. package/server/modules/vouchers/vo-bn1.js +9 -7
  47. package/server/modules/vouchers/vo-hd2.js +7 -7
  48. package/server/modules/vouchers/vo-lenhsx.js +4 -4
  49. package/server/modules/vouchers/vo-pbl.js +26 -24
  50. package/server/modules/vouchers/vo-pc1.js +8 -6
  51. package/server/modules/vouchers/vo-so1.js +25 -22
  52. package/server/route.js +9 -9
@@ -1,30 +1,35 @@
1
1
  'use strict';const model=global.getModel("dmvt"),controller=require("../../controllers/controller"),Dmtk=global.getModel("account"),Dmdvt=global.getModel("dmdvt"),Dmnvt=global.getModel("dmnvt"),Dmtt=global.getModel("dmtt"),ckvt=require("../../libs/ckvt"),Dmqddvt=global.getModel("dmqddvt"),Dmchietkhau=global.getModel("dmchietkhau"),Dmkh=global.getModel("customer"),So1=global.getModel("so1"),async=require("async"),underscore=require("underscore"),getGiaBan=require("../../libs/getGiaban"),counter=global.getModel("counter"),
2
- moment=require("moment"),_=require("lodash"),getAllChildrenGroup=async $chil_ma_nvt_nh_vt_cons$$=>{let $rs$$=[$chil_ma_nvt_nh_vt_cons$$];$chil_ma_nvt_nh_vt_cons$$=(await Dmnvt.find({nh_me:$chil_ma_nvt_nh_vt_cons$$,status:!0},{_id:1}).lean()).map($d$$=>$d$$._id);0<$chil_ma_nvt_nh_vt_cons$$.length&&($chil_ma_nvt_nh_vt_cons$$=await Promise.all($chil_ma_nvt_nh_vt_cons$$.map($nh$$=>getAllChildrenGroup($nh$$))),$chil_ma_nvt_nh_vt_cons$$=$chil_ma_nvt_nh_vt_cons$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),
3
- $rs$$=[...$chil_ma_nvt_nh_vt_cons$$,...$rs$$]);return $rs$$},getAllEcomcategories=async $chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=>{let $rs$$=[$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$];$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=(await global.getModel("ecomcategories").find({danh_muc_me:$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$,status:!0},{ma_danh_muc:1}).lean()).map($d$$=>$d$$.ma_danh_muc);0<$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$.length&&($chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=await Promise.all($chil$jscomp$1_ma_danh_muc_nh_vt_cons$$.map($nh$$=>
4
- getAllEcomcategories($nh$$))),$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$,...$rs$$]);return $rs$$},TinhGiaBan=($item$$,$callback$jscomp$0$$,$options$$,$user$$)=>{let $condition$$={ma_vt:$item$$.ma_vt,id_app:$item$$.id_app,vt:$item$$};$item$$.ma_tt&&($condition$$[`ma_tt${$item$$.loai_tt||1}`]=$item$$.ma_tt);$options$$&&$options$$.req&&$options$$.req.query&&($options$$.req.query.ma_kho&&
5
- ($condition$$.ma_kho=$options$$.req.query.ma_kho),$options$$.req.query.ma_ban&&($condition$$.ma_ban=$options$$.req.query.ma_ban),$options$$.req.query.ma_kh&&($condition$$.ma_kh=$options$$.req.query.ma_kh),$options$$.req.query.nh_kh&&($condition$$.nh_kh=$options$$.req.query.nh_kh),$options$$.req.query.by_user&&($condition$$.user=$user$$),$options$$.req.query.online&&($condition$$.online=$options$$.req.query.online));setImmediate(()=>{getGiaBan($condition$$,($e$$,$gia$$)=>{if($e$$)return console.error("error when get gia_ban on dmvt",
6
- $e$$,$condition$$),$callback$jscomp$0$$(null);$gia$$?(delete $gia$$._id,delete $gia$$.ma_vt,delete $gia$$.ten_vt,underscore.extend($item$$,$gia$$),$gia$$.promotion&&0<$gia$$.promotion.length?async.map($gia$$.promotion,($p$$,$callback$$)=>{($p$$.details_km||[]).joinModel2($item$$.id_app,model,{where:"ma_vt",fields:"ma_dvt"},function($rs$$){$p$$.details_km.forEach($r$$=>{$r$$.km_yn_for=`${$item$$.id_app}-${$item$$.ma_vt}`});$callback$$(null,$rs$$)})},()=>{$callback$jscomp$0$$(null)}):$callback$jscomp$0$$(null)):
7
- $callback$jscomp$0$$(null)})})};
2
+ moment=require("moment"),_=require("lodash"),utils=require("../../libs/utils"),getAllChildrenGroup=async $chil_ma_nvt_nh_vt_cons$$=>{let $rs$$=[$chil_ma_nvt_nh_vt_cons$$];$chil_ma_nvt_nh_vt_cons$$=(await Dmnvt.find({nh_me:$chil_ma_nvt_nh_vt_cons$$,status:!0},{_id:1}).lean()).map($d$$=>$d$$._id);0<$chil_ma_nvt_nh_vt_cons$$.length&&($chil_ma_nvt_nh_vt_cons$$=await Promise.all($chil_ma_nvt_nh_vt_cons$$.map($nh$$=>getAllChildrenGroup($nh$$))),$chil_ma_nvt_nh_vt_cons$$=$chil_ma_nvt_nh_vt_cons$$.reduce(($a$$,
3
+ $b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil_ma_nvt_nh_vt_cons$$,...$rs$$]);return $rs$$},getAllEcomcategories=async $chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=>{let $rs$$=[$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$];$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=(await global.getModel("ecomcategories").find({danh_muc_me:$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$,status:!0},{ma_danh_muc:1}).lean()).map($d$$=>$d$$.ma_danh_muc);0<$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$.length&&($chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=
4
+ await Promise.all($chil$jscomp$1_ma_danh_muc_nh_vt_cons$$.map($nh$$=>getAllEcomcategories($nh$$))),$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$=$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$.reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]),$rs$$=[...$chil$jscomp$1_ma_danh_muc_nh_vt_cons$$,...$rs$$]);return $rs$$},TinhGiaBan=($item$$,$callback$jscomp$0$$,$options$$,$user$$)=>{let $condition$$={ma_vt:$item$$.ma_vt,id_app:$item$$.id_app,vt:$item$$};$item$$.ma_tt&&($condition$$[`ma_tt${$item$$.loai_tt||1}`]=$item$$.ma_tt);
5
+ $options$$&&$options$$.req&&$options$$.req.query&&($options$$.req.query.ma_kho&&($condition$$.ma_kho=$options$$.req.query.ma_kho),$options$$.req.query.ma_ban&&($condition$$.ma_ban=$options$$.req.query.ma_ban),$options$$.req.query.ma_kh&&($condition$$.ma_kh=$options$$.req.query.ma_kh),$options$$.req.query.nh_kh&&($condition$$.nh_kh=$options$$.req.query.nh_kh),$options$$.req.query.by_user&&($condition$$.user=$user$$),$options$$.req.query.online&&($condition$$.online=$options$$.req.query.online));setImmediate(()=>
6
+ {getGiaBan($condition$$,($e$$,$gia$$)=>{if($e$$)return console.error("error when get gia_ban on dmvt",$e$$,$condition$$),$callback$jscomp$0$$(null);$gia$$?(delete $gia$$._id,delete $gia$$.ma_vt,delete $gia$$.ten_vt,underscore.extend($item$$,$gia$$),$gia$$.promotion&&0<$gia$$.promotion.length?async.map($gia$$.promotion,($p$$,$callback$$)=>{($p$$.details_km||[]).joinModel2($item$$.id_app,model,{where:"ma_vt",fields:["ma_dvt","chieu_cao","chieu_rong","chieu_sau","trong_luong"]},function($rs$$){$p$$.details_km.forEach($r$$=>
7
+ {$r$$.km_yn_for=`${$item$$.id_app}-${$item$$.ma_vt}`});$callback$$(null,$rs$$)})},()=>{$callback$jscomp$0$$(null)}):$callback$jscomp$0$$(null)):$callback$jscomp$0$$(null)})})};
8
8
  module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"dmvt",{sort:{ma_vt:1},unique:["ma_vt"],onFinding:($user$$,$condition$$,$next$$,$options$$)=>{$options$$.req.query.show_properties||($options$$.req.query.show_properties=$condition$$.show_properties);$options$$.req.query.by_user||($options$$.req.query.by_user=$condition$$.by_user);$options$$.req.query.online||($options$$.req.query.online=$condition$$.online);$options$$.req.query.show_quantity_in_stock||($options$$.req.query.show_quantity_in_stock=
9
- $condition$$.show_quantity_in_stock);delete $condition$$.show_properties;delete $condition$$.by_user;delete $condition$$.show_quantity_in_stock;delete $condition$$.online;async.parallel({barcode:$callback$jscomp$0$$=>{if($condition$$.ma_vt2&&!$condition$$.ma_vt&&$options$$&&$options$$.req&&$options$$.req.query&&$options$$.req.query.show_properties){if(underscore.isArray($condition$$.ma_vt2)&&0===$condition$$.ma_vt2.length)return $callback$jscomp$0$$();async.parallel({tt:$callback$$=>{Dmtt.find({ma_tt2:$condition$$.ma_vt2,
10
- id_app:$condition$$.id_app},{ma_vt:1}).lean().exec(($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);$callback$$(null,$rs$$.map($r$$=>$r$$.ma_vt))})},vt:$callback$$=>{model.find({ma_vt2:$condition$$.ma_vt2,id_app:$condition$$.id_app},{ma_vt:1}).lean().exec(($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);$callback$$(null,$rs$$.map($r$$=>$r$$.ma_vt))})}},($e$$,$rs$$)=>{if($e$$)return $callback$jscomp$0$$($e$$);delete $condition$$.ma_vt2;$e$$=[...(new Set($rs$$.tt.concat($rs$$.vt)))];$condition$$.ma_vt=
11
- {$in:$e$$};$callback$jscomp$0$$()})}else $callback$jscomp$0$$()},nhom:$callback$$=>{$condition$$.ma_nvt&&"object"!==typeof $condition$$.ma_nvt?getAllChildrenGroup($condition$$.ma_nvt).then($nh_vt$$=>{$condition$$.ma_nvt={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},danhmuc:$callback$$=>{$condition$$.ma_danh_muc&&"object"!==typeof $condition$$.ma_danh_muc?getAllEcomcategories($condition$$.ma_danh_muc).then($nh_vt$$=>{$condition$$.ma_danh_muc={$in:[...(new Set($nh_vt$$))]};$callback$$()}):
12
- $callback$$()},discount:$callback$$=>{if($condition$$.has_discount){let $_q$$={};$condition$$.id_app&&($_q$$.id_app=$condition$$.id_app);var $hieu_luc_den_tu_ngay$$=moment().startOf("date").toDate();let $hieu_luc_tu$$={$lte:moment().endOf("date").toDate()};$hieu_luc_den_tu_ngay$$={$gte:$hieu_luc_den_tu_ngay$$};$_q$$.hieu_luc_tu=$hieu_luc_tu$$;$_q$$.hieu_luc_den=$hieu_luc_den_tu_ngay$$;$condition$$.ma_vt&&($_q$$.ma_vt=$condition$$.ma_vt);Dmchietkhau.find($_q$$,{ma_vt:1,ma_nvt:1}).lean().exec(($_ma_vt_e$$,
13
- $$or__ma_nvt_rs$$)=>{$$or__ma_nvt_rs$$&&($_ma_vt_e$$=$$or__ma_nvt_rs$$.filter($r$$=>$r$$.ma_vt).map($r$$=>$r$$.ma_vt),$$or__ma_nvt_rs$$=$$or__ma_nvt_rs$$.filter($r$$=>$r$$.ma_nvt&&!$r$$.ma_vt).map($r$$=>$r$$.ma_nvt),$$or__ma_nvt_rs$$=[{ma_vt:{$in:$_ma_vt_e$$}},{ma_nvt:{$in:$$or__ma_nvt_rs$$}}],$condition$$.$and?$condition$$.$and.push({$or:$$or__ma_nvt_rs$$}):$condition$$.$and=[{$or:$$or__ma_nvt_rs$$}]);$callback$$()})}else $callback$$()}},$e$$=>{if($e$$)return $next$$($e$$);delete $condition$$.has_discount;
14
- console.log("find dmvt",$condition$$);$next$$(null,$condition$$)})}});$contr_router$$.route();$contr_router$$.validating=($user$$,$obj$$,$next$$)=>{$obj$$.ma_vt?$next$$(null,$obj$$):counter.getNextSequence($user$$.current_id_app,"DMVT","ma_vt",function($error$$,$sequence$$){$error$$&&($sequence$$=0);$sequence$$=$sequence$$.toString();$obj$$.ma_vt="SP"+"00000000".substring(0,8-$sequence$$.length)+$sequence$$;$next$$(null,$obj$$)})};$contr_router$$.creating=async function($user$$,$obj$$,$next$$){$obj$$.combo&&
15
- 0<$obj$$.combo.length&&($obj$$.tg_tk=!1);if($obj$$.ma_can&&await model.findOne({ma_can:$obj$$.ma_can,id_app:$user$$.current_id_app},{_id:1}))return $next$$("M\u00e3 c\u00e2n \u0111\u00e3 t\u1ed3n t\u1ea1i");if($obj$$.ma_vt2&&await model.findOne({ma_vt2:$obj$$.ma_vt2,id_app:$user$$.current_id_app},{_id:1}))return $next$$("M\u00e3 v\u1eadt t\u01b0 2 \u0111\u00e3 t\u1ed3n t\u1ea1i");$next$$(null,$obj$$)};$contr_router$$.updating=async function($user$$,$data$$,$obj$$,$next$$){$data$$.combo&&0<$data$$.combo.length&&
16
- ($data$$.tg_tk=!1);$data$$.ma_vt=$data$$.ma_vt||$obj$$.ma_vt;if($data$$.ma_can&&$data$$.ma_can!==$obj$$.ma_can&&await model.findOne({ma_can:$data$$.ma_can,id_app:$obj$$.id_app},{_id:1}))return $next$$("M\u00e3 c\u00e2n \u0111\u00e3 t\u1ed3n t\u1ea1i");if($data$$.ma_vt2&&$data$$.ma_vt2!==$obj$$.ma_vt2&&await model.findOne({ma_vt2:$data$$.ma_vt2,id_app:$obj$$.id_app},{_id:1}))return $next$$("M\u00e3 v\u1eadt t\u01b0 2 \u0111\u00e3 t\u1ed3n t\u1ea1i");$next$$(null,$data$$,$obj$$)};$contr_router$$.view=
17
- function($user$$,$items$$,$fn$$,$options$$){async.parallel([function($callback$$){$items$$.filter($item$$=>$item$$.tk_vt).joinModel2(null,Dmtk,[{where:{id_app:"id_app",tk_vt:"tk"},fields:[{name:"ten_tk_vt",value:"ten_tk"}]},{where:{id_app:"id_app",tk_dt:"tk"},fields:[{name:"ten_tk_dt",value:"ten_tk"}]},{where:{id_app:"id_app",tk_gv:"tk"},fields:[{name:"ten_tk_gv",value:"ten_tk"}]},{where:{id_app:"id_app",tk_tl:"tk"},fields:[{name:"ten_tk_tl",value:"ten_tk"}]},{where:{id_app:"id_app",tk_dl:"tk"},fields:[{name:"ten_tk_dl",
18
- value:"ten_tk"}]}],function($rs$$){$callback$$(null,$rs$$)})},function($callback$$){$items$$.filter($i$$=>$i$$.ma_nvt).joinModel2(null,Dmnvt,[{akey:"ma_nvt",bkey:"_id",fields:[{name:"ten_nvt",value:"ten_nvt"}]}],function($rs$$){$callback$$(null,$rs$$)})},function($callback$$){$items$$.filter($i$$=>$i$$.ma_ncc).joinModel2(null,Dmkh,[{where:{id_app:"id_app",ma_ncc:"ma_kh"},fields:[{name:"ten_ncc",value:"ten_kh"}]}],function($rs$$){$callback$$(null,$rs$$)})},function($callback$$){Promise.all($items$$.filter($i$$=>
19
- $i$$.id_app&&$i$$.ma_dvt).map($item$$=>(async()=>{let $dvtqd$$=await Dmqddvt.findOne({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt});$dvtqd$$?$dvtqd$$.tu||$dvtqd$$.mau||($dvtqd$$.tu=1,$dvtqd$$.mau=1):$dvtqd$$=await Dmqddvt.create({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt,ty_le_qd:1,tu:1,mau:1});return $dvtqd$$})())).then(()=>{$callback$$(null,$items$$)}).catch($e$$=>{console.error("Error create qddvt",$e$$.message);$callback$$(null,$items$$)})},function($callback$$){try{let $freeshipModel$$=
20
- global.getModel("ecompromotion_freeships"),$tu_ngay$$=moment().startOf("date").toDate(),$hieu_luc_tu$$={$lte:moment().endOf("date").toDate()},$hieu_luc_den$$={$gte:$tu_ngay$$};Promise.all($items$$.filter($i$$=>$i$$.id_app).map($item$$=>(async()=>{let $freeship$$=await $freeshipModel$$.find({id_app:$item$$.id_app,hieu_luc_tu:$hieu_luc_tu$$,hieu_luc_den:$hieu_luc_den$$,shared:!0,trang_thai:"1",$or:[{"details.0":{$exists:!1}},{"details.ma_danh_muc":{$in:[$item$$.ma_danh_muc,null,void 0,""]},"details.ma_vt":{$in:[$item$$.ma_vt,
21
- "",null,void 0]}}]}).lean();$item$$.freeship=$freeship$$})())).then(()=>{$callback$$(null,$items$$)}).catch($e$$=>{console.error($e$$);$callback$$(null,$items$$)})}catch($e$$){console.error($e$$),$callback$$(null,$items$$)}},function($callback$$){try{let $flashsale$$=global.getModel("ecompromotion_flashsales"),$tu_ngay$$=moment().startOf("date").toDate(),$hieu_luc_tu$$={$lte:moment().endOf("date").toDate()},$hieu_luc_den$$={$gte:$tu_ngay$$};Promise.all($items$$.filter($i$$=>$i$$.id_app).map($item$$=>
22
- (async()=>{let $fs$$=await $flashsale$$.find({id_app:$item$$.id_app,tu_ngay:$hieu_luc_tu$$,den_ngay:$hieu_luc_den$$,shared:!0,trang_thai:"1",$or:[{"details.0":{$exists:!1}},{"details.ma_danh_muc":{$in:[$item$$.ma_danh_muc,null,void 0,""]},"details.ma_vt":{$in:[$item$$.ma_vt,"",null,void 0]}}]}).lean();$item$$.flashsales=$fs$$})())).then(()=>{$callback$$(null,$items$$)}).catch($e$$=>{console.error($e$$);$callback$$(null,$items$$)})}catch($e$$){console.error($e$$),$callback$$(null,$items$$)}},function($callback$$){Promise.all($items$$.filter($item$$=>
23
- $item$$.is_digital).map($item$$=>(async()=>{var $kh_so1$$=await Dmkh.findOne({of_user:$user$$.email,id_app:$item$$.id_app});if($kh_so1$$){if($kh_so1$$=await So1.findOne({id_app:$item$$.id_app,details:{$elemMatch:{ma_vt:$item$$.ma_vt}},ma_kh:$kh_so1$$.ma_kh,trang_thai:"5"}))$item$$.owned=!0;return $kh_so1$$}})())).then(()=>{$callback$$(null,$items$$)}).catch(()=>{$callback$$(null,$items$$)})},function($callback$$){$options$$&&$options$$.req&&$options$$.req.query&&$options$$.req.query.show_properties?
24
- async.map($items$$,async $item$$=>{$item$$.ds_thuoc_tinh=await Dmtt.find({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,status:!0}).lean();return $item$$},()=>{$callback$$()}):$callback$$()},function($callback$$){$items$$.forEach(function($r$$){$r$$.picture&&($r$$.picture_thumb=$r$$.picture);$r$$.picture2&&($r$$.picture2_thumb=$r$$.picture2);$r$$.picture3&&($r$$.picture3_thumb=$r$$.picture3);$r$$.picture4&&($r$$.picture4_thumb=$r$$.picture4);$r$$.picture5&&($r$$.picture5_thumb=$r$$.picture5)});$items$$.filter($i$$=>
25
- $i$$.ma_dvt).joinModel2(null,Dmdvt,[{where:{id_app:"id_app",ma_dvt:"ma_dvt"},fields:[{name:"ten_dvt",value:"ten_dvt"}]}],function($rs$$){$callback$$(null,$rs$$)})}],function(){console.log("show properties",$options$$.req.query.show_properties,$options$$.req.query.online);let $result$$=$items$$.map($item$$=>{if($item$$.ds_thuoc_tinh&&0<$item$$.ds_thuoc_tinh.length){let $_new_items$$=$item$$.ds_thuoc_tinh.map($tt$$=>{let $_new_item$$={...$item$$};$_new_item$$.ma_tt=$tt$$.ma_tt;$_new_item$$.ten_tt=$tt$$.ten_tt;
26
- $_new_item$$.loai_tt=$tt$$.loai_tt;$_new_item$$[`ma_tt${$tt$$.loai_tt}`]=$tt$$.ma_tt;$_new_item$$.nh_tt=$tt$$.nh_tt;$_new_item$$.ma_dvt=$tt$$.ma_dvt||$_new_item$$.ma_dvt;$_new_item$$.ma_can=$tt$$.ma_can||$_new_item$$.ma_can;$_new_item$$.ma_vt2=$tt$$.ma_tt2||$_new_item$$.ma_vt2;$_new_item$$.gia_ban_le=$tt$$.gia_ban_le||$_new_item$$.gia_ban_le;delete $_new_item$$.ds_thuoc_tinh;return $_new_item$$}).sort(($a$$,$b$$)=>$a$$.gia_ban_le-$b$$.gia_ban_le);if($options$$.req.query.online){let $ds_thuoc_tinh$$=
9
+ $condition$$.show_quantity_in_stock);$options$$.req.query.ma_kho||($options$$.req.query.ma_kho=$condition$$.ma_kho);delete $condition$$.show_properties;delete $condition$$.by_user;delete $condition$$.show_quantity_in_stock;delete $condition$$.online;delete $condition$$.ma_kho;async.parallel({barcode:$callback$jscomp$0$$=>{if($condition$$.ma_vt2&&!$condition$$.ma_vt&&$options$$&&$options$$.req&&$options$$.req.query&&$options$$.req.query.show_properties){if(underscore.isArray($condition$$.ma_vt2)&&
10
+ 0===$condition$$.ma_vt2.length)return $callback$jscomp$0$$();async.parallel({tt:$callback$$=>{Dmtt.find({ma_tt2:$condition$$.ma_vt2,id_app:$condition$$.id_app},{ma_vt:1}).lean().exec(($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);$callback$$(null,$rs$$.map($r$$=>$r$$.ma_vt))})},vt:$callback$$=>{model.find({ma_vt2:$condition$$.ma_vt2,id_app:$condition$$.id_app},{ma_vt:1}).lean().exec(($e$$,$rs$$)=>{if($e$$)return $callback$$($e$$);$callback$$(null,$rs$$.map($r$$=>$r$$.ma_vt))})}},($e$$,$rs$$)=>{if($e$$)return $callback$jscomp$0$$($e$$);
11
+ delete $condition$$.ma_vt2;$e$$=[...(new Set($rs$$.tt.concat($rs$$.vt)))];$condition$$.ma_vt={$in:$e$$};$callback$jscomp$0$$()})}else $callback$jscomp$0$$()},nhom:$callback$$=>{$condition$$.ma_nvt&&"object"!==typeof $condition$$.ma_nvt?getAllChildrenGroup($condition$$.ma_nvt).then($nh_vt$$=>{$condition$$.ma_nvt={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},danhmuc:$callback$$=>{$condition$$.ma_danh_muc&&"object"!==typeof $condition$$.ma_danh_muc?getAllEcomcategories($condition$$.ma_danh_muc).then($nh_vt$$=>
12
+ {$condition$$.ma_danh_muc={$in:[...(new Set($nh_vt$$))]};$callback$$()}):$callback$$()},discount:$callback$$=>{if($condition$$.has_discount){let $_q$$={};$condition$$.id_app&&($_q$$.id_app=$condition$$.id_app);var $hieu_luc_den_tu_ngay$$=moment().startOf("date").toDate();let $hieu_luc_tu$$={$lte:moment().endOf("date").toDate()};$hieu_luc_den_tu_ngay$$={$gte:$hieu_luc_den_tu_ngay$$};$_q$$.hieu_luc_tu=$hieu_luc_tu$$;$_q$$.hieu_luc_den=$hieu_luc_den_tu_ngay$$;$condition$$.ma_vt&&($_q$$.ma_vt=$condition$$.ma_vt);
13
+ Dmchietkhau.find($_q$$,{ma_vt:1,ma_nvt:1}).lean().exec(($_ma_vt_e$$,$$or__ma_nvt_rs$$)=>{$$or__ma_nvt_rs$$&&($_ma_vt_e$$=$$or__ma_nvt_rs$$.filter($r$$=>$r$$.ma_vt).map($r$$=>$r$$.ma_vt),$$or__ma_nvt_rs$$=$$or__ma_nvt_rs$$.filter($r$$=>$r$$.ma_nvt&&!$r$$.ma_vt).map($r$$=>$r$$.ma_nvt),$$or__ma_nvt_rs$$=[{ma_vt:{$in:$_ma_vt_e$$}},{ma_nvt:{$in:$$or__ma_nvt_rs$$}}],$condition$$.$and?$condition$$.$and.push({$or:$$or__ma_nvt_rs$$}):$condition$$.$and=[{$or:$$or__ma_nvt_rs$$}]);$callback$$()})}else $callback$$()}},
14
+ $e$$=>{if($e$$)return $next$$($e$$);delete $condition$$.has_discount;console.log("find dmvt",$condition$$);$next$$(null,$condition$$)})}});$contr_router$$.route();$contr_router$$.validating=($user$$,$obj$$,$next$$)=>{$obj$$.ma_vt?$next$$(null,$obj$$):counter.getNextSequence($user$$.current_id_app,"DMVT","ma_vt",function($error$$,$sequence$$){$error$$&&($sequence$$=0);$sequence$$=$sequence$$.toString();$obj$$.ma_vt="SP"+"00000000".substring(0,8-$sequence$$.length)+$sequence$$;$next$$(null,$obj$$)})};
15
+ $contr_router$$.creating=async function($user$$,$obj$$,$next$$){$obj$$.combo&&0<$obj$$.combo.length&&($obj$$.tg_tk=!1);if($obj$$.ma_can&&await model.findOne({ma_can:$obj$$.ma_can,id_app:$user$$.current_id_app},{_id:1}))return $next$$("M\u00e3 c\u00e2n \u0111\u00e3 t\u1ed3n t\u1ea1i");if($obj$$.ma_vt2&&await model.findOne({ma_vt2:$obj$$.ma_vt2,id_app:$user$$.current_id_app},{_id:1}))return $next$$("M\u00e3 v\u1eadt t\u01b0 2 \u0111\u00e3 t\u1ed3n t\u1ea1i");$next$$(null,$obj$$)};$contr_router$$.updating=
16
+ async function($user$$,$data$$,$obj$$,$next$$){$data$$.combo&&0<$data$$.combo.length&&($data$$.tg_tk=!1);$data$$.ma_vt=$data$$.ma_vt||$obj$$.ma_vt;if($data$$.ma_can&&$data$$.ma_can!==$obj$$.ma_can&&await model.findOne({ma_can:$data$$.ma_can,id_app:$obj$$.id_app},{_id:1}))return $next$$("M\u00e3 c\u00e2n \u0111\u00e3 t\u1ed3n t\u1ea1i");if($data$$.ma_vt2&&$data$$.ma_vt2!==$obj$$.ma_vt2&&await model.findOne({ma_vt2:$data$$.ma_vt2,id_app:$obj$$.id_app},{_id:1}))return $next$$("M\u00e3 v\u1eadt t\u01b0 2 \u0111\u00e3 t\u1ed3n t\u1ea1i");
17
+ $next$$(null,$data$$,$obj$$)};$contr_router$$.view=function($user$$,$items$$,$fn$$,$options$$){async.parallel([function($callback$$){$items$$.filter($item$$=>$item$$.tk_vt).joinModel2(null,Dmtk,[{where:{id_app:"id_app",tk_vt:"tk"},fields:[{name:"ten_tk_vt",value:"ten_tk"}]},{where:{id_app:"id_app",tk_dt:"tk"},fields:[{name:"ten_tk_dt",value:"ten_tk"}]},{where:{id_app:"id_app",tk_gv:"tk"},fields:[{name:"ten_tk_gv",value:"ten_tk"}]},{where:{id_app:"id_app",tk_tl:"tk"},fields:[{name:"ten_tk_tl",value:"ten_tk"}]},
18
+ {where:{id_app:"id_app",tk_dl:"tk"},fields:[{name:"ten_tk_dl",value:"ten_tk"}]}],function($rs$$){$callback$$(null,$rs$$)})},function($callback$$){$items$$.filter($i$$=>$i$$.ma_nvt).joinModel2(null,Dmnvt,[{akey:"ma_nvt",bkey:"_id",fields:[{name:"ten_nvt",value:"ten_nvt"}]}],function($rs$$){$callback$$(null,$rs$$)})},function($callback$$){$items$$.filter($i$$=>$i$$.ma_ncc).joinModel2(null,Dmkh,[{where:{id_app:"id_app",ma_ncc:"ma_kh"},fields:[{name:"ten_ncc",value:"ten_kh"}]}],function($rs$$){$callback$$(null,
19
+ $rs$$)})},function($callback$$){Promise.all($items$$.filter($i$$=>$i$$.id_app&&$i$$.ma_dvt).map($item$$=>(async()=>{let $dvtqd$$=await Dmqddvt.findOne({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt});$dvtqd$$?$dvtqd$$.tu||$dvtqd$$.mau||($dvtqd$$.tu=1,$dvtqd$$.mau=1):$dvtqd$$=await Dmqddvt.create({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt,ty_le_qd:1,tu:1,mau:1});return $dvtqd$$})())).then(()=>{$callback$$(null,$items$$)}).catch($e$$=>{console.error("Error create qddvt",
20
+ $e$$.message);$callback$$(null,$items$$)})},function($callback$$){try{let $freeshipModel$$=global.getModel("ecompromotion_freeships"),$tu_ngay$$=moment().startOf("date").toDate(),$hieu_luc_tu$$={$lte:moment().endOf("date").toDate()},$hieu_luc_den$$={$gte:$tu_ngay$$};Promise.all($items$$.filter($i$$=>$i$$.id_app).map($item$$=>(async()=>{let $freeship$$=await $freeshipModel$$.find({id_app:$item$$.id_app,hieu_luc_tu:$hieu_luc_tu$$,hieu_luc_den:$hieu_luc_den$$,shared:!0,trang_thai:"1",$or:[{"details.0":{$exists:!1}},
21
+ {"details.ma_danh_muc":{$in:[$item$$.ma_danh_muc,null,void 0,""]},"details.ma_vt":{$in:[$item$$.ma_vt,"",null,void 0]}}]}).lean();$item$$.freeship=$freeship$$})())).then(()=>{$callback$$(null,$items$$)}).catch($e$$=>{console.error($e$$);$callback$$(null,$items$$)})}catch($e$$){console.error($e$$),$callback$$(null,$items$$)}},function($callback$$){try{let $flashsale$$=global.getModel("ecompromotion_flashsales"),$tu_ngay$$=moment().startOf("date").toDate(),$hieu_luc_tu$$={$lte:moment().endOf("date").toDate()},
22
+ $hieu_luc_den$$={$gte:$tu_ngay$$};Promise.all($items$$.filter($i$$=>$i$$.id_app).map($item$$=>(async()=>{let $fs$$=await $flashsale$$.find({id_app:$item$$.id_app,tu_ngay:$hieu_luc_tu$$,den_ngay:$hieu_luc_den$$,shared:!0,trang_thai:"1",$or:[{"details.0":{$exists:!1}},{"details.ma_danh_muc":{$in:[$item$$.ma_danh_muc,null,void 0,""]},"details.ma_vt":{$in:[$item$$.ma_vt,"",null,void 0]}}]}).lean();$item$$.flashsales=$fs$$})())).then(()=>{$callback$$(null,$items$$)}).catch($e$$=>{console.error($e$$);$callback$$(null,
23
+ $items$$)})}catch($e$$){console.error($e$$),$callback$$(null,$items$$)}},function($callback$$){Promise.all($items$$.filter($item$$=>$item$$.is_digital).map($item$$=>(async()=>{var $kh_so1$$=await Dmkh.findOne({of_user:$user$$.email,id_app:$item$$.id_app});if($kh_so1$$){if($kh_so1$$=await So1.findOne({id_app:$item$$.id_app,details:{$elemMatch:{ma_vt:$item$$.ma_vt}},ma_kh:$kh_so1$$.ma_kh,trang_thai:"5"}))$item$$.owned=!0;return $kh_so1$$}})())).then(()=>{$callback$$(null,$items$$)}).catch(()=>{$callback$$(null,
24
+ $items$$)})},function($callback$$){$options$$&&$options$$.req&&$options$$.req.query&&$options$$.req.query.show_properties?async.map($items$$,async $item$$=>{$item$$.ds_thuoc_tinh=await Dmtt.find({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,status:!0}).lean();return $item$$},()=>{$callback$$()}):$callback$$()},function($callback$$){$items$$.forEach(function($r$$){$r$$.picture&&($r$$.picture_thumb=$r$$.picture);$r$$.picture2&&($r$$.picture2_thumb=$r$$.picture2);$r$$.picture3&&($r$$.picture3_thumb=$r$$.picture3);
25
+ $r$$.picture4&&($r$$.picture4_thumb=$r$$.picture4);$r$$.picture5&&($r$$.picture5_thumb=$r$$.picture5)});$items$$.filter($i$$=>$i$$.ma_dvt).joinModel2(null,Dmdvt,[{where:{id_app:"id_app",ma_dvt:"ma_dvt"},fields:[{name:"ten_dvt",value:"ten_dvt"}]}],function($rs$$){$callback$$(null,$rs$$)})}],function(){let $result$$=$items$$.map($item$$=>{if($item$$.ds_thuoc_tinh&&0<$item$$.ds_thuoc_tinh.length){let $_new_items$$=$item$$.ds_thuoc_tinh.map($tt$$=>{let $_new_item$$={...$item$$};$_new_item$$.ma_tt=$tt$$.ma_tt;
26
+ $_new_item$$.ten_tt=$tt$$.ten_tt;$_new_item$$.loai_tt=$tt$$.loai_tt;$_new_item$$[`ma_tt${$tt$$.loai_tt}`]=$tt$$.ma_tt;$_new_item$$.nh_tt=$tt$$.nh_tt;$_new_item$$.ma_dvt=$tt$$.ma_dvt||$_new_item$$.ma_dvt;$_new_item$$.ma_can=$tt$$.ma_can||$_new_item$$.ma_can;$_new_item$$.ma_vt2=$tt$$.ma_tt2||$_new_item$$.ma_vt2;$_new_item$$.gia_ban_le=$tt$$.gia_ban_le||$_new_item$$.gia_ban_le;delete $_new_item$$.ds_thuoc_tinh;return $_new_item$$}).sort(($a$$,$b$$)=>$a$$.gia_ban_le-$b$$.gia_ban_le);if($options$$.req.query.online){let $ds_thuoc_tinh$$=
27
27
  _.cloneDeep($_new_items$$);$_new_items$$.forEach($r$$=>{$r$$.ds_thuoc_tinh=$ds_thuoc_tinh$$});return[$_new_items$$[0]]}return $_new_items$$}return[$item$$]}).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);async.map($result$$,($item$jscomp$0$$,$callback$jscomp$1$$)=>{$item$jscomp$0$$.ty_le_ck=0;$item$jscomp$0$$.tien_ck=0;$item$jscomp$0$$.id_app?async.parallel({giaban:$callback$$=>{TinhGiaBan($item$jscomp$0$$,$callback$$,$options$$,$user$$)},gia_ban_thuoc_tinh:$callback$jscomp$0$$=>{$item$jscomp$0$$.ds_thuoc_tinh&&
28
- 0<$item$jscomp$0$$.ds_thuoc_tinh.length?async.map($item$jscomp$0$$.ds_thuoc_tinh,($item$$,$callback$$)=>{TinhGiaBan($item$$,$callback$$,$options$$,$user$$)},()=>{$callback$jscomp$0$$()}):$callback$jscomp$0$$()},ton:$callback$$=>{if($options$$&&$options$$.req&&$options$$.req.query&&$options$$.req.query.show_quantity_in_stock){let $condition$$={ma_vt:$item$jscomp$0$$.ma_vt,id_app:$item$jscomp$0$$.id_app};$options$$.req.query.ma_kho&&($condition$$.ma_kho=$options$$.req.query.ma_kho);$options$$.req.query.ma_lo&&
29
- ($condition$$.ma_lo=$options$$.req.query.ma_lo);$options$$.req.query.ma_dvcs&&($condition$$.ma_dvcs=$options$$.req.query.ma_dvcs);$condition$$.groupBy=["id_app","ma_vt"];$condition$$.ngay=new Date;setImmediate(()=>{ckvt($condition$$,async function($dvtqd$jscomp$1_e$$,$rs$$){$item$jscomp$0$$.ton00=$rs$$.map($r$$=>$r$$.ton00||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);if($dvtqd$jscomp$1_e$$=await Dmqddvt.findOne({id_app:$item$jscomp$0$$.id_app,ma_vt:$item$jscomp$0$$.ma_vt,ma_dvt:$item$jscomp$0$$.ma_dvt}))$item$jscomp$0$$.ton00=
30
- $dvtqd$jscomp$1_e$$.tu&&$dvtqd$jscomp$1_e$$.mau?$item$jscomp$0$$.ton00*$dvtqd$jscomp$1_e$$.mau/$dvtqd$jscomp$1_e$$.tu:$item$jscomp$0$$.ton00/($dvtqd$jscomp$1_e$$.ty_le_qd||1);$callback$$()})})}else $callback$$()}},()=>{$callback$jscomp$1$$()}):$callback$jscomp$1$$(null)},()=>{$fn$$(null,$result$$)})})}};
28
+ 0<$item$jscomp$0$$.ds_thuoc_tinh.length?async.map($item$jscomp$0$$.ds_thuoc_tinh,($item$$,$callback$$)=>{TinhGiaBan($item$$,$callback$$,$options$$,$user$$)},()=>{$callback$jscomp$0$$()}):$callback$jscomp$0$$()},ton_dvt:$callback$$=>{$item$jscomp$0$$.ton_kho_online_hien_tai&&$item$jscomp$0$$.ma_dvt?setImmediate(async()=>{let $dvtqd$$=await Dmqddvt.findOne({id_app:$item$jscomp$0$$.id_app,ma_vt:$item$jscomp$0$$.ma_vt,ma_dvt:$item$jscomp$0$$.ma_dvt});$dvtqd$$&&($item$jscomp$0$$.ton_kho_online_hien_tai_dvt=
29
+ $dvtqd$$.tu&&$dvtqd$$.mau?utils.round($item$jscomp$0$$.ton_kho_online_hien_tai*$dvtqd$$.mau/$dvtqd$$.tu,4):utils.round($item$jscomp$0$$.ton_kho_online_hien_tai/($dvtqd$$.ty_le_qd||1),4));$callback$$()}):$callback$$()},ton_tt:$callback$jscomp$0$$=>{$item$jscomp$0$$.ds_thuoc_tinh?setImmediate(async()=>{let $ds_kho_online$$=(await global.getModel("dmkho").find({id_app:$item$jscomp$0$$.id_app,la_kho_online:!0},{ma_kho:1}).lean()).map($k$$=>$k$$.ma_kho);async.map($item$jscomp$0$$.ds_thuoc_tinh.filter($item$$=>
30
+ $item$$.ma_vt&&$item$$.ton_kho_online_hien_tai),($item$$,$callback$$)=>{setImmediate(async()=>{if($item$$.kg_kiem_tra_ton_kho_tt){if($item$$.ma_dvt){var $condition$jscomp$4_dvtqd$$=await Dmqddvt.findOne({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt}).lean();$condition$jscomp$4_dvtqd$$&&($item$$.ton_kho_online_hien_tai_dvt=$condition$jscomp$4_dvtqd$$.tu&&$condition$jscomp$4_dvtqd$$.mau?utils.round($item$$.ton_kho_online_hien_tai*$condition$jscomp$4_dvtqd$$.mau/$condition$jscomp$4_dvtqd$$.tu,
31
+ 4):utils.round($item$$.ton_kho_online_hien_tai/($condition$jscomp$4_dvtqd$$.ty_le_qd||1),4))}$callback$$()}else $condition$jscomp$4_dvtqd$$={ma_vt:$item$$.ma_vt,id_app:$item$$.id_app},$item$$.ma_tt&&($condition$jscomp$4_dvtqd$$[`ma_tt${$item$$.loai_tt||1}`]=$item$$.ma_tt),$condition$jscomp$4_dvtqd$$.groupBy=["ma_vt"],$condition$jscomp$4_dvtqd$$.ngay=new Date,$condition$jscomp$4_dvtqd$$.ma_kho={$in:$ds_kho_online$$},ckvt($condition$jscomp$4_dvtqd$$,async function($dvtqd$jscomp$3_e$$,$rs$$){$item$$.ton_kho_online_hien_tai_dvt=
32
+ $rs$$.map($r$$=>$r$$.ton00||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$item$$.ma_dvt&&($dvtqd$jscomp$3_e$$=await Dmqddvt.findOne({id_app:$item$$.id_app,ma_vt:$item$$.ma_vt,ma_dvt:$item$$.ma_dvt}).lean())&&($item$$.ton_kho_online_hien_tai_dvt=$dvtqd$jscomp$3_e$$.tu&&$dvtqd$jscomp$3_e$$.mau?utils.round($item$$.ton_kho_online_hien_tai_dvt*$dvtqd$jscomp$3_e$$.mau/$dvtqd$jscomp$3_e$$.tu,4):utils.round($item$$.ton_kho_online_hien_tai_dvt/($dvtqd$jscomp$3_e$$.ty_le_qd||1),4));$callback$$()})})},()=>{$callback$jscomp$0$$()})}):
33
+ $callback$jscomp$0$$()},ton:$callback$$=>{if($options$$&&$options$$.req&&$options$$.req.query&&$options$$.req.query.show_quantity_in_stock){let $condition$$={ma_vt:$item$jscomp$0$$.ma_vt,id_app:$item$jscomp$0$$.id_app};$options$$.req.query.ma_kho&&($condition$$.ma_kho=$options$$.req.query.ma_kho);$options$$.req.query.ma_lo&&($condition$$.ma_lo=$options$$.req.query.ma_lo);$options$$.req.query.ma_dvcs&&($condition$$.ma_dvcs=$options$$.req.query.ma_dvcs);$condition$$.groupBy=["id_app","ma_vt"];$condition$$.ngay=
34
+ new Date;setImmediate(async()=>{ckvt($condition$$,async function($dvtqd$jscomp$4_e$$,$rs$$){$item$jscomp$0$$.ton00=$rs$$.map($r$$=>$r$$.ton00||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$item$jscomp$0$$.ma_dvt&&($dvtqd$jscomp$4_e$$=await Dmqddvt.findOne({id_app:$item$jscomp$0$$.id_app,ma_vt:$item$jscomp$0$$.ma_vt,ma_dvt:$item$jscomp$0$$.ma_dvt}))&&($item$jscomp$0$$.ton00=$dvtqd$jscomp$4_e$$.tu&&$dvtqd$jscomp$4_e$$.mau?utils.round($item$jscomp$0$$.ton00*$dvtqd$jscomp$4_e$$.mau/$dvtqd$jscomp$4_e$$.tu,4):utils.round($item$jscomp$0$$.ton00/
35
+ ($dvtqd$jscomp$4_e$$.ty_le_qd||1),0));$callback$$()})})}else $callback$$()}},()=>{$callback$jscomp$1$$()}):$callback$jscomp$1$$(null)},()=>{$fn$$(null,$result$$)})})}};
@@ -1,10 +1,10 @@
1
- 'use strict';const model=global.getModel("file"),app=global.getModel("app"),gm=require("gm").subClass({imageMagick:!0}),watermark=require("dynamic-watermark"),path=require("path"),fs=require("fs"),controller=require("../../controllers/controller"),ffmpeg=require("fluent-ffmpeg"),ffmpegInstaller=require("@ffmpeg-installer/ffmpeg");ffmpeg.setFfmpegPath(ffmpegInstaller.path);
2
- const deleteFolderRecursive=function($_pathDir$$){fs.existsSync($_pathDir$$)&&(fs.readdirSync($_pathDir$$).forEach($curPath_file$$=>{$curPath_file$$=path.join($_pathDir$$,$curPath_file$$);fs.lstatSync($curPath_file$$).isDirectory()?deleteFolderRecursive($curPath_file$$):fs.unlinkSync($curPath_file$$)}),fs.rmdirSync($_pathDir$$))},convertVideo=async($fileInput$$,$fileOutput$$)=>new Promise(($resolve$$,$reject$$)=>{ffmpeg($fileInput$$,{timeout:432E3}).addOptions("-profile:v baseline;-level 3.0;-start_number 0;-hls_time 10;-hls_list_size 0;-f hls".split(";")).output($fileOutput$$).on("error",
3
- function($err$$){$reject$$($err$$.message)}).on("end",()=>{$resolve$$($fileOutput$$)}).run()}),setWaterMark4Image=async($app_info$$,$file_name$$,$extension_root$$,$recache$$)=>{let $file_name_watermark$$=`${$file_name$$}.watermark.${$extension_root$$}`;if(!$app_info$$.logo_watermark)return $file_name$$;if(!$recache$$&&fs.existsSync($file_name_watermark$$))return $file_name_watermark$$;$extension_root$$=configs.paths.images;$extension_root$$||($extension_root$$=__dirname,$extension_root$$=path.dirname($extension_root$$),
4
- $extension_root$$=path.dirname($extension_root$$),$extension_root$$=path.join($extension_root$$,"images"));let $file_logo$$=path.join($extension_root$$,$app_info$$.logo_watermark.split("getfile/")[1]);return fs.existsSync($file_logo$$)?new Promise($resolve$$=>{gm($file_name$$).size(function($error$$,$value$$){if($error$$)return console.log($error$$),$resolve$$($file_name$$);$error$$=10*$value$$.width/100;watermark.embed({type:"image",source:$file_name$$,logo:$file_logo$$,destination:$file_name_watermark$$,
5
- position:{logoX:$value$$.width-$error$$-10,logoY:10,logoHeight:$error$$,logoWidth:$error$$}},function($status$$){1===$status$$.status?$resolve$$($file_name_watermark$$):(console.log("status set watermark",$status$$),$resolve$$($file_name$$))})})}):(console.log("file logo watermark is not exists",$file_logo$$),$file_name$$)},configResizeImage=async($_size_file_name_resize$$,$file_name$$,$extension$$,$recache$$)=>{let $size$$,$cache$$;if($_size_file_name_resize$$)switch($_size_file_name_resize$$.toString().toUpperCase()){case "64":case "X":$size$$=
6
- 64;$cache$$=!0;break;case "256":$size$$=256;$cache$$=!0;break;case "S":case "320":$size$$=320;$cache$$=!0;break;case "512":case "M":$size$$=512;$cache$$=!0;break;case "1024":case "L":$size$$=1024;$cache$$=!0;break;default:try{$size$$=Number($_size_file_name_resize$$)}catch($e$$){console.log("size param must be X or S or M or L or a number")}}return $size$$?($_size_file_name_resize$$=`${$file_name$$}.${$size$$}.${$extension$$}`,!$recache$$&&fs.existsSync($_size_file_name_resize$$)?{file_name_resize:$_size_file_name_resize$$,
7
- exist:!0}:{cache:$cache$$,size:$size$$,file_name_resize:$_size_file_name_resize$$}):{file_name_resize:$file_name$$}};
1
+ 'use strict';const model=global.getModel("file"),app=global.getModel("app"),path=require("path"),fs=require("fs"),controller=require("../../controllers/controller"),ffmpeg=require("fluent-ffmpeg"),ffmpegInstaller=require("@ffmpeg-installer/ffmpeg");ffmpeg.setFfmpegPath(ffmpegInstaller.path);
2
+ const gm=require("gm").subClass({imageMagick:!0}),watermark=require("dynamic-watermark"),deleteFolderRecursive=function($_pathDir$$){fs.existsSync($_pathDir$$)&&(fs.readdirSync($_pathDir$$).forEach($curPath_file$$=>{$curPath_file$$=path.join($_pathDir$$,$curPath_file$$);fs.lstatSync($curPath_file$$).isDirectory()?deleteFolderRecursive($curPath_file$$):fs.unlinkSync($curPath_file$$)}),fs.rmdirSync($_pathDir$$))},convertVideo=async($fileInput$$,$fileOutput$$)=>new Promise(($resolve$$,$reject$$)=>{ffmpeg($fileInput$$,
3
+ {timeout:432E3}).addOptions("-profile:v baseline;-level 3.0;-start_number 0;-hls_time 10;-hls_list_size 0;-f hls".split(";")).output($fileOutput$$).on("error",function($err$$){$reject$$($err$$.message)}).on("end",()=>{$resolve$$($fileOutput$$)}).run()}),setWaterMark4Image=async($app_info$$,$file_name$$,$extension_root$$,$recache$$)=>{let $file_name_watermark$$=`${$file_name$$}.watermark.${$extension_root$$}`;if(!$app_info$$.logo_watermark)return $file_name$$;if(!$recache$$&&fs.existsSync($file_name_watermark$$))return $file_name_watermark$$;
4
+ $extension_root$$=configs.paths.images;$extension_root$$||($extension_root$$=__dirname,$extension_root$$=path.dirname($extension_root$$),$extension_root$$=path.dirname($extension_root$$),$extension_root$$=path.join($extension_root$$,"images"));let $file_logo$$=path.join($extension_root$$,$app_info$$.logo_watermark.split("getfile/")[1]);return fs.existsSync($file_logo$$)?new Promise($resolve$$=>{gm($file_name$$).size(function($error$$,$value$$){if($error$$)return console.log($error$$),$resolve$$($file_name$$);
5
+ $error$$=10*$value$$.width/100;watermark.embed({type:"image",source:$file_name$$,logo:$file_logo$$,destination:$file_name_watermark$$,position:{logoX:$value$$.width-$error$$-10,logoY:10,logoHeight:$error$$,logoWidth:$error$$}},function($status$$){1===$status$$.status?$resolve$$($file_name_watermark$$):(console.log("status set watermark",$status$$),$resolve$$($file_name$$))})})}):(console.log("file logo watermark is not exists",$file_logo$$),$file_name$$)},configResizeImage=async($_size_file_name_resize$$,
6
+ $file_name$$,$extension$$,$recache$$)=>{let $size$$,$cache$$;if($_size_file_name_resize$$)switch($_size_file_name_resize$$.toString().toUpperCase()){case "64":case "X":$size$$=64;$cache$$=!0;break;case "256":$size$$=256;$cache$$=!0;break;case "S":case "320":$size$$=320;$cache$$=!0;break;case "512":case "M":$size$$=512;$cache$$=!0;break;case "1024":case "L":$size$$=1024;$cache$$=!0;break;case "1080":case "FULLHD":$size$$=1080;$cache$$=!0;break;case "1440":case "2K":$size$$=1440;$cache$$=!0;break;default:try{$size$$=
7
+ Number($_size_file_name_resize$$)}catch($e$$){console.log("size param must be X or S or M or L or a number")}}return $size$$?($_size_file_name_resize$$=`${$file_name$$}.${$size$$}.${$extension$$}`,!$recache$$&&fs.existsSync($_size_file_name_resize$$)?{file_name_resize:$_size_file_name_resize$$,exist:!0}:{cache:$cache$$,size:$size$$,file_name_resize:$_size_file_name_resize$$}):{file_name_resize:$file_name$$}};
8
8
  module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,"file",{sort:{ten_file:1},onView:($user$$,$items$$,$next$$)=>{$items$$.forEach($item$$=>{$item$$.file&&(delete $item$$.file.encoding,delete $item$$.file.mimetype,delete $item$$.file.path,$item$$.id_app&&configs.api_url&&($item$$.download_link=`${configs.api_url||""}/${$item$$.id_app}/file/download/${$item$$._id.toString()}`))});$next$$(null,$items$$)}});$contr_router$$.creating=function($user$$,$obj$$,$fn$$){$fn$$(null,
9
9
  $obj$$)};$contr_router$$.created=function($file_name$jscomp$2_user$$,$obj$$,$fn$$){if($obj$$.file){$file_name$jscomp$2_user$$=$obj$$.file.name;var $extension$jscomp$2_input_root$$=$obj$$.file.extension.toLowerCase();if(0<=["mp4","mov","avi"].indexOf($extension$jscomp$2_input_root$$)){$extension$jscomp$2_input_root$$=configs.paths.uploads;$extension$jscomp$2_input_root$$||($extension$jscomp$2_input_root$$=__dirname,$extension$jscomp$2_input_root$$=path.dirname($extension$jscomp$2_input_root$$),$extension$jscomp$2_input_root$$=
10
10
  path.dirname($extension$jscomp$2_input_root$$),$extension$jscomp$2_input_root$$=path.join($extension$jscomp$2_input_root$$,"uploads"));$extension$jscomp$2_input_root$$=path.join($extension$jscomp$2_input_root$$,$file_name$jscomp$2_user$$);let $output$$=configs.paths.videos;$output$$||($output$$=__dirname,$output$$=path.dirname($output$$),$output$$=path.dirname($output$$),$output$$=path.join($output$$,"videos"));fs.existsSync($output$$)||fs.mkdirSync($output$$);$output$$=path.join($output$$,$obj$$._id.toString());
@@ -12,10 +12,10 @@ fs.existsSync($output$$)||fs.mkdirSync($output$$);$output$$=path.join($output$$,
12
12
  configs.paths.uploads;$root$$||($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$=path.join($root$$,$extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$);fs.existsSync($extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$)&&fs.unlink($extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$,function($e$$){$e$$&&console.error($e$$)});$extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$=
13
13
  $rs$$.file.extension.toLowerCase();0<=["mp4","mov","avi"].indexOf($extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$)&&($extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$=configs.paths.videos,$extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$||($extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$=__dirname,$extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$=path.dirname($extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$),$extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$=
14
14
  path.dirname($extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$),$extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$=path.join($extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$,"videos")),$extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$=path.join($extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$,$rs$$._id.toString()),fs.existsSync($extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$)&&deleteFolderRecursive($extension$jscomp$3_file_name$jscomp$3_output$jscomp$1_user$$))}else console.log("file not exists",
15
- $rs$$);$next$$(null,$rs$$)};$contr_router$$.route(function($router$$){$router$$.route("/:id_app/file/download/:id").get(function($req$$,$res$$){let $id$$=$req$$.params.id;app.findOne({_id:$req$$.user.current_id_app}).lean().exec(function($e$$,$app_info$$){if($e$$||!$app_info$$)return $res$$.status(400).send("Kh\u00f4ng th\u1ec3 t\u1ea3i file n\u00e0y");model.findOne({_id:$id$$}).lean().exec(async($e$jscomp$4_file_name$$,$rs$$)=>{if($e$jscomp$4_file_name$$)return $res$$.status(400).send($e$jscomp$4_file_name$$);
15
+ $rs$$);$next$$(null,$rs$$)};$contr_router$$.route(function($router$$){$router$$.route("/:id_app/file/download/:id").get(function($req$$,$res$$){let $id$$=$req$$.params.id,$size$$=$req$$.query.size||$req$$.query.resize||"FULLHD";app.findOne({_id:$req$$.user.current_id_app}).lean().exec(function($e$$,$app_info$$){if($e$$||!$app_info$$)return $res$$.status(400).send("Kh\u00f4ng th\u1ec3 t\u1ea3i file n\u00e0y");model.findOne({_id:$id$$}).lean().exec(async($e$jscomp$4_file_name$$,$rs$$)=>{if($e$jscomp$4_file_name$$)return $res$$.status(400).send($e$jscomp$4_file_name$$);
16
16
  if($rs$$){$e$jscomp$4_file_name$$=$rs$$.file.name;let $extension$$=$rs$$.file.extension,$root$$=configs.paths.uploads;$root$$||($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$e$jscomp$4_file_name$$=path.join($root$$,$e$jscomp$4_file_name$$);if(fs.existsSync($e$jscomp$4_file_name$$))if(0<=["png","jpg","jpeg"].indexOf($extension$$)){let $_new_file$$=await setWaterMark4Image($app_info$$,$e$jscomp$4_file_name$$,$extension$$,$req$$.query.recache),
17
- $_resize_conf$$=await configResizeImage($req$$.query.size||$req$$.query.resize||"M",$_new_file$$,$extension$$,$req$$.query.recache);if($_resize_conf$$.exist)return gm($_resize_conf$$.file_name_resize).stream(function($err$$,$stdout$$){$stdout$$.pipe($res$$)});let $_gm$$=gm($_new_file$$);$_resize_conf$$.size&&($_gm$$=$_gm$$.resize($_resize_conf$$.size));$_resize_conf$$.cache?setImmediate(()=>{$_gm$$.write($_resize_conf$$.file_name_resize,function($error$$){if($error$$)console.error("save resize image:",
18
- $error$$.message),setImmediate(()=>{$res$$.sendFile($_new_file$$)});else return gm($_resize_conf$$.file_name_resize).stream(function($err$$,$stdout$$){$stdout$$.pipe($res$$)})})}):$_gm$$.stream(function($err$$,$stdout$$){$stdout$$.pipe($res$$)})}else $res$$.download($e$jscomp$4_file_name$$,$rs$$.file.originalname);else $res$$.status(400).send("File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i")}else $res$$.status(400).send("Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y")})})});$router$$.route("/:id_app/file/stream/:id/:file").get(function($req$$,
19
- $res$$){let $id$$=$req$$.params.id;app.findOne({_id:$req$$.user.current_id_app}).lean().exec(function($e$$,$app_info$$){if($e$$||!$app_info$$)return $res$$.status(400).send("Kh\u00f4ng th\u1ec3 stream file n\u00e0y");model.findOne({_id:$id$$}).lean().exec(async($e$jscomp$6_file_name$$,$output$jscomp$2_rs$$)=>{if($e$jscomp$6_file_name$$)return $res$$.status(400).send($e$jscomp$6_file_name$$);if($output$jscomp$2_rs$$){$e$jscomp$6_file_name$$=$output$jscomp$2_rs$$.file.name;var $file$jscomp$1_root$$=
20
- $req$$.params.file;".ts"==$file$jscomp$1_root$$.substr(-3)&&($e$jscomp$6_file_name$$=$file$jscomp$1_root$$);$file$jscomp$1_root$$=configs.paths.videos;$file$jscomp$1_root$$||($file$jscomp$1_root$$=__dirname,$file$jscomp$1_root$$=path.dirname($file$jscomp$1_root$$),$file$jscomp$1_root$$=path.dirname($file$jscomp$1_root$$),$file$jscomp$1_root$$=path.join($file$jscomp$1_root$$,"videos"));$output$jscomp$2_rs$$=path.join($file$jscomp$1_root$$,$output$jscomp$2_rs$$._id.toString(),$e$jscomp$6_file_name$$);
21
- if(fs.existsSync($output$jscomp$2_rs$$)){const $readStream$$=fs.createReadStream($output$jscomp$2_rs$$);$readStream$$.on("open",function(){$readStream$$.pipe($res$$)});$readStream$$.on("error",function($err$$){$res$$.end($err$$)})}else $res$$.status(400).send("File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i")}else $res$$.status(400).send("Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y")})})})})};
17
+ $_resize_conf$$=await configResizeImage($size$$,$_new_file$$,$extension$$,$req$$.query.recache);if($_resize_conf$$.exist)return gm($_resize_conf$$.file_name_resize).stream(function($err$$,$stdout$$){$stdout$$.pipe($res$$)});let $_gm$$=gm($_new_file$$);$_gm$$.size(function($error$jscomp$0$$,$orgin_file_size$$){$orgin_file_size$$&&$_resize_conf$$.size&&$_resize_conf$$.size<$orgin_file_size$$.width&&$_resize_conf$$.size<$orgin_file_size$$.height&&($_gm$$=$_gm$$.resize($_resize_conf$$.size));$_resize_conf$$.cache?
18
+ setImmediate(()=>{$_gm$$.write($_resize_conf$$.file_name_resize,function($error$$){if($error$$)console.error("save resize image:",$error$$.message),setImmediate(()=>{$res$$.sendFile($_new_file$$)});else return gm($_resize_conf$$.file_name_resize).stream(function($err$$,$stdout$$){$stdout$$.pipe($res$$)})})}):$_gm$$.stream(function($err$$,$stdout$$){$stdout$$.pipe($res$$)})})}else $res$$.download($e$jscomp$4_file_name$$,$rs$$.file.originalname);else $res$$.status(400).send("File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i")}else $res$$.status(400).send("Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y")})})});
19
+ $router$$.route("/:id_app/file/stream/:id/:file").get(function($req$$,$res$$){let $id$$=$req$$.params.id;app.findOne({_id:$req$$.user.current_id_app}).lean().exec(function($e$$,$app_info$$){if($e$$||!$app_info$$)return $res$$.status(400).send("Kh\u00f4ng th\u1ec3 stream file n\u00e0y");model.findOne({_id:$id$$}).lean().exec(async($e$jscomp$6_file_name$$,$output$jscomp$2_rs$$)=>{if($e$jscomp$6_file_name$$)return $res$$.status(400).send($e$jscomp$6_file_name$$);if($output$jscomp$2_rs$$){$e$jscomp$6_file_name$$=
20
+ $output$jscomp$2_rs$$.file.name;var $file$jscomp$1_root$$=$req$$.params.file;".ts"==$file$jscomp$1_root$$.substr(-3)&&($e$jscomp$6_file_name$$=$file$jscomp$1_root$$);$file$jscomp$1_root$$=configs.paths.videos;$file$jscomp$1_root$$||($file$jscomp$1_root$$=__dirname,$file$jscomp$1_root$$=path.dirname($file$jscomp$1_root$$),$file$jscomp$1_root$$=path.dirname($file$jscomp$1_root$$),$file$jscomp$1_root$$=path.join($file$jscomp$1_root$$,"videos"));$output$jscomp$2_rs$$=path.join($file$jscomp$1_root$$,$output$jscomp$2_rs$$._id.toString(),
21
+ $e$jscomp$6_file_name$$);if(fs.existsSync($output$jscomp$2_rs$$)){const $readStream$$=fs.createReadStream($output$jscomp$2_rs$$);$readStream$$.on("open",function(){$readStream$$.pipe($res$$)});$readStream$$.on("error",function($err$$){$res$$.end($err$$)})}else $res$$.status(400).send("File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i")}else $res$$.status(400).send("Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y")})})})})};
@@ -1,6 +1,6 @@
1
1
  'use strict';const model=global.getModel("participant"),User=global.getModel("user"),usergroup=global.getModel("usergroup"),controller=require("../../controllers/controller"),async=require("async"),permission=require("../../libs/permission");
2
2
  module.exports=function($router$$){(new controller($router$$,model,"participant",{sort:{date_created:1},unique:["id_app","email"],onFinding:async($user$$,$condition$$,$next$$)=>{if($condition$$.groups&&!$condition$$.group_id)try{let $groups$$=(await usergroup.getList($user$$.current_id_app,$condition$$.groups)).map($g$$=>$g$$._id);delete $condition$$.groups;$groups$$=$groups$$.concat([null,"",void 0]);$condition$$.group_id={$in:$groups$$};$next$$(null,$condition$$)}catch($e$$){$next$$($e$$.message)}else $next$$(null,
3
- $condition$$)},onFound:($user$$,$condition$$,$items$$,$next$$)=>{console.log("found participant",JSON.stringify($condition$$));$next$$(null,$items$$)},onView:($user$$,$items$$,$next$$)=>{async.parallel({u:$callback$$=>{$items$$.joinModel2(null,User,[{where:{email:"email"},fields:[{picture:"picture"}]}],function(){$callback$$()})},group:$callback$$=>{$items$$.joinModel2($user$$.current_id_app,usergroup,[{where:{group_id:"_id"},fields:["group_name","is_customer_group","is_employee_group"]}],function(){$callback$$()})}},
4
- ()=>{$items$$.forEach($item$$=>{$item$$.real_name&&($item$$.name=$item$$.real_name)});$next$$(null,$items$$)})},onUpdating:async($user$$,$data$$,$obj$$,$next$$)=>{$data$$.admin&&!$obj$$.admin&&permission.isAdmin($user$$.current_id_app,$user$$.email,function($e$$,$admin$$){if($e$$)return $next$$($e$$);if(!$admin$$)return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1eb7t ng\u01b0\u1eddi n\u00e0y l\u00e0 ng\u01b0\u1eddi qu\u1ea3n tr\u1ecb")});$next$$(null,$data$$,$obj$$)},onCreated:($user$$,
5
- $obj$$,$next$$)=>{$obj$$.auto_create_user&&$obj$$.password?User.findOne({email:$obj$$.email},($e$jscomp$0$$,$rs$$)=>{if($e$jscomp$0$$||$rs$$)return $next$$(null,$obj$$),console.log($e$jscomp$0$$||`User ${$obj$$.email} \u0111\u00e3 t\u1ed3n t\u1ea1i`);$e$jscomp$0$$=new User;$e$jscomp$0$$.email=$obj$$.email;$e$jscomp$0$$.name=$obj$$.name;$e$jscomp$0$$.local={};$e$jscomp$0$$.local.email=$obj$$.email;$e$jscomp$0$$.local.name=$obj$$.name;$e$jscomp$0$$.local.password=$e$jscomp$0$$.generateHash($obj$$.password);
6
- $e$jscomp$0$$.save($e$$=>{if($e$$)return model.remove({_id:$obj$$._id}),$next$$(`Kh\u00f4ng th\u1ec3 t\u1ea1o ng\u01b0\u1eddi d\u00f9ng ${$obj$$.email}, L\u1ed7i: ${$e$$.message}`);$next$$(null,$obj$$)})}):$next$$(null,$obj$$)}})).route()};
3
+ $condition$$)},onFound:($user$$,$condition$$,$items$$,$next$$)=>{$next$$(null,$items$$)},onView:($user$$,$items$$,$next$$)=>{async.parallel({u:$callback$$=>{$items$$.joinModel2(null,User,[{where:{email:"email"},fields:[{picture:"picture"}]}],function(){$callback$$()})},group:$callback$$=>{$items$$.joinModel2($user$$.current_id_app,usergroup,[{where:{group_id:"_id"},fields:["group_name","is_customer_group","is_employee_group"]}],function(){$callback$$()})}},()=>{$items$$.forEach($item$$=>{$item$$.real_name&&
4
+ ($item$$.name=$item$$.real_name)});$next$$(null,$items$$)})},onUpdating:async($user$$,$data$$,$obj$$,$next$$)=>{$data$$.admin&&!$obj$$.admin?permission.isAdmin($user$$.current_id_app,$user$$.email,function($e$$,$admin$$){if($e$$)return $next$$($e$$);if(!$admin$$)return $next$$("B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u1eb7t ng\u01b0\u1eddi n\u00e0y l\u00e0 ng\u01b0\u1eddi qu\u1ea3n tr\u1ecb");$next$$(null,$data$$,$obj$$)}):$next$$(null,$data$$,$obj$$)},onCreated:($user$$,$obj$$,$next$$)=>{$obj$$.auto_create_user&&
5
+ $obj$$.password?User.findOne({email:$obj$$.email},($e$jscomp$0$$,$rs$$)=>{if($e$jscomp$0$$||$rs$$)return $next$$(null,$obj$$),console.log($e$jscomp$0$$||`User ${$obj$$.email} \u0111\u00e3 t\u1ed3n t\u1ea1i`);$e$jscomp$0$$=new User;$e$jscomp$0$$.email=$obj$$.email;$e$jscomp$0$$.name=$obj$$.name;$e$jscomp$0$$.local={};$e$jscomp$0$$.local.email=$obj$$.email;$e$jscomp$0$$.local.name=$obj$$.name;$e$jscomp$0$$.local.password=$e$jscomp$0$$.generateHash($obj$$.password);$e$jscomp$0$$.save($e$$=>{if($e$$)return model.remove({_id:$obj$$._id}),
6
+ $next$$(`Kh\u00f4ng th\u1ec3 t\u1ea1o ng\u01b0\u1eddi d\u00f9ng ${$obj$$.email}, L\u1ed7i: ${$e$$.message}`);$next$$(null,$obj$$)})}):$next$$(null,$obj$$)}})).route()};
@@ -0,0 +1,10 @@
1
+ 'use strict';const path=require("path"),fs=require("fs"),ffmpeg=require("fluent-ffmpeg"),ffmpegInstaller=require("@ffmpeg-installer/ffmpeg");ffmpeg.setFfmpegPath(ffmpegInstaller.path);
2
+ const gm=require("gm").subClass({imageMagick:!0}),watermark=require("dynamic-watermark"),setWaterMark4Image=async($app_info$$,$file_name$$,$extension_root$$,$recache$$)=>{let $file_name_watermark$$=`${$file_name$$}.watermark.${$extension_root$$}`;if(!$app_info$$.logo_watermark)return $file_name$$;if(!$recache$$&&fs.existsSync($file_name_watermark$$))return $file_name_watermark$$;$extension_root$$=configs.paths.images;$extension_root$$||($extension_root$$=__dirname,$extension_root$$=path.dirname($extension_root$$),
3
+ $extension_root$$=path.dirname($extension_root$$),$extension_root$$=path.join($extension_root$$,"images"));let $file_logo$$=path.join($extension_root$$,$app_info$$.logo_watermark.split("getfile/")[1]);return fs.existsSync($file_logo$$)?new Promise($resolve$$=>{gm($file_name$$).size(function($error$$,$value$$){if($error$$)return console.log($error$$),$resolve$$($file_name$$);$error$$=10*$value$$.width/100;watermark.embed({type:"image",source:$file_name$$,logo:$file_logo$$,destination:$file_name_watermark$$,
4
+ position:{logoX:$value$$.width-$error$$-10,logoY:10,logoHeight:$error$$,logoWidth:$error$$}},function($status$$){1===$status$$.status?$resolve$$($file_name_watermark$$):(console.log("status set watermark",$status$$),$resolve$$($file_name$$))})})}):(console.log("file logo watermark is not exists",$file_logo$$),$file_name$$)},configResizeImage=async($_size_file_name_resize$$,$file_name$$,$extension$$,$recache$$)=>{let $size$$,$cache$$;if($_size_file_name_resize$$)switch($_size_file_name_resize$$.toString().toUpperCase()){case "64":case "X":$size$$=
5
+ 64;$cache$$=!0;break;case "256":$size$$=256;$cache$$=!0;break;case "S":case "320":$size$$=320;$cache$$=!0;break;case "512":case "M":$size$$=512;$cache$$=!0;break;case "1024":case "L":$size$$=1024;$cache$$=!0;break;case "1080":case "FULLHD":$size$$=1080;$cache$$=!0;break;case "1440":case "2K":$size$$=1440;$cache$$=!0;break;default:try{$size$$=Number($_size_file_name_resize$$)}catch($e$$){console.log("size param must be X or S or M or L or a number")}}return $size$$?($_size_file_name_resize$$=`${$file_name$$}.${$size$$}.${$extension$$}`,
6
+ !$recache$$&&fs.existsSync($_size_file_name_resize$$)?{file_name_resize:$_size_file_name_resize$$,exist:!0}:{cache:$cache$$,size:$size$$,file_name_resize:$_size_file_name_resize$$}):{file_name_resize:$file_name$$}};
7
+ module.exports=function($router$$){$router$$.route("/file/shared/:id").get(($req$$,$res$$)=>{let $id$$=$req$$.params.id,$size$$=$req$$.query.size||$req$$.query.resize||"FULLHD";if(!global.mongoose.Types.ObjectId.isValid($id$$))return $res$$.status(400).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y"});global.getModel("file").findOne({_id:$id$$}).lean().exec(async($app_info$jscomp$1_e$$,$rs$$)=>{if($app_info$jscomp$1_e$$)return $res$$.status(400).send($app_info$jscomp$1_e$$);if($rs$$){if(!$rs$$.shared)return $res$$.status(403).send({error:"Kh\u00f4ng th\u1ec3 truy c\u1eadp file n\u00e0y"});
8
+ ($app_info$jscomp$1_e$$=await global.getModel("app").findOne({_id:$rs$$.id_app}).lean())||($app_info$jscomp$1_e$$={});let $file_name$$=$rs$$.file.name,$extension$$=$rs$$.file.extension,$root$$=configs.paths.uploads;$root$$||($root$$=__dirname,$root$$=path.dirname($root$$),$root$$=path.dirname($root$$),$root$$=path.join($root$$,"uploads"));$file_name$$=path.join($root$$,$file_name$$);if(fs.existsSync($file_name$$))if(0<=["png","jpg","jpeg"].indexOf($extension$$)){let $_new_file$$=await setWaterMark4Image($app_info$jscomp$1_e$$,
9
+ $file_name$$,$extension$$,$req$$.query.recache),$_resize_conf$$=await configResizeImage($size$$,$_new_file$$,$extension$$,$req$$.query.recache);if($_resize_conf$$.exist)return gm($_resize_conf$$.file_name_resize).stream(function($err$$,$stdout$$){$stdout$$.pipe($res$$)});let $_gm$$=gm($_new_file$$);$_gm$$.size(function($error$jscomp$0$$,$orgin_file_size$$){$orgin_file_size$$&&$_resize_conf$$.size&&$_resize_conf$$.size<$orgin_file_size$$.width&&$_resize_conf$$.size<$orgin_file_size$$.height&&($_gm$$=
10
+ $_gm$$.resize($_resize_conf$$.size));$_resize_conf$$.cache?setImmediate(()=>{$_gm$$.write($_resize_conf$$.file_name_resize,function($error$$){if($error$$)console.error("save resize image:",$error$$.message),setImmediate(()=>{$res$$.sendFile($_new_file$$)});else return gm($_resize_conf$$.file_name_resize).stream(function($err$$,$stdout$$){$stdout$$.pipe($res$$)})})}):$_gm$$.stream(function($err$$,$stdout$$){$stdout$$.pipe($res$$)})})}else $res$$.download($file_name$$,$rs$$.file.originalname);else $res$$.status(400).send({error:"File n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i"})}else $res$$.status(400).send({error:"Kh\u00f4ng t\u00ecm th\u1ea5y file n\u00e0y"})})})};
@@ -1,10 +1,10 @@
1
1
  'use strict';const Account=global.getModel("account"),Customer=global.getModel("customer"),contract=global.getModel("contract"),dmphi=global.getModel("dmphi"),dmdt=global.getModel("dmdt"),dmnv=global.getModel("dmnv"),dmvt=global.getModel("dmvt"),group=global.getModel("group"),Socai=global.getModel("socai"),Lenhsx=global.getModel("lenhsx"),underscore=require("underscore"),async=require("async"),controller=require("../../controllers/controllerRPT"),moment=require("moment");
2
- module.exports=function($router$$){new controller($router$$,"bkct",function($req$$,$callback$jscomp$0$$){const $query$$={};$query$$.id_app=$req$$.query.id_app;if($req$$.query.q)$no_q$$=JSON.parse($req$$.query.q),underscore.extend($query$$,$no_q$$);else{$query$$.$and=[];$req$$.query.tu_ngay&&$query$$.$and.push({ngay_ct:{$gte:$req$$.query.tu_ngay}});$req$$.query.den_ngay&&$query$$.$and.push({ngay_ct:{$lte:$req$$.query.den_ngay}});$req$$.query.dien_giai&&($query$$.dien_giai={$regex:$req$$.query.dien_giai,
2
+ module.exports=function($router$$){new controller($router$$,"bkct",function($req$$,$callback$jscomp$0$$){const $query$$={};$query$$.id_app=$req$$.query.id_app;if($req$$.query.q){var $no_q$$=JSON.parse($req$$.query.q);underscore.extend($query$$,$no_q$$)}else{$query$$.$and=[];$req$$.query.tu_ngay&&$query$$.$and.push({ngay_ct:{$gte:$req$$.query.tu_ngay}});$req$$.query.den_ngay&&$query$$.$and.push({ngay_ct:{$lte:$req$$.query.den_ngay}});$req$$.query.dien_giai&&($query$$.dien_giai={$regex:$req$$.query.dien_giai,
3
3
  $options:"i"});$req$$.query.so_ct&&($query$$.so_ct={$regex:$req$$.query.so_ct,$options:"i"});$req$$.query.ma_phi&&($query$$.ma_phi=$req$$.query.ma_phi);$req$$.query.ma_kh&&($query$$.$and.push({$or:[{ma_kh_no:$req$$.query.ma_kh}]}),$query$$.$and.push({$or:[{ma_kh_co:$req$$.query.ma_kh}]}));$req$$.query.ma_hd&&($query$$.ma_hd=$req$$.query.ma_hd);$req$$.query.ma_dt&&($query$$.ma_dt=$req$$.query.ma_dt);$req$$.query.ma_nv&&($query$$.ma_nv=$req$$.query.ma_nv);$req$$.query.ma_dvcs&&mongoose.Types.ObjectId.isValid($req$$.query.ma_dvcs)&&
4
- ($query$$.ma_dvcs=$req$$.query.ma_dvcs);$req$$.query.id_lenhsx&&mongoose.Types.ObjectId.isValid($req$$.query.id_lenhsx)&&($query$$.id_lenhsx=$req$$.query.id_lenhsx);$req$$.query.ma_kho&&($query$$.ma_kho=$req$$.query.ma_kho);$req$$.query.ma_kho&&($query$$.ma_kho=$req$$.query.ma_kho);if($req$$.query.tk){var $no_q$$={tk_no:{$regex:"^"+$req$$.query.tk,$options:"i"}},$co$$={tk_co:{$regex:"^"+$req$$.query.tk,$options:"i"}};$req$$.query.tk_du&&($no_q$$.tk_co={$regex:"^"+$req$$.query.tk_du,$options:"i"},
4
+ ($query$$.ma_dvcs=$req$$.query.ma_dvcs);$req$$.query.id_lenhsx&&mongoose.Types.ObjectId.isValid($req$$.query.id_lenhsx)&&($query$$.id_lenhsx=$req$$.query.id_lenhsx);$req$$.query.ma_kho&&($query$$.ma_kho=$req$$.query.ma_kho);$req$$.query.ma_kho&&($query$$.ma_kho=$req$$.query.ma_kho);if($req$$.query.tk){$no_q$$={tk_no:{$regex:"^"+$req$$.query.tk,$options:"i"}};let $co$$={tk_co:{$regex:"^"+$req$$.query.tk,$options:"i"}};$req$$.query.tk_du&&($no_q$$.tk_co={$regex:"^"+$req$$.query.tk_du,$options:"i"},
5
5
  $co$$.tk_no={$regex:"^"+$req$$.query.tk_du,$options:"i"});$query$$.$and||($query$$.$and=[]);$query$$.$and.push({$or:[$no_q$$,$co$$]})}0===$query$$.$and.length&&delete $query$$.$and}Socai.find($query$$).sort({ngay_ct:1,so_ct:1}).lean().exec(function($error$jscomp$0$$,$rp$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);$rp$$.groupBy("id_app ma_dvcs id_ct ma_ct ma_gd ngay_ct so_ct ngay_hd so_hd tk_no tk_co ma_kh ma_nt ty_gia dien_giai ma_bp id_lenhsx ma_phi ma_hd ma_dt ma_nv ma_sp ma_vt ma_cp".split(" "),
6
- ["tien","tien_nt"],($e$$,$rp$$)=>{$rp$$.forEach(function($r$$){$r$$.systotal=0});async.parallel([function($callback$$){$rp$$.joinModel($req$$.query.id_app,Account,[{akey:"tk_no",bkey:"tk",fields:[{name:"ten_tk_no",value:"ten_tk"}]},{akey:"tk_co",bkey:"tk",fields:[{name:"ten_tk_co",value:"ten_tk"}]}],function(){$callback$$()})},function($callback$$){$rp$$.joinModel($req$$.query.id_app,Customer,[{akey:"ma_kh_no",bkey:"ma_kh",fields:[{name:"ten_kh_no",value:"ten_kh"},{name:"nh_kh_no",value:"nh_kh"}]},
7
- {akey:"ma_kh_co",bkey:"ma_kh",fields:[{name:"ten_kh_co",value:"ten_kh"},{name:"nh_kh_co",value:"nh_kh"}]}],function(){$callback$$()})},function($callback$$){$rp$$.joinModel($req$$.query.id_app,contract,[{akey:"ma_hd",bkey:"so_hd",fields:[{name:"ten_hd",value:"ten_hd"}]}],function(){$callback$$()})},function($callback$$){$rp$$.joinModel2($req$$.query.id_app,dmdt,[{where:"ma_dt",fields:["ten_dt"]}],function(){$callback$$()})},function($callback$$){$rp$$.joinModel2($req$$.query.id_app,dmphi,[{where:"ma_phi",
8
- fields:["ten_phi"]}],function(){$callback$$()})},function($callback$$){$rp$$.joinModel2($req$$.query.id_app,dmnv,[{where:"ma_nv",fields:["ten_nv"]}],function(){$callback$$()})},function($callback$$){$rp$$.joinModel2($req$$.query.id_app,dmvt,[{where:"ma_vt",fields:["ten_vt"]}],function(){$callback$$()})},function($callback$$){$rp$$.joinModel2($req$$.query.id_app,dmvt,[{where:{ma_sp:"ma_vt"},fields:[{ten_sp:"ten_vt"}]}],function(){$callback$$()})},function($callback$$){$rp$$.joinModel2($req$$.query.id_app,
9
- Lenhsx,[{where:{id_lenhsx:"_id"},fields:[{so_lenhsx:"so_ct"}]}],function(){$callback$$()})}],function($error$$){$rp$$.joinModel($req$$.query.id_app,group,[{akey:"nh_kh_no",bkey:"_id",fields:[{name:"ten_nh_kh_no",value:"group_name"}]},{akey:"nh_kh_co",bkey:"_id",fields:[{name:"ten_nh_kh_co",value:"group_name"}]}],function(){$rp$$=underscore.sortBy($rp$$,function($r$$){return($r$$.ngay_ct?moment($r$$.ngay_ct).format("YYYYMMDD"):"0")+$r$$.ma_ct+$r$$.so_ct});const $rt$$={dien_giai:"T\u1ed5ng c\u1ed9ng",
10
- tien:$rp$$.csum("tien"),tien_nt:$rp$$.csum("tien_nt"),systotal:1,bold:!0};$rp$$.push($rt$$);$callback$jscomp$0$$($error$$,$rp$$)})})})})})};
6
+ ["tien","tien_nt"],($e$$,$rp$$)=>{$rp$$.forEach(function($r$$){$r$$.systotal=0});async.parallel([function($callback$$){$rp$$.joinModel2($req$$.query.id_app,Account,[{where:{tk_no:"tk"},fields:[{name:"ten_tk_no",value:"ten_tk"}]},{where:{tk_co:"tk"},fields:[{name:"ten_tk_co",value:"ten_tk"}]}],function(){$callback$$()})},function($callback$$){$rp$$.filter($r$$=>$r$$.ma_kh_no).joinModel2($req$$.query.id_app,Customer,[{where:{ma_kh_no:"ma_kh"},fields:[{name:"ten_kh_no",value:"ten_kh"},{name:"nh_kh_no",
7
+ value:"nh_kh"}]}],function(){$callback$$()})},function($callback$$){$rp$$.filter($r$$=>$r$$.ma_kh_co).joinModel2($req$$.query.id_app,Customer,[{where:{ma_kh_co:"ma_kh"},fields:[{name:"ten_kh_co",value:"ten_kh"},{name:"nh_kh_co",value:"nh_kh"}]}],function(){$callback$$()})},function($callback$$){$rp$$.filter($r$$=>$r$$.ma_hd).joinModel2($req$$.query.id_app,contract,[{where:{ma_hd:"so_hd"},fields:[{name:"ten_hd",value:"ten_hd"}]}],function(){$callback$$()})},function($callback$$){$rp$$.filter($r$$=>
8
+ $r$$.ma_dt).joinModel2($req$$.query.id_app,dmdt,[{where:"ma_dt",fields:["ten_dt"]}],function(){$callback$$()})},function($callback$$){$rp$$.filter($r$$=>$r$$.ma_phi).joinModel2($req$$.query.id_app,dmphi,[{where:"ma_phi",fields:["ten_phi"]}],function(){$callback$$()})},function($callback$$){$rp$$.filter($r$$=>$r$$.ma_nv).joinModel2($req$$.query.id_app,dmnv,[{where:"ma_nv",fields:["ten_nv"]}],function(){$callback$$()})},function($callback$$){$rp$$.filter($r$$=>$r$$.ma_vt).joinModel2($req$$.query.id_app,
9
+ dmvt,[{where:"ma_vt",fields:["ten_vt"]}],function(){$callback$$()})},function($callback$$){$rp$$.filter($r$$=>$r$$.ma_sp).joinModel2($req$$.query.id_app,dmvt,[{where:{ma_sp:"ma_vt"},fields:[{ten_sp:"ten_vt"}]}],function(){$callback$$()})},function($callback$$){$rp$$.filter($r$$=>$r$$.id_lenhsx).joinModel2($req$$.query.id_app,Lenhsx,[{where:{id_lenhsx:"_id"},fields:[{so_lenhsx:"so_ct"}]}],function(){$callback$$()})}],function($error$$){$rp$$.filter($r$$=>$r$$.nh_kh_no||$r$$.nh_kh_co).joinModel2($req$$.query.id_app,
10
+ group,[{where:{nh_kh_no:"_id"},fields:[{name:"ten_nh_kh_no",value:"group_name"}]},{where:{nh_kh_co:"_id"},fields:[{name:"ten_nh_kh_co",value:"group_name"}]}],function(){$rp$$=underscore.sortBy($rp$$,function($r$$){return($r$$.ngay_ct?moment($r$$.ngay_ct).format("YYYYMMDD"):"0")+$r$$.ma_ct+$r$$.so_ct});const $rt$$={dien_giai:"T\u1ed5ng c\u1ed9ng",tien:$rp$$.csum("tien"),tien_nt:$rp$$.csum("tien_nt"),systotal:1,bold:!0};$rp$$.push($rt$$);$callback$jscomp$0$$($error$$,$rp$$)})})})})})};
@@ -1,4 +1,8 @@
1
- 'use strict';const ckvt=require("../../libs/ckvt"),Dmvt=global.getModel("dmvt"),Dmkho=global.getModel("dmkho"),async=require("async"),controller=require("../../controllers/controllerRPT");
2
- module.exports=function($router$$){new controller($router$$,"ckvt",function($req$$,$callback$jscomp$0$$){const $condition$$=$req$$.query;ckvt($condition$$,function($error$jscomp$0$$,$report$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);$report$$=$report$$.filter($r$$=>$r$$.ton00||$r$$.du00);async.parallel([function($callback$$){$report$$.joinModel2($condition$$.id_app,Dmvt,[{where:{ma_vt:"ma_vt"},fields:["ten_vt","ma_dvt","tk_vt"]}],function($results$$){$callback$$(null,$results$$)})},
3
- function($callback$$){$report$$.joinModel2($condition$$.id_app,Dmkho,[{where:{ma_kho:"ma_kho"},fields:["ten_kho"]}],function($results$$){$callback$$(null,$results$$)})}],async function($error$$){if($error$$)return $callback$jscomp$0$$($error$$);(await $report$$.filter($r$$=>$r$$.ma_vt).asyncGroupBy(["ma_vt"],["ton00"])).forEach(async $sk$$=>{let $vt$$=await global.getModel("dmvt").findOne({id_app:$condition$$.id_app,ma_vt:$sk$$.ma_vt});$vt$$&&($vt$$.ton_kho_hien_tai=$sk$$.ton00,$vt$$.save($e$$=>{$e$$&&
4
- console.error($e$$)}))});$callback$jscomp$0$$(null,$report$$)})})})};
1
+ 'use strict';const ckvt=require("../../libs/ckvt"),getGiaBan=require("../../libs/getGiaban"),Dmvt=global.getModel("dmvt"),Dmkho=global.getModel("dmkho"),async=require("async"),controller=require("../../controllers/controllerRPT"),moment=require("moment");
2
+ module.exports=function($router$$){new controller($router$$,"ckvt",function($req$$,$callback$jscomp$1$$){const $condition$$=$req$$.query;ckvt($condition$$,function($error$jscomp$0$$,$report$$){if($error$jscomp$0$$)return $callback$jscomp$1$$($error$jscomp$0$$);$report$$=$report$$.filter($r$$=>$r$$.ton00||$r$$.du00);const $id_app$$=$condition$$.id_app;async.parallel({vt:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt).joinModel2($id_app$$,Dmvt,{where:"ma_vt",fields:"ten_vt tg_tk tk_vt ma_ncc ma_dvt ma_nvt ma_vt2".split(" "),
3
+ setFields:($a$$,$b$$)=>{if($b$$.picture){let $p$$=$b$$.picture.split(".");$a$$.picture_thumb=$b$$.picture+".thumb."+$p$$[$p$$.length-1]}else $a$$.picture="/getfile/others/noimage.png",$a$$.picture_thumb="/getfile/others/noimage.png"}},()=>{$callback$$()})},kho:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_kho).joinModel2($id_app$$,Dmkho,{where:"ma_kho",fields:["ten_kho","la_kho_online"]},()=>{$callback$$()})},tt1:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt1).joinModel2($id_app$$,global.getModel("dmtt"),
4
+ {where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt1,loai_tt:"1"}),fields:{barcode1:"ma_tt2"}},()=>{$callback$$()})},tt2:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt2).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt2,loai_tt:"2"}),fields:{barcode2:"ma_tt2"}},()=>{$callback$$()})},tt3:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt3).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,
5
+ ma_tt:$item$$.ma_tt3,loai_tt:"3"}),fields:{barcode3:"ma_tt2"}},()=>{$callback$$()})},gb:function($callback$jscomp$0$$){async.map($report$$,($item$$,$callback$$)=>{const $condition_giaban$$={ma_vt:$item$$.ma_vt,id_app:$condition$$.id_app};$item$$.ma_kho&&($condition_giaban$$.ma_kho=$item$$.ma_kho);$item$$.ma_tt1&&($condition_giaban$$.ma_tt1=$item$$.ma_tt1);$item$$.ma_tt2&&($condition_giaban$$.ma_tt2=$item$$.ma_tt2);$item$$.ma_tt3&&($condition_giaban$$.ma_tt3=$item$$.ma_tt3);getGiaBan($condition_giaban$$,
6
+ ($e$$,$gia$$)=>{if($e$$)return console.error("error when get gia_ban on dmvt",$e$$,$condition_giaban$$),$callback$$();$gia$$?($item$$.gia_ban_le=$gia$$.gia_ban_le||0,$item$$.doanh_thu_du_tinh=($item$$.gia_ban_le||0)*($item$$.ton00||0)):($item$$.gia_ban_le=0,$item$$.doanh_thu_du_tinh=0);$callback$$(null)})},()=>{$callback$jscomp$0$$()})}},async function($error$$){if($error$$)return $callback$jscomp$1$$($error$$);$error$$=$condition$$.ngay;!$error$$&&$condition$$.den_ngay&&($error$$=$condition$$.den_ngay);
7
+ $error$$=moment($error$$).endOf("date").toDate();!($error$$.getTime()>=moment().endOf("date").toDate())||$condition$$.ma_kho||$condition$$.ma_lo||$condition$$.han_sd||$condition$$.ma_tt1||$condition$$.ma_tt2||$condition$$.ma_tt3||$condition$$.id_ct||$condition$$.ma_dvcs||(await $report$$.filter($r$$=>$r$$.ma_vt&&$r$$.la_kho_online).asyncGroupBy(["ma_vt"],["ton00"])).forEach(async $sk$$=>{let $vt$$=await global.getModel("dmvt").findOne({id_app:$condition$$.id_app,ma_vt:$sk$$.ma_vt});$vt$$&&($vt$$.ton_kho_online_hien_tai=
8
+ $sk$$.ton00,$vt$$.save($e$$=>{$e$$&&console.error($e$$)}))});$report$$.forEach($r$$=>{$r$$.barcode=$r$$.barcode1||$r$$.barcode2||$r$$.barcode3||$r$$.ma_vt2});$callback$jscomp$1$$(null,$report$$)})})})};
@@ -1,7 +1,7 @@
1
1
  'use strict';const sokho=global.getModel("sokho"),sokhokhongton=global.getModel("sokhokhongton"),dmvt=global.getModel("dmvt"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT");
2
- module.exports=function($router$$){new controller($router$$,"dtbanletheovt",async function($data_khongton_req$$,$callback$$){let $condition$$=$data_khongton_req$$.query;if(!$condition$$.tu_ngay||!$condition$$.den_ngay)return $callback$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1:tu_ngay,den_ngay");var $query_rs$$={id_app:$condition$$.id_app,ma_ct:{$in:["PBL","SO1","HD7"]}};$query_rs$$.ngay_ct={$gte:$condition$$.tu_ngay,$lte:$condition$$.den_ngay};$condition$$.ma_dvcs&&($query_rs$$.ma_dvcs=
3
- $condition$$.ma_dvcs);$condition$$.ma_vt&&($query_rs$$.ma_vt=$condition$$.ma_vt);$condition$$.ma_kho&&($query_rs$$.ma_kho=$condition$$.ma_kho);$condition$$.ma_ct&&($query_rs$$.ma_ct=$condition$$.ma_ct);$data_khongton_req$$=await sokhokhongton.find($query_rs$$).lean();$query_rs$$=await sokho.find($query_rs$$).lean();$query_rs$$=$query_rs$$.concat($data_khongton_req$$);$query_rs$$.forEach($r$$=>{1==$r$$.nxt?($r$$.tien_tl=$r$$.tien,$r$$.tien_ck_tl=$r$$.tien_ck,$r$$.tien_hang=0,$r$$.tien_hang_nt=0,$r$$.tien_ck=
4
- 0,$r$$.tien_ck_nt=0,$r$$.tien=0,$r$$.tien_nt=0):($r$$.tien_tl=0,$r$$.tien_ck_tl=0);"HD7"===$r$$.ma_ct&&2==$r$$.nxt&&($r$$.tien_hang=$r$$.tien,$r$$.tien_hang_nt=$r$$.tien_nt,$r$$.tien=$r$$.tien_hang-$r$$.tien_ck,$r$$.tien_nt=$r$$.tien_hang_nt-$r$$.tien_ck_nt)});$query_rs$$.groupBy("ma_vt",[{name:"sl_xuat",value:"sl_xuat"},{name:"tien_hang",value:"tien_hang"},{name:"tien_ck",value:"tien_ck"},{name:"tien",value:"tien"},{name:"tien_xuat",value:"tien_xuat"},{name:"tien_nhap",value:"tien_nhap"},{name:"sl_nhap",
5
- value:"sl_nhap"},{name:"tien_tl",value:"tien_tl"},{name:"tien_ck_tl",value:"tien_ck_tl"}],function($error$$,$rs$$){if($error$$)return console.log($error$$),$callback$$($error$$);var $report$$=underscore.sortBy($rs$$,function($r$$){return $r$$.ma_vt}),$i$$=1;$report$$.forEach(function($r$$){$r$$.stt=$i$$;$r$$.bold=!1;$r$$.doanh_thu=$r$$.tien;$r$$.doanh_thu_thuan=$r$$.doanh_thu-$r$$.tien_tl;$r$$.lai=$r$$.tien_hang-$r$$.tien_tl-($r$$.tien_ck-$r$$.tien_ck_tl)-($r$$.tien_xuat-$r$$.tien_nhap);$i$$++});
6
- $report$$.joinModel($condition$$.id_app,dmvt,[{akey:"ma_vt",bkey:"ma_vt",fields:[{name:"ten_vt",value:"ten_vt"},{name:"ma_dvt",value:"ma_dvt"}]}],function(){$report$$.push({ten_vt:"T\u1ed5ng c\u1ed9ng",sl_xuat:$report$$.csum("sl_xuat"),tien_xuat:$report$$.csum("tien_xuat"),tien_hang:$report$$.csum("tien_hang"),tien_ck:$report$$.csum("tien_ck"),tien:$report$$.csum("tien"),sl_nhap:$report$$.csum("sl_nhap"),tien_nhap:$report$$.csum("tien_nhap"),tien_tl:$report$$.csum("tien_tl"),tien_ck_tl:$report$$.csum("tien_ck_tl"),
7
- doanh_thu:$report$$.csum("doanh_thu"),doanh_thu_thuan:$report$$.csum("doanh_thu_thuan"),lai:$report$$.csum("lai"),bold:!0});$callback$$(null,$report$$)})})})};
2
+ module.exports=function($router$$){new controller($router$$,"dtbanletheovt",async function($query_req_rs$$,$callback$$){let $condition$$=$query_req_rs$$.query;if(!$condition$$.tu_ngay||!$condition$$.den_ngay)return $callback$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1:tu_ngay,den_ngay");$query_req_rs$$={id_app:$condition$$.id_app,ma_ct:{$in:["PBL","SO1","HD7"]}};$query_req_rs$$.ngay_ct={$gte:$condition$$.tu_ngay,$lte:$condition$$.den_ngay};$condition$$.ma_dvcs&&($query_req_rs$$.ma_dvcs=
3
+ $condition$$.ma_dvcs);$condition$$.ma_vt?$query_req_rs$$.ma_vt=$condition$$.ma_vt:$condition$$.ma_nvt&&($data_khongton_vts$$=await dmvt.find({id_app:$condition$$.id_app,ma_nvt:$condition$$.ma_nvt},{ma_vt:1}).lean().exec(),$query_req_rs$$.ma_vt={$in:$data_khongton_vts$$.map($v$$=>$v$$.ma_vt)});$condition$$.ma_kho&&($query_req_rs$$.ma_kho=$condition$$.ma_kho);$condition$$.ma_ct&&($query_req_rs$$.ma_ct=$condition$$.ma_ct);var $data_khongton_vts$$=await sokhokhongton.find($query_req_rs$$).lean();$query_req_rs$$=
4
+ await sokho.find($query_req_rs$$).lean();$query_req_rs$$=$query_req_rs$$.concat($data_khongton_vts$$);$query_req_rs$$.forEach($r$$=>{1==$r$$.nxt?($r$$.tien_tl=$r$$.tien,$r$$.tien_ck_tl=$r$$.tien_ck,$r$$.tien_hang=0,$r$$.tien_hang_nt=0,$r$$.tien_ck=0,$r$$.tien_ck_nt=0,$r$$.tien=0,$r$$.tien_nt=0):($r$$.tien_tl=0,$r$$.tien_ck_tl=0);"HD7"===$r$$.ma_ct&&2==$r$$.nxt&&($r$$.tien_hang=$r$$.tien,$r$$.tien_hang_nt=$r$$.tien_nt,$r$$.tien=$r$$.tien_hang-$r$$.tien_ck,$r$$.tien_nt=$r$$.tien_hang_nt-$r$$.tien_ck_nt)});
5
+ $query_req_rs$$.groupBy("ma_vt",[{name:"sl_xuat",value:"sl_xuat"},{name:"tien_hang",value:"tien_hang"},{name:"tien_ck",value:"tien_ck"},{name:"tien",value:"tien"},{name:"tien_xuat",value:"tien_xuat"},{name:"tien_nhap",value:"tien_nhap"},{name:"sl_nhap",value:"sl_nhap"},{name:"tien_tl",value:"tien_tl"},{name:"tien_ck_tl",value:"tien_ck_tl"}],function($error$$,$rs$$){if($error$$)return console.log($error$$),$callback$$($error$$);var $report$$=underscore.sortBy($rs$$,function($r$$){return $r$$.ma_vt}),
6
+ $i$$=1;$report$$.forEach(function($r$$){$r$$.stt=$i$$;$r$$.bold=!1;$r$$.doanh_thu=$r$$.tien;$r$$.doanh_thu_thuan=$r$$.doanh_thu-$r$$.tien_tl;$r$$.lai=$r$$.tien_hang-$r$$.tien_tl-($r$$.tien_ck-$r$$.tien_ck_tl)-($r$$.tien_xuat-$r$$.tien_nhap);$i$$++});$report$$.joinModel($condition$$.id_app,dmvt,[{akey:"ma_vt",bkey:"ma_vt",fields:[{name:"ten_vt",value:"ten_vt"},{name:"ma_dvt",value:"ma_dvt"}]}],function(){$report$$.push({ten_vt:"T\u1ed5ng c\u1ed9ng",sl_xuat:$report$$.csum("sl_xuat"),tien_xuat:$report$$.csum("tien_xuat"),
7
+ tien_hang:$report$$.csum("tien_hang"),tien_ck:$report$$.csum("tien_ck"),tien:$report$$.csum("tien"),sl_nhap:$report$$.csum("sl_nhap"),tien_nhap:$report$$.csum("tien_nhap"),tien_tl:$report$$.csum("tien_tl"),tien_ck_tl:$report$$.csum("tien_ck_tl"),doanh_thu:$report$$.csum("doanh_thu"),doanh_thu_thuan:$report$$.csum("doanh_thu_thuan"),lai:$report$$.csum("lai"),bold:!0});$callback$$(null,$report$$)})})})};
@@ -1,8 +1,9 @@
1
1
  'use strict';const thnxt=require("../../libs/thnxt"),dmvt=global.getModel("dmvt"),dmkho=global.getModel("dmkho"),dmnvt=global.getModel("dmnvt"),customer=global.getModel("customer"),underscore=require("underscore"),controller=require("../../controllers/controllerRPT"),async=require("async");
2
- module.exports=function($router$$){new controller($router$$,"thnxt",function($req$$,$callback$jscomp$0$$){const $query$$=$req$$.query,$id_app$$=$req$$.query.id_app;if(!$query$$.tu_ngay||!$query$$.den_ngay)return $callback$jscomp$0$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: tu_ngay,den_ngay");$callback$jscomp$0$$(null,null,"begin");(new Promise(($resolve$$,$reject$$)=>{if(!$query$$.ma_vt&&($query$$.ma_ncc||$query$$.ma_kh||$query$$.ma_nvt||$query$$.ma_nvt2||$query$$.ma_nvt3||
3
- $query$$.ma_nvt4)){const $_query$$={id_app:$id_app$$};if($query$$.ma_ncc||$query$$.ma_kh)$_query$$.ma_ncc=$query$$.ma_ncc||$query$$.ma_kh;$query$$.ma_nvt&&($_query$$.ma_nvt=$query$$.ma_nvt);$query$$.ma_nvt2&&($_query$$.ma_nvt2=$query$$.ma_nvt2);$query$$.ma_nvt3&&($_query$$.ma_nvt3=$query$$.ma_nvt3);$query$$.ma_nvt4&&($_query$$.ma_nvt4=$query$$.ma_nvt4);$callback$jscomp$0$$(null,null,"running");dmvt.find($_query$$).lean().exec(($err$$,$rs$$)=>{if($err$$)return $reject$$($err$$);$callback$jscomp$0$$(null,
4
- null,"running");$resolve$$(underscore.pluck($rs$$,"ma_vt"))})}else $resolve$$($query$$.ma_vt)})).then($ma_vt$$=>{$ma_vt$$&&($query$$.ma_vt=$ma_vt$$);$callback$jscomp$0$$(null,null,"running");thnxt($query$$,function($error$$,$report$$){if($error$$)return $callback$jscomp$0$$($error$$);$callback$jscomp$0$$(null,null,"running");async.parallel({vt:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt).joinModel2($id_app$$,dmvt,{where:"ma_vt",fields:"ten_vt tg_tk ma_ncc ma_dvt ma_nvt ma_vt2".split(" "),setFields:($a$$,
5
- $b$$)=>{if($b$$.picture){let $p$$=$b$$.picture.split(".");$a$$.picture_thumb=$b$$.picture+".thumb."+$p$$[$p$$.length-1]}else $a$$.picture="/getfile/others/noimage.png",$a$$.picture_thumb="/getfile/others/noimage.png"}},()=>{$report$$.filter($r$$=>$r$$.ma_ncc).joinModel2($id_app$$,customer,{where:{ma_ncc:"ma_kh"},fields:[{ten_ncc:"ten_kh"}]},()=>{$report$$.filter($r$$=>$r$$.ma_nvt).joinModel2($id_app$$,dmnvt,{where:{ma_nvt:"_id"},fields:["ten_nvt"]},()=>{$callback$$()})})})},kho:$callback$$=>{$report$$.filter($r$$=>
6
- $r$$.ma_kho).joinModel2($id_app$$,dmkho,{where:"ma_kho",fields:["ten_kho"]},()=>{$callback$$()})},tt1:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt1).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt1,loai_tt:"1"}),fields:{barcode1:"ma_tt2"}},()=>{$callback$$()})},tt2:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt2).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt2,
7
- loai_tt:"2"}),fields:{barcode2:"ma_tt2"}},()=>{$callback$$()})},tt3:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt3).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt3,loai_tt:"3"}),fields:{barcode3:"ma_tt2"}},()=>{$callback$$()})}},()=>{$callback$jscomp$0$$(null,null,"running");$report$$.forEach($r$$=>{$r$$.barcode=$r$$.barcode1||$r$$.barcode2||$r$$.barcode3||$r$$.ma_vt2});const $total$$={ma_vt:"",ten_vt:"T\u1ed5ng c\u1ed9ng",ton_dau:$report$$.csum("ton_dau"),
8
- du_dau:$report$$.csum("du_dau"),sl_nhap:$report$$.csum("sl_nhap"),tien_nhap:$report$$.csum("tien_nhap"),sl_xuat:$report$$.csum("sl_xuat"),tien_xuat:$report$$.csum("tien_xuat"),ton_cuoi:$report$$.csum("ton_cuoi"),du_cuoi:$report$$.csum("du_cuoi"),systotal:1,bold:!0};$report$$.push($total$$);$callback$jscomp$0$$(null,$report$$,"data");$callback$jscomp$0$$(null,null,"end")})},$log$$=>{$callback$jscomp$0$$(null,null,"running");console.log($log$$)})}).catch($e$$=>{$callback$jscomp$0$$($e$$)})},{stream:!0})};
2
+ module.exports=function($router$$){new controller($router$$,"thnxt",function($req$$,$callback$jscomp$0$$){const $query$$=$req$$.query,$id_app$$=$req$$.query.id_app;if(!$query$$.tu_ngay||!$query$$.den_ngay)return $callback$jscomp$0$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1: tu_ngay,den_ngay");console.log("query thnxt",$query$$);$callback$jscomp$0$$(null,null,"begin");(new Promise(($resolve$$,$reject$$)=>{if(!$query$$.ma_vt&&($query$$.ma_ncc||$query$$.ma_kh||$query$$.ma_nvt||
3
+ $query$$.ma_nvt2||$query$$.ma_nvt3||$query$$.ma_nvt4)){const $_query$$={id_app:$id_app$$};if($query$$.ma_ncc||$query$$.ma_kh)$_query$$.ma_ncc=$query$$.ma_ncc||$query$$.ma_kh;$query$$.ma_nvt&&($_query$$.ma_nvt=$query$$.ma_nvt);$query$$.ma_nvt2&&($_query$$.ma_nvt2=$query$$.ma_nvt2);$query$$.ma_nvt3&&($_query$$.ma_nvt3=$query$$.ma_nvt3);$query$$.ma_nvt4&&($_query$$.ma_nvt4=$query$$.ma_nvt4);$callback$jscomp$0$$(null,null,"running");dmvt.find($_query$$).lean().exec(($err$$,$rs$$)=>{if($err$$)return $reject$$($err$$);
4
+ $callback$jscomp$0$$(null,null,"running");$resolve$$(underscore.pluck($rs$$,"ma_vt"))})}else $resolve$$($query$$.ma_vt)})).then($ma_vt$$=>{$ma_vt$$&&($query$$.ma_vt=$ma_vt$$);$callback$jscomp$0$$(null,null,"running");thnxt($query$$,function($error$$,$report$$){if($error$$)return $callback$jscomp$0$$($error$$);$callback$jscomp$0$$(null,null,"running");async.parallel({vt:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt).joinModel2($id_app$$,dmvt,{where:"ma_vt",fields:"ten_vt tg_tk ma_ncc ma_dvt ma_nvt ma_vt2".split(" "),
5
+ setFields:($a$$,$b$$)=>{if($b$$.picture){let $p$$=$b$$.picture.split(".");$a$$.picture_thumb=$b$$.picture+".thumb."+$p$$[$p$$.length-1]}else $a$$.picture="/getfile/others/noimage.png",$a$$.picture_thumb="/getfile/others/noimage.png"}},()=>{$report$$.filter($r$$=>$r$$.ma_ncc).joinModel2($id_app$$,customer,{where:{ma_ncc:"ma_kh"},fields:[{ten_ncc:"ten_kh"}]},()=>{$report$$.filter($r$$=>$r$$.ma_nvt).joinModel2($id_app$$,dmnvt,{where:{ma_nvt:"_id"},fields:["ten_nvt"]},()=>{$callback$$()})})})},kho:$callback$$=>
6
+ {$report$$.filter($r$$=>$r$$.ma_kho).joinModel2($id_app$$,dmkho,{where:"ma_kho",fields:["ten_kho"]},()=>{$callback$$()})},tt1:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt1).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt1,loai_tt:"1"}),fields:{barcode1:"ma_tt2"}},()=>{$callback$$()})},tt2:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt2).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,
7
+ ma_tt:$item$$.ma_tt2,loai_tt:"2"}),fields:{barcode2:"ma_tt2"}},()=>{$callback$$()})},tt3:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt3).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt3,loai_tt:"3"}),fields:{barcode3:"ma_tt2"}},()=>{$callback$$()})}},()=>{$callback$jscomp$0$$(null,null,"running");$report$$.forEach($r$$=>{$r$$.barcode=$r$$.barcode1||$r$$.barcode2||$r$$.barcode3||$r$$.ma_vt2});const $total$$={ma_vt:"",ten_vt:"T\u1ed5ng c\u1ed9ng",
8
+ ton_dau:$report$$.csum("ton_dau"),du_dau:$report$$.csum("du_dau"),sl_nhap:$report$$.csum("sl_nhap"),tien_nhap:$report$$.csum("tien_nhap"),sl_xuat:$report$$.csum("sl_xuat"),tien_xuat:$report$$.csum("tien_xuat"),ton_cuoi:$report$$.csum("ton_cuoi"),du_cuoi:$report$$.csum("du_cuoi"),systotal:1,bold:!0};$report$$.push($total$$);$callback$jscomp$0$$(null,$report$$,"data");$callback$jscomp$0$$(null,null,"end")})},$log$$=>{$callback$jscomp$0$$(null,null,"running");console.log($log$$)})}).catch($e$$=>{$callback$jscomp$0$$($e$$)})},
9
+ {stream:!0})};
@@ -1,9 +1,9 @@
1
1
  'use strict';const databanle=require("../../libs/databanle"),dmkh=global.getModel("customer"),introducer=global.getModel("introducer"),user=global.getModel("user"),async=require("async"),controller=require("../../controllers/controllerRPT");
2
2
  module.exports=function($router$$){new controller($router$$,"tkbanhangtheogioithieu",async($query_req$$,$callback$jscomp$0$$)=>{const $condition$$=$query_req$$.query;if(!$condition$$.tu_ngay||!$condition$$.den_ngay)return $callback$jscomp$0$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1:tu_ngay,den_ngay");$query_req$$={id_app:$condition$$.id_app};$query_req$$.ngay_ct={$gte:$condition$$.tu_ngay,$lte:$condition$$.den_ngay};$condition$$.ma_dvcs&&($query_req$$.ma_dvcs=$condition$$.ma_dvcs);
3
3
  var $_query_intro_customers$$={id_app:$condition$$.id_app};$condition$$.introducer&&($_query_intro_customers$$.be_introduced_by=$condition$$.introducer);$condition$$.ma_kh&&($_query_intro_customers$$.be_introduced=$condition$$.ma_kh.toLowerCase());$_query_intro_customers$$=(await introducer.find($_query_intro_customers$$,{be_introduced:1,be_introduced_by:1})).filter($r$$=>$r$$.be_introduced!==$r$$.be_introduced_by).map($u$$=>$u$$.be_introduced.toUpperCase());$query_req$$.ma_kh={$in:$_query_intro_customers$$};
4
- $condition$$.ma_kho&&($query_req$$.ma_kho=$condition$$.ma_kho);$condition$$.ma_ct&&($query_req$$.ma_ct=$condition$$.ma_ct);databanle($query_req$$,function($error$jscomp$2$$,$rs$$){if($error$jscomp$2$$)return $callback$jscomp$0$$($error$jscomp$2$$);async.map($rs$$,function($r$$,$callback$$){$r$$.t_sl_xuat=$r$$.details.csum("sl_xuat");$r$$.t_tien_hang=$r$$.details.csum("tien_hang");$r$$.t_tien_ck=$r$$.details.csum("tien_ck");$r$$.t_tien=$r$$.details.csum("tien");$r$$.t_tien_cp=$r$$.details.csum("tien_cp");
5
- $r$$.tien_ck_hd=$r$$.tien_ck_hd?$r$$.tien_ck_hd:0;$r$$.t_tien_xuat=$r$$.details.csum("tien_xuat");$r$$.details_tl?($r$$.t_tien_tl=$r$$.details_tl.csum("tien"),$r$$.t_tien_nhap=$r$$.details_tl.csum("tien_nhap"),$r$$.t_sl_nhap=$r$$.details_tl.csum("sl_nhap")):($r$$.t_tien_tl=0,$r$$.t_sl_nhap=0,$r$$.t_tien_nhap=0);$r$$.t_so_bill="HD7"!==$r$$.so_ct?1:0;$callback$$(null,$r$$)},function($error$jscomp$0$$,$rs$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);$rs$$.groupBy("ma_kh",[{name:"t_so_bill",
6
- value:"t_so_bill"},{name:"t_sl_xuat",value:"t_sl_xuat"},{name:"t_tien_hang",value:"t_tien_hang"},{name:"t_tien_cp",value:"t_tien_cp"},{name:"t_tien_ck",value:"t_tien_ck"},{name:"t_tien",value:"t_tien"},{name:"tien_ck_hd",value:"tien_ck_hd"},{name:"t_tien_xuat",value:"t_tien_xuat"},{name:"t_sl_nhap",value:"t_sl_nhap"},{name:"t_tien_tl",value:"t_tien_tl"},{name:"t_tien_nhap",value:"t_tien_nhap"},{name:"t_bonus_points",value:"bonus_points"},{name:"t_used_points",value:"used_points"}],async($error$$,
7
- $report$$)=>{if($error$$)return $callback$jscomp$0$$($error$$);$report$$.forEach(($r$$,$i$$)=>{$r$$.stt=$i$$+1;$r$$.bold=!1;$r$$.t_doanh_thu=$r$$.t_tien-$r$$.tien_ck_hd;$r$$.t_doanh_thu_thuan=$r$$.t_doanh_thu-$r$$.t_tien_tl;$r$$.t_lai=$r$$.t_doanh_thu-$r$$.t_tien_xuat-($r$$.t_tien_tl-$r$$.t_tien_nhap)});await $report$$.asyncJoinModel2($condition$$.id_app,dmkh,[{where:"ma_kh",fields:["ten_kh","dia_chi"]}]);await $report$$.asyncJoinModel2($condition$$.id_app,introducer,[{where:$row$$=>({be_introduced:$row$$.ma_kh.toLowerCase()}),
8
- fields:{introducer:"be_introduced_by"}}]);await $report$$.asyncJoinModel2(null,user,[{where:{introducer:"email"},fields:{introducer_name:"name"}}]);$report$$=$report$$.filter($r$$=>$r$$.introducer_name);$report$$.push({ten_kh:"T\u1ed5ng c\u1ed9ng",t_so_bill:$report$$.csum("t_so_bill"),t_sl_xuat:$report$$.csum("t_sl_xuat"),t_tien_hang:$report$$.csum("t_tien_hang"),t_tien_cp:$report$$.csum("t_tien_cp"),t_tien_ck:$report$$.csum("t_tien_ck"),t_tien:$report$$.csum("t_tien"),tien_ck_hd:$report$$.csum("tien_ck_hd"),
9
- t_tien_xuat:$report$$.csum("t_tien_xuat"),t_doanh_thu:$report$$.csum("t_doanh_thu"),t_doanh_thu_thuan:$report$$.csum("t_doanh_thu_thuan"),t_sl_nhap:$report$$.csum("t_sl_nhap"),t_tien_nhap:$report$$.csum("t_tien_nhap"),t_tien_tl:$report$$.csum("t_tien_tl"),t_lai:$report$$.csum("t_lai"),t_bonus_points:$report$$.csum("t_bonus_points"),t_used_points:$report$$.csum("t_used_points"),bold:!0});$callback$jscomp$0$$(null,$report$$)})})})})};
4
+ $condition$$.ma_kho&&($query_req$$.ma_kho=$condition$$.ma_kho);$condition$$.ma_ct&&($query_req$$.ma_ct=$condition$$.ma_ct);$query_req$$.show_bonus_points=!0;databanle($query_req$$,function($error$jscomp$2$$,$rs$$){if($error$jscomp$2$$)return $callback$jscomp$0$$($error$jscomp$2$$);async.map($rs$$,function($r$$,$callback$$){$r$$.t_sl_xuat=$r$$.details.csum("sl_xuat");$r$$.t_tien_hang=$r$$.details.csum("tien_hang");$r$$.t_tien_ck=$r$$.details.csum("tien_ck");$r$$.t_tien=$r$$.details.csum("tien");$r$$.t_tien_cp=
5
+ $r$$.details.csum("tien_cp");$r$$.tien_ck_hd=$r$$.tien_ck_hd?$r$$.tien_ck_hd:0;$r$$.t_tien_xuat=$r$$.details.csum("tien_xuat");$r$$.details_tl?($r$$.t_tien_tl=$r$$.details_tl.csum("tien"),$r$$.t_tien_nhap=$r$$.details_tl.csum("tien_nhap"),$r$$.t_sl_nhap=$r$$.details_tl.csum("sl_nhap")):($r$$.t_tien_tl=0,$r$$.t_sl_nhap=0,$r$$.t_tien_nhap=0);$r$$.t_so_bill="HD7"!==$r$$.so_ct?1:0;$callback$$(null,$r$$)},function($error$jscomp$0$$,$rs$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);
6
+ $rs$$.groupBy("ma_kh",[{name:"t_so_bill",value:"t_so_bill"},{name:"t_sl_xuat",value:"t_sl_xuat"},{name:"t_tien_hang",value:"t_tien_hang"},{name:"t_tien_cp",value:"t_tien_cp"},{name:"t_tien_ck",value:"t_tien_ck"},{name:"t_tien",value:"t_tien"},{name:"tien_ck_hd",value:"tien_ck_hd"},{name:"t_tien_xuat",value:"t_tien_xuat"},{name:"t_sl_nhap",value:"t_sl_nhap"},{name:"t_tien_tl",value:"t_tien_tl"},{name:"t_tien_nhap",value:"t_tien_nhap"},{name:"t_bonus_points",value:"bonus_points"},{name:"t_used_points",
7
+ value:"used_points"}],async($error$$,$report$$)=>{if($error$$)return $callback$jscomp$0$$($error$$);$report$$.forEach(($r$$,$i$$)=>{$r$$.stt=$i$$+1;$r$$.bold=!1;$r$$.t_doanh_thu=$r$$.t_tien-$r$$.tien_ck_hd;$r$$.t_doanh_thu_thuan=$r$$.t_doanh_thu-$r$$.t_tien_tl;$r$$.t_lai=$r$$.t_doanh_thu-$r$$.t_tien_xuat-($r$$.t_tien_tl-$r$$.t_tien_nhap)});await $report$$.asyncJoinModel2($condition$$.id_app,dmkh,[{where:"ma_kh",fields:["ten_kh","dia_chi"]}]);await $report$$.asyncJoinModel2($condition$$.id_app,introducer,
8
+ [{where:$row$$=>({be_introduced:$row$$.ma_kh.toLowerCase()}),fields:{introducer:"be_introduced_by"}}]);await $report$$.asyncJoinModel2(null,user,[{where:{introducer:"email"},fields:{introducer_name:"name"}}]);$report$$=$report$$.filter($r$$=>$r$$.introducer_name);$report$$.push({ten_kh:"T\u1ed5ng c\u1ed9ng",t_so_bill:$report$$.csum("t_so_bill"),t_sl_xuat:$report$$.csum("t_sl_xuat"),t_tien_hang:$report$$.csum("t_tien_hang"),t_tien_cp:$report$$.csum("t_tien_cp"),t_tien_ck:$report$$.csum("t_tien_ck"),
9
+ t_tien:$report$$.csum("t_tien"),tien_ck_hd:$report$$.csum("tien_ck_hd"),t_tien_xuat:$report$$.csum("t_tien_xuat"),t_doanh_thu:$report$$.csum("t_doanh_thu"),t_doanh_thu_thuan:$report$$.csum("t_doanh_thu_thuan"),t_sl_nhap:$report$$.csum("t_sl_nhap"),t_tien_nhap:$report$$.csum("t_tien_nhap"),t_tien_tl:$report$$.csum("t_tien_tl"),t_lai:$report$$.csum("t_lai"),t_bonus_points:$report$$.csum("t_bonus_points"),t_used_points:$report$$.csum("t_used_points"),bold:!0});$callback$jscomp$0$$(null,$report$$)})})})})};
@@ -1,7 +1,7 @@
1
1
  'use strict';const databanle=require("../../libs/databanle"),dmkh=global.getModel("customer"),transaction=global.getModel("transaction"),async=require("async"),controller=require("../../controllers/controllerRPT");
2
2
  module.exports=function($router$$){new controller($router$$,"tkdiemtichluy",async($query_req$$,$callback$jscomp$0$$)=>{const $condition$$=$query_req$$.query;if(!$condition$$.tu_ngay||!$condition$$.den_ngay)return $callback$jscomp$0$$("B\u00e1o c\u00e1o n\u00e0y y\u00eau c\u1ea7u c\u00e1c tham s\u1ed1:tu_ngay,den_ngay");$query_req$$={id_app:$condition$$.id_app};$query_req$$.ngay_ct={$gte:$condition$$.tu_ngay,$lte:$condition$$.den_ngay};$condition$$.ma_dvcs&&($query_req$$.ma_dvcs=$condition$$.ma_dvcs);
3
- $condition$$.ma_kh&&($query_req$$.ma_kh=$condition$$.ma_kh);$condition$$.ma_kho&&($query_req$$.ma_kho=$condition$$.ma_kho);$condition$$.ma_ct&&($query_req$$.ma_ct=$condition$$.ma_ct);databanle($query_req$$,function($error$jscomp$2$$,$rs$$){if($error$jscomp$2$$)return $callback$jscomp$0$$($error$jscomp$2$$);async.map($rs$$,function($r$$,$callback$$){$r$$.t_sl_xuat=$r$$.details.csum("sl_xuat");$r$$.t_tien_hang=$r$$.details.csum("tien_hang");$r$$.t_tien_ck=$r$$.details.csum("tien_ck");$r$$.t_tien=$r$$.details.csum("tien");
4
- $r$$.t_tien_cp=$r$$.details.csum("tien_cp");$r$$.tien_ck_hd=$r$$.tien_ck_hd?$r$$.tien_ck_hd:0;$r$$.t_tien_xuat=$r$$.details.csum("tien_xuat");$r$$.details_tl?($r$$.t_tien_tl=$r$$.details_tl.csum("tien"),$r$$.t_tien_nhap=$r$$.details_tl.csum("tien_nhap"),$r$$.t_sl_nhap=$r$$.details_tl.csum("sl_nhap")):($r$$.t_tien_tl=0,$r$$.t_sl_nhap=0,$r$$.t_tien_nhap=0);$r$$.t_so_bill="HD7"!==$r$$.so_ct?1:0;$callback$$(null,$r$$)},function($error$jscomp$0$$,$rs$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);
3
+ $condition$$.ma_kh&&($query_req$$.ma_kh=$condition$$.ma_kh);$condition$$.ma_kho&&($query_req$$.ma_kho=$condition$$.ma_kho);$condition$$.ma_ct&&($query_req$$.ma_ct=$condition$$.ma_ct);$query_req$$.show_bonus_points=!0;databanle($query_req$$,function($error$jscomp$2$$,$rs$$){if($error$jscomp$2$$)return $callback$jscomp$0$$($error$jscomp$2$$);async.map($rs$$,function($r$$,$callback$$){$r$$.t_sl_xuat=$r$$.details.csum("sl_xuat");$r$$.t_tien_hang=$r$$.details.csum("tien_hang");$r$$.t_tien_ck=$r$$.details.csum("tien_ck");
4
+ $r$$.t_tien=$r$$.details.csum("tien");$r$$.t_tien_cp=$r$$.details.csum("tien_cp");$r$$.tien_ck_hd=$r$$.tien_ck_hd?$r$$.tien_ck_hd:0;$r$$.t_tien_xuat=$r$$.details.csum("tien_xuat");$r$$.details_tl?($r$$.t_tien_tl=$r$$.details_tl.csum("tien"),$r$$.t_tien_nhap=$r$$.details_tl.csum("tien_nhap"),$r$$.t_sl_nhap=$r$$.details_tl.csum("sl_nhap")):($r$$.t_tien_tl=0,$r$$.t_sl_nhap=0,$r$$.t_tien_nhap=0);$r$$.t_so_bill="HD7"!==$r$$.so_ct?1:0;$callback$$(null,$r$$)},function($error$jscomp$0$$,$rs$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);
5
5
  $rs$$.groupBy("ma_kh",[{name:"t_so_bill",value:"t_so_bill"},{name:"t_sl_xuat",value:"t_sl_xuat"},{name:"t_tien_hang",value:"t_tien_hang"},{name:"t_tien_cp",value:"t_tien_cp"},{name:"t_tien_ck",value:"t_tien_ck"},{name:"t_tien",value:"t_tien"},{name:"tien_ck_hd",value:"tien_ck_hd"},{name:"t_tien_xuat",value:"t_tien_xuat"},{name:"t_sl_nhap",value:"t_sl_nhap"},{name:"t_tien_tl",value:"t_tien_tl"},{name:"t_tien_nhap",value:"t_tien_nhap"},{name:"t_bonus_points",value:"bonus_points"},{name:"t_used_points",
6
6
  value:"used_points"}],async($error$$,$report$$)=>{if($error$$)return $callback$jscomp$0$$($error$$);$report$$.forEach(($r$$,$i$$)=>{$r$$.stt=$i$$+1;$r$$.bold=!1;$r$$.t_doanh_thu=$r$$.t_tien-$r$$.tien_ck_hd;$r$$.t_doanh_thu_thuan=$r$$.t_doanh_thu-$r$$.t_tien_tl;$r$$.t_lai=$r$$.t_doanh_thu-$r$$.t_tien_xuat-($r$$.t_tien_tl-$r$$.t_tien_nhap)});await Promise.all($report$$.map(async $r$$=>{$r$$.t_bonus_points=await transaction.in($r$$.ma_kh.toLowerCase(),$condition$$.den_ngay);$r$$.t_used_points=await transaction.out($r$$.ma_kh.toLowerCase(),
7
7
  $condition$$.den_ngay);$r$$.balance_points=await transaction.balance($r$$.ma_kh.toLowerCase(),$condition$$.den_ngay);return $r$$}));$report$$=$report$$.filter($r$$=>0!=$r$$.t_bonus_points||0!=$r$$.t_used_points||0!=$r$$.balance_points);await $report$$.asyncJoinModel2($condition$$.id_app,dmkh,[{where:"ma_kh",fields:["ten_kh","dia_chi"]}]);$report$$.push({ten_kh:"T\u1ed5ng c\u1ed9ng",t_so_bill:$report$$.csum("t_so_bill"),t_sl_xuat:$report$$.csum("t_sl_xuat"),t_tien_hang:$report$$.csum("t_tien_hang"),
@@ -1,19 +1,21 @@
1
1
  'use strict';const PostBook=require("../../libs/post-book"),PostSocai=require("../../libs/post-socai"),Vatvao=global.getModel("vatvao"),Tdttco_tt=global.getModel("tdttco_tt"),Tdttco=global.getModel("tdttco"),dvcs=global.getModel("dvcs"),account=global.getModel("account"),dmdt=global.getModel("dmdt"),customer=global.getModel("customer"),dmnv=global.getModel("dmnv"),contract=global.getModel("contract"),dmphi=global.getModel("dmphi"),model=global.getModel("pc1"),pc0=global.getModel("pc0"),pn6=global.getModel("pn6"),
2
- App=global.getModel("app"),cashwithdraw=global.getModel("asscashwithdraw"),trangthai=global.getModel("trangthai"),controller=require("../../controllers/controller"),{createTx}=require("../../libs/blockchainconnect"),async=require("async"),ma_ct="BN1",{round}=require("../../libs/utils"),valid_detail=function($user$$,$obj$$,$fn$$){setImmediate(()=>{for(var $i_i$jscomp$1_i$$=0;$i_i$jscomp$1_i$$<$obj$$.details.length;$i_i$jscomp$1_i$$++){var $detail_tdttco_vatvao$$=$obj$$.details[$i_i$jscomp$1_i$$];$detail_tdttco_vatvao$$.line=
3
- $i_i$jscomp$1_i$$;"VND"===$obj$$.ma_nt&&($detail_tdttco_vatvao$$.tien=$detail_tdttco_vatvao$$.tien_nt)}if($obj$$.vatvaos)for($i_i$jscomp$1_i$$=0;$i_i$jscomp$1_i$$<$obj$$.vatvaos.length;$i_i$jscomp$1_i$$++)$detail_tdttco_vatvao$$=$obj$$.vatvaos[$i_i$jscomp$1_i$$],$detail_tdttco_vatvao$$.line=$i_i$jscomp$1_i$$,"VND"===$obj$$.ma_nt&&($detail_tdttco_vatvao$$.t_thue=$detail_tdttco_vatvao$$.t_thue_nt);if($obj$$.tdttcos)for($i_i$jscomp$1_i$$=0;$i_i$jscomp$1_i$$<$obj$$.tdttcos.length;$i_i$jscomp$1_i$$++)$detail_tdttco_vatvao$$=
4
- $obj$$.tdttcos[$i_i$jscomp$1_i$$],$detail_tdttco_vatvao$$.line=$i_i$jscomp$1_i$$,"VND"===$obj$$.ma_nt&&($detail_tdttco_vatvao$$.tien=$detail_tdttco_vatvao$$.tien_nt),$detail_tdttco_vatvao$$.thanh_toan_qd=round($detail_tdttco_vatvao$$.tien/$detail_tdttco_vatvao$$.ty_gia_hd,2);$fn$$(null,$obj$$)})};
2
+ App=global.getModel("app"),cashwithdraw=global.getModel("asscashwithdraw"),trangthai=global.getModel("trangthai"),controller=require("../../controllers/controller"),{createTx}=require("../../libs/blockchainconnect"),async=require("async"),ma_ct="BN1",{round}=require("../../libs/utils"),utils=require("../../libs/utils"),numeral=require("numeral"),valid_detail=function($user$$,$obj$$,$fn$$){setImmediate(()=>{for(var $i_i$jscomp$1_i$$=0;$i_i$jscomp$1_i$$<$obj$$.details.length;$i_i$jscomp$1_i$$++){var $detail_tdttco_vatvao$$=
3
+ $obj$$.details[$i_i$jscomp$1_i$$];$detail_tdttco_vatvao$$.line=$i_i$jscomp$1_i$$;"VND"===$obj$$.ma_nt&&($detail_tdttco_vatvao$$.tien=$detail_tdttco_vatvao$$.tien_nt)}if($obj$$.vatvaos)for($i_i$jscomp$1_i$$=0;$i_i$jscomp$1_i$$<$obj$$.vatvaos.length;$i_i$jscomp$1_i$$++)$detail_tdttco_vatvao$$=$obj$$.vatvaos[$i_i$jscomp$1_i$$],$detail_tdttco_vatvao$$.line=$i_i$jscomp$1_i$$,"VND"===$obj$$.ma_nt&&($detail_tdttco_vatvao$$.t_thue=$detail_tdttco_vatvao$$.t_thue_nt);if($obj$$.tdttcos)for($i_i$jscomp$1_i$$=
4
+ 0;$i_i$jscomp$1_i$$<$obj$$.tdttcos.length;$i_i$jscomp$1_i$$++)$detail_tdttco_vatvao$$=$obj$$.tdttcos[$i_i$jscomp$1_i$$],$detail_tdttco_vatvao$$.line=$i_i$jscomp$1_i$$,"VND"===$obj$$.ma_nt&&($detail_tdttco_vatvao$$.tien=$detail_tdttco_vatvao$$.tien_nt),$detail_tdttco_vatvao$$.thanh_toan_qd=round($detail_tdttco_vatvao$$.tien/$detail_tdttco_vatvao$$.ty_gia_hd,2);$fn$$(null,$obj$$)})};
5
5
  module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,ma_ct.toLowerCase(),{isVoucher:!0,sort:{ngay_ct:-1,so_ct:-1},keyValues:{ma_ct},onExport:function($user$$,$obj$$,$next$$){$obj$$.tdttcos&&0<$obj$$.tdttcos.length&&($obj$$.details=$obj$$.tdttcos);$next$$()}});$contr_router$$.route();$contr_router$$.post=function($obj$$,$fn$$){$fn$$||($fn$$=function(){});async.parallel({post_cashwithdraw:$callback$$=>{(async()=>{if($obj$$.id_asscashwithdraw){const $require$$=
6
6
  await cashwithdraw.findOne({_id:$obj$$.id_asscashwithdraw});if(!$require$$)return $callback$$("Y\u00eau c\u1ea7u n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");if("5"==$require$$.trang_thai)return $callback$$();let $app$$=await App.findOne({_id:$obj$$.id_app});if(!$app$$||!$app$$.wallet_address||!$app$$.wallet_token)return $callback$$("Kh\u00f4ng th\u1ec3 x\u00e1c nh\u1eadn thanh to\u00e1n. H\u00e3y th\u1eed l\u1ea1i sau");let $creator$$=$app$$.wallet_address;createTx($obj$$.id_app,$app$$.wallet_token,{values:{creator:$creator$$,
7
7
  id:Number($require$$.id)},typeUrl:"/pvtruong.flexzen.flexzen.MsgPayCashWithdraw",from_address:$creator$$}).then(async $rs$$=>{if($rs$$.code){if(5===$rs$$.code)return $callback$$("B\u1ea1n kh\u00f4ng \u0111\u1ee7 ti\u1ec1n \u0111\u1ec3 th\u1ef1c hi\u1ec7n giao d\u1ecbch n\u00e0y");console.error($rs$$);return $callback$$($rs$$.rawLog)}$require$$.trang_thai="5";$require$$.payment_date=new Date;$require$$.save();controller.pushNotification(global.controllers.ASSCASHWITHDRAW,$require$$);$callback$$(null,
8
8
  $require$$.toObject())}).catch($e$$=>{console.error($e$$);$callback$$($e$$.message||$e$$.error||$e$$)})}else $callback$$()})()},post_vatvao:function($callback$$){(new PostBook($obj$$,$obj$$.vatvaos,Vatvao)).run(function($e$$,$rs$$){$callback$$($e$$,$rs$$)})},post_tdttco:function($callback$jscomp$0$$){(new PostBook($obj$$,$obj$$.tdttcos,Tdttco_tt,function($tdttco$$,$callback$$){$tdttco$$.tk_co=$obj$$.tk_co;$callback$$($tdttco$$)})).run(function($e$jscomp$0$$,$details$$){if($e$jscomp$0$$)return $callback$jscomp$0$$($e$jscomp$0$$);
9
9
  async.map($details$$,($detail$$,$callback$$)=>{$detail$$.con_lai_nt<=$detail$$.thanh_toan_qd?Tdttco.findOneAndUpdate({_id:$detail$$.id_tdtt.toString()},{$set:{tat_toan:!0}},function($error$$,$result$$){$callback$$($error$$,$result$$)}):$callback$$(null,$detail$$)},function($e$$,$rs$$){$callback$jscomp$0$$($e$$,$rs$$)})})},post_socai:function($callback$$){const $details_sc$$=[];$obj$$.vatvaos.forEach(function($v_vatvao$$){$v_vatvao$$={...$v_vatvao$$};$v_vatvao$$.tk_no=$v_vatvao$$.tk_thue_no;$v_vatvao$$.tk_co=
10
10
  $v_vatvao$$.tk_du_thue;$v_vatvao$$.tien_nt=$v_vatvao$$.t_thue_nt;$v_vatvao$$.tien=$v_vatvao$$.t_thue;$details_sc$$.push($v_vatvao$$)});$obj$$.details.forEach(function($d_detail$$){$d_detail$$={...$d_detail$$};$d_detail$$.tk_co=$obj$$.tk_co;$d_detail$$.ma_kh||($d_detail$$.ma_kh=$obj$$.ma_kh);$details_sc$$.push($d_detail$$)});$obj$$.tdttcos.forEach(function($t_tdttco$$){$t_tdttco$$={...$t_tdttco$$};$t_tdttco$$.tk_co=$obj$$.tk_co;$t_tdttco$$.ma_kh||($t_tdttco$$.ma_kh=$obj$$.ma_kh);$details_sc$$.push($t_tdttco$$)});
11
- (new PostSocai($obj$$,$details_sc$$)).run(function($e$$,$rs$$){$callback$$($e$$,$rs$$)})}},function($e$$,$rs$$){$fn$$($e$$,$rs$$)})};$contr_router$$.creating=async function($user$$,$obj$$,$next$$){if($user$$.current_app_info.options.phieu_chi_phai_co_phieu_de_nghi&&!$obj$$.id_pc0&&!$obj$$.id_pn6)return $next$$("Ch\u01b0a c\u00f3 phi\u1ebfu \u0111\u1ec1 ngh\u1ecb thanh to\u00e1n");$obj$$.details||($obj$$.details=[]);if($obj$$.id_pc0){var $dntt_t_tien_dn$$=await pc0.findOne({_id:$obj$$.id_pc0,id_app:$user$$.current_id_app});
12
- if(!$dntt_t_tien_dn$$)return $next$$("\u0110\u1ec1 ngh\u1ecb thanh to\u00e1n kh\u00f4ng t\u1ed3n t\u1ea1i");$dntt_t_tien_dn$$=($dntt_t_tien_dn$$.details||[]).map($d$$=>$d$$.tien_nt||0)+($dntt_t_tien_dn$$.tdttcos||[]).map($d$$=>$d$$.tien_nt||0)+($dntt_t_tien_dn$$.vatvaos||[]).map($d$$=>$d$$.t_thue_nt||0);let $t_tien_tt$$=($obj$$.details||[]).map($d$$=>$d$$.tien_nt||0)+($obj$$.tdttcos||[]).map($d$$=>$d$$.tien_nt||0)+($obj$$.vatvaos||[]).map($d$$=>$d$$.t_thue_nt||0);if($dntt_t_tien_dn$$!==$t_tien_tt$$)return $next$$("T\u1ed5ng s\u1ed1 ti\u1ec1n thanh to\u00e1n ph\u1ea3i b\u1eb1ng v\u1edbi s\u1ed1 ti\u1ec1n trong \u0111\u1ec1 ngh\u1ecb thanh to\u00e1n \u0111\u00e3 \u0111\u01b0\u1ee3c duy\u1ec7t")}if($obj$$.tdttcos&&
11
+ (new PostSocai($obj$$,$details_sc$$)).run(function($e$$,$rs$$){$callback$$($e$$,$rs$$)})}},function($e$$,$rs$$){$fn$$($e$$,$rs$$)})};$contr_router$$.creating=async function($user$$,$obj$$,$next$$){if($user$$.current_app_info.options.phieu_chi_phai_co_phieu_de_nghi&&!$obj$$.id_pc0&&!$obj$$.id_pn6)return $next$$("Ch\u01b0a c\u00f3 phi\u1ebfu \u0111\u1ec1 ngh\u1ecb thanh to\u00e1n");$obj$$.details||($obj$$.details=[]);if($obj$$.id_pc0){if(await model.findOne({id_pc0:$obj$$.id_pc0}))return $next$$("\u0110\u1ec1 ngh\u1ecb thanh to\u00e1n n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c chi");
12
+ var $dntt_t_tien_dn$$=await pc0.findOne({_id:$obj$$.id_pc0,id_app:$user$$.current_id_app});if(!$dntt_t_tien_dn$$)return $next$$("\u0110\u1ec1 ngh\u1ecb thanh to\u00e1n kh\u00f4ng t\u1ed3n t\u1ea1i");$dntt_t_tien_dn$$=utils.round(($dntt_t_tien_dn$$.details||[]).map($d$$=>$d$$.tien_nt||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+($dntt_t_tien_dn$$.tdttcos||[]).map($d$$=>$d$$.tien_nt||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+($dntt_t_tien_dn$$.vatvaos||[]).map($d$$=>$d$$.t_thue_nt||0).reduce(($a$$,$b$$)=>$a$$+$b$$,
13
+ 0),0);let $t_tien_tt$$=utils.round(($obj$$.details||[]).map($d$$=>$d$$.tien_nt||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+($obj$$.tdttcos||[]).map($d$$=>$d$$.tien_nt||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+($obj$$.vatvaos||[]).map($d$$=>$d$$.t_thue_nt||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0),0);if($dntt_t_tien_dn$$!==$t_tien_tt$$)return $next$$(`T\u1ed5ng s\u1ed1 ti\u1ec1n thanh to\u00e1n ${numeral($t_tien_tt$$).format()} ph\u1ea3i b\u1eb1ng s\u1ed1 ti\u1ec1n ${numeral($dntt_t_tien_dn$$).format()} trong \u0111\u1ec1 ngh\u1ecb thanh to\u00e1n \u0111\u00e3 \u0111\u01b0\u1ee3c duy\u1ec7t`)}if($obj$$.tdttcos&&
13
14
  0<$obj$$.tdttcos.length&&(await $obj$$.tdttcos.asyncJoinModel2($user$$.current_id_app,Tdttco,{where:{id_tdtt:"_id"},fields:["tat_toan",{tien_hd_nt:"tien_nt"}]}),0<(await Promise.all($obj$$.tdttcos.map($hd$$=>(async()=>{if(!global.mongoose.Types.ObjectId.isValid($hd$$.id_tdtt))return{error:"Ho\u00e1 \u0111\u01a1n kh\u00f4ng h\u1ee3p l\u1ec7",invoice:$hd$$};let $ds_da_thanh_toan$$=await Tdttco_tt.find({id_app:$obj$$.id_app,id_tdtt:$hd$$.id_tdtt}).lean(),$da_thanh_toan$$=$ds_da_thanh_toan$$.map($t$$=>
14
15
  $t$$.thanh_toan_qd||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0),$con_lai$$=$hd$$.tien_hd_nt-$da_thanh_toan$$;return $con_lai$$<$hd$$.thanh_toan_qd?{error:"S\u1ed1 ti\u1ec1n c\u00f2n l\u1ea1i nh\u1ecf h\u01a1n s\u1ed1 ti\u1ec1n thanh to\u00e1n",invoice:$hd$$,da_thanh_toan:$da_thanh_toan$$,con_lai:$con_lai$$,ds_da_thanh_toan:$ds_da_thanh_toan$$}:{invoice:$hd$$,da_thanh_toan:$da_thanh_toan$$,con_lai:$con_lai$$,ds_da_thanh_toan:$ds_da_thanh_toan$$}})()))).filter($hd$$=>$hd$$.error).length))return $next$$("S\u1ed1 ti\u1ec1n thanh to\u00e1n kh\u00f4ng \u0111\u01b0\u1ee3c l\u1edbn h\u01a1n s\u1ed1 ti\u1ec1n c\u00f2n l\u1ea1i c\u1ee7a ho\u00e1 \u0111\u01a1n");
15
- valid_detail($user$$,$obj$$,function($error$$){if($error$$)return $next$$($error$$);$next$$(null,$obj$$)})};$contr_router$$.updating=async function($user$$,$data$$,$obj$$,$next$$){if($data$$.id_pc0||$obj$$.id_pc0){var $dntt$jscomp$1_t_tien_dn$$=await pc0.findOne({_id:$data$$.id_pc0||$obj$$.id_pc0,id_app:$user$$.current_id_app});if(!$dntt$jscomp$1_t_tien_dn$$)return $next$$("\u0110\u1ec1 ngh\u1ecb thanh to\u00e1n kh\u00f4ng t\u1ed3n t\u1ea1i");$dntt$jscomp$1_t_tien_dn$$=($dntt$jscomp$1_t_tien_dn$$.details||
16
- []).map($d$$=>$d$$.tien_nt||0)+($dntt$jscomp$1_t_tien_dn$$.tdttcos||[]).map($d$$=>$d$$.tien_nt||0)+($dntt$jscomp$1_t_tien_dn$$.vatvaos||[]).map($d$$=>$d$$.t_thue_nt||0);let $t_tien_tt$$=($data$$.details||$obj$$.details||[]).map($d$$=>$d$$.tien_nt||0)+($data$$.tdttcos||$obj$$.tdttcos||[]).map($d$$=>$d$$.tien_nt||0)+($data$$.vatvaos||$obj$$.vatvaos||[]).map($d$$=>$d$$.t_thue_nt||0);if($dntt$jscomp$1_t_tien_dn$$!==$t_tien_tt$$)return $next$$("T\u1ed5ng s\u1ed1 ti\u1ec1n thanh to\u00e1n ph\u1ea3i b\u1eb1ng v\u1edbi s\u1ed1 ti\u1ec1n trong \u0111\u1ec1 ngh\u1ecb thanh to\u00e1n \u0111\u00e3 \u0111\u01b0\u1ee3c duy\u1ec7t")}if($obj$$.tdttcos&&
16
+ valid_detail($user$$,$obj$$,function($error$$){if($error$$)return $next$$($error$$);$next$$(null,$obj$$)})};$contr_router$$.updating=async function($user$$,$data$$,$obj$$,$next$$){if($data$$.id_pc0||$obj$$.id_pc0){var $dntt$jscomp$1_id_pc0_t_tien_dn$$=$data$$.id_pc0||$obj$$.id_pc0,$ex$jscomp$1_t_tien_tt$$=await model.findOne({id_pc0:$dntt$jscomp$1_id_pc0_t_tien_dn$$}).lean();if($ex$jscomp$1_t_tien_tt$$&&$ex$jscomp$1_t_tien_tt$$._id.toString()!==$obj$$._id.toString())return $next$$("\u0110\u1ec1 ngh\u1ecb thanh to\u00e1n n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c chi");
17
+ $dntt$jscomp$1_id_pc0_t_tien_dn$$=await pc0.findOne({_id:$dntt$jscomp$1_id_pc0_t_tien_dn$$,id_app:$user$$.current_id_app});if(!$dntt$jscomp$1_id_pc0_t_tien_dn$$)return $next$$("\u0110\u1ec1 ngh\u1ecb thanh to\u00e1n kh\u00f4ng t\u1ed3n t\u1ea1i");$dntt$jscomp$1_id_pc0_t_tien_dn$$=utils.round(($dntt$jscomp$1_id_pc0_t_tien_dn$$.details||[]).map($d$$=>$d$$.tien_nt||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+($dntt$jscomp$1_id_pc0_t_tien_dn$$.tdttcos||[]).map($d$$=>$d$$.tien_nt||0).reduce(($a$$,$b$$)=>$a$$+
18
+ $b$$,0)+($dntt$jscomp$1_id_pc0_t_tien_dn$$.vatvaos||[]).map($d$$=>$d$$.t_thue_nt||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0),0);$ex$jscomp$1_t_tien_tt$$=utils.round(($data$$.details||$obj$$.details||[]).map($d$$=>$d$$.tien_nt||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+($data$$.tdttcos||$obj$$.tdttcos||[]).map($d$$=>$d$$.tien_nt||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+($data$$.vatvaos||$obj$$.vatvaos||[]).map($d$$=>$d$$.t_thue_nt||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0),0);if($dntt$jscomp$1_id_pc0_t_tien_dn$$!==$ex$jscomp$1_t_tien_tt$$)return $next$$(`T\u1ed5ng s\u1ed1 ti\u1ec1n thanh to\u00e1n ${numeral($ex$jscomp$1_t_tien_tt$$).format()} ph\u1ea3i b\u1eb1ng s\u1ed1 ti\u1ec1n ${numeral($dntt$jscomp$1_id_pc0_t_tien_dn$$).format()} trong \u0111\u1ec1 ngh\u1ecb thanh to\u00e1n \u0111\u00e3 \u0111\u01b0\u1ee3c duy\u1ec7t`)}if($obj$$.tdttcos&&
17
19
  0<$obj$$.tdttcos.length&&(await $obj$$.tdttcos.asyncJoinModel2($user$$.current_id_app,Tdttco,{where:{id_tdtt:"_id"},fields:["tat_toan",{tien_hd_nt:"tien_nt"}]}),0<(await Promise.all($obj$$.tdttcos.map($hd$$=>(async()=>{if(!global.mongoose.Types.ObjectId.isValid($hd$$.id_tdtt))return{error:"Ho\u00e1 \u0111\u01a1n kh\u00f4ng h\u1ee3p l\u1ec7",invoice:$hd$$};let $ds_da_thanh_toan$$=await Tdttco_tt.find({id_app:$obj$$.id_app,id_tdtt:$hd$$.id_tdtt,id_ct:{$ne:$obj$$._id.toString()}}).lean(),$da_thanh_toan$$=
18
20
  $ds_da_thanh_toan$$.map($t$$=>$t$$.thanh_toan_qd||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0),$con_lai$$=$hd$$.tien_hd_nt-$da_thanh_toan$$;return $con_lai$$<$hd$$.thanh_toan_qd?{error:!0,invoice:$hd$$}:{ds_da_thanh_toan:$ds_da_thanh_toan$$,da_thanh_toan:$da_thanh_toan$$,invoice:$hd$$,con_lai:$con_lai$$}})()))).filter($hd$$=>$hd$$.error).length))return $next$$("S\u1ed1 ti\u1ec1n thanh to\u00e1n kh\u00f4ng \u0111\u01b0\u1ee3c l\u1edbn h\u01a1n s\u1ed1 ti\u1ec1n c\u00f2n l\u1ea1i c\u1ee7a ho\u00e1 \u0111\u01a1n");
19
21
  valid_detail($user$$,$data$$,function($error$$){if($error$$)return $next$$($error$$);$next$$(null,$data$$,$obj$$)})};$contr_router$$.on("saved",function($obj$$){$obj$$.id_pc0&&pc0.updateMany({_id:$obj$$.id_pc0},{id_pc1:$obj$$._id.toString(),trang_thai:"6"},($e$jscomp$1$$,$rs$$)=>{console.log("update pc0",$obj$$.id_pc0,$rs$$);pc0.findOne({_id:$obj$$.id_pc0},($e$jscomp$0$$,$_obj$$)=>{$_obj$$&&controller.postData($_obj$$,global.controllers.PC0,$e$$=>{$e$$&&console.error($e$$)})})});$obj$$.id_pn6&&pn6.updateMany({_id:$obj$$.id_pn6},
@@ -8,15 +8,15 @@ $rs$$)})}},($e$$,$rs$$)=>{$callback$jscomp$1$$($e$$,$rs$$)})})},post_vatra:funct
8
8
  $detail$$.ten_vt||($detail$$.ten_vt=$obj$$.dien_giai)}catch($e$$){console.error($e$$,$obj$$)}$callback$$($detail$$)})).run(function($e$$,$rs$$){$callback$jscomp$0$$($e$$,$rs$$)}):Vatra.deleteMany({id_ct:$obj$$._id},function($error$$){$callback$jscomp$0$$($error$$)})},post_socai:function($callback$jscomp$0$$){let $details$$=[];$obj$$.details.forEach(function($d$jscomp$2_detail$$){$d$jscomp$2_detail$$={...$d$jscomp$2_detail$$};$d$jscomp$2_detail$$.tk_co=$d$jscomp$2_detail$$.tk_dt||$kho$$.tk_dt||$options$$.tk_dt;
9
9
  $d$jscomp$2_detail$$.ma_kh||($d$jscomp$2_detail$$.ma_kh=$obj$$.ma_kh);$d$jscomp$2_detail$$.tk_no=$obj$$.tk_no;$details$$.push($d$jscomp$2_detail$$)});$obj$$.details.forEach(function($d$jscomp$3_detail$$){$d$jscomp$3_detail$$={...$d$jscomp$3_detail$$};$d$jscomp$3_detail$$.tk_no=$d$jscomp$3_detail$$.tk_ck||$obj$$.tk_ck||$kho$$.tk_ck||$options$$.tk_ck;$d$jscomp$3_detail$$.ma_kh||($d$jscomp$3_detail$$.ma_kh=$obj$$.ma_kh);$d$jscomp$3_detail$$.tk_co=$obj$$.tk_no;$d$jscomp$3_detail$$.tien_nt=$d$jscomp$3_detail$$.tien_ck_nt;
10
10
  $d$jscomp$3_detail$$.tien=$d$jscomp$3_detail$$.tien_ck;$d$jscomp$3_detail$$.check_balance=!1;$details$$.push($d$jscomp$3_detail$$)});if($obj$$.tien_ck_hd){var $o_tt_tt$$={};$o_tt_tt$$.tk_no=$obj$$.tk_ck||$kho$$.tk_ck||$options$$.tk_ck;$o_tt_tt$$.tk_co=$obj$$.tk_no;$o_tt_tt$$.tien_nt=$obj$$.tien_ck_hd;$o_tt_tt$$.tien=$o_tt_tt$$.tien_nt;$o_tt_tt$$.ma_kh=$obj$$.ma_kh;$o_tt_tt$$.check_balance=!1;$details$$.push($o_tt_tt$$)}$obj$$.tien_hoa_hong&&($o_tt_tt$$={},$o_tt_tt$$.tk_no=$obj$$.tk_no_hoa_hong||$kho$$.tk_no_hoa_hong||
11
- $options$$.tk_no_hoa_hong,$o_tt_tt$$.tk_co=$obj$$.tk_co_hoa_hong||$kho$$.tk_co_hoa_hong||$options$$.tk_co_hoa_hong,$o_tt_tt$$.tien_nt=$obj$$.tien_hoa_hong,$o_tt_tt$$.tien=$o_tt_tt$$.tien_nt,$o_tt_tt$$.ma_kh=$obj$$.ma_kh_hoa_hong,$o_tt_tt$$.ma_nv=$obj$$.ma_nv,$o_tt_tt$$.check_balance=!1,$details$$.push($o_tt_tt$$));$o_tt_tt$$={...$obj$$};$o_tt_tt$$.tk_no=$obj$$.tk_no;$o_tt_tt$$.tk_co=$obj$$.tk_thue_co;$o_tt_tt$$.tien_nt=$obj$$.details.csum("tien_thue_nt");$o_tt_tt$$.tien=$obj$$.details.csum("tien_thue");
12
- $o_tt_tt$$.dien_giai_thue&&($o_tt_tt$$.dien_giai=$o_tt_tt$$.dien_giai_thue);$details$$.push($o_tt_tt$$);const $details_giavon$$=[];$obj$$.details.forEach(function($d$jscomp$4_detail$$){$d$jscomp$4_detail$$={...$d$jscomp$4_detail$$};$d$jscomp$4_detail$$.tk_no=$d$jscomp$4_detail$$.tk_gv;$d$jscomp$4_detail$$.ma_kh||($d$jscomp$4_detail$$.ma_kh=$obj$$.ma_kh);$d$jscomp$4_detail$$.tk_co=$d$jscomp$4_detail$$.tk_vt;$d$jscomp$4_detail$$.tien_nt=$d$jscomp$4_detail$$.tien_xuat_nt;$d$jscomp$4_detail$$.tien=$d$jscomp$4_detail$$.tien_xuat;
13
- $details_giavon$$.push($d$jscomp$4_detail$$);$d$jscomp$4_detail$$.promotion&&$d$jscomp$4_detail$$.promotion.details_km&&$d$jscomp$4_detail$$.promotion.details_km.forEach($detail$$=>{$detail$$.ma_vt&&($detail$$.tk_no=$detail$$.tk_gv,$detail$$.ma_kh||($detail$$.ma_kh=$obj$$.ma_kh),$detail$$.tk_co=$detail$$.tk_vt,$detail$$.tien_nt=$detail$$.tien_xuat_nt||0,$detail$$.tien=$detail$$.tien_xuat||0,$details_giavon$$.push($detail$$))})});$obj$$.promotion&&$obj$$.promotion.forEach(function($detail$$){$detail$$.ma_vt&&
11
+ $options$$.tk_no_hoa_hong,$o_tt_tt$$.tk_co=$obj$$.tk_co_hoa_hong||$kho$$.tk_co_hoa_hong||$options$$.tk_co_hoa_hong,$o_tt_tt$$.tien_nt=$obj$$.tien_hoa_hong,$o_tt_tt$$.tien=$o_tt_tt$$.tien_nt,$o_tt_tt$$.ma_kh=$obj$$.ma_kh_hoa_hong,$o_tt_tt$$.ma_nv=$obj$$.ma_nv,$o_tt_tt$$.check_balance=!1,$details$$.push($o_tt_tt$$));$o_tt_tt$$={...$obj$$};$o_tt_tt$$.tk_no=$obj$$.tk_no;$o_tt_tt$$.tk_co=$obj$$.tk_thue_co;$o_tt_tt$$.tien_nt=$obj$$.tien_thue_dc_nt||$obj$$.details.csum("tien_thue_nt");$o_tt_tt$$.tien=$o_tt_tt$$.tien_nt*
12
+ $o_tt_tt$$.ty_gia;$o_tt_tt$$.dien_giai_thue&&($o_tt_tt$$.dien_giai=$o_tt_tt$$.dien_giai_thue);$details$$.push($o_tt_tt$$);const $details_giavon$$=[];$obj$$.details.forEach(function($d$jscomp$4_detail$$){$d$jscomp$4_detail$$={...$d$jscomp$4_detail$$};$d$jscomp$4_detail$$.tk_no=$d$jscomp$4_detail$$.tk_gv;$d$jscomp$4_detail$$.ma_kh||($d$jscomp$4_detail$$.ma_kh=$obj$$.ma_kh);$d$jscomp$4_detail$$.tk_co=$d$jscomp$4_detail$$.tk_vt;$d$jscomp$4_detail$$.tien_nt=$d$jscomp$4_detail$$.tien_xuat_nt;$d$jscomp$4_detail$$.tien=
13
+ $d$jscomp$4_detail$$.tien_xuat;$details_giavon$$.push($d$jscomp$4_detail$$);$d$jscomp$4_detail$$.promotion&&$d$jscomp$4_detail$$.promotion.details_km&&$d$jscomp$4_detail$$.promotion.details_km.forEach($detail$$=>{$detail$$.ma_vt&&($detail$$.tk_no=$detail$$.tk_gv,$detail$$.ma_kh||($detail$$.ma_kh=$obj$$.ma_kh),$detail$$.tk_co=$detail$$.tk_vt,$detail$$.tien_nt=$detail$$.tien_xuat_nt||0,$detail$$.tien=$detail$$.tien_xuat||0,$details_giavon$$.push($detail$$))})});$obj$$.promotion&&$obj$$.promotion.forEach(function($detail$$){$detail$$.ma_vt&&
14
14
  ($detail$$.tk_no=$detail$$.tk_gv,$detail$$.ma_kh||($detail$$.ma_kh=$obj$$.ma_kh),$detail$$.tk_co=$detail$$.tk_vt,$detail$$.tien_nt=$detail$$.tien_xuat_nt||0,$detail$$.tien=$detail$$.tien_xuat||0,$details_giavon$$.push($detail$$))});async.parallel({xdtk:$callback$$=>{$details_giavon$$.joinModel2($obj$$.id_app,dmvt,{where:"ma_vt",fields:["tk_vt","gia_mua","tk_gv"]},()=>{$details_giavon$$.forEach($s$$=>{$s$$.tk_co||($s$$.tk_co=$s$$.tk_vt||$options$$.tk_vt);$s$$.tk_no||($s$$.tk_no=$s$$.tk_gv||$options$$.tk_gv)});
15
15
  $callback$$()})}},()=>{$details$$=$details$$.concat($details_giavon$$);(new PostSocai($obj$$,$details$$)).run(function($e$$,$rs$$){$callback$jscomp$0$$($e$$,$rs$$)})})},post_tdttno:function($callback$jscomp$0$$){account.findOne({tk:$obj$$.tk_no,id_app:$obj$$.id_app},{tk_cn:1},function($error$jscomp$0$$,$tk$$){if($error$jscomp$0$$)return $callback$jscomp$0$$($error$jscomp$0$$);$tk$$&&!0===$tk$$.tk_cn?(new PostBook($obj$$,[{...$obj$$}],Tdttno,function($detail$$,$callback$$){try{$detail$$.so_hd||($detail$$.so_hd=
16
- $obj$$.so_ct),$detail$$.ngay_hd||($detail$$.ngay_hd=$obj$$.ngay_ct),$detail$$.tien_nt=$obj$$.details.csum("tien_nt")-$obj$$.details.csum("tien_ck_nt")+$obj$$.details.csum("tien_thue_nt"),$detail$$.tien=$obj$$.details.csum("tien")-$obj$$.details.csum("tien_ck")+$obj$$.details.csum("tien_thue")}catch($e$$){console.error($e$$,$obj$$)}$callback$$($detail$$)})).run(function($e$$,$rs$$){$callback$jscomp$0$$($e$$,$rs$$)}):Tdttno.deleteMany({id_ct:$obj$$._id},function($error$$){$callback$jscomp$0$$($error$$)})})}},
17
- function($e$$,$rs$$){$fn$$($e$$,$rs$$)})};const $valid$$=function($i_t_thue_nt_user$$,$obj$$,$next$$){for($i_t_thue_nt_user$$=0;$i_t_thue_nt_user$$<$obj$$.details.length;$i_t_thue_nt_user$$++)$detail$jscomp$0$$=$obj$$.details[$i_t_thue_nt_user$$],$obj$$.ma_kho&&($detail$jscomp$0$$.ma_kho=$obj$$.ma_kho),$detail$jscomp$0$$.line=$i_t_thue_nt_user$$,"VND"===$obj$$.ma_nt&&($detail$jscomp$0$$.tien=$detail$jscomp$0$$.tien_nt,$detail$jscomp$0$$.gia_ban=$detail$jscomp$0$$.gia_ban_nt,$detail$jscomp$0$$.tien_ck=
18
- $detail$jscomp$0$$.tien_ck_nt),$detail$jscomp$0$$.tien_xuat=$detail$jscomp$0$$.tien_xuat_nt,$detail$jscomp$0$$.tien_ck=$detail$jscomp$0$$.tien_ck||0,$detail$jscomp$0$$.tien_ck_nt=$detail$jscomp$0$$.tien_ck_nt||0;$obj$$.thue_suat=$obj$$.thue_suat||0;let $f_tien_nt$$="VND"==$obj$$.ma_nt?0:2;$obj$$.details.forEach($detail$$=>{$detail$$.tien_thue=utils.round(($detail$$.tien-$detail$$.tien_ck)*$obj$$.thue_suat/100,0);$detail$$.tien_thue_nt=utils.round(($detail$$.tien_nt-$detail$$.tien_ck_nt)*$obj$$.thue_suat/
19
- 100,$f_tien_nt$$)});$obj$$.t_thue_nt=utils.round(($obj$$.details.csum("tien_nt")-$obj$$.details.csum("tien_ck_nt"))*$obj$$.thue_suat/100,$f_tien_nt$$);$obj$$.t_thue=utils.round($obj$$.t_thue_nt*($obj$$.ty_gia||1),0);$i_t_thue_nt_user$$=$obj$$.details.csum("tien_thue_nt");var $detail$jscomp$0$$=$obj$$.details.csum("tien_thue");if(($i_t_thue_nt_user$$!==$obj$$.t_thue_nt||$detail$jscomp$0$$!==$obj$$.t_thue)&&0<$obj$$.details.length){let $row_dieu_chinh$$=$obj$$.details[$obj$$.details.length-1];$row_dieu_chinh$$.tien_thue_nt+=
16
+ $obj$$.so_ct),$detail$$.ngay_hd||($detail$$.ngay_hd=$obj$$.ngay_ct),$detail$$.tien_nt=$obj$$.details.csum("tien_nt")-$obj$$.details.csum("tien_ck_nt")+($obj$$.tien_thue_dc_nt||$obj$$.details.csum("tien_thue_nt")),$detail$$.tien=$detail$$.tien_nt*$obj$$.ty_gia}catch($e$$){console.error($e$$,$obj$$)}$callback$$($detail$$)})).run(function($e$$,$rs$$){$callback$jscomp$0$$($e$$,$rs$$)}):Tdttno.deleteMany({id_ct:$obj$$._id},function($error$$){$callback$jscomp$0$$($error$$)})})}},function($e$$,$rs$$){$fn$$($e$$,
17
+ $rs$$)})};const $valid$$=function($i_t_thue_nt_user$$,$obj$$,$next$$){for($i_t_thue_nt_user$$=0;$i_t_thue_nt_user$$<$obj$$.details.length;$i_t_thue_nt_user$$++)$detail$jscomp$0$$=$obj$$.details[$i_t_thue_nt_user$$],$obj$$.ma_kho&&($detail$jscomp$0$$.ma_kho=$obj$$.ma_kho),$detail$jscomp$0$$.line=$i_t_thue_nt_user$$,"VND"===$obj$$.ma_nt&&($detail$jscomp$0$$.tien=$detail$jscomp$0$$.tien_nt,$detail$jscomp$0$$.gia_ban=$detail$jscomp$0$$.gia_ban_nt,$detail$jscomp$0$$.tien_ck=$detail$jscomp$0$$.tien_ck_nt),
18
+ $detail$jscomp$0$$.tien_xuat=$detail$jscomp$0$$.tien_xuat_nt,$detail$jscomp$0$$.tien_ck=$detail$jscomp$0$$.tien_ck||0,$detail$jscomp$0$$.tien_ck_nt=$detail$jscomp$0$$.tien_ck_nt||0;$obj$$.thue_suat=$obj$$.thue_suat||0;let $f_tien_nt$$="VND"==$obj$$.ma_nt?0:2;$obj$$.details.forEach($detail$$=>{$detail$$.tien_thue=utils.round(($detail$$.tien-$detail$$.tien_ck)*$obj$$.thue_suat/100,0);$detail$$.tien_thue_nt=utils.round(($detail$$.tien_nt-$detail$$.tien_ck_nt)*$obj$$.thue_suat/100,$f_tien_nt$$)});$obj$$.t_thue_nt=
19
+ $obj$$.tien_thue_dc_nt||utils.round(($obj$$.details.csum("tien_nt")-$obj$$.details.csum("tien_ck_nt"))*$obj$$.thue_suat/100,$f_tien_nt$$);$obj$$.t_thue=utils.round($obj$$.t_thue_nt*($obj$$.ty_gia||1),0);$i_t_thue_nt_user$$=$obj$$.details.csum("tien_thue_nt");var $detail$jscomp$0$$=$obj$$.details.csum("tien_thue");if(($i_t_thue_nt_user$$!==$obj$$.t_thue_nt||$detail$jscomp$0$$!==$obj$$.t_thue)&&0<$obj$$.details.length){let $row_dieu_chinh$$=$obj$$.details[$obj$$.details.length-1];$row_dieu_chinh$$.tien_thue_nt+=
20
20
  $obj$$.t_thue_nt-$i_t_thue_nt_user$$;$row_dieu_chinh$$.tien_thue+=$obj$$.t_thue-$detail$jscomp$0$$}$obj$$.id_contract?salecontract.findOne({_id:$obj$$.id_contract}).lean().exec(($e$$,$c$$)=>{$c$$&&($obj$$.ma_hd=$c$$.ma_hd);$next$$(null,$obj$$)}):$next$$(null,$obj$$)};$contr_router$$.creating=function($user$$,$obj$$,$next$$){$obj$$.details||($obj$$.details=[]);$valid$$($user$$,$obj$$,function($error$$){if($error$$)return $next$$($error$$);$obj$$.result_export_einvoice=null;$next$$(null,$obj$$)})};
21
21
  $contr_router$$.updating=function($user$$,$data$$,$obj$$,$next$$){Tdttno_tt.findOne({id_hd:$obj$$._id},function($error$jscomp$0$$,$ct_tt$$){if($error$jscomp$0$$)return $next$$($error$jscomp$0$$);$ct_tt$$?$next$$(`Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt phi\u1ebfu n\u00e0y do \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n b\u1edfi ${$ct_tt$$.ma_ct||"ch\u1ee9ng t\u1eeb"}: ${$ct_tt$$.so_ct}, ng\u00e0y ${Moment($ct_tt$$.ngay_ct).format("DD/MM/YYYY")}`):$valid$$($user$$,$data$$,function($error$$){if($error$$)return $next$$($error$$);
22
22
  $next$$(null,$data$$,$obj$$)})})};$contr_router$$.deleting=function($user$$,$obj$$,$next$$){Tdttno_tt.findOne({id_hd:$obj$$._id},function($error$$,$ct_tt$$){if($error$$)return $next$$($error$$);$ct_tt$$?$next$$(`Kh\u00f4ng th\u1ec3 xo\u00e1 phi\u1ebfu n\u00e0y do \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n b\u1edfi ${$ct_tt$$.ma_ct||"ch\u1ee9ng t\u1eeb"}: ${$ct_tt$$.so_ct}, ng\u00e0y ${Moment($ct_tt$$.ngay_ct).format("DD/MM/YYYY")}`):$next$$(null,$obj$$)})};$contr_router$$.view=function($user$$,
@@ -2,10 +2,10 @@
2
2
  async=require("async"),lenhcapphat=global.getModel("lenhcapphat"),ma_ct="LENHSX";
3
3
  module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,ma_ct.toLowerCase(),{isVoucher:!0,check_stock:!1,sort:{ngay_ct:-1,so_ct:-1}});$contr_router$$.route();const $valid$$=function($user$$,$obj$$,$next$$){$next$$(null,$obj$$)};$contr_router$$.creating=function($user$$,$obj$$,$next$$){$obj$$.details||($obj$$.details=[]);$valid$$($user$$,$obj$$,function($error$$){if($error$$)return $next$$($error$$);$next$$(null,$obj$$)})};$contr_router$$.created=function($user$$,
4
4
  $obj$$,$next$$){$next$$(null,$obj$$)};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$next$$){$valid$$($user$$,$data$$,function($error$$){if($error$$)return $next$$($error$$);$next$$(null,$data$$,$obj$$)})};$contr_router$$.updated=function($user$$,$obj$$,$next$$){$next$$(null,$obj$$)};$contr_router$$.deleting=function($user$$,$obj$$,$next$$){$next$$(null,$obj$$)};$contr_router$$.post=function($obj$$,$fn$$){$fn$$||($fn$$=function(){});async.parallel({post_sosanxuat:function($callback$jscomp$0$$){let $details$$=
5
- [];($obj$$.details||[]).forEach($detail$$=>{let $_detail$$={...$detail$$};($_detail$$.cong_doan_sx||[]).forEach($congdoan$$=>{$details$$.push({...$_detail$$,...$congdoan$$,id_lenhsx:$obj$$._id.toString()})})});(new PostBook($obj$$,$details$$,Sosanxuat,function($detail$$,$callback$$){$callback$$($detail$$)})).run(function($e$$,$rs$$){$callback$jscomp$0$$($e$$,$rs$$)})}},function($e$$,$rs$$){$fn$$($e$$,$rs$$)})};$contr_router$$.view=function($user$$,$items$$,$fn$$){let $id_app$$=$user$$.current_id_app;
6
- async.parallel({dv:function($callback$$){$items$$.joinModel2($id_app$$,dvcs,[{where:$item$$=>({_id:$item$$.ma_dvcs}),fields:["ten_dvcs"]}],function(){$callback$$()})},cust:function($callback$$){$items$$.filter($i$$=>$i$$.ma_kh).joinModel2($id_app$$,customer,[{where:$item$$=>({ma_kh:$item$$.ma_kh}),fields:["ten_kh"]}],function(){$callback$$()})},dt:function($callback$$){$items$$.filter($i$$=>$i$$.ma_dt).joinModel2($id_app$$,dmdt,[{where:$item$$=>({ma_dt:$item$$.ma_dt}),fields:["ma_dt"]}],function(){$callback$$()})},
7
- trangthai:function($callback$$){$items$$.joinModel2(null,trangthai,[{where:$item$$=>({ma_trang_thai:$item$$.trang_thai,ma_ct:$item$$.ma_ct}),fields:["ten_trang_thai","color"]}],function(){$callback$$()})},t_tien:function($callback$$){$items$$.forEach($r$$=>{$r$$.t_sl=($r$$.details||[]).map($d$$=>$d$$.sl_sx||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)});$callback$$()},details_vt:function($callback$$){async.each($items$$,function($r$$,$callback1$$){($r$$.details||[]).joinModel2($id_app$$,dmvt,[{where:{ma_sp:"ma_vt"},
8
- fields:[{ten_sp:"ten_vt"},{tk_vt:"tk_vt"}]}],function(){$callback1$$()})},function(){$callback$$()})},sale_contract:function($callback$$){$items$$.filter($i$$=>$i$$.id_contract).joinModel2($id_app$$,sale_contract,{where:{id_contract:"_id"},fields:{so_ct_contract:"so_ct"}},function(){$callback$$()})},capphat:function($callback$$){$items$$.joinModel2($id_app$$,lenhcapphat,{where:{_id:"id_lenhsx"},fields:{id_lenhcapphat:"_id"}},function(){$callback$$()})},dinhmucsx:function($callback$$){async.each($items$$,
5
+ [];($obj$$.details||[]).forEach($detail$$=>{let $_detail$$={...$detail$$};delete $_detail$$.sl_ht;($_detail$$.cong_doan_sx||[]).forEach($congdoan$$=>{$details$$.push({...$_detail$$,...$congdoan$$,id_lenhsx:$obj$$._id.toString()})})});(new PostBook($obj$$,$details$$,Sosanxuat,function($detail$$,$callback$$){$callback$$($detail$$)})).run(function($e$$,$rs$$){$callback$jscomp$0$$($e$$,$rs$$)})}},function($e$$,$rs$$){$fn$$($e$$,$rs$$)})};$contr_router$$.view=function($user$$,$items$$,$fn$$){let $id_app$$=
6
+ $user$$.current_id_app;async.parallel({dv:function($callback$$){$items$$.joinModel2($id_app$$,dvcs,[{where:$item$$=>({_id:$item$$.ma_dvcs}),fields:["ten_dvcs"]}],function(){$callback$$()})},cust:function($callback$$){$items$$.filter($i$$=>$i$$.ma_kh).joinModel2($id_app$$,customer,[{where:$item$$=>({ma_kh:$item$$.ma_kh}),fields:["ten_kh"]}],function(){$callback$$()})},dt:function($callback$$){$items$$.filter($i$$=>$i$$.ma_dt).joinModel2($id_app$$,dmdt,[{where:$item$$=>({ma_dt:$item$$.ma_dt}),fields:["ma_dt"]}],
7
+ function(){$callback$$()})},trangthai:function($callback$$){$items$$.joinModel2(null,trangthai,[{where:$item$$=>({ma_trang_thai:$item$$.trang_thai,ma_ct:$item$$.ma_ct}),fields:["ten_trang_thai","color"]}],function(){$callback$$()})},t_tien:function($callback$$){$items$$.forEach($r$$=>{$r$$.t_sl=($r$$.details||[]).map($d$$=>$d$$.sl_sx||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0)});$callback$$()},details_vt:function($callback$$){async.each($items$$,function($r$$,$callback1$$){($r$$.details||[]).joinModel2($id_app$$,
8
+ dmvt,[{where:{ma_sp:"ma_vt"},fields:[{ten_sp:"ten_vt"},{tk_vt:"tk_vt"}]}],function(){$callback1$$()})},function(){$callback$$()})},sale_contract:function($callback$$){$items$$.filter($i$$=>$i$$.id_contract).joinModel2($id_app$$,sale_contract,{where:{id_contract:"_id"},fields:{so_ct_contract:"so_ct"}},function(){$callback$$()})},capphat:function($callback$$){$items$$.joinModel2($id_app$$,lenhcapphat,{where:{_id:"id_lenhsx"},fields:{id_lenhcapphat:"_id"}},function(){$callback$$()})},dinhmucsx:function($callback$$){async.each($items$$,
9
9
  function($r$$,$callback1$$){($r$$.details||[]).filter($i$$=>$i$$.id_dinhmucsx).joinModel2($id_app$$,dinhmucsx,{where:{id_dinhmucsx:"_id"},fields:{so_ct_dinhmucsx:"so_ct"}},function(){$callback1$$()})},function(){$callback$$()})},congdoansx:function($callback$jscomp$2$$){async.each($items$$,function($r$$,$callback$jscomp$1$$){const $id_app$$=$r$$.id_app,$id_lenhsx$$=$r$$._id.toString();async.map($r$$.details||[],($detail$$,$callback$jscomp$0$$)=>{const $cong_doan_sx$$=$detail$$.cong_doan_sx||[],$ma_sp$$=
10
10
  $detail$$.ma_sp;async.parallel({cd:$callback$$=>{$cong_doan_sx$$.joinModel2(null,trangthai,{where:$item$$=>({ma_trang_thai:$item$$.trang_thai,ma_ct:"CONGDOANSX"}),fields:["ten_trang_thai","color"]},function(){$callback$$()})},tt:$callback$$=>{$cong_doan_sx$$.joinModel2($id_app$$,congdoansx,{where:{ma_cong_doan:"ma_cong_doan"},fields:["ten_cong_doan"]},function(){$callback$$()})},bp:$callback$$=>{$cong_doan_sx$$.joinModel2($id_app$$,dmbp,{where:{ma_bp:"ma_bp"},fields:{ten_bp:"ten_bp"}},function(){$callback$$()})},
11
11
  ht:$callback$$=>{const $tinh_sl_ht$$=$cong_doan_sx$$.map($cong_doan$$=>new Promise($resolve$$=>{Sosanxuat.find({id_app:$id_app$$,id_lenhsx:$id_lenhsx$$,ma_sp:$ma_sp$$,ma_cong_doan:$cong_doan$$.ma_cong_doan}).lean().exec(($e$$,$rs$$)=>{$e$$&&console.error($e$$);$cong_doan$$.sl_ht=$rs$$.map($s$$=>$s$$.sl_ht||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$resolve$$()})}));Promise.all($tinh_sl_ht$$).then(()=>{$detail$$.sl_ht=$cong_doan_sx$$.filter($c$$=>$c$$.cong_doan_cuoi).map($c$$=>$c$$.sl_ht).reduce(($a$$,$b$$)=>