UNPKG

flexbiz-server

Version:

Flexible Server

12 lines (11 loc) 5.15 kB
const model=global.getModel("dmdt"),dkhoc=global.getModel("dkhoc"),controller=require("../../controllers/controller"),customer=global.getModel("customer"),trangthai=global.getModel("trangthai"),link=global.getModel("link"),group=global.getModel("group"),async=require("async"),{onAfterCommit}=require("../../libs/sessionContext"),getSysorder=function($item$$,$callback$$){let $sysorder$$=($item$$.stt||"0")+"-"+$item$$.ma_dt;$item$$.ma_dt_me&&$item$$.ma_dt_me!=$item$$.ma_dt.toString()?model.findOne({ma_dt:$item$$.ma_dt_me, id_app:$item$$.id_app}).lean().then(function($item_me$$){$item_me$$?getSysorder($item_me$$,function($rs$$){$sysorder$$=$rs$$+"---"+$sysorder$$;$callback$$($sysorder$$)}):$callback$$($sysorder$$)}).catch($e$$=>{Logger.error($e$$);$callback$$($sysorder$$)}):$callback$$($sysorder$$)}; module.exports=function($contr_router$$){const $createLink$$=function($user$$,$obj$$,$next$$){$obj$$.id_kh&&link.find({$or:[{id_a:$obj$$._id.toString(),id_b:$obj$$.id_kh},{id_a:$obj$$.id_kh,id_b:$obj$$._id.toString()}]}).lean().then(function($rs$$){$rs$$&&$rs$$.length!==0||(new link({id_app:$obj$$.id_app,id_a:$obj$$.id_kh,id_b:$obj$$._id.toString(),collection_a:"dmkh",collection_b:"dmdt"})).save(function($e$$){$e$$&&Logger.error($e$$)})}).catch($e$$=>{Logger.error($e$$)});$next$$&&$next$$(null,$obj$$)}, $createLinkAndCode$$=function($user$$,$obj$$,$next$$){onAfterCommit(()=>{$createLink$$($user$$,$obj$$);$obj$$.ma_dt?$next$$(null,$obj$$):model.findByIdAndUpdate($obj$$._id,{$set:{ma_dt:$obj$$._id.toString().toUpperCase()}},function($error$$,$kh$$){return $error$$?$next$$($error$$):$kh$$?($kh$$.ma_dt=$obj$$._id.toString().toUpperCase(),$next$$(null,$kh$$)):$next$$(Error("Project is not exists"))})})};$contr_router$$=new controller($contr_router$$,model,"dmdt",{sort:{sysorder:1},unique:["ma_dt"],onFinding:function($user$$, $condition$$,$next$$){async.series({find_ten_kh:function($callback$$){$condition$$.ten_kh?customer.find({id_app:$user$$.current_id_app,ten_kh:{$regex:$condition$$.ten_kh,$options:"i"}},{_id:1}).lean().then(function($khs$$){delete $condition$$.ten_kh;var $id_khs$$=[];$khs$$.forEach(function($kh$$){$id_khs$$.push($kh$$._id.toString())});$condition$$.id_kh={$in:$id_khs$$};$callback$$()}).catch($e$$=>{$callback$$($e$$)}):$callback$$()}},function($e$$){if($e$$)return $next$$($e$$);$next$$(null,$condition$$)})}, onFound:($user$$,$condition$$,$items$$,$next$$)=>{$next$$(null,$items$$)},onView:function($user$$,$items$$,$next$$){async.parallel({kh:$callback$$=>{$items$$.filter($d$$=>$d$$.id_kh).joinModel2(null,customer,[{where:{id_kh:"_id"},fields:[{name:"ten_kh",value:"ten_kh"}]}],function(){$callback$$()})},trangthai:$callback$$=>{$items$$.joinModel2(null,trangthai,[{where:$a$$=>$a$$.trang_thai===void 0?{}:{ma_ct:"DMDT",ma_trang_thai:$a$$.trang_thai},fields:["ten_trang_thai","ten_trang_thai_en","color"]}], function(){$callback$$()})},group:$callback$$=>{$items$$.filter($d$$=>$d$$.nh_dt).joinModel2(null,group,[{where:{nh_dt:"_id"},fields:["group_name","group_name_en",{group_color:"color"}]}],function(){$callback$$()})},da_dang_ky:$callback$$=>{async.map($items$$,($item$$,$callback$$)=>{async.map($item$$.ds_ca_hoc,($ca$$,$callback$$)=>{dkhoc.find({id_app:$item$$.id_app,ma_dt:$item$$.ma_dt,ma_ca_hoc:$ca$$.ma_ca_hoc}).lean().then($rs$$=>{$ca$$.sl_da_dk=$rs$$.map(()=>1).reduce(($a$$,$b$$)=>$a$$+$b$$,0); $callback$$()}).catch($e$$=>{$callback$$($e$$)})},()=>{$item$$.sl_da_dk=($item$$.ds_ca_hoc||[]).map($d$$=>$d$$.sl_da_dk).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$item$$.sl_con_thieu=($item$$.sl_du_tinh||0)-$item$$.sl_da_dk;$callback$$()})},()=>{$callback$$()})}},()=>{$next$$(null,$items$$)})},onCreating:function($user$$,$obj$$,$fn$$){$obj$$.ma_dt||($obj$$.ma_dt=$obj$$.ten_dt.toUpperCase());$fn$$(null,$obj$$)},onCreated:($user$$,$obj$$,$next$$)=>{getSysorder($obj$$,async function($rs$$){$obj$$.sysorder=$rs$$; $obj$$.bac=$rs$$.split("---").length;await model.updateOne({_id:$obj$$._id},{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,loai_nh:1}}).catch(console.error);$createLinkAndCode$$($user$$,$obj$$,$e$$=>{$e$$&&Logger.error($e$$)});$next$$(null,$obj$$)})},onUpdated:($user$$,$obj$$,$next$$)=>{getSysorder($obj$$,async function($loai_nh_rs$$){$obj$$.sysorder=$loai_nh_rs$$;$obj$$.bac=$loai_nh_rs$$.split("---").length;$loai_nh_rs$$=1;await model.findOne({ma_dt_me:$obj$$.ma_dt.toString(),id_app:$obj$$.id_app})&& ($loai_nh_rs$$=0);$obj$$.loai_nh=$loai_nh_rs$$;await model.updateOne({_id:$obj$$._id},{$set:{bac:$obj$$.bac,sysorder:$obj$$.sysorder,loai_nh:$loai_nh_rs$$}}).catch(console.error);$createLinkAndCode$$($user$$,$obj$$,$e$$=>{$e$$&&Logger.error($e$$)});$next$$(null,$obj$$)})}});$contr_router$$.route();$contr_router$$.on("saved",async function($obj$$){const $ma_dt_me$$=$obj$$.ma_dt_me;$ma_dt_me$$&&await model.updateOne({id_app:$obj$$.id_app,ma_dt:$ma_dt_me$$},{$set:{loai_nh:0}}).catch(console.error)}); $contr_router$$.on("deleted",async function($obj$$){$obj$$.ma_dt_me&&!await model.findOne({ma_dt_me:$obj$$.ma_dt_me,id_app:$obj$$.id_app}).catch(console.error)&&await model.updateOne({id_app:$obj$$.id_app,ma_dt:$obj$$.ma_dt_me},{$set:{loai_nh:1}}).catch(console.error)})};