flexbiz-server 12.3.32 → 12.3.33
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.
- package/package.json +1 -1
- package/server/controllers/controller.js +7 -7
- package/server/controllers/controllerUtils.js +7 -7
- package/server/controllers/updateHandler.js +31 -30
- package/server/libs/post-socai.js +22 -22
- package/server/libs/utils.js +3 -3
- package/server/models/approve.js +12 -10
- package/server/models/listinfo.js +4 -4
- package/server/models/tdttco.js +4 -4
- package/server/models/tdttno.js +4 -4
- package/server/modules/reports/rp-getinvoice2pay.js +2 -2
- package/server/modules/reports/rp-getinvoice2receive.js +2 -2
package/package.json
CHANGED
|
@@ -16,13 +16,13 @@ try{const $_req$$={handler:"createRouteHandler",routeName:$routeName$$,_options:
|
|
|
16
16
|
$response$$.error.message||$response$$.error,message:$response$$.message||$response$$.error.error||$response$$.error.message||$response$$.error});$res$$.send($response$$.result)}):handlers.createRouteHandler($self$$,$_req$$,($e$$,$rs$$)=>{if($e$$)return $res$$.status(400).send($e$$);$res$$.send($rs$$)})}catch($e$$){$res$$.status(400).send($e$$)}};let $url$$=`${this.route_name}/${$routeName$$}`,$router$$=this.router;"DELETE"==$_options$$.method?$router$$.route($url$$).delete($handler_routeAction$$):
|
|
17
17
|
"POST"==$_options$$.method?$router$$.route($url$$).post($handler_routeAction$$):"PUT"==$_options$$.method?$router$$.route($url$$).put($handler_routeAction$$):$router$$.route($url$$).get($handler_routeAction$$)}async requestApprove($app_info_listinfo_code$$,$user_request$$,$obj_request$$,$next$$,$voucher_options$$,$preRequest$$){let $ctrl$$=this;if(!$app_info_listinfo_code$$)return $next$$(null,$obj_request$$);let $obj$$;$obj$$=$obj_request$$.toObject?utils.convertObjectIdsToStrings($obj_request$$.toObject()):
|
|
18
18
|
_.cloneDeep($obj_request$$);$obj$$.ma_ct=$obj$$.ma_ct||$ctrl$$.name;let $approveDatas$$=[];$app_info_listinfo_code$$=$obj$$.listinfo_code||$ctrl$$.name;$voucher_options$$||($voucher_options$$=(await OptionsModel.findOne({id_app:$obj$$.id_app,id_func:$app_info_listinfo_code$$},{option:1}).lean()||{}).option);$voucher_options$$&&$voucher_options$$.custom_approve_user&&$voucher_options$$.custom_approve_user.forEach($trang_thai_approve$$=>{let $update_after_approve$$,$update_after_deny$$;if($trang_thai_approve$$.update_after_approve)try{let $str_func$$=
|
|
19
|
-
$trang_thai_approve$$.update_after_approve;0>$str_func$$.indexOf("return ")&&($str_func$$=`return ${$str_func$$}`);$update_after_approve$$=evalute($str_func$$)}catch($e$$){console.error("request approve",$e$$,$trang_thai_approve$$.update_after_approve),$update_after_approve$$={}}else $update_after_approve$$={};$trang_thai_approve$$.update_after_approve={module:$ctrl$$.name,data:{trang_thai:$trang_thai_approve$$.trang_thai2
|
|
20
|
-
$trang_thai_approve$$.update_after_deny;0>$str_func$$.indexOf("return ")&&($str_func$$=`return ${$str_func$$}`);$update_after_deny$$=evalute($str_func$$)}catch($e$$){console.error("request approve",$e$$)}if($update_after_deny$$||$trang_thai_approve$$.trang_thai3)$trang_thai_approve$$.update_after_deny={module:$ctrl$$.name,data:{trang_thai:$trang_thai_approve$$.trang_thai3,...(($update_after_deny$$||
|
|
21
|
-
{$approveData_condition$$=$approveData_condition$$.condition;if(!$approveData_condition$$)return!0;0>$approveData_condition$$.indexOf("return ")&&($approveData_condition$$=`return ${$approveData_condition$$}`);try{return evalute($approveData_condition$$,{master:$obj$$,data:$obj$$})}catch($e$$){return console.error("check condition approve",$e$$,$approveData_condition$$),!1}})
|
|
22
|
-
{setImmediate(async()=>{let $title$$=$approveData$$.title||"Y\u00eau c\u1ea7u duy\u1ec7t";if(0<=$title$$.indexOf("return ")){var $ds_nguoi_duyet_str_func$$=$title$$;try{$title$$=evalute($ds_nguoi_duyet_str_func$$,{master:$obj$$,data:$obj$$})}catch($e$$){console.error("request approve",$e$$,$ds_nguoi_duyet_str_func$$)}}$ds_nguoi_duyet_str_func$$=$approveData$$.approve_users;
|
|
23
|
-
$ds_nguoi_duyet_str_func$$;0>$bp_nv_str_func$$.indexOf("return ")&&($bp_nv_str_func$$=`return ${$bp_nv_str_func$$}`);$ds_nguoi_duyet_str_func$$=evalute($bp_nv_str_func$$,{master:$obj$$,data:$obj$$,preRequest:$preRequest$$});if(!_.isArray($ds_nguoi_duyet_str_func$$)){console.error("danh s\u00e1ch ng\u01b0\u1eddi duy\u1ec7t ph\u1ea3i l\u00e0 m\u1ed9t m\u1ea3ng, hi\u1ec7n t\u1ea1i \u0111ang l\u00e0"
|
|
24
|
-
return}$approveData$$.approve_phu_trach_bp&&$obj$$.ma_nv&&($bp_nv_str_func$$=await global.getModel("dmnv").findOne({id_app:$obj$$.id_app,ma_nv:$obj$$.ma_nv},{ma_bp:1}).lean(),$bp_nv_str_func$$?.ma_bp&&($bp_nv_str_func$$=await global.getModel("dmbp").findOne({id_app:$obj$$.id_app,ma_bp:$bp_nv_str_func$$?.ma_bp},{phu_trach:1}).lean(),$bp_nv_str_func$$?.phu_trach&&$ds_nguoi_duyet_str_func$$.push($bp_nv_str_func$$?.phu_trach)));
|
|
25
|
-
0>$str_func$$.indexOf("return ")&&($str_func$$=`return ${$str_func$$}`);let $ds_nguoi_duyet_custom$$=await evalute(`return (async ()=>{
|
|
19
|
+
$trang_thai_approve$$.update_after_approve;0>$str_func$$.indexOf("return ")&&($str_func$$=`return ${$str_func$$}`);$update_after_approve$$=evalute($str_func$$)}catch($e$$){console.error("request approve",$e$$,$trang_thai_approve$$.update_after_approve),$update_after_approve$$={}}else $update_after_approve$$={};$trang_thai_approve$$.update_after_approve={module:$ctrl$$.name,cho_phep_cap_nhat_khi_da_duyet:$trang_thai_approve$$.cho_phep_cap_nhat_khi_da_duyet,data:{trang_thai:$trang_thai_approve$$.trang_thai2,
|
|
20
|
+
...($update_after_approve$$.data||{})}};if($trang_thai_approve$$.update_after_deny)try{let $str_func$$=$trang_thai_approve$$.update_after_deny;0>$str_func$$.indexOf("return ")&&($str_func$$=`return ${$str_func$$}`);$update_after_deny$$=evalute($str_func$$)}catch($e$$){console.error("request approve",$e$$)}if($update_after_deny$$||$trang_thai_approve$$.trang_thai3)$trang_thai_approve$$.update_after_deny={module:$ctrl$$.name,data:{trang_thai:$trang_thai_approve$$.trang_thai3,...(($update_after_deny$$||
|
|
21
|
+
{}).data||{})}};$approveDatas$$.push($trang_thai_approve$$)});$approveDatas$$=$approveDatas$$.filter($approveData_condition$$=>{$approveData_condition$$=$approveData_condition$$.condition;if(!$approveData_condition$$)return!0;0>$approveData_condition$$.indexOf("return ")&&($approveData_condition$$=`return ${$approveData_condition$$}`);try{return evalute($approveData_condition$$,{master:$obj$$,data:$obj$$})}catch($e$$){return console.error("check condition approve",$e$$,$approveData_condition$$),!1}});
|
|
22
|
+
$approveDatas$$.filter($a$$=>$a$$.approve_users||$a$$.approve_users_custom||$a$$.approve_phu_trach_bp).forEach($approveData$$=>{setImmediate(async()=>{let $title$$=$approveData$$.title||"Y\u00eau c\u1ea7u duy\u1ec7t";if(0<=$title$$.indexOf("return ")){var $ds_nguoi_duyet_str_func$$=$title$$;try{$title$$=evalute($ds_nguoi_duyet_str_func$$,{master:$obj$$,data:$obj$$})}catch($e$$){console.error("request approve",$e$$,$ds_nguoi_duyet_str_func$$)}}$ds_nguoi_duyet_str_func$$=$approveData$$.approve_users;
|
|
23
|
+
let $update_after_approve$$=$approveData$$.update_after_approve,$update_after_deny$$=$approveData$$.update_after_deny;if(_.isString($ds_nguoi_duyet_str_func$$))try{var $bp_nv_str_func$$=$ds_nguoi_duyet_str_func$$;0>$bp_nv_str_func$$.indexOf("return ")&&($bp_nv_str_func$$=`return ${$bp_nv_str_func$$}`);$ds_nguoi_duyet_str_func$$=evalute($bp_nv_str_func$$,{master:$obj$$,data:$obj$$,preRequest:$preRequest$$});if(!_.isArray($ds_nguoi_duyet_str_func$$)){console.error("danh s\u00e1ch ng\u01b0\u1eddi duy\u1ec7t ph\u1ea3i l\u00e0 m\u1ed9t m\u1ea3ng, hi\u1ec7n t\u1ea1i \u0111ang l\u00e0",
|
|
24
|
+
$ds_nguoi_duyet_str_func$$);return}}catch($e$$){console.error("request approve",$e$$,$ds_nguoi_duyet_str_func$$);return}$approveData$$.approve_phu_trach_bp&&$obj$$.ma_nv&&($bp_nv_str_func$$=await global.getModel("dmnv").findOne({id_app:$obj$$.id_app,ma_nv:$obj$$.ma_nv},{ma_bp:1}).lean(),$bp_nv_str_func$$?.ma_bp&&($bp_nv_str_func$$=await global.getModel("dmbp").findOne({id_app:$obj$$.id_app,ma_bp:$bp_nv_str_func$$?.ma_bp},{phu_trach:1}).lean(),$bp_nv_str_func$$?.phu_trach&&$ds_nguoi_duyet_str_func$$.push($bp_nv_str_func$$?.phu_trach)));
|
|
25
|
+
if($approveData$$.approve_users_custom)try{let $str_func$$=$approveData$$.approve_users_custom;0>$str_func$$.indexOf("return ")&&($str_func$$=`return ${$str_func$$}`);let $ds_nguoi_duyet_custom$$=await evalute(`return (async ()=>{
|
|
26
26
|
try{
|
|
27
27
|
${$str_func$$}
|
|
28
28
|
}catch(e){
|
|
@@ -13,15 +13,15 @@ const getData=($id_app$$,$collection$$,$field$$,$condition$$)=>{if("token"===$co
|
|
|
13
13
|
sip_uri:0,sip_password:0,sip_websocket:0,voiip_access_token:0,voiip_webhook:0,wallet_address:0,wallet_token:0,owner:0,default_password:0,email_host:0,email_port:0,email_secure:0,email_authMethod:0,email_user:0,email_pass:0,email_name:0,exfields:0,ssl_key:0,ssl_cert:0,ssl_ca:0});return $col$$.findOne($condition$$,$fields$$).lean().exec()}throw`Error get data: Collection ${$collection$$} is not exists`;},isExists=function($model$$,$unique$$,$obj$$,$replaceIfExists$$,$fn$$){if(!$unique$$||0===$unique$$.length)return $fn$$(null,
|
|
14
14
|
!1);let $condition$$={};$unique$$=$unique$$.filter($key$$=>$model$$.schema.paths[$key$$]);for(let $i$$=0;$i$$<$unique$$.length;$i$$++){let $key$$=$unique$$[$i$$],$v$$=$obj$$[$key$$];void 0!=$v$$&&$model$$.schema.paths[$key$$]&&(null!==$v$$?"number"==$model$$.schema.paths[$key$$].instance.toLowerCase()?$condition$$[$key$$]=Number($v$$):"date"==$model$$.schema.paths[$key$$].instance.toLowerCase()?$condition$$[$key$$]=new Date($v$$):"string"==$model$$.schema.paths[$key$$].instance.toLowerCase()?$condition$$[$key$$]=
|
|
15
15
|
$v$$.toString():$condition$$[$key$$]=$v$$:$condition$$[$key$$]=$v$$)}if($condition$$.id_app&&2>Object.values($condition$$).length||1>Object.values($condition$$).length)return $fn$$("D\u1eef li\u1ec7u kh\u00f4ng t\u1ed3n t\u1ea1i \u0111\u1ee7 c\u00e1c gi\u00e1 tr\u1ecb: "+$unique$$.join(","));$obj$$.id_app&&($condition$$.id_app=$obj$$.id_app);$replaceIfExists$$?$model$$.deleteMany($condition$$,$e$$=>{setImmediate(()=>{if($e$$)return $fn$$($e$$);$fn$$(null,!1)})}):$model$$.findOne($condition$$,{_id:1},
|
|
16
|
-
($error$$,$result$$)=>{setImmediate(()=>{if($error$$)return $fn$$($error$$);if(!$result$$)return $fn$$(null,!1);console.warn("object exists",$condition$$,"unique fields",$unique$$);$fn$$(null,!0)})})},postData=function($obj$$,$ctrl$$,$mainCallback$$,$options$$={}){const $post$$=$ctrl$$.dynamicPost||$ctrl$$.post;if(!$post$$)return $mainCallback$$();let $obj_created$$=$obj$$.toObject?utils.convertObjectIdsToStrings($obj$$.toObject()):{...$obj$$};
|
|
17
|
-
$obj_created$$[$key$$];$p$$&&($p$$.toObject&&($obj_created$$[$key$$]=utils.convertObjectIdsToStrings($p$$.toObject())),_.isArray($p$$)&&($obj_created$$[$key$$]=$p$$.map($el$$=>$el$$?$el$$.toObject?utils.convertObjectIdsToStrings($el$$.toObject()):$el$$:$el$$)))});$ctrl$$.beforePost||($ctrl$$.beforePost=function($obj_created$$,$callback$$){$callback$$(null,null)});$ctrl$$.beforePost($obj_created$$,function($e$jscomp$4$$){if($e$jscomp$4$$)return $mainCallback$$($e$jscomp$4$$);
|
|
18
|
-
$obj_created$$,async function($e$jscomp$2$$,$_obj$$,$oldBooks$$){if($e$jscomp$2$$)return $mainCallback$$($e$jscomp$2$$);let $oldDanamicBook$$={};const $callback$$=async($e$$,$rs$$)=>{if($e$$){for(let $key$$ in $oldBooks$$)0<$oldBooks$$[$key$$].length&&await global.getModel($key$$.toLowerCase()).insertMany($oldBooks$$[$key$$]);if($oldDanamicBook$$)for(let $key$$ in $oldDanamicBook$$)!$oldBooks$$[$key$$]&&0<$oldDanamicBook$$[$key$$].length&&await global.getModel($key$$.toLowerCase()).insertMany($oldDanamicBook$$[$key$$])}$mainCallback$$($e$$,
|
|
16
|
+
($error$$,$result$$)=>{setImmediate(()=>{if($error$$)return $fn$$($error$$);if(!$result$$)return $fn$$(null,!1);console.warn("object exists",$condition$$,"unique fields",$unique$$);$fn$$(null,!0)})})},postData=function($obj$$,$ctrl$$,$mainCallback$$,$options$$={}){const $post$$=$ctrl$$.dynamicPost||$ctrl$$.post;if(!$post$$)return $mainCallback$$();const $postOptions$$={...$ctrl$$.options,...$options$$};let $obj_created$$=$obj$$.toObject?utils.convertObjectIdsToStrings($obj$$.toObject()):{...$obj$$};
|
|
17
|
+
Object.keys($obj_created$$).forEach($key$$=>{let $p$$=$obj_created$$[$key$$];$p$$&&($p$$.toObject&&($obj_created$$[$key$$]=utils.convertObjectIdsToStrings($p$$.toObject())),_.isArray($p$$)&&($obj_created$$[$key$$]=$p$$.map($el$$=>$el$$?$el$$.toObject?utils.convertObjectIdsToStrings($el$$.toObject()):$el$$:$el$$)))});$ctrl$$.beforePost||($ctrl$$.beforePost=function($obj_created$$,$callback$$){$callback$$(null,null)});$ctrl$$.beforePost($obj_created$$,function($e$jscomp$4$$){if($e$jscomp$4$$)return $mainCallback$$($e$jscomp$4$$);
|
|
18
|
+
deletePost($obj_created$$.user_updated,$obj_created$$,async function($e$jscomp$2$$,$_obj$$,$oldBooks$$){if($e$jscomp$2$$)return $mainCallback$$($e$jscomp$2$$);let $oldDanamicBook$$={};const $callback$$=async($e$$,$rs$$)=>{if($e$$){for(let $key$$ in $oldBooks$$)0<$oldBooks$$[$key$$].length&&await global.getModel($key$$.toLowerCase()).insertMany($oldBooks$$[$key$$]);if($oldDanamicBook$$)for(let $key$$ in $oldDanamicBook$$)!$oldBooks$$[$key$$]&&0<$oldDanamicBook$$[$key$$].length&&await global.getModel($key$$.toLowerCase()).insertMany($oldDanamicBook$$[$key$$])}$mainCallback$$($e$$,
|
|
19
19
|
$rs$$)};if($ctrl$$.dynamicDeletePost)try{$oldDanamicBook$$=await $ctrl$$.dynamicDeletePost($obj_created$$)}catch($e$$){return $callback$$($e$$.message||$e$$.error||$e$$)}setImmediate(()=>{if($obj_created$$.trang_thai||0==$obj_created$$.trang_thai)$obj_created$$.trang_thai=$obj_created$$.trang_thai.toString();trangthai.findOne({ma_ct:($obj_created$$.ma_ct||"").toUpperCase(),ma_trang_thai:$obj_created$$.trang_thai},function($e$jscomp$1$$,$trang_thai$$){if($e$jscomp$1$$)return $callback$$($e$jscomp$1$$);
|
|
20
20
|
if($trang_thai$$&&!$trang_thai$$.post)return $callback$$();setImmediate(()=>{$post$$($obj_created$$,function($e$jscomp$0$$,$rs$$){setImmediate(()=>{if($e$jscomp$0$$){let $msg_error$$=$e$jscomp$0$$.message||$e$jscomp$0$$.error||$e$jscomp$0$$.toString();if(0<=$msg_error$$.indexOf("E11000 duplicate")&&(0<=$msg_error$$.indexOf("id_ct_1_nh_dk_1")||0<=$msg_error$$.indexOf("id_ct_1_line_1")))return $callback$$(null,$rs$$);console.error("error post data",$obj_created$$._id,$msg_error$$);deletePost($obj_created$$.user_updated,
|
|
21
|
-
$obj_created$$,async function($e_delete_post$$){if($e_delete_post$$)return console.error("error delete post",$e_delete_post$$),$callback$$($e_delete_post$$);console.error("deleted books because error post");if($ctrl$$.dynamicDeletePost)try{return await $ctrl$$.dynamicDeletePost($obj_created$$),$callback$$($e$jscomp$0$$.message||$e$jscomp$0$$.error||$e$jscomp$0$$)}catch($e$$){return console.error("dynamicDeletePost",$e$$.message||$e$$.error||$e$$),$callback$$($e$$)}else $callback$$($e$jscomp$0$$)})}else $callback$$(null,
|
|
22
|
-
$rs$$)})},{...$
|
|
23
|
-
`${$channel_id_func_old_trang_thai$$}-${$_obj$$.id_app}`);let $message$$=JSON.stringify($obj$jscomp$0$$);try{await global.clientRedis.publish($channel_id_func_old_trang_thai$$,$message$$)}catch($e$$){console.error("[controllerUtiles][pushNotification]",$e$$)}if($_obj$$.status){$options$$||($options$$={});var $exclude_token$$=$options$$.exclude_token,$trang_thai$$=($obj$jscomp$0$$.trang_thai||(0==$obj$jscomp$0$$.progress?"0":$obj$jscomp$0$$.progress)||"").toString();$old_obj
|
|
24
|
-
($channel_id_func_old_trang_thai$$=($old_obj$$.trang_thai||(0==$old_obj$$.progress?"0":$old_obj$$.progress)||"").toString(),$channel_id_func_old_trang_thai$$===$trang_thai$$&&($justFireEvents$$=!0));var $listinfos_notifications_setting_users_receive_notification_v_options$$;($channel_id_func_old_trang_thai$$=$obj$jscomp$0$$.listinfo_code)&&($listinfos_notifications_setting_users_receive_notification_v_options$$=await OptionsModel.find({id_app:$obj$jscomp$0$$.id_app,id_func:$channel_id_func_old_trang_thai$$,
|
|
21
|
+
$obj_created$$,async function($e_delete_post$$){if($e_delete_post$$)return console.error("error delete post",$e_delete_post$$),$callback$$($e_delete_post$$);console.error("deleted books because error post");if($ctrl$$.dynamicDeletePost)try{return await $ctrl$$.dynamicDeletePost($obj_created$$),$callback$$($e$jscomp$0$$.message||$e$jscomp$0$$.error||$e$jscomp$0$$)}catch($e$$){return console.error("[dynamicDeletePost]",$e$$.message||$e$$.error||$e$$),$callback$$($e$$)}else $callback$$($e$jscomp$0$$)})}else $callback$$(null,
|
|
22
|
+
$rs$$)})},{...$postOptions$$})})})})})})},pushNotification=($ctrl$$,$_obj$$,$eventName$$="new",$old_obj$$=null,$justFireEvents$$=!1,$options$$={title:"",data:{}})=>{let $obj$jscomp$0$$;$obj$jscomp$0$$=$_obj$$.toObject?utils.convertObjectIdsToStrings($_obj$$.toObject()):{...$_obj$$};$obj$jscomp$0$$._id&&($obj$jscomp$0$$._id=$obj$jscomp$0$$._id.toString());setImmediate(async()=>{var $channel_id_func_old_trang_thai$$=`${$ctrl$$.name.toLowerCase()}-${$eventName$$}`;$_obj$$.id_app&&($channel_id_func_old_trang_thai$$=
|
|
23
|
+
`${$channel_id_func_old_trang_thai$$}-${$_obj$$.id_app}`);let $message$$=JSON.stringify($obj$jscomp$0$$);try{await global.clientRedis.publish($channel_id_func_old_trang_thai$$,$message$$)}catch($e$$){console.error("[controllerUtiles][pushNotification] fire event",$eventName$$,$e$$)}if($_obj$$.status){$options$$||($options$$={});var $exclude_token$$=$options$$.exclude_token,$trang_thai$$=($obj$jscomp$0$$.trang_thai||(0==$obj$jscomp$0$$.progress?"0":$obj$jscomp$0$$.progress)||"").toString();$old_obj$$&&
|
|
24
|
+
!$justFireEvents$$&&($channel_id_func_old_trang_thai$$=($old_obj$$.trang_thai||(0==$old_obj$$.progress?"0":$old_obj$$.progress)||"").toString(),$channel_id_func_old_trang_thai$$===$trang_thai$$&&($justFireEvents$$=!0));var $listinfos_notifications_setting_users_receive_notification_v_options$$;($channel_id_func_old_trang_thai$$=$obj$jscomp$0$$.listinfo_code)&&($listinfos_notifications_setting_users_receive_notification_v_options$$=await OptionsModel.find({id_app:$obj$jscomp$0$$.id_app,id_func:$channel_id_func_old_trang_thai$$,
|
|
25
25
|
option:{$exists:!0}},{option:1}).lean());$channel_id_func_old_trang_thai$$&&0!=$listinfos_notifications_setting_users_receive_notification_v_options$$.length||($listinfos_notifications_setting_users_receive_notification_v_options$$=(await global.getModel("listinfo").find({api_code:$ctrl$$.name},{code:1}).lean()).map($a$$=>$a$$.code),$listinfos_notifications_setting_users_receive_notification_v_options$$.push($ctrl$$.name),$listinfos_notifications_setting_users_receive_notification_v_options$$=[...(new Set($listinfos_notifications_setting_users_receive_notification_v_options$$))],
|
|
26
26
|
$channel_id_func_old_trang_thai$$={$in:$listinfos_notifications_setting_users_receive_notification_v_options$$},$listinfos_notifications_setting_users_receive_notification_v_options$$=await OptionsModel.find({id_app:$obj$jscomp$0$$.id_app,id_func:$channel_id_func_old_trang_thai$$,option:{$exists:!0}},{option:1}).lean());$listinfos_notifications_setting_users_receive_notification_v_options$$=$listinfos_notifications_setting_users_receive_notification_v_options$$.filter($v$$=>$v$$.option&&$v$$.option.users_receive_notification).map($v$$=>
|
|
27
27
|
$v$$.option.users_receive_notification).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);0===$listinfos_notifications_setting_users_receive_notification_v_options$$.length&&($listinfos_notifications_setting_users_receive_notification_v_options$$=await Promise.all((($ctrl$$.options||{}).users_receive_notification_default||[]).map($n$$=>new Promise($resolve$$=>{setImmediate(async()=>{_.isFunction($n$$)?$resolve$$(await $n$$($obj$jscomp$0$$)):$resolve$$($n$$)})}))));$listinfos_notifications_setting_users_receive_notification_v_options$$&&
|
|
@@ -6,33 +6,34 @@ $e$$.error||$e$$)}}let $requireOtp$$=$ctrl$$.options.requireOtp;$requireOtp$$&&_
|
|
|
6
6
|
$model$$.schema.paths.so_ct&&$obj$$.ngay_ct&&$data$$.so_ct&&$obj$$.so_ct!==$data$$.so_ct&&$voucher_options$$?.check_so_ct&&"0"!==$voucher_options$$?.check_so_ct){let $query_check$$={id_app:$obj$$.id_app,so_ct:$data$$.so_ct,listinfo_code:$listinfo_code$$||$ctrl$$.name,_id:{$ne:$obj$$._id.toString()}},$tu_ngay$$;var $date_check_den_ngay$$=$data$$.ngay_ct||$obj$$.ngay_ct;switch($voucher_options$$.check_so_ct){case "1":$tu_ngay$$=moment($date_check_den_ngay$$).startOf("date").toDate();$date_check_den_ngay$$=
|
|
7
7
|
moment($date_check_den_ngay$$).endOf("date").toDate();$query_check$$.ngay_ct={$gte:$tu_ngay$$,$lte:$date_check_den_ngay$$};break;case "2":$tu_ngay$$=moment($date_check_den_ngay$$).startOf("month").toDate();$date_check_den_ngay$$=moment($date_check_den_ngay$$).endOf("month").toDate();$query_check$$.ngay_ct={$gte:$tu_ngay$$,$lte:$date_check_den_ngay$$};break;case "3":$tu_ngay$$=moment($date_check_den_ngay$$).startOf("quarter").toDate();$date_check_den_ngay$$=moment($date_check_den_ngay$$).endOf("quarter").toDate();
|
|
8
8
|
$query_check$$.ngay_ct={$gte:$tu_ngay$$,$lte:$date_check_den_ngay$$};break;case "8":$tu_ngay$$=moment($date_check_den_ngay$$).startOf("year").toDate(),$date_check_den_ngay$$=moment($date_check_den_ngay$$).startOf("year").toDate(),$query_check$$.ngay_ct={$gte:$tu_ngay$$,$lte:$date_check_den_ngay$$}}$model$$.findOne($query_check$$,{so_ct:1}).lean().exec(($e$$,$rs$$)=>{setImmediate(()=>{if($rs$$)return $callback$$("S\u1ed1 ch\u1ee9ng t\u1eeb "+$data$$.so_ct+" \u0111\u00e3 t\u1ed3n t\u1ea1i. H\u00e3y ch\u1ecdn m\u1ed9t s\u1ed1 ch\u1ee9ng t\u1eeb kh\u00e1c");
|
|
9
|
-
$callback$$(null,$obj$$)})})}else $callback$$(null,$obj$$)};async.waterfall([function($_callback$$){setImmediate(async function(){$data$$.trang_thai&&($data$$.trang_thai=$data$$.trang_thai.toString());if($data$$.trang_thai||$obj$jscomp$1$$.trang_thai){var $
|
|
10
|
-
void 0);return}}if($obj$jscomp$1$$.ngay_ct&&$obj$jscomp$1$$.id_app&&$obj$jscomp$1$$.schema&&$obj$jscomp$1$$.schema.validate&&$obj$jscomp$1$$.schema.validate.ngay_ct)try{await new Promise(($rs$$,$rj$$)=>{validator.unlockBook[0]($obj$jscomp$1$$.id_app
|
|
11
|
-
$obj$jscomp$1$$.exfields||{});$
|
|
12
|
-
async.parallel({old_data:$callback$$=>{permission.hasRight($user$$.current_id_app,$user$$.email,$module$$,$_action$$,function($error$$,$hr$$,$c_app$$){setImmediate(()=>{if($hr$$)$ctrl$$.checkData($c_app$$,{...$data$$,
|
|
13
|
-
|
|
14
|
-
$e$$=>{$_callback$$($e$$,$obj$$)})})},($obj$$,$_callback$$)=>{setImmediate(function(){let $current_trang_thai$$=$data$$.trang_thai||$obj$$.trang_thai,$current_so_ct$$=$data$$.so_ct
|
|
15
|
-
$current_so_ct$$.toUpperCase()!==($listinfo_code$$||$ctrl$$.name).toUpperCase()&&$current_so_ct$$.toUpperCase()!==$ctrl$$.name.toUpperCase())$checkSoCT$$($obj$$,$error$$=>{$_callback$$($error
|
|
16
|
-
{$error$$?99<=$count$$?$callbackWhilst$$($error$$):($count$$++,$callbackWhilst$$()):($count$$=99999,$callbackWhilst$$())})})},{...($obj$$.toObject?$obj$$.toObject():$obj$$),...$data$$})},
|
|
17
|
-
$
|
|
18
|
-
|
|
19
|
-
$_callback$$){setImmediate(function(){if($unique$$&&0!==$unique$$.length){var $c1$$={},$c2$$={};$obj$$.id_app&&($c1$$.id_app=$obj$$.id_app,$c2$$.id_app||($c2$$.id_app=$obj$$.id_app));$unique$$.forEach(function($key$$){$c1$$[$key$$]=$obj$$[$key$$]
|
|
20
|
-
$ctrl$$.model.schema.paths[$key$$].instance.toLowerCase()?$c2$$[$key$$]=($data$$[$key$$]||"").toString():$c2$$[$key$$]=$data$$[$key$$],$c2$$[$key$$]||($c2$$[$key$$]=$c1$$[$key$$])):console.error("field",$key$$," is not exist. please check unique of controller")})
|
|
21
|
-
$obj$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$_callback$$($msgError$$,void 0)},$current_obj$$);else $_callback$$($msgError$$,void 0)}else checkReference($model$$,$obj$$,function($error$$){setImmediate(()=>
|
|
22
|
-
$obj$$)})},function($obj$$,$_callback$$){const $callback$$=($err$$,$next$$)=>{$_callback$$($err$$,$next$$)};let $keys$$=Object.keys($model$$.referenceKeys||{}).filter($key$$=>"_id"!==$key$$);$unique$$&&($keys$$=$keys$$.filter($key$$=>
|
|
23
|
-
$msgError$$+"\n"+$e$$);$_callback$$($msgError$$,void 0)},$current_obj$$);else $callback$$({error:ERRORS.ERR_ARISE+($msgError$$.error||$msgError$$.message||$msgError$$),code:ERRORS.ERR_ARISE_CODE});else $_callback$$(null,$obj$$)})}
|
|
24
|
-
|
|
25
|
-
"_id"!==$f$$&&($obj$jscomp$0$$.set($f$$,$data$jscomp$0$$[$f$$]),"exfields"!==$f$$||$obj$jscomp$0$$.exfields||($obj$jscomp$0$$.exfields={}));validate($obj$jscomp$0$$,function($msgError$$){setImmediate(()=>
|
|
26
|
-
{
|
|
27
|
-
($err$$,$next$$)=>{$_callback$$($err$$,$next$$)};setImmediate(async()=>{$obj$$.ngay_ct&&($obj$$.ngay_ct=moment($obj$$.ngay_ct).toDate());for(var $$condition_k$$ in $ctrl$$.keyValues)$obj$$[$$condition_k$$]
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
$obj$$,$error$jscomp$0$$,$_action$$)}if($error$jscomp$0$$){let $msgErrors$$=[];for(let $k$$ in $error$jscomp$0$$.errors)$msgErrors$$.push($error$jscomp$0$$.errors[$k$$].message);
|
|
31
|
-
void 0)},$current_obj$$);else $callback$$({error:$msgErrors$$,code:ERRORS.ERR_CAN_NOT_UPDATE_CODE})}else $req$$&&setImmediate(()=>{global.getModel("log").create({id_app:$user$$.current_id_app,
|
|
32
|
-
{$set:$current_obj$$},async function($err$$,$restore_data$$){if($err$$||!$restore_data$$)return console.error("can't restore voucher",$err$$||": don't find voucher");if($oldBooks$$)for(let $key$$ in $oldBooks$$)0
|
|
33
|
-
"\n"+$e$$);$_callback$$($msgError$$,void 0)},$current_obj$$);else $_callback$$($msgError$$,void 0)}):setImmediate(async()=>{$ctrl$$.emit("saved",$obj_created$$,$current_obj$$);$ctrl$$.emit("updated",$obj_created$$);
|
|
34
|
-
void 0,$_action$$);if($req$$&&"import"!=$_action$$&&!1!==$req$$.query.return_data)$ctrl$$.onView($user$$,[$obj_created$$],function($error$$,$viewValue$$){setImmediate(()=>{$error$$?$_callback$$($error$$,void 0):$_callback$$(null
|
|
35
|
-
$obj$jscomp$0$$.trang_thai&&setImmediate(async()=>{global.getModel("approve").findOne({id_ct:$obj$jscomp$0$$._id.toString(),"update_after_approve.data.trang_thai":$obj$jscomp$0$$.trang_thai.toString()}).lean().exec(($e
|
|
36
|
-
$req$$.
|
|
37
|
-
$obj
|
|
38
|
-
$
|
|
9
|
+
$callback$$(null,$obj$$)})})}else $callback$$(null,$obj$$)};async.waterfall([function($_callback$$){setImmediate(async function(){$data$$.trang_thai&&($data$$.trang_thai=$data$$.trang_thai.toString());if($data$$.trang_thai||$obj$jscomp$1$$.trang_thai){var $old_obj_old_request_q_approve$$={id_ct:$obj$jscomp$1$$._id.toString(),user_approved:{$exists:!0}};$old_obj_old_request_q_approve$$.trang_thai=($data$$.trang_thai||$obj$jscomp$1$$.trang_thai||"").toString();if(($old_obj_old_request_q_approve$$=await global.getModel("approve").findOne($old_obj_old_request_q_approve$$))&&
|
|
10
|
+
1!=$old_obj_old_request_q_approve$$.update_after_approve?.cho_phep_cap_nhat_khi_da_duyet){$_callback$$("Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt ch\u1ee9ng t\u1eeb \u1edf tr\u1ea1ng th\u00e1i n\u00e0y do n\u00f3 \u0111\u00e3 \u0111\u01b0\u1ee3c duy\u1ec7t",void 0);return}}if($obj$jscomp$1$$.ngay_ct&&$obj$jscomp$1$$.id_app&&$obj$jscomp$1$$.schema&&$obj$jscomp$1$$.schema.validate&&$obj$jscomp$1$$.schema.validate.ngay_ct)try{await new Promise(($rs$$,$rj$$)=>{validator.unlockBook[0]($obj$jscomp$1$$.id_app,
|
|
11
|
+
$obj$jscomp$1$$.ngay_ct,$unlock$$=>{if(!$unlock$$)return $rj$$(validator.unlockBook[1]);$rs$$($unlock$$)},$voucher_options$$)})}catch($e$$){$_callback$$($e$$.message||$e$$.error||$e$$,void 0);return}$schema_paths$$.exfields&&($obj$jscomp$1$$.exfields=$obj$jscomp$1$$.exfields||{});$old_obj_old_request_q_approve$$=convertObjectIdsToStrings($obj$jscomp$1$$.toObject());$current_obj$$=_.cloneDeep($old_obj_old_request_q_approve$$);const $data_keys$$=Object.keys($data$$);for(let $key$$ in $old_obj_old_request_q_approve$$)0>
|
|
12
|
+
$data_keys$$.indexOf($key$$)&&($data$$[$key$$]=$old_obj_old_request_q_approve$$[$key$$]);$_callback$$(null,$obj$jscomp$1$$)})},function($obj$$,$_callback$$){setImmediate(async function(){let $notNeedRight$$=await $ctrl$$.notNeedRight($user$$,{action:$_action$$,data:$data$$,obj:$current_obj$$});async.parallel({old_data:$callback$$=>{permission.hasRight($user$$.current_id_app,$user$$.email,$module$$,$_action$$,function($error$$,$hr$$,$c_app$$){setImmediate(()=>{if($hr$$)$ctrl$$.checkData($c_app$$,{...$data$$,
|
|
13
|
+
_id:$obj$$._id.toString()},$e$$=>{if($e$$)return $callback$$($e$$);$callback$$(null,$obj$$)});else return $callback$$({error:$error$$.error||$error$$||ERRORS.ERR_NOT_PERMIT,code:$error$$.code||ERRORS.ERR_NOT_PERMIT_CODE})})},{obj:$current_obj$$,notNeedRight:$notNeedRight$$,listinfo_code:$listinfo_code$$})},new_data:$callback$$=>{permission.hasRight($user$$.current_id_app,$user$$.email,$module$$,$_action$$,function($error$$,$hr$$,$c_app$$){setImmediate(()=>{if($hr$$)$ctrl$$.checkData($c_app$$,{...$data$$,
|
|
14
|
+
_id:$obj$$._id.toString()},$e$$=>{if($e$$)return $callback$$($e$$);$callback$$(null,$obj$$)});else return $callback$$({error:$error$$.error||$error$$||ERRORS.ERR_NOT_PERMIT,code:$error$$.code||ERRORS.ERR_NOT_PERMIT_CODE})})},{data:$data$$,obj:$current_obj$$,notNeedRight:$notNeedRight$$,listinfo_code:$listinfo_code$$})}},$e$$=>{$_callback$$($e$$,$obj$$)})})},($obj$$,$_callback$$)=>{setImmediate(function(){let $current_trang_thai$$=$data$$.trang_thai||$obj$$.trang_thai,$current_so_ct$$=$data$$.so_ct||
|
|
15
|
+
$obj$$.so_ct;if($current_trang_thai$$!==$obj$$.trang_thai&&(!$voucher_options$$?.trang_thai_create_voucher_numbers||0==$voucher_options$$?.trang_thai_create_voucher_numbers.length||0<=$voucher_options$$?.trang_thai_create_voucher_numbers?.indexOf($current_trang_thai$$))&&$model$$.schema.paths.so_ct)if($current_so_ct$$&&$current_so_ct$$.toUpperCase()!==($listinfo_code$$||$ctrl$$.name).toUpperCase()&&$current_so_ct$$.toUpperCase()!==$ctrl$$.name.toUpperCase())$checkSoCT$$($obj$$,$error$$=>{$_callback$$($error$$,
|
|
16
|
+
$obj$$)});else{let $count$$=0;async.whilst(function($cb$$){$cb$$(null,100>$count$$)},function($callbackWhilst$$){getNextSequence($obj$$.id_app,$listinfo_code$$||$ctrl$$.name,"so_ct",function($e$$,$rs$$){setImmediate(()=>{if($e$$)return $callbackWhilst$$($e$$);$data$$.so_ct=$rs$$.so_ct;$checkSoCT$$($obj$$,$error$$=>{$error$$?99<=$count$$?$callbackWhilst$$($error$$):($count$$++,$callbackWhilst$$()):($count$$=99999,$callbackWhilst$$())})})},{...($obj$$.toObject?$obj$$.toObject():$obj$$),...$data$$})},
|
|
17
|
+
function($err$$){$_callback$$($err$$,$obj$$)})}else $_callback$$(null,$obj$$)})},$checkSoCT$$,($obj$jscomp$0$$,$_callback$$)=>{(async($obj$$,$callback$$)=>{try{(await permission.getFieldNotRight($obj$$.id_app,$user$$.email,$ctrl$$.name)).forEach($f$$=>{delete $data$$[$f$$]})}catch($e$$){console.error("Error get field not right",$e$$)}setImmediate(function(){$ctrl$$.updating?$ctrl$$.updating($user$$,$data$$,$obj$$,function($error$jscomp$0$$,$_data$$,$_obj$$){setImmediate(()=>{if($error$jscomp$0$$)return $callback$$($error$jscomp$0$$);
|
|
18
|
+
if($ctrl$$.dynamicUpdating)$ctrl$$.dynamicUpdating($user$$,$_data$$,$_obj$$,function($error$$,$_data$$){if($error$$)return $callback$$($error$$);for(let $f$$ in $_data$$)$schema_paths$$[$f$$]&&($data$$[$f$$]=$_data$$[$f$$]);$callback$$(null,$obj$$)},{listinfo_code:$listinfo_code$$,req:$req$$});else{for(let $f$$ in $_data$$)$schema_paths$$[$f$$]&&($data$$[$f$$]=$_data$$[$f$$]);$callback$$(null,$obj$$)}})}):$ctrl$$.dynamicUpdating?$ctrl$$.dynamicUpdating($user$$,$data$$,$obj$$,function($error$$,$_data$$){if($error$$)return $callback$$($error$$);
|
|
19
|
+
for(let $f$$ in $_data$$)$schema_paths$$[$f$$]&&($data$$[$f$$]=$_data$$[$f$$]);$callback$$(null,$obj$$)},{listinfo_code:$listinfo_code$$,req:$req$$}):$callback$$(null,$obj$$)})})($obj$jscomp$0$$,($err$$,$next$$)=>{$_callback$$($err$$,$next$$)})},function($obj$$,$_callback$$){setImmediate(function(){if($unique$$&&0!==$unique$$.length){var $c1$$={},$c2$$={};$obj$$.id_app&&($c1$$.id_app=$obj$$.id_app,$c2$$.id_app||($c2$$.id_app=$obj$$.id_app));$unique$$.forEach(function($key$$){$c1$$[$key$$]=$obj$$[$key$$];
|
|
20
|
+
$ctrl$$.model.schema.paths[$key$$]?("number"==$ctrl$$.model.schema.paths[$key$$].instance.toLowerCase()?$c2$$[$key$$]=Number($data$$[$key$$]):"date"==$ctrl$$.model.schema.paths[$key$$].instance.toLowerCase()?$c2$$[$key$$]=new Date($data$$[$key$$]):"string"==$ctrl$$.model.schema.paths[$key$$].instance.toLowerCase()?$c2$$[$key$$]=($data$$[$key$$]||"").toString():$c2$$[$key$$]=$data$$[$key$$],$c2$$[$key$$]||($c2$$[$key$$]=$c1$$[$key$$])):console.error("field",$key$$," is not exist. please check unique of controller")});
|
|
21
|
+
!0!==_.isEqual($c1$$,$c2$$)?isExists($model$$,$unique$$,$c2$$,$ctrl$$.replaceIfExists,function($error$jscomp$0$$,$kq$$){setImmediate(()=>{if($error$jscomp$0$$||$kq$$){let $msgError$$=$error$jscomp$0$$||ERRORS.ERR_ALREADY_EXIST;if($ctrl$$.options.onErrorUpdating)$ctrl$$.options.onErrorUpdating($user$$,$obj$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$_callback$$($msgError$$,void 0)},$current_obj$$);else $_callback$$($msgError$$,void 0)}else checkReference($model$$,$obj$$,function($error$$){setImmediate(()=>
|
|
22
|
+
{$error$$?(console.error("Keys arise data",$c1$$,$c2$$,$error$$),$_callback$$({error:ERRORS.ERR_KEY_ARISE+($error$$.error||$error$$.message||$error$$),code:ERRORS.ERR_KEY_ARISE_CODE},void 0)):$_callback$$(null,$obj$$)})},$unique$$)})}):$_callback$$(null,$obj$$)}else $_callback$$(null,$obj$$)})},function($obj$$,$_callback$$){const $callback$$=($err$$,$next$$)=>{$_callback$$($err$$,$next$$)};let $keys$$=Object.keys($model$$.referenceKeys||{}).filter($key$$=>"_id"!==$key$$);$unique$$&&($keys$$=$keys$$.filter($key$$=>
|
|
23
|
+
0>$unique$$.indexOf($key$$).length));0===$keys$$.length?$_callback$$(null,$obj$$):checkReference($model$$,$obj$$,function($msgError$$){setImmediate(()=>{if($msgError$$)if($ctrl$$.options.onErrorUpdating)$ctrl$$.options.onErrorUpdating($user$$,$obj$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$_callback$$($msgError$$,void 0)},$current_obj$$);else $callback$$({error:ERRORS.ERR_ARISE+($msgError$$.error||$msgError$$.message||$msgError$$),code:ERRORS.ERR_ARISE_CODE});else $_callback$$(null,$obj$$)})},
|
|
24
|
+
$keys$$)},function($obj$jscomp$0$$,$_callback$$){$ctrl$$.validating||($ctrl$$.validating=($user$$,$data$$,$next$$)=>{$next$$(null,$data$$)});$data$$._id=$obj$jscomp$0$$._id;$ctrl$$.validating($user$$,$data$$,($error$$,$data$jscomp$0$$)=>{$error$$?$_callback$$($error$$,void 0):setImmediate(function(){$data$jscomp$0$$.date_updated=new Date;$data$jscomp$0$$.user_updated=$user$$.email;delete $data$jscomp$0$$.__v;$ctrl$$.options.onUpdateExtending||($ctrl$$.options.onUpdateExtending=function($obj$$,$data$$,
|
|
25
|
+
$action$$,$fn$$){$fn$$()});$ctrl$$.options.onUpdateExtending($obj$jscomp$0$$,$data$jscomp$0$$,$action$$,function(){$schema_paths$$.exfields&&$data$jscomp$0$$.exfields&&($obj$jscomp$0$$.exfields=$data$jscomp$0$$.exfields);delete $data$jscomp$0$$.__v;for(let $f$$ in $data$jscomp$0$$)$schema_paths$$[$f$$]&&"_id"!==$f$$&&($obj$jscomp$0$$.set($f$$,$data$jscomp$0$$[$f$$]),"exfields"!==$f$$||$obj$jscomp$0$$.exfields||($obj$jscomp$0$$.exfields={}));validate($obj$jscomp$0$$,function($msgError$$){setImmediate(()=>
|
|
26
|
+
{if($msgError$$)if($ctrl$$.options.onErrorUpdating)$ctrl$$.options.onErrorUpdating($user$$,$obj$jscomp$0$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$_callback$$($msgError$$,void 0)},$current_obj$$);else $_callback$$($msgError$$,void 0);else $_callback$$(null,$obj$jscomp$0$$)})},$voucher_options$$)})})},{action:$action$$})},function($obj$$,$_callback$$){$current_obj$$&&($obj$$._id=$current_obj$$._id);deletePost($user$$,$obj$$,async($e$jscomp$0$$,$_old_obj$$,$books$$)=>{$oldBooks$$=$books$$;
|
|
27
|
+
if($ctrl$$.dynamicDeletePost)try{let $oldDanamicBook$$=await $ctrl$$.dynamicDeletePost($obj$$);if($oldDanamicBook$$)for(let $key$$ in $oldDanamicBook$$)$oldBooks$$[$key$$]||($oldBooks$$[$key$$]=$oldDanamicBook$$[$key$$])}catch($e$$){console.error($e$$)}$_callback$$($e$jscomp$0$$,$obj$$)})},function($obj$$,$_callback$$){const $callback$$=($err$$,$next$$)=>{$_callback$$($err$$,$next$$)};setImmediate(async()=>{$obj$$.ngay_ct&&($obj$$.ngay_ct=moment($obj$$.ngay_ct).toDate());for(var $$condition_k$$ in $ctrl$$.keyValues)$obj$$[$$condition_k$$]=
|
|
28
|
+
$ctrl$$.keyValues[$$condition_k$$];Object.keys($model$$.schema.paths).filter($model_path$$=>$obj$$[$model_path$$]&&_.isArray($obj$$[$model_path$$])).forEach($model_path$$=>{$model$$.schema.paths[$model_path$$].schema&&$model$$.schema.paths[$model_path$$].schema.paths&&Object.keys($model$$.schema.paths[$model_path$$].schema.paths).filter($path$$=>"line"!==$path$$&&"_id"!==$path$$&&"__v"!==$path$$&&0<=fields_sync_master_detail.indexOf($path$$)).forEach($path$$=>{$obj$$[$path$$]&&$obj$$[$model_path$$].filter($detail$$=>
|
|
29
|
+
!$detail$$[$path$$]).forEach($detail$$=>{$detail$$[$path$$]=$obj$$[$path$$]})})});await createIdRef($model$$,$obj$$);if($ctrl$$.saving)try{await $ctrl$$.saving($user$$,$obj$$,$_action$$)}catch($e$$){return $callback$$({error:$e$$.message||$e$$.error||$e$$})}$ctrl$$.emit("saving",$obj$$);$current_obj$$&&($obj$$._id=$current_obj$$._id);let $obj_created$$,$error$jscomp$0$$;$data$$.$condition&&($$condition_k$$=$data$$.$condition,$$condition_k$$._id=$obj$$._id,await $model$$.findOne($$condition_k$$)||
|
|
30
|
+
($error$jscomp$0$$=ERRORS.ERR_CAN_NOT_UPDATE),delete $data$$.$condition);if(!$error$jscomp$0$$)try{delete $obj$$.__v,$obj_created$$=await $obj$$.save(),$ctrl$$.populate&&($obj_created$$=$model$$.findById($obj_created$$._id),$obj_created$$=await $ctrl$$.populate($obj_created$$))}catch($e$$){if($error$jscomp$0$$=$e$$,$ctrl$$.options.onErrorSave)$ctrl$$.options.onErrorSave($user$$,$obj$$,$error$jscomp$0$$,$_action$$)}if($error$jscomp$0$$){let $msgErrors$$=[];for(let $k$$ in $error$jscomp$0$$.errors)$msgErrors$$.push($error$jscomp$0$$.errors[$k$$].message);
|
|
31
|
+
0==$msgErrors$$.length&&($msgErrors$$=$error$jscomp$0$$.message);$msgErrors$$||($msgErrors$$=JSON.stringify($error$jscomp$0$$));if($ctrl$$.options.onErrorUpdating)$ctrl$$.options.onErrorUpdating($user$$,$obj$$,$e$$=>{$e$$&&console.error("onErrorUpdating",$e$$);$_callback$$({error:$msgErrors$$,code:ERRORS.ERR_CAN_NOT_UPDATE_CODE},void 0)},$current_obj$$);else $callback$$({error:$msgErrors$$,code:ERRORS.ERR_CAN_NOT_UPDATE_CODE})}else $req$$&&setImmediate(()=>{global.getModel("log").create({id_app:$user$$.current_id_app,
|
|
32
|
+
id_func:$ctrl$$.name,action:$_action$$.toUpperCase(),data:{oldData:$current_obj$$,newData:$data$$,id:$obj$$._id.toString()}},$user$$.email,$req$$.user_agent,$req$$)}),postData($obj_created$$,$ctrl$$,function($msgError$$){$msgError$$?setImmediate(()=>{$current_obj$$&&$model$$.findByIdAndUpdate($current_obj$$._id,{$set:$current_obj$$},async function($err$$,$restore_data$$){if($err$$||!$restore_data$$)return console.error("can't restore voucher",$err$$||": don't find voucher");if($oldBooks$$)for(let $key$$ in $oldBooks$$)0<
|
|
33
|
+
$oldBooks$$[$key$$].length&&(console.log("restored books...",$key$$,$current_obj$$.so_ct,$current_obj$$.ma_ct),await global.getModel($key$$).insertMany($oldBooks$$[$key$$]))});if($ctrl$$.options.onErrorUpdating)$ctrl$$.options.onErrorUpdating($user$$,$obj$$,$e$$=>{$e$$&&($msgError$$=$msgError$$+"\n"+$e$$);$_callback$$($msgError$$,void 0)},$current_obj$$);else $_callback$$($msgError$$,void 0)}):setImmediate(async()=>{$ctrl$$.emit("saved",$obj_created$$,$current_obj$$);$ctrl$$.emit("updated",$obj_created$$);
|
|
34
|
+
global.getModel("customer").updateActives&&global.getModel("customer").updateActives($obj_created$$);$obj_created$$=convertObjectIdsToStrings($obj_created$$.toObject());runWebhooks($ctrl$$,$obj_created$$,$_action$$.toUpperCase(),$voucher_options$$);await $ctrl$$.cacheData($obj_created$$,void 0,$_action$$);if($req$$&&"import"!=$_action$$&&!1!==$req$$.query.return_data)$ctrl$$.onView($user$$,[$obj_created$$],function($error$$,$viewValue$$){setImmediate(()=>{$error$$?$_callback$$($error$$,void 0):$_callback$$(null,
|
|
35
|
+
$viewValue$$[0])})},{req:$req$$});else $callback$$(null,{_id:$obj_created$$._id})})},{req:$req$$})})},function($obj$$,$callback$$){$ctrl$$.requestApprove($user$$.current_app_info,$user$$,$obj$$,$callback$$,$voucher_options$$)},function($obj$jscomp$0$$,$_callback$$){void 0!=$obj$jscomp$0$$.trang_thai&&setImmediate(async()=>{global.getModel("approve").findOne({id_ct:$obj$jscomp$0$$._id.toString(),"update_after_approve.data.trang_thai":$obj$jscomp$0$$.trang_thai.toString()}).lean().exec(($e$jscomp$0$$,
|
|
36
|
+
$rs$$)=>{!$rs$$||$rs$$.user_approved||$rs$$.user_denied||($rs$$.user_approved=$req$$.user.email,$rs$$.user_approved_name=$req$$.user.name,$rs$$.date_approved=new Date,global.getModel("approve").updateOne({_id:$rs$$._id},$rs$$).then(async()=>{global.getModel("approve").sendNotifyApproved($rs$$,$req$$.query.access_token);let $channel$$=`${$ctrl$$.name.toLowerCase()}-${"request_approved"}`;$obj$jscomp$0$$.id_app&&($channel$$=`${$channel$$}-${$obj$jscomp$0$$.id_app}`);let $message$$=JSON.stringify($obj$jscomp$0$$.toObject?
|
|
37
|
+
$obj$jscomp$0$$.toObject():$obj$jscomp$0$$);try{await global.clientRedis.publish($channel$$,$message$$)}catch($e$$){console.error("[approve] [sendNotifyApproved] fire event","request_approved",$e$$)}}))})});setImmediate(async()=>{(await permission.getFieldNotRight($obj$jscomp$0$$.id_app,$user$$.email,$ctrl$$.name)).forEach($f$$=>{delete $obj$jscomp$0$$[$f$$]});$obj$jscomp$0$$.collection_name=$ctrl$$.collection_name;$ctrl$$.updated?$ctrl$$.updated($user$$,$obj$jscomp$0$$,function($error$jscomp$0$$,
|
|
38
|
+
$obj$$){$error$jscomp$0$$?(console.error("error when saved",$error$jscomp$0$$),$_callback$$($error$jscomp$0$$,void 0)):$ctrl$$.dynamicUpdated?$ctrl$$.dynamicUpdated($user$$,$obj$$,function($error$$){$error$$?$_callback$$($error$$,void 0):$_callback$$(null,$obj$$)}):$_callback$$(null,$obj$$)},$current_obj$$):$ctrl$$.dynamicUpdated?$ctrl$$.dynamicUpdated($user$$,$obj$jscomp$0$$,function($error$$){$error$$?$_callback$$($error$$,void 0):$_callback$$(null,$obj$jscomp$0$$)}):$_callback$$(null,$obj$jscomp$0$$)})}],
|
|
39
|
+
($e$$,$rs$$)=>{$e$$?(console.error($e$$),$callback$jscomp$0$$($e$$)):($e$$=$model$$.collection.name,$user$$.current_id_app&&($e$$+=$user$$.current_id_app),delete global.cacheDatas[$e$$],$callback$jscomp$0$$(null,{new_obj:$rs$$,old_obj:$current_obj$$}))})}catch($e$$){console.error($e$$),$callback$jscomp$0$$($e$$)}};module.exports=update;
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
'use strict';const SocaiModel=global.getModel("socai"),dmtk=global.getModel("account"),async=require("async"),cktk=require("./cktk"),ckcn=require("./ckcn"),moment=require("moment"),numeral=require("numeral"),asyncCkcn=async $condition$$=>new Promise(($resolve$$,$reject$$)=>{ckcn($condition$$,($du_e$$,$rs$$)=>{if($du_e$$)return $reject$$($du_e$$);$du_e$$=$rs$$.map($r$$=>$r$$.du_no00-$r$$.du_co00).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$resolve$$($du_e$$)})}),asyncCheckHMCN=async($hmcnct_id_app$$,$obj$$,
|
|
2
|
-
$tk$$,$ma_kh$$,$ps_no_tien_tien$$,$ps_co$$,$
|
|
3
|
-
{hieu_luc_tu:{$lte:moment($
|
|
4
|
-
bu_tru:!0,ngay:moment($obj$$.ngay_ct).endOf("date").toDate()});if("2"==$
|
|
5
|
-
$ps_no_tien_tien$$?"-":""} ${numeral(Math.abs($ps_no_tien_tien$$)).format()} VND`;}else if($
|
|
6
|
-
$
|
|
7
|
-
|
|
8
|
-
tk:$tk$$,loai_tk:1}).lean().exec(async($e$$,$acc$$)=>{if($e$$||!$acc$$)return $callback$$($e$$||`T\u00e0i kho\u1ea3n ${$tk$$} kh\u00f4ng t\u1ed3n t\u1ea1i ho\u1eb7c kh\u00f4ng ph\u1ea3i l\u00e0 t\u00e0i kho\u1ea3n chi ti\u1ebft.`);
|
|
9
|
-
|
|
10
|
-
if($acc$$.
|
|
11
|
-
$callback$$(null,$acc$$)})},checkData=function($id_app$$,$ngay_ct$$,$_data$$,$callback$jscomp$0$$){async.parallel({tk_no:$callback$$=>{checkAcc($id_app$$,$_data$$,$_data$$.tk_no,$_data$$.ma_kh_no,($e$$,$acc$$)=>{if($e$$)return $callback$$($e$$);$acc$$.not_du_no_yn&&
|
|
12
|
-
$rs$$.map($r$$=>$r$$.du_no00-$r$$.du_co00).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+$_data$$.tien;0<$du_no$jscomp$2_e$$?$callback$$(`T\u00e0i kho\u1ea3n ${$_data$$.tk_no} kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 s\u1ed1 d\u01b0 b\u00ean n\u1ee3 : ${$du_no$jscomp$2_e$$}`)
|
|
13
|
-
tk:$_data$$.tk_co,bu_tru:!0,ngay:moment($ngay_ct$$).endOf("date").toDate()},($du_co$jscomp$2_e$$,$rs$$)=>{if($du_co$jscomp$2_e$$)return $callback$$($du_co$jscomp$2_e$$);$du_co$jscomp$2_e$$=$rs$$.map($r$$=>$r$$.du_co00-$r$$.du_no00).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+$_data$$.tien;
|
|
14
|
-
$_data$$)})},post=function($master$$,$details$$,$prepare$$,$model$$=SocaiModel,$_options$$={}){$details$$&&(this.master={...$master$$},this.details=$details$$.map($detail$$=>({...$detail$$})),this.model=$model$$,this._options=$_options$$,this.prepare=$prepare$$)};
|
|
2
|
+
$tk$$,$ma_kh$$,$ps_no_tien_tien$$,$ps_co$$,$du_ck_ma_nv$$)=>{var $acc_hm_query_query_hm_chung$$=await dmtk.findOne({id_app:$hmcnct_id_app$$,tk:$tk$$,loai_tk:1}).lean();if(!$acc_hm_query_query_hm_chung$$)throw"Kh\u00f4ng t\u1ed3n t\u1ea1i t\u00e0i kho\u1ea3n "+$tk$$;if($acc_hm_query_query_hm_chung$$.tk_cn){$acc_hm_query_query_hm_chung$$={id_app:$hmcnct_id_app$$,tk:$tk$$,ma_kh:$ma_kh$$,status:!0};$du_ck_ma_nv$$&&($acc_hm_query_query_hm_chung$$.ma_nv=$du_ck_ma_nv$$);let $ngay_ct$$=new Date($obj$$.ngay_ct);
|
|
3
|
+
$acc_hm_query_query_hm_chung$$.$and=[{$or:[{hieu_luc_tu:null},{hieu_luc_tu:{$lte:moment($ngay_ct$$).endOf("date").toDate()}}]},{$or:[{hieu_luc_den:null},{hieu_luc_den:{$gte:moment($ngay_ct$$).startOf("date").toDate()}}]}];$acc_hm_query_query_hm_chung$$=await global.getModel("hmcn").findOne($acc_hm_query_query_hm_chung$$).lean();$acc_hm_query_query_hm_chung$$||($acc_hm_query_query_hm_chung$$={id_app:$hmcnct_id_app$$,tk:$tk$$,status:!0,ma_kh:{$in:[null,""]}},$du_ck_ma_nv$$&&($acc_hm_query_query_hm_chung$$.ma_nv=
|
|
4
|
+
$du_ck_ma_nv$$),$acc_hm_query_query_hm_chung$$=await global.getModel("hmcn").findOne($acc_hm_query_query_hm_chung$$).lean());if($acc_hm_query_query_hm_chung$$){$du_ck_ma_nv$$=await asyncCkcn({id_app:$hmcnct_id_app$$,tk:$tk$$,ma_kh:$ma_kh$$,ma_nv:$du_ck_ma_nv$$,bu_tru:!0,ngay:moment($obj$$.ngay_ct).endOf("date").toDate()});if("2"==$acc_hm_query_query_hm_chung$$.loai){$du_ck_ma_nv$$=0-$du_ck_ma_nv$$;$ps_no_tien_tien$$=$ps_co$$-$ps_no_tien_tien$$;if(0>$ps_no_tien_tien$$)return;if(0==$acc_hm_query_query_hm_chung$$.hm){if($du_ck_ma_nv$$>
|
|
5
|
+
$acc_hm_query_query_hm_chung$$.hm)throw`Nh\u00e0 cung c\u1ea5p n\u00e0y \u0111\u00e3 v\u01b0\u1ee3t h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3 ${numeral($acc_hm_query_query_hm_chung$$.hm).format()} VND, c\u00f4ng n\u1ee3 hi\u1ec7n t\u1ea1i ${numeral($du_ck_ma_nv$$).format()} VND, ph\u00e1t sinh ${0>$ps_no_tien_tien$$?"-":""} ${numeral(Math.abs($ps_no_tien_tien$$)).format()} VND`;}else if($du_ck_ma_nv$$+$ps_no_tien_tien$$>$acc_hm_query_query_hm_chung$$.hm)throw`Nh\u00e0 cung c\u1ea5p n\u00e0y \u0111\u00e3 v\u01b0\u1ee3t h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3 ${numeral($acc_hm_query_query_hm_chung$$.hm).format()} VND, c\u00f4ng n\u1ee3 hi\u1ec7n t\u1ea1i ${numeral($du_ck_ma_nv$$).format()} VND, ph\u00e1t sinh ${0>
|
|
6
|
+
$ps_no_tien_tien$$?"-":""} ${numeral(Math.abs($ps_no_tien_tien$$)).format()} VND`;}else{$ps_no_tien_tien$$-=$ps_co$$;if(0>$ps_no_tien_tien$$)return;if(0==$acc_hm_query_query_hm_chung$$.hm){if($du_ck_ma_nv$$>$acc_hm_query_query_hm_chung$$.hm)throw`Kh\u00e1ch h\u00e0ng n\u00e0y \u0111\u00e3 v\u01b0\u1ee3t h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3 ${numeral($acc_hm_query_query_hm_chung$$.hm).format()} VND, c\u00f4ng n\u1ee3 hi\u1ec7n t\u1ea1i ${numeral($du_ck_ma_nv$$).format()} VND, ph\u00e1t sinh ${0>$ps_no_tien_tien$$?
|
|
7
|
+
"-":""} ${numeral(Math.abs($ps_no_tien_tien$$)).format()} VND`;}else if($du_ck_ma_nv$$+$ps_no_tien_tien$$>$acc_hm_query_query_hm_chung$$.hm)throw`Kh\u00e1ch h\u00e0ng n\u00e0y \u0111\u00e3 v\u01b0\u1ee3t h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3 ${numeral($acc_hm_query_query_hm_chung$$.hm).format()} VND, c\u00f4ng n\u1ee3 hi\u1ec7n t\u1ea1i ${numeral($du_ck_ma_nv$$).format()} VND, ph\u00e1t sinh ${0>$ps_no_tien_tien$$?"-":""} ${numeral(Math.abs($ps_no_tien_tien$$)).format()} VND`;}$hmcnct_id_app$$=await global.getModel("hmcnct").findOne({id_app:$hmcnct_id_app$$,
|
|
8
|
+
tk:$tk$$,ma_kh:$ma_kh$$,id_ct:$obj$$._id.toString()}).lean();$hmcnct_id_app$$||($hmcnct_id_app$$={...$acc_hm_query_query_hm_chung$$},$hmcnct_id_app$$.id_ct=$obj$$._id.toString(),delete $hmcnct_id_app$$._id,await global.getModel("hmcnct").create($hmcnct_id_app$$))}}},checkAcc=function($id_app$$,$data$$,$tk$$,$ma_kh$$,$callback$$){dmtk.findOne({id_app:$id_app$$,tk:$tk$$,loai_tk:1}).lean().exec(async($e$$,$acc$$)=>{if($e$$||!$acc$$)return $callback$$($e$$||`T\u00e0i kho\u1ea3n ${$tk$$} kh\u00f4ng t\u1ed3n t\u1ea1i ho\u1eb7c kh\u00f4ng ph\u1ea3i l\u00e0 t\u00e0i kho\u1ea3n chi ti\u1ebft.`);
|
|
9
|
+
if($acc$$.tk_cn&&!$ma_kh$$)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp kh\u00e1ch h\u00e0ng`);if($acc$$.tk_cp_yn&&!$data$$.ma_phi)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp doanh thu/chi ph\u00ed`);if($acc$$.tk_kho_yn&&!$data$$.ma_kho)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp kho/c\u1eeda h\u00e0ng`);if($acc$$.tk_bp_yn&&!$data$$.ma_bp)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp b\u1ed9 ph\u1eadn`);
|
|
10
|
+
if($acc$$.tk_dt_yn&&!$data$$.ma_dt)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp v\u1ee5 vi\u1ec7c, d\u1ef1 \u00e1n`);if($acc$$.tk_hd_yn&&!$data$$.ma_hd)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp h\u1ee3p \u0111\u1ed3ng`);if($acc$$.tk_nv_yn&&!$data$$.ma_nv)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp nh\u00e2n vi\u00ean`);if($acc$$.tk_td1_yn&&!$data$$.ma_td1)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp ma_td1`);
|
|
11
|
+
if($acc$$.tk_td2_yn&&!$data$$.ma_td2)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp ma_td2`);if($acc$$.tk_td3_yn&&!$data$$.ma_td3)return $callback$$(`T\u00e0i kho\u1ea3n ${$tk$$} y\u00eau c\u1ea7u nh\u1eadp ma_td3`);$callback$$(null,$acc$$)})},checkData=function($id_app$$,$ngay_ct$$,$_data$$,$callback$jscomp$0$$){async.parallel({tk_no:$callback$$=>{checkAcc($id_app$$,$_data$$,$_data$$.tk_no,$_data$$.ma_kh_no,($e$$,$acc$$)=>{if($e$$)return $callback$$($e$$);$acc$$.not_du_no_yn&&
|
|
12
|
+
0!=$_data$$.check_balance?cktk({id_app:$id_app$$,tk:$_data$$.tk_no,bu_tru:!0,ngay:moment($ngay_ct$$).endOf("date").toDate()},($du_no$jscomp$2_e$$,$rs$$)=>{if($du_no$jscomp$2_e$$)return $callback$$($du_no$jscomp$2_e$$);$du_no$jscomp$2_e$$=$rs$$.map($r$$=>$r$$.du_no00-$r$$.du_co00).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+$_data$$.tien;0<$du_no$jscomp$2_e$$?$callback$$(`T\u00e0i kho\u1ea3n ${$_data$$.tk_no} kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 s\u1ed1 d\u01b0 b\u00ean n\u1ee3 : ${$du_no$jscomp$2_e$$}`):
|
|
13
|
+
$callback$$()}):$callback$$()})},tk_co:$callback$$=>{checkAcc($id_app$$,$_data$$,$_data$$.tk_co,$_data$$.ma_kh_co,($e$$,$acc$$)=>{if($e$$)return $callback$$($e$$);$acc$$.not_du_co_yn&&0!=$_data$$.check_balance?cktk({id_app:$id_app$$,tk:$_data$$.tk_co,bu_tru:!0,ngay:moment($ngay_ct$$).endOf("date").toDate()},($du_co$jscomp$2_e$$,$rs$$)=>{if($du_co$jscomp$2_e$$)return $callback$$($du_co$jscomp$2_e$$);$du_co$jscomp$2_e$$=$rs$$.map($r$$=>$r$$.du_co00-$r$$.du_no00).reduce(($a$$,$b$$)=>$a$$+$b$$,0)+$_data$$.tien;
|
|
14
|
+
0<$du_co$jscomp$2_e$$?$callback$$(`T\u00e0i kho\u1ea3n ${$_data$$.tk_co} kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p c\u00f3 s\u1ed1 d\u01b0 b\u00ean c\u00f3: ${$du_co$jscomp$2_e$$}`):$callback$$()}):$callback$$()})}},$e$$=>{$callback$jscomp$0$$($e$$,$_data$$)})},post=function($master$$,$details$$,$prepare$$,$model$$=SocaiModel,$_options$$={}){$details$$&&(this.master={...$master$$},this.details=$details$$.map($detail$$=>({...$detail$$})),this.model=$model$$,this._options=$_options$$,this.prepare=$prepare$$)};
|
|
15
15
|
post.prototype.runPrepare=async($prepare$$,$details$jscomp$0$$)=>{$details$jscomp$0$$=$details$jscomp$0$$.map($d$$=>{$d$$.toObject&&($d$$=$d$$.toObject());return{...$d$$}});return new Promise($resolve$$=>{$prepare$$?async.map($details$jscomp$0$$,($detail$jscomp$0$$,$callback$$)=>{setImmediate(()=>{$detail$jscomp$0$$.toObject=function(){return Object.assign({},$detail$jscomp$0$$)};$prepare$$($detail$jscomp$0$$,$detail$$=>{$detail$$.toObject=function(){return Object.assign({},$detail$$)};$callback$$(null,
|
|
16
16
|
$detail$$)})})},($e$$,$details$$)=>{$resolve$$($details$$)}):$resolve$$($details$jscomp$0$$)})};
|
|
17
17
|
post.prototype.run=async function($callback$jscomp$0$$=()=>{}){if(!this.details)return $callback$jscomp$0$$(null,null);const $Socai$$=this.model||SocaiModel;let $master$$=this.master,$details$jscomp$0$$=await this.runPrepare(this.prepare,this.details);$details$jscomp$0$$.forEach($d$$=>{$d$$.tk_no=$d$$.tk_no||$master$$.tk_no;$d$$.tk_co=$d$$.tk_co||$master$$.tk_co;$d$$.ma_ct=$master$$.ma_ct;$d$$.so_ct=$master$$.so_ct;$d$$.ngay_ct=$master$$.ngay_ct});$details$jscomp$0$$=$details$jscomp$0$$.filter($d$$=>
|
|
18
|
-
$d$$.tk_no&&$d$$.tk_co);if(!$master$$.ngay_ct)return $callback$jscomp$0$$("ngay_ct is not null");if(this._options.kiem_tra_han_muc_cong_no){let $check_hmcn$$=$details$jscomp$0$$.map($d$$=>[{tk:$d$$.tk_no,ps_no:$d$$.tien,ps_co:0,ma_kh:$d$$.ma_kh_no||$master$$.ma_kh_no||$d$$.ma_kh||$master$$.ma_kh,ma_nv:$d$$.ma_nv||$master$$.ma_nv},{tk:$d$$.tk_co,ps_no:0,ps_co:$d$$.tien,
|
|
19
|
-
[]).filter($a$$=>$a$$.ma_kh&&($a$$.ps_no||$a$$.ps_co)),$groupBy$$=["tk","ma_kh"];(await global.getModel("app").findOne({_id:$master$$.id_app},{options:1}))?.options?.kiem_tra_han_muc_cong_no_kh_nv&&$groupBy$$.push("ma_nv");$check_hmcn$$=await $check_hmcn$$.asyncGroupBy($groupBy$$,["ps_no","ps_co"]);
|
|
20
|
-
$e$$.error||$e$$)}}async.map($details$jscomp$0$$,($detail$jscomp$0$$,$callback$$)=>{setImmediate(()=>{$detail$jscomp$0$$.ma_kh_no||($detail$jscomp$0$$.ma_kh_no=$master$$.ma_kh_no||$detail$jscomp$0$$.ma_kh||$master$$.ma_kh);$detail$jscomp$0$$.ma_kh_co||($detail$jscomp$0$$.ma_kh_co
|
|
21
|
-
$but_toan_loi_e$$=$details$$.filter($detail$$=>isNaN($detail$$.tien_nt)||isNaN($detail$$.tien));0<$but_toan_loi_e$$.length&&console.error("B\u00fat to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7 v\u00ec tien_nt ho\u1eb7c tien l\u00e0 isNaN:",
|
|
22
|
-
|
|
23
|
-
return $detail$$}),$q_remove$$={id_app:$master$$.id_app,id_ct:$master$$._id.toString()};this._options.deleteQuery&&($q_remove$$={...$q_remove$$,...this._options.deleteQuery,id_app:$master$$.id_app});$Socai$$.deleteMany($q_remove
|
|
24
|
-
0<=$msg_error_rs$$.indexOf("id_ct_1_nh_dk_1")?($msg_error_rs$$=await $Socai$$.find({id_ct:$master$$._id.toString()}),0<$msg_error_rs$$.length?$callback$jscomp$0$$(null,$msg_error_rs$$):(console.error("Error save socai"
|
|
25
|
-
($_e$$,$rs$$)=>{console.error("delete socai because error when posting",$master$$._id.toString(),JSON.stringify($rs$$),$q_remove$$);$callback$jscomp$0$$($e$$)}))
|
|
26
|
-
(console.log("not found controller",$master$$.ma_ct.toUpperCase()),$callback$jscomp$0$$(null,$msg_error_rs$$))}else $callback$jscomp$0$$(null,$msg_error_rs$$)})})})};module.exports=post;
|
|
18
|
+
$d$$.tk_no&&$d$$.tk_co);if(!$master$$.ngay_ct)return $callback$jscomp$0$$("ngay_ct is not null");console.log("[postsocai] options",$master$$.ma_ct,this._options);if(this._options.kiem_tra_han_muc_cong_no){console.log("[postsocai] ki\u1ec3m tra h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3...");let $check_hmcn$$=$details$jscomp$0$$.map($d$$=>[{tk:$d$$.tk_no,ps_no:$d$$.tien,ps_co:0,ma_kh:$d$$.ma_kh_no||$master$$.ma_kh_no||$d$$.ma_kh||$master$$.ma_kh,ma_nv:$d$$.ma_nv||$master$$.ma_nv},{tk:$d$$.tk_co,ps_no:0,ps_co:$d$$.tien,
|
|
19
|
+
ma_kh:$d$$.ma_kh_co||$master$$.ma_kh_co||$d$$.ma_kh||$master$$.ma_kh,ma_nv:$d$$.ma_nv||$master$$.ma_nv}]).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]).filter($a$$=>$a$$.ma_kh&&($a$$.ps_no||$a$$.ps_co)),$groupBy$$=["tk","ma_kh"];(await global.getModel("app").findOne({_id:$master$$.id_app},{options:1}))?.options?.kiem_tra_han_muc_cong_no_kh_nv&&$groupBy$$.push("ma_nv");$check_hmcn$$=await $check_hmcn$$.asyncGroupBy($groupBy$$,["ps_no","ps_co"]);console.log("[postsocai] ki\u1ec3m tra h\u1ea1n m\u1ee9c c\u00f4ng n\u1ee3: s\u1ed1 ph\u00e1t sinh",
|
|
20
|
+
$check_hmcn$$);if(0<$check_hmcn$$.length)try{await Promise.all($check_hmcn$$.map($d$$=>asyncCheckHMCN($master$$.id_app,$master$$,$d$$.tk,$d$$.ma_kh,$d$$.ps_no,$d$$.ps_co,$d$$.ma_nv)))}catch($e$$){return $callback$jscomp$0$$($e$$.message||$e$$.error||$e$$)}}async.map($details$jscomp$0$$,($detail$jscomp$0$$,$callback$$)=>{setImmediate(()=>{$detail$jscomp$0$$.ma_kh_no||($detail$jscomp$0$$.ma_kh_no=$master$$.ma_kh_no||$detail$jscomp$0$$.ma_kh||$master$$.ma_kh);$detail$jscomp$0$$.ma_kh_co||($detail$jscomp$0$$.ma_kh_co=
|
|
21
|
+
$master$$.ma_kh_co||$detail$jscomp$0$$.ma_kh||$master$$.ma_kh);checkData($master$$.id_app,$master$$.ngay_ct,$detail$jscomp$0$$,($e$$,$detail$$)=>{$callback$$($e$$,$detail$$)})})},($but_toan_loi_e$$,$details$$)=>{if($but_toan_loi_e$$)return $callback$jscomp$0$$($but_toan_loi_e$$);$but_toan_loi_e$$=$details$$.filter($detail$$=>isNaN($detail$$.tien_nt)||isNaN($detail$$.tien));0<$but_toan_loi_e$$.length&&console.error("B\u00fat to\u00e1n kh\u00f4ng h\u1ee3p l\u1ec7 v\u00ec tien_nt ho\u1eb7c tien l\u00e0 isNaN:",
|
|
22
|
+
{so_ct:$master$$.so_ct,ma_ct:$master$$.ma_ct,chi_tiet:$but_toan_loi_e$$},", Ch\u01b0\u01a1ng tr\u00ecnh s\u1ebd b\u1ecf qua c\u1eb7p \u0111\u1ecbnh kho\u1ea3n n\u00e0y");let $dks$$=$details$$.filter($detail$$=>!(0===$detail$$.tien_nt&&0===$detail$$.tien)&&!isNaN($detail$$.tien_nt)&&!isNaN($detail$$.tien)).map(($detail$$,$nh_dk$$)=>{for(let $attr$$ in $Socai$$.schema.paths)"id_ct"!=$attr$$&&"_id"!=$attr$$&&"__v"!=$attr$$&&"date_updated"!=$attr$$&&"date_created"!=$attr$$&&(void 0!==$detail$$[$attr$$]&&
|
|
23
|
+
null!==$detail$$[$attr$$]&&""!==$detail$$[$attr$$]||0===$detail$$[$attr$$]||void 0===$master$$[$attr$$]||($detail$$[$attr$$]=$master$$[$attr$$]));$detail$$.nh_dk=$nh_dk$$;$detail$$.id_ct=$master$$._id.toString();delete $detail$$.toObject;delete $detail$$._id;delete $detail$$.__v;return $detail$$}),$q_remove$$={id_app:$master$$.id_app,id_ct:$master$$._id.toString()};this._options.deleteQuery&&($q_remove$$={...$q_remove$$,...this._options.deleteQuery,id_app:$master$$.id_app});$Socai$$.deleteMany($q_remove$$,
|
|
24
|
+
$error$$=>{if($error$$)return $callback$jscomp$0$$("Don't remove socai \n"+$error$$);if(0==$dks$$.length)return $callback$jscomp$0$$(null,[]);$Socai$$.create($dks$$,async($e$$,$msg_error_rs$$)=>{if($e$$)$msg_error_rs$$=$e$$.message||$e$$.error||$e$$.toString(),0<=$msg_error_rs$$.indexOf("E11000 duplicate")&&0<=$msg_error_rs$$.indexOf("id_ct_1_nh_dk_1")?($msg_error_rs$$=await $Socai$$.find({id_ct:$master$$._id.toString()}),0<$msg_error_rs$$.length?$callback$jscomp$0$$(null,$msg_error_rs$$):(console.error("Error save socai",
|
|
25
|
+
$e$$,$master$$),$Socai$$.deleteMany($q_remove$$,($_e$$,$rs$$)=>{console.error("delete socai because error when posting",$master$$._id.toString(),JSON.stringify($rs$$),$q_remove$$);$callback$jscomp$0$$($e$$)}))):(console.error("Error save socai",$e$$,$master$$),$Socai$$.deleteMany($q_remove$$,($_e$$,$rs$$)=>{console.error("delete socai because error when posting",$master$$._id.toString(),JSON.stringify($rs$$),$q_remove$$);$callback$jscomp$0$$($e$$)}));else if($master$$.ma_ct){let $contr$$=global.controllers[$master$$.ma_ct.toUpperCase()];
|
|
26
|
+
$contr$$?await $contr$$.model.findById($master$$._id)?$callback$jscomp$0$$(null,$msg_error_rs$$):$Socai$$.deleteMany($q_remove$$,($_e$$,$rs$$)=>{console.error("Ch\u1ee9ng t\u1eeb kh\u00f4ng t\u1ed3n t\u1ea1i. X\u00f3a socai",$master$$._id,$rs$$);$callback$jscomp$0$$($e$$)}):(console.log("not found controller",$master$$.ma_ct.toUpperCase()),$callback$jscomp$0$$(null,$msg_error_rs$$))}else $callback$jscomp$0$$(null,$msg_error_rs$$)})})})};module.exports=post;
|
package/server/libs/utils.js
CHANGED
|
@@ -48,9 +48,9 @@ async function getLocationByAddress($address$$,$address2$$){try{let $url$$=`http
|
|
|
48
48
|
(await axios.get($url$$)).data.features||[];if(0<$data$$.length){let $lc$$=$data$$[0].properties||{};return{latitude:$lc$$.lat,longitude:$lc$$.lon}}console.log("Kh\u00f4ng th\u1ec3 t\u00ecm th\u1ea5y v\u1ecb tr\u00ed c\u1ee7a \u0111\u1ecba ch\u1ec9 2:",{address2:$address2$$,url:$url$$})}else console.log("Kh\u00f4ng th\u1ec3 t\u00ecm th\u1ea5y v\u1ecb tr\u00ed c\u1ee7a \u0111\u1ecba ch\u1ec9:",{address:$address$$,url:$url$$})}catch($e$$){console.error("Kh\u00f4ng th\u1ec3 x\u00e1c \u0111\u1ecbnh v\u00ed tr\u00ed c\u1ee7a \u0111\u1ecba ch\u1ec9:",
|
|
49
49
|
$address$$,"L\u1ed7i: ",($e$$.response||{}).data||$e$$)}return null}exports.getLocationByAddress=getLocationByAddress;
|
|
50
50
|
const createSokhoTC=async function($id_app$$,$currentDate_tu_ngay$$,$den_ngay$$){const $sokho$$=global.getModel("sokho");$currentDate_tu_ngay$$=new Date($currentDate_tu_ngay$$);$den_ngay$$=new Date($den_ngay$$||$currentDate_tu_ngay$$);let $rs_sokhotc$$=[];const $dates$$=[];for($currentDate_tu_ngay$$=new Date($currentDate_tu_ngay$$);$currentDate_tu_ngay$$<=$den_ngay$$;)$dates$$.push(new Date($currentDate_tu_ngay$$)),$currentDate_tu_ngay$$.setDate($currentDate_tu_ngay$$.getDate()+1);return new Promise(($res$$,
|
|
51
|
-
$rej$$)=>{async.mapSeries($dates$$,async $currentDate$jscomp$1_query$jscomp$3_rs$$=>{$currentDate$jscomp$1_query$jscomp$3_rs$$={id_app:$id_app$$,ngay_ct:{$gte:moment($currentDate$jscomp$1_query$jscomp$3_rs$$).startOf("date").toDate(),$lte:moment($currentDate$jscomp$1_query$jscomp$3_rs$$).endOf("date").toDate()}};
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
$rej$$)=>{async.mapSeries($dates$$,async $currentDate$jscomp$1_query$jscomp$3_rs$$=>{$currentDate$jscomp$1_query$jscomp$3_rs$$={id_app:$id_app$$,ngay_ct:{$gte:moment($currentDate$jscomp$1_query$jscomp$3_rs$$).startOf("date").toDate(),$lte:moment($currentDate$jscomp$1_query$jscomp$3_rs$$).endOf("date").toDate()}};let $data_sokho$$=await $sokho$$.find($currentDate$jscomp$1_query$jscomp$3_rs$$).lean();await global.getModel("sokhotc").deleteMany($currentDate$jscomp$1_query$jscomp$3_rs$$);$data_sokho$$=
|
|
52
|
+
await $data_sokho$$.asyncGroupBy("id_app ma_dvcs ma_ct ngay_ct ma_vt ma_dvt ma_lo han_sd ma_tt1 ma_tt2 ma_tt3 ma_kho ma_nt ty_gia ma_sp ma_cp ma_cong_doan".split(" "),"sl_nhap sl_xuat sl_nhap_qd sl_xuat_qd tien_hang_nt tien_hang tien_ck_nt tien_ck tien_phi_nt tien_phi tien_cp_nt tien_cp tien_hang_nk tien_hang_nk_nt tien_thue_nk tien_thue_nk_nt tien_nhap_nt tien_nhap tien_xuat tien_xuat_nt tien tien_nt tien_hang_ct_nt tien_hang_ct tien_ct tien_ct_nt tien_thue_nt tien_thue sl_sp".split(" "));$currentDate$jscomp$1_query$jscomp$3_rs$$=
|
|
53
|
+
await global.getModel("sokhotc").insertMany($data_sokho$$);$rs_sokhotc$$.push($currentDate$jscomp$1_query$jscomp$3_rs$$)},$e$$=>{if($e$$)return $rej$$($e$$);$res$$({sokhotc:$rs_sokhotc$$.length})})})};exports.createSokhoTC=createSokhoTC;
|
|
54
54
|
const createSocaiTC=async function($id_app$$,$currentDate$jscomp$2_tu_ngay$$,$den_ngay$$){const $socai$$=global.getModel("socai");$currentDate$jscomp$2_tu_ngay$$=new Date($currentDate$jscomp$2_tu_ngay$$);$den_ngay$$=new Date($den_ngay$$||$currentDate$jscomp$2_tu_ngay$$);let $rs_socaitc$$=[],$rs_socaitt$$=[];const $dates$$=[];for($currentDate$jscomp$2_tu_ngay$$=new Date($currentDate$jscomp$2_tu_ngay$$);$currentDate$jscomp$2_tu_ngay$$<=$den_ngay$$;)$dates$$.push(new Date($currentDate$jscomp$2_tu_ngay$$)),
|
|
55
55
|
$currentDate$jscomp$2_tu_ngay$$.setDate($currentDate$jscomp$2_tu_ngay$$.getDate()+1);return new Promise(($res$$,$rej$$)=>{async.mapSeries($dates$$,async $currentDate$jscomp$3_query$$=>{$currentDate$jscomp$3_query$$={id_app:$id_app$$,ngay_ct:{$gte:moment($currentDate$jscomp$3_query$$).startOf("date").toDate(),$lte:moment($currentDate$jscomp$3_query$$).endOf("date").toDate()}};console.log("Tao socaitc:",$currentDate$jscomp$3_query$$);let $data_socai$$=await $socai$$.find($currentDate$jscomp$3_query$$).lean();
|
|
56
56
|
await $data_socai$$.asyncJoinModel2($id_app$$,"account",{where:{tk_no:"tk"},fields:{tk_cn_no:"tk_cn"}});await $data_socai$$.asyncJoinModel2($id_app$$,"account",{where:{tk_co:"tk"},fields:{tk_cn_co:"tk_cn"}});for($groupBy$jscomp$2_i_rs$$=0;$groupBy$jscomp$2_i_rs$$<$data_socai$$.length;$groupBy$jscomp$2_i_rs$$++)$data_socai$$[$groupBy$jscomp$2_i_rs$$].tk_cn_no||($data_socai$$[$groupBy$jscomp$2_i_rs$$].ma_kh_no=""),$data_socai$$[$groupBy$jscomp$2_i_rs$$].tk_cn_co||($data_socai$$[$groupBy$jscomp$2_i_rs$$].ma_kh_co=
|
package/server/models/approve.js
CHANGED
|
@@ -52,7 +52,7 @@ $rs$$.toObject();$rq_approve$$.url_approve=$_data$$;$rq_approve$$.url_deny=$_dat
|
|
|
52
52
|
${footerEmailTemplate($email_content_requests$$.filter($r$$=>$r$$.user_approved||$r$$.user_denied))}
|
|
53
53
|
`;$_data$$={user_request:$user_request$$,user_approve:$user_approve$$,datasource:$data$$,url_approve:(configs.api_url||configs.domain)+"/public/approve/"+$_data$$,url_deny:(configs.api_url||configs.domain)+"/public/deny-approve/"+$_data$$,company:$app_info$$,app_info:$app_info$$,doc_so:utils.numberToWord};$email_content_requests$$=$ngEnviorment$$.$compile($email_content_requests$$)($_data$$)}else console.log("[approve][createRequest] don't find template or report template to send notify to approve user");
|
|
54
54
|
try{const $atts$$=await File.find({id_link:$data$$._id}).lean();App.emitEvent($user_request$$.current_id_app,"request_approve",{_id:$data$$._id,id_app:$data$$.id_app,title:$title$$,body:$title$$,rq_approve:$rq_approve$$,code:$data$$.ma_ct,email_content:$email_content_requests$$,allow_unsubcribe:!1,attachments:$atts$$},null,[$user_approve$$.email],!0,!0)}catch($e$$){console.error("[approve][createRequest] Error send the request approve",$e$$.message||$e$$)}});$callback$$(null,$rs$$)})}})};
|
|
55
|
-
model.sendNotifyApproved=function($rq$$){if($rq$$.ma_ct){var $title$$=`[\u0110\u00e3 duy\u1ec7t] ${$rq$$.title}`;Options.findOne({id_app:$rq$$.id_app,id_func:{$regex:"^"+$rq$$.ma_ct+"$",$options:"i"}}).lean().exec(async($e$jscomp$0$$,$option$$)=>{$rq$$.template_content||$option$$&&$option$$.option&&$option$$.option.system&&($option$$.option.system.templateEmail||$option$$.option.system.templateRpt)?App.findOne({_id:$rq$$.id_app}).lean().exec(async($e$jscomp$4_requests$$,$_data$jscomp$2_app_info$$)=>
|
|
55
|
+
model.sendNotifyApproved=async function($rq$$){if($rq$$.ma_ct){var $title$$=`[\u0110\u00e3 duy\u1ec7t] ${$rq$$.title}`;Options.findOne({id_app:$rq$$.id_app,id_func:{$regex:"^"+$rq$$.ma_ct+"$",$options:"i"}}).lean().exec(async($e$jscomp$0$$,$option$$)=>{$rq$$.template_content||$option$$&&$option$$.option&&$option$$.option.system&&($option$$.option.system.templateEmail||$option$$.option.system.templateRpt)?App.findOne({_id:$rq$$.id_app}).lean().exec(async($e$jscomp$4_requests$$,$_data$jscomp$2_app_info$$)=>
|
|
56
56
|
{if($e$jscomp$4_requests$$||!$_data$jscomp$2_app_info$$)return console.log("khong the tim thay thong tin cong ty nay");$e$jscomp$4_requests$$=await model.find({id_ct:$rq$$.data._id}).sort({trang_thai:-1}).lean();await $e$jscomp$4_requests$$.asyncJoinModel2($rq$$.id_app,participant,{where:{user_approved:"email"},fields:{user_approved_name:"name"}});await $e$jscomp$4_requests$$.asyncJoinModel2($rq$$.id_app,participant,{where:{user_denied:"email"},fields:{user_denied_name:"name"}});let $template$$=($rq$$.template_content||
|
|
57
57
|
(($option$$.option||{}).system||{}).templateEmail||(($option$$.option||{}).system||{}).templateRpt).split("<em>").join("").split("</em>").join("");$template$$=`
|
|
58
58
|
<div>
|
|
@@ -67,15 +67,16 @@ attachments:$rq$$.data._id?await File.find({id_link:$rq$$.data._id}).lean():void
|
|
|
67
67
|
model.approve=function($_c$$,$callback$$,$token$$,$options$$={reason:""}){let $key_data$$,$_id$$,$user_approved$$,$user_approved_name$$,$trang_thai$$;if(underscore.isObject($_c$$))$_id$$=$_c$$.id_request,$user_approved$$=$_c$$.email,$user_approved_name$$=$_c$$.name,$trang_thai$$=$_c$$.trang_thai;else try{$key_data$$=utils.decrypt($_c$$),$_id$$=$key_data$$.id_request,$user_approved$$=$key_data$$.email,$user_approved_name$$=$key_data$$.name,$trang_thai$$=$key_data$$.trang_thai}catch($e$$){return $callback$$("Y\u00eau c\u1ea7u n\u00e0y kh\u00f4ng c\u00f3 gi\u00e1 tr\u1ecb")}if(!$_id$$||
|
|
68
68
|
!$user_approved$$)return $callback$$("request id and approve user are required");if(!global.mongoose.Types.ObjectId.isValid($_id$$))return $callback$$("request id '"+$_id$$+"' is not valid");$_c$$={_id:$_id$$};void 0!==$trang_thai$$&&null!==$trang_thai$$&&($_c$$.trang_thai=$trang_thai$$);model.findOne($_c$$,($e$jscomp$3$$,$rq$$)=>{if($e$jscomp$3$$||!$rq$$)return $callback$$($e$jscomp$3$$||"Y\u00eau c\u1ea7u n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");if($rq$$.date_approved)return $callback$$("Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c duy\u1ec7t b\u1edfi "+
|
|
69
69
|
$rq$$.user_approved_name);if($rq$$.date_denied)return $callback$$("Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 b\u1ecb t\u1eeb ch\u1ed1i duy\u1ec7t b\u1edfi "+$rq$$.user_denied_name);$rq$$.date_approved=new Date;$rq$$.user_approved=$user_approved$$;$rq$$.user_approved_name=$user_approved_name$$;$rq$$.approved_reason=$options$$.reason||"";if(!$rq$$.user_approves||!$rq$$.user_approves.find($u$$=>0<=$u$$.email.indexOf($user_approved$$)))return $callback$$("User n\u00e0y kh\u00f4ng c\u00f3 quy\u1ec1n duy\u1ec7t y\u00eau c\u1ea7u n\u00e0y");
|
|
70
|
-
$rq$$.save(($e$jscomp$2$$,$approve$$)=>{if($e$jscomp$2$$)return $callback$$($e$jscomp$2$$);
|
|
71
|
-
|
|
72
|
-
$ctrl$$.
|
|
70
|
+
$rq$$.save(($e$jscomp$2$$,$approve$$)=>{if($e$jscomp$2$$)return $callback$$($e$jscomp$2$$);if($rq$$.update_after_approve&&$rq$$.update_after_approve.data)try{let $module_name$$=$rq$$.update_after_approve.module||$rq$$.update_after_approve.model,$ctrl$$;$module_name$$&&($ctrl$$=global.controllers[$module_name$$.toUpperCase()]);let $_m$$;$rq$$.update_after_approve.model?$_m$$=global.getModel($rq$$.update_after_approve.model):$ctrl$$&&($_m$$=$ctrl$$.getProperty("model"));if(!$_m$$)return;$_m$$.updateOne({_id:$rq$$.id_ct},
|
|
71
|
+
$rq$$.update_after_approve.data,async $e$jscomp$1$$=>{if($e$jscomp$1$$)return console.error("Can't update data after approved, error:",$e$jscomp$1$$);if($ctrl$$)try{const $obj$$=await $_m$$.findOne({_id:$rq$$.id_ct});if($obj$$){$ctrl$$.emit("saved",$obj$$);$ctrl$$.emit("updated",$obj$$);const $u$$=await global.getModel("user").findOne({email:$user_approved$$});$u$$.current_id_app=$obj$$.id_app;const $app_info$$=await App.findOne({_id:$obj$$.id_app});$ctrl$$.postData($obj$$,$e$$=>{$e$$&&console.error($e$$)});
|
|
72
|
+
$ctrl$$.handleAfterAproved&&await $ctrl$$.handleAfterAproved($obj$$,$rq$$);let $channel$$=`${$module_name$$.toLowerCase()}-${"request_approved"}`;$obj$$.id_app&&($channel$$=`${$channel$$}-${$obj$$.id_app}`);let $message$$=JSON.stringify($obj$$.toObject());try{await global.clientRedis.publish($channel$$,$message$$)}catch($e$$){console.error("[approve] [sendNotifyApproved] fire event","request_approved",$e$$)}$ctrl$$.onView($u$$,[$obj$$.toObject()],($e$jscomp$0$$,$rs$$)=>{$ctrl$$.requestApprove($app_info$$,
|
|
73
|
+
$u$$,$rs$$[0],$e$$=>{$e$$&&console.error($e$$)},null,$rq$$)})}}catch($e$$){console.error($e$$)}})}catch($e$$){console.error("Can't update data after approved, error:",$e$$.message)}model.sendNotifyApproved($rq$$,$token$$);$callback$$(null,$approve$$)})})};
|
|
73
74
|
model.deny=function($_c$jscomp$2_encrypted$$,$callback$$,$token$$,$options$$={reason:""}){let $key_data$$,$_id$$,$user_denied$$,$user_denied_name$$,$trang_thai$$;if(underscore.isObject($_c$jscomp$2_encrypted$$))$_id$$=$_c$jscomp$2_encrypted$$.id_request,$user_denied$$=$_c$jscomp$2_encrypted$$.email,$user_denied_name$$=$_c$jscomp$2_encrypted$$.name,$trang_thai$$=$_c$jscomp$2_encrypted$$.trang_thai;else try{$key_data$$=utils.decrypt($_c$jscomp$2_encrypted$$),$_id$$=$key_data$$.id_request,$user_denied$$=
|
|
74
75
|
$key_data$$.email,$user_denied_name$$=$key_data$$.name,$trang_thai$$=$key_data$$.trang_thai}catch($e$$){return $callback$$("Y\u00eau c\u1ea7u n\u00e0y kh\u00f4ng c\u00f3 gi\u00e1 tr\u1ecb")}if(!$_id$$||!$user_denied$$)return $callback$$("request id and deny user are required");if(!global.mongoose.Types.ObjectId.isValid($_id$$))return $callback$$("request id '"+$_id$$+"' is not valid");$_c$jscomp$2_encrypted$$={_id:$_id$$};void 0!==$trang_thai$$&&null!==$trang_thai$$&&($_c$jscomp$2_encrypted$$.trang_thai=
|
|
75
76
|
$trang_thai$$);model.findOne($_c$jscomp$2_encrypted$$,($e$jscomp$2$$,$rq$$)=>{if($e$jscomp$2$$||!$rq$$||!$rq$$.ma_ct)return $callback$$($e$jscomp$2$$||"Y\u00eau c\u1ea7u n\u00e0y kh\u00f4ng t\u1ed3n t\u1ea1i");if($rq$$.date_approved)return $callback$$("Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c duy\u1ec7t b\u1edfi "+$rq$$.user_approved_name);if($rq$$.date_denied)return $callback$$("Y\u00eau c\u1ea7u n\u00e0y \u0111\u00e3 b\u1ecb t\u1eeb ch\u1ed1i duy\u1ec7t b\u1edfi "+$rq$$.user_denied_name);
|
|
76
77
|
$rq$$.date_denied=new Date;$rq$$.user_denied=$user_denied$$;$rq$$.user_denied_name=$user_denied_name$$;$rq$$.denied_reason=$options$$.reason||"";if(!$rq$$.user_approves||!$rq$$.user_approves.find($u$$=>0<=$u$$.email.indexOf($user_denied$$)))return $callback$$("User n\u00e0y kh\u00f4ng c\u00f3 quy\u1ec1n duy\u1ec7t y\u00eau c\u1ea7u n\u00e0y");$rq$$.save(($e$jscomp$1$$,$approve$$)=>{if($e$jscomp$1$$)return $callback$$($e$jscomp$1$$);let $title$$=`[B\u1ecb t\u1eeb ch\u1ed1i] ${$rq$$.title}`;Options.findOne({id_app:$rq$$.id_app,
|
|
77
|
-
id_func:{$regex:"^"+$rq$$.ma_ct+"$",$options:"i"}}).lean().exec(($e$jscomp$0$$,$option$$)=>{$rq$$.template_content||$option$$&&$option$$.option&&$option$$.option.system&&($option$$.option.system.templateEmail||$option$$.option.system.templateRpt)?App.findOne({_id:$rq$$.id_app}).lean().exec(async($e$jscomp$
|
|
78
|
-
await $e$jscomp$
|
|
78
|
+
id_func:{$regex:"^"+$rq$$.ma_ct+"$",$options:"i"}}).lean().exec(($e$jscomp$0$$,$option$$)=>{$rq$$.template_content||$option$$&&$option$$.option&&$option$$.option.system&&($option$$.option.system.templateEmail||$option$$.option.system.templateRpt)?App.findOne({_id:$rq$$.id_app}).lean().exec(async($e$jscomp$20_requests$$,$_data$jscomp$3_app_info$$)=>{if($e$jscomp$20_requests$$||!$_data$jscomp$3_app_info$$)return console.log("khong the tim thay thong tin cong ty nay");$e$jscomp$20_requests$$=await model.find({id_ct:$rq$$.data._id}).sort({trang_thai:-1}).lean();
|
|
79
|
+
await $e$jscomp$20_requests$$.asyncJoinModel2($rq$$.id_app,participant,{where:{user_approved:"email"},fields:{user_approved_name:"name"}});await $e$jscomp$20_requests$$.asyncJoinModel2($rq$$.id_app,participant,{where:{user_denied:"email"},fields:{user_denied_name:"name"}});let $template$$=($rq$$.template_content||(($option$$.option||{}).system||{}).templateEmail||(($option$$.option||{}).system||{}).templateRpt).split("<em>").join("").split("</em>").join("");$template$$=`
|
|
79
80
|
<div>
|
|
80
81
|
<h3>Y\u00eau c\u1ea7u d\u01b0\u1edbi \u0111\u00e2y \u0111\u00e3 b\u1ecb t\u1eeb ch\u1ed1i duy\u1ec7t b\u1edfi ${$rq$$.user_denied_name} </h3>
|
|
81
82
|
<div style='color:red'>L\u00fd do t\u1eeb ch\u1ed1i: ${$rq$$.denied_reason} </div>
|
|
@@ -83,8 +84,9 @@ await $e$jscomp$19_requests$$.asyncJoinModel2($rq$$.id_app,participant,{where:{u
|
|
|
83
84
|
<div>Ng\u00e0y y\u00eau c\u1ea7u: {{datasource.date_created|date:'dd/MM/yyyy HH:mm:ss'}}</div>
|
|
84
85
|
<div>N\u1ed9i dung:</div>
|
|
85
86
|
</div>
|
|
86
|
-
<hr/> ${$template$$} ${footerEmailTemplate($e$jscomp$
|
|
87
|
-
$emails$$=[$rq$$.user_request],$rqs$$=$e$jscomp$
|
|
87
|
+
<hr/> ${$template$$} ${footerEmailTemplate($e$jscomp$20_requests$$.filter($r$$=>$r$$.user_approved||$r$$.user_denied))}`;let $ngEnviorment$$=new ngcompile([]);$_data$jscomp$3_app_info$$={user_request:{name:$rq$$.user_request_name,email:$rq$$.user_request},user_deny:{name:$rq$$.user_denied_name,email:$rq$$.user_denied},datasource:$rq$$.data,company:$_data$jscomp$3_app_info$$,app_info:$_data$jscomp$3_app_info$$,doc_so:utils.numberToWord};try{let $email_content$$=$ngEnviorment$$.$compile($template$$)($_data$jscomp$3_app_info$$),
|
|
88
|
+
$emails$$=[$rq$$.user_request],$rqs$$=$e$jscomp$20_requests$$.map($a$$=>$a$$.user_request),$aps$$=$e$jscomp$20_requests$$.filter($r$$=>$r$$._id.toString()!==$rq$$._id.toString()).map($a$$=>$a$$.user_approved);$emails$$=[...(new Set($emails$$.concat($rqs$$).concat($aps$$)))].filter($r$$=>$r$$);0<$emails$$.length&&App.emitEvent($rq$$.id_app,"request_denied",{_id:$rq$$.id_ct,id_app:$rq$$.id_app,title:$title$$,body:$title$$,email_content:$email_content$$,code:$rq$$.ma_ct,allow_unsubcribe:!1,attachments:$rq$$.data._id?
|
|
88
89
|
await File.find({id_link:$rq$$.data._id}).lean():void 0},null,$emails$$,!0,!0)}catch($e$$){console.log("Error send email",$e$$.message)}}):console.log("don't find email template or report template to send notify email to request user")});if($rq$$.update_after_deny&&$rq$$.update_after_deny.data)try{let $module_name$$=$rq$$.update_after_deny.module||$rq$$.update_after_deny.model,$ctrl$$;$module_name$$&&($ctrl$$=global.controllers[$module_name$$.toUpperCase()]);let $_m$$;$rq$$.update_after_deny.model?
|
|
89
|
-
$_m$$=global.getModel($rq$$.update_after_deny.model):$ctrl$$&&($_m$$=$ctrl$$.getProperty("model"));if(!$_m$$)return;$_m$$.findOneAndUpdate({_id:$rq$$.id_ct},$rq$$.update_after_deny.data,async $e$jscomp$0$$=>{if($e$jscomp$0$$)return console.error("Can't update data after denied, error:",$e$jscomp$0$$);if($ctrl$$)try{const $obj$$=await $_m$$.findOne({_id:$rq$$.id_ct})
|
|
90
|
-
await $ctrl$$.handleAfterDenied($obj$$))}catch($e$$){console.error($e$$)}})}catch($e$$){console.log("Can't update data after deined, error:",$e$$.message)}$callback$$(null
|
|
90
|
+
$_m$$=global.getModel($rq$$.update_after_deny.model):$ctrl$$&&($_m$$=$ctrl$$.getProperty("model"));if(!$_m$$)return;$_m$$.findOneAndUpdate({_id:$rq$$.id_ct},$rq$$.update_after_deny.data,async $e$jscomp$0$$=>{if($e$jscomp$0$$)return console.error("Can't update data after denied, error:",$e$jscomp$0$$);if($ctrl$$)try{const $obj$$=await $_m$$.findOne({_id:$rq$$.id_ct});if($obj$$){$ctrl$$.emit("saved",$obj$$);$ctrl$$.emit("updated",$obj$$);$ctrl$$.postData($obj$$,$e$$=>{$e$$&&console.error($e$$)});$ctrl$$.handleAfterDenied&&
|
|
91
|
+
await $ctrl$$.handleAfterDenied($obj$$,$rq$$);let $channel$$=`${$module_name$$.toLowerCase()}-${"request_denied"}`;$obj$$.id_app&&($channel$$=`${$channel$$}-${$obj$$.id_app}`);let $message$$=JSON.stringify($obj$$.toObject());try{await global.clientRedis.publish($channel$$,$message$$)}catch($e$$){console.error("[approve] [sendNotifyDenied] fire event","request_denied",$e$$)}}}catch($e$$){console.error($e$$)}})}catch($e$$){console.log("Can't update data after deined, error:",$e$$.message)}$callback$$(null,
|
|
92
|
+
$approve$$)})})};module.exports=model;
|
|
@@ -1140,7 +1140,7 @@ model.createController = (router,_listInfo)=>{
|
|
|
1140
1140
|
_newList.dynamicDeletePost = async (obj)=>{
|
|
1141
1141
|
return deletePost(_listInfo,obj)
|
|
1142
1142
|
}
|
|
1143
|
-
_newList.dynamicPost = async (obj, fn)=>{
|
|
1143
|
+
_newList.dynamicPost = async (obj, fn,options)=>{
|
|
1144
1144
|
if(_newList.post){
|
|
1145
1145
|
_newList.post(obj, async function(e){
|
|
1146
1146
|
if(e) return fn(e);
|
|
@@ -1150,7 +1150,7 @@ model.createController = (router,_listInfo)=>{
|
|
|
1150
1150
|
}catch(e){
|
|
1151
1151
|
fn(e.message || e.error || e)
|
|
1152
1152
|
}
|
|
1153
|
-
})
|
|
1153
|
+
},options)
|
|
1154
1154
|
}else{
|
|
1155
1155
|
try{
|
|
1156
1156
|
let rs = await post(_listInfo,obj);
|
|
@@ -1181,7 +1181,7 @@ model.createController = (router,_listInfo)=>{
|
|
|
1181
1181
|
if(!_newList.dynamicDeletePost) _newList.dynamicDeletePost = async (obj)=>{
|
|
1182
1182
|
return deletePost(_listInfo,obj)
|
|
1183
1183
|
}
|
|
1184
|
-
if(!_newList.dynamicPost) _newList.dynamicPost = async (obj, fn)=>{
|
|
1184
|
+
if(!_newList.dynamicPost) _newList.dynamicPost = async (obj, fn,options)=>{
|
|
1185
1185
|
if(_newList.post){
|
|
1186
1186
|
_newList.post(obj, async function(e){
|
|
1187
1187
|
if(e) return fn(e);
|
|
@@ -1191,7 +1191,7 @@ model.createController = (router,_listInfo)=>{
|
|
|
1191
1191
|
}catch(e){
|
|
1192
1192
|
fn(e.message || e.error || e)
|
|
1193
1193
|
}
|
|
1194
|
-
})
|
|
1194
|
+
},options)
|
|
1195
1195
|
}else{
|
|
1196
1196
|
try{
|
|
1197
1197
|
let rs = await post(_listInfo,obj);
|
package/server/models/tdttco.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';const async=require("async"),moment=require("moment"),tdttcoSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ngay_hd:{type:Date,required:!0},so_hd:{type:String,uppercase:!0,maxlength:32},
|
|
2
|
-
ma_nt:{type:String,default:"VND",required:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},tk_co:{type:String,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},ngay_tt:Date,tat_toan:{type:Boolean,default:!1},
|
|
3
|
-
default:"",uppercase:!0,maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},exfields_detail:global.Schema.Types.Mixed});
|
|
4
|
-
(global.configs||{}).createIndexes&&(tdttcoSchema.index({id_app:1,
|
|
5
|
-
tdttcoSchema.pre("save",function($next$$){this.ngay_tt=moment(this.ngay_hd).add(this.han_tt||0,"days").toDate();$next$$()});const model=mongoose.models.tdttco||mongoose.model("tdttco",tdttcoSchema);
|
|
2
|
+
ma_nt:{type:String,default:"VND",required:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},tk_co:{type:String,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},ngay_tt:Date,tat_toan:{type:Boolean,default:!1},ma_kho:{type:String,uppercase:!0,maxlength:32},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,
|
|
3
|
+
default:"",uppercase:!0,maxlength:32},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32},status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""},exfields_detail:global.Schema.Types.Mixed});
|
|
4
|
+
(global.configs||{}).createIndexes&&(tdttcoSchema.index({id_app:1,id_ct:1,ngay_ct:-1,ma_kh:1}),tdttcoSchema.index({id_app:1,tat_toan:1}),tdttcoSchema.index({id_app:1,han_tt:1,ngay_tt:-1}),tdttcoSchema.index({id_ct:1}),tdttcoSchema.index({id_app:1,so_ct:1,ngay_ct:-1}),tdttcoSchema.index({id_app:1,so_hd:1,ngay_hd:-1}),tdttcoSchema.index({id_app:1,tk_co:1}),tdttcoSchema.index({id_app:1,ma_kho:1,ma_kh:1}),tdttcoSchema.index({id_app:1,ma_kh:1}),tdttcoSchema.index({id_app:1,status:1}),tdttcoSchema.index({id_app:1,
|
|
5
|
+
user_created:1,visible_to:1,visible_to_users:1}));tdttcoSchema.pre("save",function($next$$){this.ngay_tt=moment(this.ngay_hd).add(this.han_tt||0,"days").toDate();$next$$()});const model=mongoose.models.tdttco||mongoose.model("tdttco",tdttcoSchema);
|
|
6
6
|
model.getBalance=$condition$$=>new Promise(($resolve$$,$reject$$)=>{async.series({invoices:function($callback$$){setImmediate(()=>{let $query$$={...$condition$$};$condition$$.ma_dvcs&&($query$$.ma_dvcs=$condition$$.ma_dvcs);delete $query$$.access_token;$query$$.id_ct&&delete $query$$.id_ct;$query$$.id_hd&&($query$$.id_ct=$query$$.id_hd,delete $query$$.id_hd);model.find($query$$).lean().exec(($error$$,$results$$)=>{if($error$$)return $callback$$($error$$);$error$$=[];for(let $i$$=0;$i$$<$results$$.length;$i$$++){const $invoice$$=
|
|
7
7
|
$results$$[$i$$];$invoice$$.line=$i$$;$error$$.push($invoice$$)}$callback$$(null,$error$$)})})}},function($error$jscomp$0$$,$results$jscomp$0$$){if($error$jscomp$0$$)return $reject$$($error$jscomp$0$$);async.mapSeries($results$jscomp$0$$.invoices,($t_invoice$$,$callback$$)=>{setImmediate(()=>{let $query$$={id_tdtt:$t_invoice$$._id};$condition$$.id_ct&&($query$$.id_ct={$ne:$condition$$.id_ct});global.getModel("tdttco_tt").find($query$$).lean().exec(($error$jscomp$3_i$$,$results$$)=>{$t_invoice$$.da_thanh_toan_nt=
|
|
8
8
|
0;$t_invoice$$.da_thanh_toan=0;for($error$jscomp$3_i$$=0;$error$jscomp$3_i$$<$results$$.length;$error$jscomp$3_i$$++)$t_invoice$$.da_thanh_toan_nt+=$results$$[$error$jscomp$3_i$$].thanh_toan_qd,$t_invoice$$.da_thanh_toan+=$results$$[$error$jscomp$3_i$$].tien;$t_invoice$$.con_lai_nt=$t_invoice$$.tien_nt-$t_invoice$$.da_thanh_toan_nt;$t_invoice$$.con_lai=$t_invoice$$.tien-$t_invoice$$.da_thanh_toan;$callback$$(null,$t_invoice$$)})})},function($error$$,$results$$){if($error$$)return $reject$$($error$$);
|
package/server/models/tdttno.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';const async=require("async"),moment=require("moment"),tdttnoSchema=new Schema({id_app:{type:String,required:!0,maxlength:1024},ma_dvcs:{type:String,required:!0,maxlength:1024},id_ct:{type:String,required:!0,maxlength:1024},ma_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ma_gd:{type:String,default:"0",maxlength:32},ngay_ct:{type:Date,required:!0},so_ct:{type:String,required:!0,uppercase:!0,maxlength:32},ngay_hd:{type:Date,required:!0},so_hd:{type:String,uppercase:!0,maxlength:32},
|
|
2
|
-
ma_nt:{type:String,default:"VND",required:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},tk_no:{type:String,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},ngay_tt:Date,tat_toan:{type:Boolean,default:!1},
|
|
3
|
-
default:"",uppercase:!0,maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32},exfields_detail:global.Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
4
|
-
(global.configs||{}).createIndexes&&(tdttnoSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:1}),tdttnoSchema.index({tat_toan:1}),tdttnoSchema.index({han_tt:1
|
|
5
|
-
tdttnoSchema.pre("save",function($next$$){this.ngay_tt=moment(this.ngay_hd).add(this.han_tt||0,"days").toDate();$next$$()});const model=mongoose.models.tdttno||mongoose.model("tdttno",tdttnoSchema);
|
|
2
|
+
ma_nt:{type:String,default:"VND",required:!0,uppercase:!0,maxlength:32},ty_gia:{type:Number,default:1},tien_nt:{type:Number,default:0},tien:{type:Number,default:0},tk_no:{type:String,maxlength:32},ma_kh:{type:String,uppercase:!0,default:"",maxlength:32},dien_giai:{type:String,default:"",maxlength:1024},han_tt:{type:Number,default:0},ngay_tt:Date,tat_toan:{type:Boolean,default:!1},ma_kho:{type:String,default:"",uppercase:!0,maxlength:32},ma_bp:{type:String,default:"",uppercase:!0,maxlength:32},ma_phi:{type:String,
|
|
3
|
+
default:"",uppercase:!0,maxlength:32},ma_hd:{type:String,default:"",uppercase:!0,maxlength:32},ma_dt:{type:String,default:"",uppercase:!0,maxlength:32},ma_nv:{type:String,default:"",uppercase:!0,maxlength:32},exfields_detail:global.Schema.Types.Mixed,status:{type:Boolean,default:!0},date_created:{type:Date,default:Date.now},date_updated:{type:Date,default:Date.now},user_created:{type:String,default:""},user_updated:{type:String,default:""}});
|
|
4
|
+
(global.configs||{}).createIndexes&&(tdttnoSchema.index({id_app:1,ma_dvcs:1,so_ct:-1,ngay_ct:1}),tdttnoSchema.index({id_app:1,tat_toan:1}),tdttnoSchema.index({id_app:1,han_tt:1,ngay_tt:-1}),tdttnoSchema.index({id_ct:1}),tdttnoSchema.index({id_app:1,so_ct:1,so_hd:1}),tdttnoSchema.index({id_app:1,ngay_ct:1}),tdttnoSchema.index({id_app:1,ngay_hd:1}),tdttnoSchema.index({id_app:1,tk_co:1}),tdttnoSchema.index({id_app:1,ma_kh:1}),tdttnoSchema.index({id_app:1,ma_kho:1}),tdttnoSchema.index({id_app:1,ma_kho:1,
|
|
5
|
+
ma_kh:1}),tdttnoSchema.index({id_app:1,status:1}),tdttnoSchema.index({id_app:1,user_created:1,visible_to:1,visible_to_users:1}));tdttnoSchema.pre("save",function($next$$){this.ngay_tt=moment(this.ngay_hd).add(this.han_tt||0,"days").toDate();$next$$()});const model=mongoose.models.tdttno||mongoose.model("tdttno",tdttnoSchema);
|
|
6
6
|
model.getBalance=$condition$$=>new Promise(($resolve$$,$reject$$)=>{async.series({invoices:function($callback$$){setImmediate(()=>{let $query$$={...$condition$$};$condition$$.ma_dvcs&&($query$$.ma_dvcs=$condition$$.ma_dvcs);delete $query$$.access_token;$query$$.id_ct&&delete $query$$.id_ct;$query$$.id_hd&&($query$$.id_ct=$query$$.id_hd,delete $query$$.id_hd);model.find($query$$).lean().exec(($error$$,$results$$)=>{if($error$$)return $callback$$($error$$);$error$$=[];for(let $i$$=0;$i$$<$results$$.length;$i$$++){const $invoice$$=
|
|
7
7
|
$results$$[$i$$];$invoice$$.line=$i$$;$error$$.push($invoice$$)}$callback$$(null,$error$$)})})}},function($error$jscomp$0$$,$results$jscomp$0$$){if($error$jscomp$0$$)return $reject$$($error$jscomp$0$$);async.mapSeries($results$jscomp$0$$.invoices,($t_invoice$$,$callback$$)=>{setImmediate(()=>{let $query$$={id_tdtt:$t_invoice$$._id};$condition$$.id_ct&&($query$$.id_ct={$ne:$condition$$.id_ct});global.getModel("tdttno_tt").find($query$$).lean().exec(($error$jscomp$3_i$$,$results$$)=>{if($error$jscomp$3_i$$)return $callback$$($error$jscomp$3_i$$);
|
|
8
8
|
$t_invoice$$.da_thanh_toan_nt=0;$t_invoice$$.da_thanh_toan=0;for($error$jscomp$3_i$$=0;$error$jscomp$3_i$$<$results$$.length;$error$jscomp$3_i$$++)$t_invoice$$.da_thanh_toan_nt+=$results$$[$error$jscomp$3_i$$].thanh_toan_qd,$t_invoice$$.da_thanh_toan+=$results$$[$error$jscomp$3_i$$].tien;$t_invoice$$.con_lai_nt=$t_invoice$$.tien_nt-$t_invoice$$.da_thanh_toan_nt;$t_invoice$$.con_lai=$t_invoice$$.tien-$t_invoice$$.da_thanh_toan;$callback$$(null,$t_invoice$$)})})},function($error$$,$results$$){if($error$$)return $reject$$($error$$);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
'use strict';const tdttco=global.getModel("tdttco"),controller=require("../../controllers/controllerRPT");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"getinvoice2pay",function($condition_req$$,$callback$$){$condition_req$$=$condition_req$$.query;if(!$condition_req$$.ma_kh||!$condition_req$$.id_app)return $callback$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1: ma_kh,id_app");$condition_req$$.tat_toan=!1;tdttco.getBalance($condition_req$$).then($invoices_results$$=>{$invoices_results$$=$invoices_results$$.filter($r$$=>0<$r$$.con_lai_nt).map($invoice$$=>{let $t_invoice$$=
|
|
3
|
-
{sel:!1,id_tdtt:$invoice$$._id,line:$invoice$$.line,id_hd:$invoice$$.id_ct,so_hd:$invoice$$.so_hd||$invoice$$.so_ct,ngay_hd:$invoice$$.ngay_hd||$invoice$$.ngay_ct,tien_hd_nt:$invoice$$.tien_nt};$t_invoice$$.ma_nt_hd=$invoice$$.ma_nt;$t_invoice$$.ty_gia_hd=$invoice$$.ty_gia;$t_invoice$$.ma_kh=$invoice$$.ma_kh;$t_invoice$$.dien_giai=$invoice$$.dien_giai;$t_invoice$$.tien_nt=0;$t_invoice$$.tien=0;$t_invoice$$.thanh_toan_qd=0;$t_invoice$$.tk_no=$invoice$$.tk_co;$t_invoice$$.da_thanh_toan_nt
|
|
4
|
-
$t_invoice$$.da_thanh_toan=$invoice$$.da_thanh_toan;$t_invoice$$.con_lai_nt=$invoice$$.con_lai_nt;$t_invoice$$.con_lai=$invoice$$.con_lai;return $t_invoice$$});$callback$$(null,$invoices_results$$)}).catch($error$$=>{$callback$$($error$$)})},{cache:!1})};
|
|
3
|
+
{sel:!1,id_tdtt:$invoice$$._id,line:$invoice$$.line,id_hd:$invoice$$.id_ct,so_hd:$invoice$$.so_hd||$invoice$$.so_ct,ngay_hd:$invoice$$.ngay_hd||$invoice$$.ngay_ct,tien_hd_nt:$invoice$$.tien_nt};$t_invoice$$.ma_nt_hd=$invoice$$.ma_nt;$t_invoice$$.ty_gia_hd=$invoice$$.ty_gia;$t_invoice$$.ma_kh=$invoice$$.ma_kh;$t_invoice$$.ma_kho=$invoice$$.ma_kho;$t_invoice$$.dien_giai=$invoice$$.dien_giai;$t_invoice$$.tien_nt=0;$t_invoice$$.tien=0;$t_invoice$$.thanh_toan_qd=0;$t_invoice$$.tk_no=$invoice$$.tk_co;$t_invoice$$.da_thanh_toan_nt=
|
|
4
|
+
$invoice$$.da_thanh_toan_nt;$t_invoice$$.da_thanh_toan=$invoice$$.da_thanh_toan;$t_invoice$$.con_lai_nt=$invoice$$.con_lai_nt;$t_invoice$$.con_lai=$invoice$$.con_lai;return $t_invoice$$});$callback$$(null,$invoices_results$$)}).catch($error$$=>{$callback$$($error$$)})},{cache:!1})};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
'use strict';const tdttno=global.getModel("tdttno"),controller=require("../../controllers/controllerRPT");
|
|
2
2
|
module.exports=function($router$$){new controller($router$$,"getinvoice2receive",function($condition_req$$,$callback$$){$condition_req$$=$condition_req$$.query;if(!$condition_req$$.ma_kh||!$condition_req$$.id_app)return $callback$$("Ch\u1ee9c n\u0103ng n\u00e0y y\u00eau c\u1ea7u tham s\u1ed1: ma_kh,id_app");$condition_req$$.tat_toan=!1;tdttno.getBalance($condition_req$$).then($invoices_results$$=>{$invoices_results$$=$invoices_results$$.filter($r$$=>0<$r$$.con_lai_nt).map($invoice$$=>{let $t_invoice$$=
|
|
3
|
-
{sel:!1,id_tdtt:$invoice$$._id,line:$invoice$$.line,id_hd:$invoice$$.id_ct,so_hd:$invoice$$.so_hd||$invoice$$.so_ct,ngay_hd:$invoice$$.ngay_hd||$invoice$$.ngay_ct,tien_hd_nt:$invoice$$.tien_nt};$t_invoice$$.ma_nt_hd=$invoice$$.ma_nt;$t_invoice$$.ty_gia_hd=$invoice$$.ty_gia;$t_invoice$$.ma_kh=$invoice$$.ma_kh;$t_invoice$$.dien_giai=$invoice$$.dien_giai;$t_invoice$$.tien_nt=0;$t_invoice$$.tien=0;$t_invoice$$.thanh_toan_qd=0;$t_invoice$$.tk_co=$invoice$$.tk_no;$t_invoice$$.da_thanh_toan_nt
|
|
4
|
-
$t_invoice$$.da_thanh_toan=$invoice$$.da_thanh_toan;$t_invoice$$.con_lai_nt=$invoice$$.con_lai_nt;$t_invoice$$.con_lai=$invoice$$.con_lai;return $t_invoice$$});$callback$$(null,$invoices_results$$)}).catch($error$$=>{$callback$$($error$$)})},{cache:!1})};
|
|
3
|
+
{sel:!1,id_tdtt:$invoice$$._id,line:$invoice$$.line,id_hd:$invoice$$.id_ct,so_hd:$invoice$$.so_hd||$invoice$$.so_ct,ngay_hd:$invoice$$.ngay_hd||$invoice$$.ngay_ct,tien_hd_nt:$invoice$$.tien_nt};$t_invoice$$.ma_nt_hd=$invoice$$.ma_nt;$t_invoice$$.ty_gia_hd=$invoice$$.ty_gia;$t_invoice$$.ma_kh=$invoice$$.ma_kh;$t_invoice$$.ma_kho=$invoice$$.ma_kho;$t_invoice$$.dien_giai=$invoice$$.dien_giai;$t_invoice$$.tien_nt=0;$t_invoice$$.tien=0;$t_invoice$$.thanh_toan_qd=0;$t_invoice$$.tk_co=$invoice$$.tk_no;$t_invoice$$.da_thanh_toan_nt=
|
|
4
|
+
$invoice$$.da_thanh_toan_nt;$t_invoice$$.da_thanh_toan=$invoice$$.da_thanh_toan;$t_invoice$$.con_lai_nt=$invoice$$.con_lai_nt;$t_invoice$$.con_lai=$invoice$$.con_lai;return $t_invoice$$});$callback$$(null,$invoices_results$$)}).catch($error$$=>{$callback$$($error$$)})},{cache:!1})};
|