flexbiz-server
Version:
Flexible Server
24 lines (23 loc) • 11.4 kB
JavaScript
const PostBook=require("../../libs/post-book"),PostSocai=require("../../libs/post-socai"),Sokho=global.getModel("sokho"),Sokhott=global.getModel("sokhott"),dmkho=global.getModel("dmkho"),Tdttco=global.getModel("tdttco"),Tdttco_tt=global.getModel("tdttco_tt"),Vatvao=global.getModel("vatvao"),dvcs=global.getModel("dvcs"),dmvt=global.getModel("dmvt"),dmcpmh=global.getModel("dmcpmh"),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("pn9"),controller=require("../../controllers/controller"),trangthai=global.getModel("trangthai"),async=require("async"),ma_ct="PN9",moment=require("moment");
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();$contr_router$$.post=async function($obj$$,$fn$$){$fn$$||=function(){};let $options$$;try{$options$$=await global.getModel("options").getInfo($obj$$.id_app,{id_func:($obj$$.listinfo_code||$obj$$.ma_ct).toLowerCase()},"option")}catch($e$$){Logger.info($e$$.message,{id_func:$obj$$.ma_ct})}$options$$||={};async.series({post_sokho:function($callback$$){(new PostBook($obj$$,
$obj$$.details,Sokho,async function($detail$$,$callback$$){$detail$$.nxt=1;$detail$$.tk_co=$obj$$.tk_co;$callback$$($detail$$)})).run(function($e$$,$rs$$){$callback$$($e$$,$rs$$)})},post_sokhott:function($callback$$){(new PostBook($obj$$,$obj$$.details,Sokhott,async function($detail$$,$callback$$){$detail$$.nxt=1;$detail$$.tk_co=$obj$$.tk_co;$callback$$($detail$$)})).run(function($e$$,$rs$$){$callback$$($e$$,$rs$$)})},post_vatvao:function($callback$$){(new PostBook($obj$$,$obj$$.vatvaos,Vatvao,($detail$$,
$callback$$)=>{$detail$$={...$detail$$};$detail$$.ten_vt=$detail$$.ten_vt||$obj$$.dien_giai||($obj$$.details||[]).map($d$$=>$d$$.ten_vt).join(", ");$callback$$($detail$$)})).run(function($e$$,$rs$$){$callback$$($e$$,$rs$$)})},post_socai:function($callback$$){const $details_sc$$=[];$obj$$.vatvaos.forEach(function($v_vatvao$$){$v_vatvao$$={...$v_vatvao$$};$v_vatvao$$.tk_no=$v_vatvao$$.tk_thue_no;$v_vatvao$$.tk_co=$v_vatvao$$.tk_du_thue;$v_vatvao$$.tien_nt=$v_vatvao$$.t_thue_nt;$v_vatvao$$.tien=$v_vatvao$$.t_thue;
$v_vatvao$$.ma_kh=$v_vatvao$$.ma_kh_cn||$v_vatvao$$.ma_kh;$details_sc$$.push($v_vatvao$$)});$obj$$.details.forEach(function($d$jscomp$1_detail$$){$d$jscomp$1_detail$$={...$d$jscomp$1_detail$$};$d$jscomp$1_detail$$.tk_no=$d$jscomp$1_detail$$.tk_vt;$d$jscomp$1_detail$$.ma_kh||($d$jscomp$1_detail$$.ma_kh=$obj$$.ma_kh);$d$jscomp$1_detail$$.tk_co=$d$jscomp$1_detail$$.tk_thue_nk;$d$jscomp$1_detail$$.tien_nt=$d$jscomp$1_detail$$.tien_thue_nk_nt;$d$jscomp$1_detail$$.tien=$d$jscomp$1_detail$$.tien_thue_nk;
$details_sc$$.push($d$jscomp$1_detail$$)});$obj$$.details.forEach(function($d$jscomp$2_detail$$){$d$jscomp$2_detail$$={...$d$jscomp$2_detail$$};$d$jscomp$2_detail$$.tk_no=$d$jscomp$2_detail$$.tk_vt;$d$jscomp$2_detail$$.ma_kh||($d$jscomp$2_detail$$.ma_kh=$obj$$.ma_kh);$d$jscomp$2_detail$$.tk_co=$obj$$.tk_co;$d$jscomp$2_detail$$.tien_nt=$d$jscomp$2_detail$$.tien_hang_nt+$d$jscomp$2_detail$$.tien_phi_nt-$d$jscomp$2_detail$$.tien_ck_nt;$d$jscomp$2_detail$$.tien=$d$jscomp$2_detail$$.tien_hang+$d$jscomp$2_detail$$.tien_phi-
$d$jscomp$2_detail$$.tien_ck;$details_sc$$.push($d$jscomp$2_detail$$)});(new PostSocai($obj$$,$details_sc$$)).run(function($e$$,$rs$$){$callback$$($e$$,$rs$$)})},post_tdttco:function($callback$$){account.findOne({tk:$obj$$.tk_co,id_app:$obj$$.id_app},{tk_cn:1},function($error$$,$tk$$){if($error$$)return $callback$$($error$$);$tk$$?.tk_cn===!0||$options$$.post_tdtt_tm?(new PostBook($obj$$,[{...$obj$$}],Tdttco,function($obj$$,$callback$$){$obj$$.so_hd=$obj$$.so_ct;$obj$$.ngay_hd=$obj$$.ngay_ct;$obj$$.tien_nt=
$obj$$.details.csum("tien_hang_nt")-$obj$$.details.csum("tien_ck_nt")+$obj$$.details.csum("tien_phi_nt");$obj$$.tien=$obj$$.details.csum("tien_hang")-$obj$$.details.csum("tien_ck")+$obj$$.details.csum("tien_phi");$callback$$($obj$$)})).run(function($e$$,$rs$$){$callback$$($e$$,$rs$$)}):Tdttco.deleteMany({id_ct:$obj$$._id},function(){$callback$$($error$$)})})}},function($e$$,$rs$$){$fn$$($e$$,$rs$$)})};const $valid$$=async($_po1_i_i$jscomp$1_i$$,$obj$$,$next$$)=>{for($_po1_i_i$jscomp$1_i$$=0;$_po1_i_i$jscomp$1_i$$<
$obj$$.details.length;$_po1_i_i$jscomp$1_i$$++){var $ctcpmh_detail$jscomp$5_vatvao$$=$obj$$.details[$_po1_i_i$jscomp$1_i$$];$ctcpmh_detail$jscomp$5_vatvao$$.line=$_po1_i_i$jscomp$1_i$$;$obj$$.ma_nt==="VND"&&($ctcpmh_detail$jscomp$5_vatvao$$.tien_hang=$ctcpmh_detail$jscomp$5_vatvao$$.tien_hang_nt,$ctcpmh_detail$jscomp$5_vatvao$$.tien_ck=$ctcpmh_detail$jscomp$5_vatvao$$.tien_ck_nt,$ctcpmh_detail$jscomp$5_vatvao$$.tien_phi=$ctcpmh_detail$jscomp$5_vatvao$$.tien_phi_nt,$ctcpmh_detail$jscomp$5_vatvao$$.tien_thue_nk=
$ctcpmh_detail$jscomp$5_vatvao$$.tien_thue_nk_nt,$ctcpmh_detail$jscomp$5_vatvao$$.tien_hang_nk=$ctcpmh_detail$jscomp$5_vatvao$$.tien_hang_nk_nt,$ctcpmh_detail$jscomp$5_vatvao$$.tien_nhap=$ctcpmh_detail$jscomp$5_vatvao$$.tien_nhap_nt)}if($obj$$.vatvaos)for($_po1_i_i$jscomp$1_i$$=0;$_po1_i_i$jscomp$1_i$$<$obj$$.vatvaos.length;$_po1_i_i$jscomp$1_i$$++)$ctcpmh_detail$jscomp$5_vatvao$$=$obj$$.vatvaos[$_po1_i_i$jscomp$1_i$$],$ctcpmh_detail$jscomp$5_vatvao$$.line=$_po1_i_i$jscomp$1_i$$,$obj$$.ma_nt==="VND"&&
($ctcpmh_detail$jscomp$5_vatvao$$.t_thue=$ctcpmh_detail$jscomp$5_vatvao$$.t_thue_nt);if($obj$$.ctcpmhs)for($_po1_i_i$jscomp$1_i$$=0;$_po1_i_i$jscomp$1_i$$<$obj$$.ctcpmhs.length;$_po1_i_i$jscomp$1_i$$++)$ctcpmh_detail$jscomp$5_vatvao$$=$obj$$.ctcpmhs[$_po1_i_i$jscomp$1_i$$],$ctcpmh_detail$jscomp$5_vatvao$$.line=$_po1_i_i$jscomp$1_i$$,$obj$$.ma_nt==="VND"&&($ctcpmh_detail$jscomp$5_vatvao$$.t_thue=$ctcpmh_detail$jscomp$5_vatvao$$.t_thue_nt);$obj$$.id_po1&&!$obj$$.id_contract&&($_po1_i_i$jscomp$1_i$$=
await po1.findOne({_id:$obj$$.id_po1,id_app:$obj$$.id_app}))&&($obj$$.id_contract=$_po1_i_i$jscomp$1_i$$.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$$.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$$){Tdttco_tt.findOne({id_hd:$obj$$._id,id_app:$obj$$.id_app},function($error$$,$ct_tt$$){if($error$$)return $next$$($error$$);$ct_tt$$?$next$$(`Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt phi\u1ebfu n\u00e0y do \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n b\u1edfi ${$ct_tt$$.ma_ct||"ch\u1ee9ng t\u1eeb"}: ${$ct_tt$$.so_ct}, ng\u00e0y ${moment($ct_tt$$.ngay_ct).format("DD/MM/YYYY")}`):$valid$$($user$$,$data$$,function($error$$){if($error$$)return $next$$($error$$);
$next$$(null,$data$$,$obj$$)})})};$contr_router$$.deleting=function($user$$,$obj$$,$next$$){Tdttco_tt.findOne({id_hd:$obj$$._id,id_app:$obj$$.id_app},function($error$$,$ct_tt$$){if($error$$)return $next$$($error$$);$ct_tt$$?$next$$(`Kh\u00f4ng th\u1ec3 xo\u00e1 phi\u1ebfu n\u00e0y do \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n b\u1edfi ${$ct_tt$$.ma_ct||"ch\u1ee9ng t\u1eeb"}: ${$ct_tt$$.so_ct}, ng\u00e0y ${moment($ct_tt$$.ngay_ct).format("DD/MM/YYYY")}`):$next$$(null,$obj$$)})};$contr_router$$.view=
function($user$$,$items$$,$fn$$){const $id_app$$=$user$$.current_id_app;async.parallel({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$$()})},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_hang_nk=$r$$.details.csum("tien_hang_nk"),$r$$.t_tien_hang_nk_nt=$r$$.details.csum("tien_hang_nk_nt"),$r$$.t_tien_thue_nk=$r$$.details.csum("tien_thue_nk"),$r$$.t_tien_thue_nk_nt=$r$$.details.csum("tien_thue_nk_nt"),$r$$.t_tien_nhap=$r$$.details.csum("tien_nhap"),$r$$.t_tien_nhap_nt=$r$$.details.csum("tien_nhap_nt"));
$r$$.vatvaos&&($r$$.t_thue_vao=$r$$.vatvaos.csum("t_thue"),$r$$.t_thue_vao_nt=$r$$.vatvaos.csum("t_thue_nt"));$r$$.ctcpmhs&&($r$$.t_cp_cpb_nt=$r$$.ctcpmhs.csum("tien_cp_nt"),$r$$.t_cp_cpb=$r$$.vatvaos.csum("tien_cp"));$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_vt:function($callback$$){async.each($items$$,function($r$$,$callback1$$){($r$$.details||[]).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$$()})},details_cpmh:function($callback$$){async.each($items$$,
function($ctcpmhs_r$$,$callback1$$){($ctcpmhs_r$$=$ctcpmhs_r$$.ctcpmhs)?$ctcpmhs_r$$.filter($item$$=>$item$$.ma_cp).joinModel($id_app$$,dmcpmh,[{akey:"ma_cp",bkey:"ma_cp",fields:[{name:"ten_cp",value:"ten_cp"}]}],function(){$callback1$$()}):$callback1$$()},function(){$callback$$()})}},function(){$fn$$(null,$items$$)})}};