UNPKG

flexbiz-server

Version:

Flexible Server

4 lines (3 loc) 1.5 kB
'use strict';const model=global.getModel("checkinkpi"),strategickpi=global.getModel("strategickpi"),trangthai=global.getModel("trangthai"),controller=require("../../controllers/controller"),{round}=require("../../libs/utils"),checkinkpi=function($router$$){(new controller($router$$,model,"checkinkpi",{sort:{month:1,year:1},onView:async($user$$,$items$$,$next$$)=>{await $items$$.asyncJoinModel2(null,trangthai,{where:$item$$=>({ma_ct:"checkinkpi",ma_trang_thai:$item$$.trang_thai}),fields:["ten_trang_thai", "color"]});await $items$$.asyncJoinModel2($user$$.current_id_app,strategickpi,{where:$item$$=>({_id:$item$$.id_link}),fields:["measure_as","aim"]});$items$$.forEach($item$$=>{$item$$.measure_title=["s\u1ed1 l\u01b0\u1ee3ng","VND","%"][$item$$.measure_as-1];let $target_remain$$=Math.abs($item$$.target_value-$item$$.current_value);if($target_remain$$)switch($item$$.aim){case 1:$item$$.percent=$item$$.score<$item$$.current_value||!$item$$.score?0:100*round(($item$$.score-$item$$.current_value)/$target_remain$$, 2);break;case 2:$item$$.percent=$item$$.score>$item$$.current_value||!$item$$.score?0:100*round((-$item$$.score+$item$$.current_value)/$target_remain$$,2);break;case 3:$item$$.score<$item$$.current_value||!$item$$.score?$item$$.percent=0:($item$$.percent=100*round($item$$.score-$item$$.current_value/$item$$.target_value,2),100<$item$$.percent&&($item$$.percent=100-($item$$.percent-100)))}else $item$$.percent=0});$next$$(null,$items$$)}})).route()};module.exports=checkinkpi;