UNPKG

flexbiz-server

Version:

Flexible Server

21 lines (20 loc) 9.68 kB
const dmkho=global.getModel("dmkho"),dvcs=global.getModel("dvcs"),dmvt=global.getModel("dmvt"),account=global.getModel("account"),customer=global.getModel("customer"),dmdt=global.getModel("dmdt"),dmphi=global.getModel("dmphi"),contract=global.getModel("contract"),purchasecontract=global.getModel("purchase_contract"),po1=global.getModel("po1"),model=global.getModel("pnh"),controller=require("../../controllers/controller"),trangthai=global.getModel("trangthai"),async=require("async"),ma_ct="PNH",Sokhott= global.getModel("sokhott"),Options=global.getModel("options"),PostBook=require("../../libs/post-book"),PostSokho=require("../../libs/post-sokho"); module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,ma_ct.toLowerCase(),{isVoucher:!0,sort:{ngay_ct:-1,so_ct:-1}});$contr_router$$.route();const $valid$$=async($_po1_i_user$$,$obj$$,$next$$)=>{for($_po1_i_user$$=0;$_po1_i_user$$<$obj$$.details.length;$_po1_i_user$$++){const $detail$$=$obj$$.details[$_po1_i_user$$];$detail$$.line=$_po1_i_user$$;$detail$$.tien_hang_nt=$detail$$.tien_hang_nt?$detail$$.tien_hang_nt:$detail$$.sl_nhap*$detail$$.gia_von_nt;$detail$$.tien_hang= $detail$$.tien_hang?$detail$$.tien_hang:$detail$$.sl_nhap*$detail$$.gia_von;$detail$$.tien_nhap_nt=($detail$$.tien_hang_nt||0)+($detail$$.tien_phi_nt||0)-($detail$$.tien_ck_nt||0);$detail$$.tien_nhap=($detail$$.tien_hang||0)+($detail$$.tien_phi||0)-($detail$$.tien_ck||0);$obj$$.ma_nt==="VND"&&($detail$$.tien_hang=$detail$$.tien_hang_nt,$detail$$.tien_ck=$detail$$.tien_ck_nt,$detail$$.tien_phi=$detail$$.tien_phi_nt,$detail$$.tien_nhap=$detail$$.tien_nhap_nt)}$obj$$.id_po1&&!$obj$$.id_contract&&($_po1_i_user$$= await po1.findOne({_id:$obj$$.id_po1}))&&($obj$$.id_contract=$_po1_i_user$$.id_contract);$obj$$.id_contract?purchasecontract.findOne({_id:$obj$$.id_contract,id_app:$obj$$.id_app}).lean().exec(($e$$,$c$$)=>{$c$$&&($obj$$.ma_hd=$c$$.ma_hd);$next$$(null,$obj$$)}):$next$$(null,$obj$$)};$contr_router$$.post=async function($obj$$,$fn$$){$fn$$||=function(){};let $options$$;try{$options$$=await Options.getInfo($obj$$.id_app,{id_func:$obj$$.ma_ct.toLowerCase()},"option")}catch($e$$){Logger.info($e$$.message, {id_func:$obj$$.ma_ct})}$options$$||={};let $details_sokho$$=[...$obj$$.details];for(var $d_pk$$ of $details_sokho$$)$d_pk$$.nxt=1,$d_pk$$.tk_co=$obj$$.tk_co;for(var $d$jscomp$1_pk$$ of($obj$$.ds_pk_nhap||[]).filter($d$$=>$d$$.ma_pk_nhap&&$d$$.sl_pk_nhap))$d_pk$$={...$d$jscomp$1_pk$$},$d_pk$$.ma_vt=$d$jscomp$1_pk$$.ma_pk_nhap,$d_pk$$.ma_dvt=$d$jscomp$1_pk$$.ma_dvt_pk_nhap,$d_pk$$.ma_kho=$d$jscomp$1_pk$$.ma_kho_pk_nhap,$d_pk$$.nxt=1,$d_pk$$.tk_co=$obj$$.tk_co,$d_pk$$.sl_nhap=$d$jscomp$1_pk$$.sl_pk_nhap, $d_pk$$.gia_von_nt=$d$jscomp$1_pk$$.gia_von_pk_nhap_nt||0,$d_pk$$.gia_von=$d_pk$$.gia_von_nt*($obj$$.ty_gia||1),$d_pk$$.tien_nhap_nt=$d$jscomp$1_pk$$.tien_nhap_pk_nt||0,$d_pk$$.tien_nhap=$d_pk$$.tien_nhap_nt*($obj$$.ty_gia||1),$d_pk$$.sl_xuat=0,$d_pk$$.tien_hang_nt=$d_pk$$.tien_hang=0,$d_pk$$.tien_ck=$d_pk$$.tien_ck_nt=$d_pk$$.ty_le_ck=0,$d_pk$$.tien_phi=$d_pk$$.tien_phi_nt=0,$details_sokho$$.push($d_pk$$);for(let $d$$ of($obj$$.ds_pk_xuat||[]).filter($d$$=>$d$$.ma_pk_xuat&&$d$$.sl_pk_xuat))$d$jscomp$1_pk$$= {...$d$$},$d$jscomp$1_pk$$.ma_vt=$d$$.ma_pk_xuat,$d$jscomp$1_pk$$.ma_dvt=$d$$.ma_dvt_pk_xuat,$d$jscomp$1_pk$$.ma_kho=$d$$.ma_kho_pk_xuat,$d$jscomp$1_pk$$.nxt=2,$d$jscomp$1_pk$$.tk_no=$obj$$.tk_co,$d$jscomp$1_pk$$.tk_co="",$d$jscomp$1_pk$$.sl_xuat=$d$$.sl_pk_xuat,$d$jscomp$1_pk$$.gia_von_nt=$d$$.gia_von_pk_xuat_nt||0,$d$jscomp$1_pk$$.gia_von=$d$jscomp$1_pk$$.gia_von_nt*($obj$$.ty_gia||1),$d$jscomp$1_pk$$.tien_xuat_nt=$d$$.tien_xuat_pk_nt||0,$d$jscomp$1_pk$$.tien_xuat=$d$jscomp$1_pk$$.tien_xuat_nt* ($obj$$.ty_gia||1),$d$jscomp$1_pk$$.sl_nhap=0,$d$jscomp$1_pk$$.tien_nhap_nt=$d$jscomp$1_pk$$.tien_nhap=0,$d$jscomp$1_pk$$.tien_hang_nt=$d$jscomp$1_pk$$.tien_hang=0,$d$jscomp$1_pk$$.tien_ck=$d$jscomp$1_pk$$.tien_ck_nt=$d$jscomp$1_pk$$.ty_le_ck=0,$d$jscomp$1_pk$$.tien_phi=$d$jscomp$1_pk$$.tien_phi_nt=0,$details_sokho$$.push($d$jscomp$1_pk$$);async.series({post_sokhott:function($callback$$){$options$$.not_post_sokhott?$callback$$():(new PostBook($obj$$,$details_sokho$$,Sokhott,async($detail$$,$callback$$)=> {$detail$$={...$detail$$};$detail$$.nxt=$detail$$.nxt||1;$detail$$.tk_co=$obj$$.tk_co;$callback$$($detail$$)})).run(function(){$callback$$()})},post_sokho:function($callback$$){$options$$.post_sokho?(new PostSokho($obj$$,$details_sokho$$,async($detail$$,$callback$$)=>{$detail$$={...$detail$$};$detail$$.nxt=$detail$$.nxt||1;$detail$$.tk_co=$obj$$.tk_co;$callback$$($detail$$)})).run(function(){$callback$$()}):$callback$$()}},function($e$$,$rs$$){$fn$$($e$$,$rs$$)})};$contr_router$$.creating=function($user$$, $obj$$,$next$$){$obj$$.details||($obj$$.details=[]);$valid$$($user$$,$obj$$,function($error$$){if($error$$)return $next$$($error$$);$next$$(null,$obj$$)})};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$next$$){$valid$$($user$$,$data$$,function($error$$){if($error$$)return $next$$($error$$);$next$$(null,$data$$,$obj$$)})};$contr_router$$.on("saved",function($obj$$){$obj$$.id_po1&&po1.updateMany({_id:$obj$$.id_po1,id_app:$obj$$.id_app},{id_pnh:$obj$$._id.toString()},($e$$,$rs$$)=>{Logger.info("update po1", $rs$$);po1.updateMany({_id:$obj$$.id_po1,id_app:$obj$$.id_app,trang_thai:{$ne:"7"}},{trang_thai:"6"},($e$$,$rs$$)=>{Logger.info("update po1",$rs$$);po1.findOne({_id:$obj$$.id_po1,id_app:$obj$$.id_app},($e$$,$_obj$$)=>{$_obj$$&&controller.postData($_obj$$,global.controllers.PO1,$e$$=>{$e$$&&Logger.error($e$$)})})})})});$contr_router$$.on("deleted",function($obj$$){$obj$$.id_po1&&po1.updateMany({_id:$obj$$.id_po1,id_app:$obj$$.id_app},{id_pnh:""},()=>{po1.updateMany({_id:$obj$$.id_po1,id_app:$obj$$.id_app, trang_thai:{$ne:"7"}},{trang_thai:"3"},($e$$,$rs$$)=>{Logger.info("update po1",$rs$$);po1.findOne({_id:$obj$$.id_po1,id_app:$obj$$.id_app},($e$$,$_obj$$)=>{$_obj$$&&controller.postData($_obj$$,global.controllers.PO1,$e$$=>{$e$$&&Logger.error($e$$)})})})})});$contr_router$$.view=function($user$$,$items$$,$fn$$){let $id_app$$=$user$$.current_id_app;async.series({dv:function($callback$$){$items$$.filter($item$$=>$item$$.ma_dvcs).joinModel($id_app$$,dvcs,[{akey:"ma_dvcs",bkey:"_id",fields:[{name:"ten_dvcs", value:"ten_dvcs"}]}],function(){$callback$$()})},tk:function($callback$$){$items$$.filter($item$$=>$item$$.tk_co).joinModel($id_app$$,account,[{akey:"tk_co",bkey:"tk",fields:[{name:"ten_tk_co",value:"ten_tk"}]}],function(){$callback$$()})},dt:function($callback$$){$items$$.filter($item$$=>$item$$.ma_dt).joinModel($id_app$$,dmdt,[{akey:"ma_dt",bkey:"ma_dt",fields:[{name:"ten_dt",value:"ten_dt"}]}],function(){$callback$$()})},kh:function($callback$$){$items$$.filter($item$$=>$item$$.ma_kh).joinModel($id_app$$, customer,[{akey:"ma_kh",bkey:"ma_kh",fields:[{name:"ten_kh",value:"ten_kh"}]}],function(){$callback$$()})},kho:function($callback$$){$items$$.filter($item$$=>$item$$.ma_kho).joinModel($id_app$$,dmkho,[{akey:"ma_kho",bkey:"ma_kho",fields:[{name:"ten_kho",value:"ten_kho"}]}],function(){$callback$$()})},trangthai:function($callback$$){$items$$.filter($item$$=>$item$$.trang_thai).joinModel2(null,trangthai,[{where:{trang_thai:"ma_trang_thai",ma_ct:"ma_ct"},fields:["ten_trang_thai","color"]}],function(){$callback$$()})}, contract:function($callback$$){$items$$.filter($item$$=>$item$$.ma_hd).joinModel2($id_app$$,contract,[{where:{ma_hd:"so_hd"},fields:["ten_hd","ten_hd"]}],function(){$callback$$()})},t_tien:function($callback$$){$items$$.forEach(function($r$$){$r$$.t_thue_vao=0;$r$$.t_thue_vao_nt=0;$r$$.t_tien_nhap=0;$r$$.t_tien_nhap_nt=0;$r$$.details&&($r$$.t_sl=$r$$.details.csum("sl_nhap"),$r$$.t_tien_hang=$r$$.details.csum("tien_hang"),$r$$.t_tien_hang_nt=$r$$.details.csum("tien_hang_nt"),$r$$.t_ck=$r$$.details.csum("tien_ck"), $r$$.t_ck_nt=$r$$.details.csum("tien_ck_nt"),$r$$.t_cp=$r$$.details.csum("tien_phi"),$r$$.t_cp_nt=$r$$.details.csum("tien_phi_nt"),$r$$.t_tien_nhap=$r$$.details.csum("tien_nhap"),$r$$.t_tien_nhap_nt=$r$$.details.csum("tien_nhap_nt"));$r$$.t_tt=$r$$.t_tien_nhap+$r$$.t_thue_vao;$r$$.t_tt_nt=$r$$.t_tien_nhap_nt+$r$$.t_thue_vao_nt});$callback$$()},details_tk:function($callback$$){async.each($items$$,function($r$$,$callback1$$){($r$$.details||[]).filter($item$$=>$item$$.tk_vt).joinModel($id_app$$,account, [{akey:"tk_vt",bkey:"tk",fields:[{name:"ten_tk_vt",value:"ten_tk"}]}],function(){$callback1$$()})},function(){$callback$$()})},details_vt:function($callback$$){async.each($items$$,function($r$$,$callback1$$){($r$$.details||[]).filter($item$$=>$item$$.ma_vt).joinModel2($id_app$$,dmvt,[{where:"ma_vt",fields:["ten_vt","ma_tt1_yn","ma_tt2_yn","ma_tt3_yn","ma_lo_yn"]}],function(){$callback1$$()})},function(){$callback$$()})},details_dt:function($callback$$){async.mapSeries($items$$,function($r$$,$callback1$$){($r$$.details|| []).filter($item$$=>$item$$.ma_dt).joinModel($id_app$$,dmdt,[{akey:"ma_dt",bkey:"ma_dt",fields:[{name:"ten_dt",value:"ten_dt"}]}],function(){$callback1$$()})},function(){$callback$$()})},details_contract:function($callback$$){async.mapSeries($items$$,function($r$$,$callback1$$){($r$$.details||[]).filter($item$$=>$item$$.ma_hd).joinModel($id_app$$,contract,[{akey:"ma_hd",bkey:"so_hd",fields:[{name:"ten_hd",value:"ten_hd"}]}],function(){$callback1$$()})},function(){$callback$$()})},details_phi:function($callback$$){async.mapSeries($items$$, function($r$$,$callback1$$){($r$$.details||[]).filter($item$$=>$item$$.ma_phi).joinModel($id_app$$,dmphi,[{akey:"ma_phi",bkey:"ma_phi",fields:[{name:"ten_phi",value:"ten_phi"}]}],function(){$callback1$$()})},function(){$callback$$()})}},function(){$fn$$(null,$items$$)})}};