flexbiz-server
Version:
Flexible Server
97 lines • 62.8 kB
JavaScript
const async=require("async"),_=require("lodash"),moment=require("moment"),numeral=require("numeral"),PostBook=require("../../libs/post-book"),PostSokho=require("../../libs/post-sokho"),PostSocai=require("../../libs/post-socai"),Sokhott=global.getModel("sokhott"),Tdttno=global.getModel("tdttno"),Tdttno_tt=global.getModel("tdttno_tt"),Vatra=global.getModel("vatra"),Options=global.getModel("options"),dmvt=global.getModel("dmvt"),account=global.getModel("account"),dmkho=global.getModel("dmkho"),customer=
global.getModel("customer"),dmnv=global.getModel("dmnv"),dmdt=global.getModel("dmdt"),dmphi=global.getModel("dmphi"),contract=global.getModel("contract"),salecontract=global.getModel("sale_contract"),model=global.getModel("hd2"),controller=require("../../controllers/controller"),utils=require("../../libs/utils"),tinhhoahong=require("../../libs/tinhhoahong"),ptthanhtoan=global.getModel("ptthanhtoan"),trangthai=global.getModel("trangthai"),{QRPay}=require("vietnam-qr-pay"),ma_ct="HD2",App=global.getModel("app"),
blockchainconnect=require("../../libs/blockchainconnect"),spend=async($appInfo$$,$receiver_user$$,$receiver_address$$,$amount$$,$denom$$,$memo$$,$introduce_code$$,$sub_action$$="")=>{try{await blockchainconnect.spend($appInfo$$._id,$appInfo$$.wallet_token,$appInfo$$.wallet_address,$receiver_address$$,{amount:$amount$$,denom:$denom$$,memo:$memo$$,action:"bonus",introduce_code:$introduce_code$$,sub_action:$sub_action$$})}catch($e$$){Logger.error("Error send coin",$e$$,$receiver_user$$,$receiver_address$$,
$amount$$,$denom$$,$memo$$)}},taothongtinchuyenkhoan=async($bank_bin_user$$,$r$$)=>{if($r$$.trang_thai==="3")if($r$$.pt_thanh_toan){var $t_thue_nt_t_tt$$=$r$$.details.csum("tien_thue_nt"),$bank_name_t_tien_ct_nt$$=$r$$.details.csum("tien_ct_nt"),$bank_account_number_tc_ck_nt$$=$r$$.details.csum("tien_ck_nt")+($r$$.tien_ck_hd||0);$t_thue_nt_t_tt$$=Math.round(($bank_name_t_tien_ct_nt$$-$bank_account_number_tc_ck_nt$$+$t_thue_nt_t_tt$$+($r$$.tien_phi_vc_nt||0))*($r$$.ty_gia||1));if($t_thue_nt_t_tt$$==
0)$r$$.bank_payment_info=void 0;else{var $pttt_purpose$$=await ptthanhtoan.findOne({id_app:$r$$.id_app,_id:$r$$.pt_thanh_toan,payment_service:"bank"}).lean();if($pttt_purpose$$&&$pttt_purpose$$.payment_service=="bank"&&$bank_bin_user$$.current_app_info){$bank_name_t_tien_ct_nt$$=($pttt_purpose$$.bank_configs||{}).bank_name||$bank_bin_user$$.current_app_info.ten_ngan_hang;$bank_account_number_tc_ck_nt$$=($pttt_purpose$$.bank_configs||{}).bank_account_number||$bank_bin_user$$.current_app_info.tai_khoan_ngan_hang;
const $bank_account_name$$=($pttt_purpose$$.bank_configs||{}).bank_account_name||$bank_bin_user$$.current_app_info.ten_chu_tai_khoan;$bank_bin_user$$=($pttt_purpose$$.bank_configs||{}).so_bin||$bank_bin_user$$.current_app_info.so_bin;$pttt_purpose$$=`TTDH ${$r$$.so_ct} ${$r$$._id.toString()}`;const $qrcode$$=QRPay.initVietQR({bankBin:$bank_bin_user$$,bankNumber:$bank_account_number_tc_ck_nt$$,amount:$t_thue_nt_t_tt$$.toString(),purpose:$pttt_purpose$$}).build();$r$$.bank_payment_info={bank_name:$bank_name_t_tien_ct_nt$$,
bank_bin:$bank_bin_user$$,bank_account_number:$bank_account_number_tc_ck_nt$$,bank_account_name:$bank_account_name$$,amount:$t_thue_nt_t_tt$$,purpose:$pttt_purpose$$,qrcode:$qrcode$$}}else $r$$.bank_payment_info=void 0}}else $r$$.bank_payment_info=void 0},tinhGiaChuaThue=($obj$$,$detail$$)=>{let $f_tien_nt$$=$obj$$.ma_nt=="VND"?0:3,$thue_suat$$=($detail$$.ma_thue?$detail$$.thue_suat:$obj$$.thue_suat)||0;$detail$$.gia_ban_ct_nt||($detail$$.tien_thue_nt?($detail$$.gia_ban_ct_nt=$detail$$.gia_ban_nt,
$detail$$.tien_ct_nt=$detail$$.tien_nt,$detail$$.tien_ct=Math.round($detail$$.tien_ct_nt*$obj$$.ty_gia),$detail$$.gia_ban_nt=$detail$$.gia_ban_ct_nt*(1+$detail$$.thue_suat/100)):($detail$$.gia_ban_ct_nt=utils.round($detail$$.gia_ban_nt/(1+$thue_suat$$/100),5),$detail$$.tien_ct_nt=utils.round($detail$$.gia_ban_ct_nt*$detail$$.sl_xuat,$f_tien_nt$$),$detail$$.tien_ct=Math.round($detail$$.tien_ct_nt*$obj$$.ty_gia)));$detail$$.tien_ck_nt=$detail$$.tien_ck_nt||0;$detail$$.ty_le_ck&&($detail$$.tien_ck_nt=
utils.round($detail$$.tien_ct_nt*$detail$$.ty_le_ck/100,$f_tien_nt$$));$detail$$.tien_thue_nt=$detail$$.tien_thue_nt_dc||utils.round(($detail$$.tien_ct_nt-$detail$$.tien_ck_nt)*$thue_suat$$/100,$f_tien_nt$$);$detail$$.tien_nt=$detail$$.tien_ct_nt-$detail$$.tien_ck_nt+$detail$$.tien_thue_nt};
module.exports=function($router$$){const $contr$$=new controller($router$$,model,ma_ct.toLowerCase(),{isVoucher:!0,kiem_tra_han_muc_cong_no:!0,sort:{ngay_ct:-1,so_ct:-1},onFinding:($user$$,$condition$$,$next$$)=>{$next$$(null,$condition$$)},onFound:($user$$,$condition$$,$items$$,$next$$)=>{$next$$(null,$items$$)}});$contr$$.route();$contr$$.reposting=async($user$$,$obj$$)=>{$obj$$.user_created||($obj$$.user_created=$user$$.email);let $d$$=moment($obj$$.ngay_ct).subtract(1,"months").toDate();await $obj$$.details.asyncJoinModel2($user$$.current_id_app,
dmvt,{where:"ma_vt",setFields:($item$$,$ref$$)=>{$item$$.combo=$ref$$.combo||[]}});await $obj$$.details.asyncJoinModel2($obj$$.id_app,"giatb",{where:$item$$=>({ma_vt:$item$$.ma_vt,id_app:$obj$$.id_app,nam:$d$$.getFullYear(),thang:$d$$.getMonth()+1,gia:{$gt:0}}),fields:[{gia_mua:"gia"}]});$obj$$.details.forEach($d$$=>{$d$$.tien_ct=Math.round(($d$$.tien_ct_nt||0)*($obj$$.ty_gia||0));$d$$.tt_nt=($d$$.tien_ct_nt||0)-($d$$.tien_ck_nt||0);$d$$.tt=($d$$.tien_ct||0)-($d$$.tien_ck||0);$d$$.combo&&$d$$.combo.length>
0&&($d$$.combo.forEach($c$$=>{$c$$.sl_xuat_1_combo=$c$$.sl_xuat;$c$$.sl_xuat=$c$$.sl_xuat_1_combo*$d$$.sl_xuat;$c$$.tien_hang=$c$$.tien_hang_nt=0}),$d$$.gia_mua=$d$$.combo.map($c$$=>($c$$.gia_mua||0)*$c$$.sl_xuat_1_combo).reduce(($a$$,$b$$)=>$a$$+$b$$,0));$d$$.tien_xuat_tmp=$d$$.sl_xuat*($d$$.gia_mua||0)});await tinhhoahong($obj$$,$user$$);await model.updateOne({_id:$obj$$._id},{user_created:$obj$$.user_created,details:$obj$$.details})};$contr$$.saving=async($user$$,$obj$$)=>{$obj$$.warranty_policy_id==
""&&delete $obj$$.warranty_policy_id;$obj$$.ma_kho_npp="";$obj$$.of_user="";var $cust_kho_npp$$=$obj$$.ma_kh?await customer.findOne({id_app:$obj$$.id_app,ma_kh:$obj$$.ma_kh}).lean():void 0;$cust_kho_npp$$&&$cust_kho_npp$$.of_user&&($cust_kho_npp$$=await global.getModel("dmkho").findOne({id_app:$obj$$.id_app,user_npp:$cust_kho_npp$$.of_user,la_kho_npp:!0}).lean())&&($obj$$.ma_kho_npp=$cust_kho_npp$$.ma_kho,$obj$$.of_user=$cust_kho_npp$$.user_npp);$obj$$.user_created||($obj$$.user_created=$user$$.email);
$obj$$.details.forEach($d$$=>{$d$$.sl_xuat=utils.round($d$$.sl_xuat,4);$d$$.tt_nt=$d$$.tien_ct_nt-$d$$.tien_ck_nt;$d$$.tt=$d$$.tien_ct-$d$$.tien_ck;$d$$.tien_xuat_tmp=$d$$.sl_xuat*($d$$.gia_mua||0)});$obj$$.ma_nv_giao_hang&&!$obj$$.user_nv_giao_hang&&($obj$$.user_nv_giao_hang=(await global.getModel("dmnv").findOne({id_app:$obj$$.id_app,ma_nv:$obj$$.ma_nv_giao_hang}).lean())?.user);!$obj$$.ma_nv_giao_hang&&$obj$$.user_nv_giao_hang&&($obj$$.ma_nv_giao_hang=(await global.getModel("dmnv").findOne({id_app:$obj$$.id_app,
user:$obj$$.user_nv_giao_hang}).lean())?.ma_nv);await tinhhoahong($obj$$,$user$$);await taothongtinchuyenkhoan($user$$,$obj$$)};$contr$$.post=async($obj$$,$fn$$,$_options$$={})=>{$fn$$||=function(){};const $appInfo$$=await global.getModel("app").findOne({_id:$obj$$.id_app}).lean();let $kho$$=await dmkho.findOne({id_app:$obj$$.id_app,ma_kho:$obj$$.ma_kho}).lean()||{},$options$$;try{$options$$=await 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$$||={};await $obj$$.details.asyncJoinModel2($obj$$.id_app,dmvt,{where:"ma_vt",fields:["gia_mua,tk_tl"]});const $customer$$=$obj$$.ma_kh?await global.getModel("customer").findOne({id_app:$obj$$.id_app,ma_kh:$obj$$.ma_kh},{ma_kho_npp:1})||{}:{};let $product_details$$=$obj$$.details.map($detail$$=>{$detail$$.tien_nt=$detail$$.tien_nt||0;$detail$$.tien=$detail$$.tien||0;$detail$$.nxt=2;return $detail$$.combo&&$detail$$.combo.length>0?$detail$$.combo.map($item$$=>{$item$$=
$item$$.toObject?$item$$.toObject():{...$item$$};$detail$$.gia_ban_nt||($item$$.gia_ban_nt=0,$item$$.gia_nt=0,$item$$.tien_nt=0,$item$$.tien=0,$item$$.tien_ck_nt=0,$item$$.tien_ck=0);$item$$.ma_kho=$item$$.ma_kho||$detail$$.ma_kho;$item$$.nxt=2;delete $item$$.px_gia_dd;return $item$$}):[$detail$$]}).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);$obj$$.details.forEach($d$$=>{$d$$.promotion&&$d$$.promotion.details_km&&$d$$.promotion.details_km.forEach($p$$=>{if($p$$.ma_vt&&$p$$.sl_km){let $_p$$={};_.extend($_p$$,
$p$$,{sl_xuat:$p$$.sl_km});$product_details$$.push($_p$$)}})});$obj$$.promotion&&$obj$$.promotion.forEach($p$$=>{if($p$$.ma_vt&&$p$$.sl_km){let $_p$$={};_.extend($_p$$,$p$$,{sl_xuat:$p$$.sl_km});$product_details$$.push($_p$$)}});let $product_details_npp$$=$obj$$.ma_kho_npp?_.cloneDeep($product_details$$):[];$product_details_npp$$.forEach($detail$$=>{$detail$$.nxt=1;$detail$$.sl_nhap=$detail$$.sl_xuat;$detail$$.gia_von_nt=$detail$$.gia_ban_nt;$detail$$.gia_von=$detail$$.gia_ban;$detail$$.tien_nhap_nt=
$detail$$.tien_nt-($detail$$.tien_ck_nt||0);$detail$$.tien_nhap=$detail$$.tien-($detail$$.tien_ck||0);$detail$$.tk_co=$obj$$.tk_co;$detail$$.ma_kho=$obj$$.ma_kho_npp;$detail$$.sl_xuat=0;$detail$$.sl_xuat_qd=0;$detail$$.tien_xuat=$detail$$.tien_xuat_nt=0});for(var $detail$$ of($obj$$.details||[]).filter($d$$=>$d$$.sl_vt_du)){const $vt_du$$={...$detail$$,nxt:1};$vt_du$$.ma_vt=$vt_du$$.ma_vt_du||$vt_du$$.ma_vt;$vt_du$$.ma_dvt=$detail$$.ma_dvt_vt_du||$vt_du$$.ma_dvt;$vt_du$$.sl_xuat=0;$vt_du$$.tien_xuat_nt=
$vt_du$$.tien_xuat=0;$vt_du$$.tien_hang_nt=$vt_du$$.tien_hang=0;$vt_du$$.tien_ck=$vt_du$$.tien_ck_nt=$vt_du$$.ty_le_ck=0;$vt_du$$.tien_phi=$vt_du$$.tien_phi_nt=0;$vt_du$$.sl_nhap=$detail$$.sl_vt_du;$vt_du$$.gia_von_nt=$vt_du$$.gia_von=0;$vt_du$$.tien_nhap=$vt_du$$.tien_nhap_nt=$vt_du$$.gt_vt_du||0;$product_details$$.push($vt_du$$)}$detail$$=($obj$$.ds_pk_nhap||[]).filter($d$$=>$d$$.ma_pk_nhap&&$d$$.sl_pk_nhap).concat($obj$$.details.filter($d$$=>$d$$.ma_pk_nhap&&$d$$.sl_pk_nhap));for(var $detail$jscomp$4_pk$$ of $detail$$)$detail$$=
{...$detail$jscomp$4_pk$$},$detail$$.ma_vt=$detail$$.ma_pk_nhap,$detail$$.ma_dvt=$detail$$.ma_dvt_pk_nhap,$detail$$.ma_kho=$detail$$.ma_kho_pk_nhap,$detail$$.nxt=1,$detail$$.tk_co=$obj$$.tk_co,$detail$$.sl_nhap=$detail$$.sl_pk_nhap,$detail$$.gia_von_nt=$detail$$.gia_von_pk_nhap_nt||0,$detail$$.gia_von=$detail$$.gia_von_nt*($obj$$.ty_gia||1),$detail$$.tien_nhap_nt=$detail$$.tien_nhap_pk_nt||0,$detail$$.tien_nhap=$detail$$.tien_nhap_nt*($obj$$.ty_gia||1),$detail$$.sl_xuat=0,$detail$$.tien_xuat_nt=$detail$$.tien_xuat=
0,$detail$$.tien_hang_nt=$detail$$.tien_hang=0,$detail$$.tien_ck=$detail$$.tien_ck_nt=$detail$$.ty_le_ck=0,$detail$$.tien_phi=$detail$$.tien_phi_nt=0,$product_details$$.push($detail$$);$detail$jscomp$4_pk$$=($obj$$.ds_pk_xuat||[]).filter($d$$=>$d$$.ma_pk_xuat&&$d$$.sl_pk_xuat).concat($obj$$.details.filter($d$$=>$d$$.ma_pk_xuat&&$d$$.sl_pk_xuat));for(var $d$jscomp$9_pk$$ of $detail$jscomp$4_pk$$)$detail$jscomp$4_pk$$={...$d$jscomp$9_pk$$},$detail$jscomp$4_pk$$.ma_vt=$d$jscomp$9_pk$$.ma_pk_xuat,$detail$jscomp$4_pk$$.ma_dvt=
$d$jscomp$9_pk$$.ma_dvt_pk_xuat,$detail$jscomp$4_pk$$.ma_kho=$d$jscomp$9_pk$$.ma_kho_pk_xuat,$detail$jscomp$4_pk$$.nxt=2,$detail$jscomp$4_pk$$.tk_no=$obj$$.tk_co,$detail$jscomp$4_pk$$.tk_co="",$detail$jscomp$4_pk$$.sl_xuat=$d$jscomp$9_pk$$.sl_pk_xuat,$detail$jscomp$4_pk$$.gia_von_nt=$d$jscomp$9_pk$$.gia_von_pk_xuat_nt||0,$detail$jscomp$4_pk$$.gia_von=$detail$jscomp$4_pk$$.gia_von_nt*($obj$$.ty_gia||1),$detail$jscomp$4_pk$$.tien_xuat_nt=$d$jscomp$9_pk$$.tien_xuat_pk_nt||0,$detail$jscomp$4_pk$$.tien_xuat=
$detail$jscomp$4_pk$$.tien_xuat_nt*($obj$$.ty_gia||1),$detail$jscomp$4_pk$$.sl_nhap=0,$detail$jscomp$4_pk$$.tien_nhap_nt=$detail$jscomp$4_pk$$.tien_nhap=0,$detail$jscomp$4_pk$$.tien_hang_nt=$detail$jscomp$4_pk$$.tien_hang=0,$detail$jscomp$4_pk$$.tien_ck=$detail$jscomp$4_pk$$.tien_ck_nt=$detail$jscomp$4_pk$$.ty_le_ck=0,$detail$jscomp$4_pk$$.tien_phi=$detail$jscomp$4_pk$$.tien_phi_nt=0,$product_details$$.push($detail$jscomp$4_pk$$);$d$jscomp$9_pk$$=($obj$$.ds_pk_nhap||[]).filter($d$$=>$d$$.ma_pk_nhap&&
$d$$.sl_pk_nhap).concat(($obj$$.details||[]).filter($d$$=>$d$$.ma_pk_nhap&&$d$$.sl_pk_nhap));for(var $d$jscomp$12_pk$$ of $d$jscomp$9_pk$$)$d$jscomp$9_pk$$={...$d$jscomp$12_pk$$},$d$jscomp$9_pk$$.ma_vt=$d$jscomp$12_pk$$.ma_pk_nhap,$d$jscomp$9_pk$$.ma_dvt=$d$jscomp$12_pk$$.ma_dvt_pk_nhap,$d$jscomp$9_pk$$.ma_kho=$obj$$.ma_kho_npp||$customer$$.ma_kho_npp,$d$jscomp$9_pk$$.ma_kh=$obj$$.ma_kh,$d$jscomp$9_pk$$.nxt=2,$d$jscomp$9_pk$$.tk_no=$obj$$.tk_co,$d$jscomp$9_pk$$.sl_xuat=$d$jscomp$12_pk$$.sl_pk_nhap,
$d$jscomp$9_pk$$.gia_von_nt=$d$jscomp$12_pk$$.gia_von_pk_nhap_nt||0,$d$jscomp$9_pk$$.gia_von=$d$jscomp$9_pk$$.gia_von_nt*($obj$$.ty_gia||1),$d$jscomp$9_pk$$.tien_xuat_nt=$d$jscomp$12_pk$$.tien_nhap_pk_nt||0,$d$jscomp$9_pk$$.tien_xuat=$d$jscomp$9_pk$$.tien_xuat_nt*($obj$$.ty_gia||1),$d$jscomp$9_pk$$.sl_nhap=0,$d$jscomp$9_pk$$.tien_nhap_nt=$d$jscomp$9_pk$$.tien_nhap=0,$d$jscomp$9_pk$$.tien_hang_nt=$d$jscomp$9_pk$$.tien_hang=0,$d$jscomp$9_pk$$.tien_ck=$d$jscomp$9_pk$$.tien_ck_nt=$d$jscomp$9_pk$$.ty_le_ck=
0,$d$jscomp$9_pk$$.tien_phi=$d$jscomp$9_pk$$.tien_phi_nt=0,$product_details_npp$$.push($d$jscomp$9_pk$$);$d$jscomp$12_pk$$=($obj$$.ds_pk_xuat||[]).filter($d$$=>$d$$.ma_pk_xuat&&$d$$.sl_pk_xuat).concat(($obj$$.details||[]).filter($d$$=>$d$$.ma_pk_xuat&&$d$$.sl_pk_xuat));for(let $d$$ of $d$jscomp$12_pk$$)$d$jscomp$12_pk$$={...$d$$},$d$jscomp$12_pk$$.ma_vt=$d$$.ma_pk_xuat,$d$jscomp$12_pk$$.ma_dvt=$d$$.ma_dvt_pk_xuat,$d$jscomp$12_pk$$.ma_kho=$obj$$.ma_kho_npp||$customer$$.ma_kho_npp,$d$jscomp$12_pk$$.ma_kh=
$obj$$.ma_kh,$d$jscomp$12_pk$$.nxt=1,$d$jscomp$12_pk$$.tk_co=$obj$$.tk_co,$d$jscomp$12_pk$$.sl_nhap=$d$$.sl_pk_xuat,$d$jscomp$12_pk$$.gia_von_nt=$d$$.gia_von_pk_xuat_nt||0,$d$jscomp$12_pk$$.gia_von=$d$jscomp$12_pk$$.gia_von_nt*($obj$$.ty_gia||1),$d$jscomp$12_pk$$.tien_nhap_nt=$d$$.tien_xuat_pk_nt||0,$d$jscomp$12_pk$$.tien_nhap=$d$jscomp$12_pk$$.tien_nhap_nt*($obj$$.ty_gia||1),$d$jscomp$12_pk$$.sl_xuat=0,$d$jscomp$12_pk$$.tien_xuat_nt=$d$jscomp$12_pk$$.tien_xuat=0,$d$jscomp$12_pk$$.tien_hang_nt=$d$jscomp$12_pk$$.tien_hang=
0,$d$jscomp$12_pk$$.tien_ck=$d$jscomp$12_pk$$.tien_ck_nt=$d$jscomp$12_pk$$.ty_le_ck=0,$d$jscomp$12_pk$$.tien_phi=$d$jscomp$12_pk$$.tien_phi_nt=0,$product_details_npp$$.push($d$jscomp$12_pk$$);await $product_details$$.filter($d$$=>!$d$$.ma_dvt).asyncJoinModel2($obj$$.id_app,"dmvt",{where:"ma_vt",fields:["ma_dvt","tk_vt","tk_tl"]});await $product_details$$.filter($d$$=>!$d$$.tk_vt).asyncJoinModel2($obj$$.id_app,"dmvt",{where:"ma_vt",fields:["tk_vt","tk_tl"]});await ($obj$$.details||[]).filter($d$$=>
!$d$$.tk_gv).asyncJoinModel2($obj$$.id_app,"dmvt",{where:"ma_vt",fields:["tk_gv"]});await ($obj$$.details||[]).filter($d$$=>$d$$.ma_vt_du).asyncJoinModel2($obj$$.id_app,"dmvt",{where:{ma_vt_du:"ma_vt"},fields:[{tk_gv_vt_du:"tk_gv"}]});let $ket_qua_post_sokho$$;async.series({phu_cap:$callback$$=>{setImmediate(async()=>{let $details_phu_cap$$=_.cloneDeep(($obj$$.details||[]).filter($d$$=>$d$$.luong_tho&&$d$$.tg_tk));$details_phu_cap$$.length==0&&($details_phu_cap$$=_.cloneDeep(($obj$$.details||[]).filter($d$$=>
$d$$.luong_tho)));for(var $cust$jscomp$1_d$jscomp$22_phu_cap_cust$$ of $details_phu_cap$$)$cust$jscomp$1_d$jscomp$22_phu_cap_cust$$.ma_nv=$obj$$.ma_nv_giao_hang||$cust$jscomp$1_d$jscomp$22_phu_cap_cust$$.ma_nv,$cust$jscomp$1_d$jscomp$22_phu_cap_cust$$.thang=(new Date($obj$$.ngay_ct)).getMonth()+1,$cust$jscomp$1_d$jscomp$22_phu_cap_cust$$.nam=(new Date($obj$$.ngay_ct)).getFullYear(),$cust$jscomp$1_d$jscomp$22_phu_cap_cust$$.ten_phu_cap=$cust$jscomp$1_d$jscomp$22_phu_cap_cust$$.ten_phu_cap||$cust$jscomp$1_d$jscomp$22_phu_cap_cust$$.ten_vt,
$cust$jscomp$1_d$jscomp$22_phu_cap_cust$$.tien=$cust$jscomp$1_d$jscomp$22_phu_cap_cust$$.luong_tho;if($obj$$.ma_kh&&($cust$jscomp$1_d$jscomp$22_phu_cap_cust$$=await global.getModel("customer").findOne({id_app:$obj$$.id_app,ma_kh:$obj$$.ma_kh,phu_cap:{$gte:0}}).lean())){var $t_phu_cap_t_sl_xuat$$=($obj$$.details||[]).map($r$$=>$r$$.sl_xuat||0).reduce(($a$$,$b$$)=>$a$$+$b$$,0);$t_phu_cap_t_sl_xuat$$*=$cust$jscomp$1_d$jscomp$22_phu_cap_cust$$.phu_cap;const $phu_cap_cust$$={ma_nv:$obj$$.ma_nv_giao_hang,
thang:(new Date($obj$$.ngay_ct)).getMonth()+1,nam:(new Date($obj$$.ngay_ct)).getFullYear(),ten_phu_cap:$cust$jscomp$1_d$jscomp$22_phu_cap_cust$$.ten_phu_cap||"Ph\u1ee5 c\u1ea5p theo kh\u00e1ch h\u00e0ng",tien:$t_phu_cap_t_sl_xuat$$*($obj$$.phu_xe?.5:1)};$details_phu_cap$$.push($phu_cap_cust$$);$obj$$.phu_xe&&($cust$jscomp$1_d$jscomp$22_phu_cap_cust$$={ma_nv:$obj$$.phu_xe,thang:(new Date($obj$$.ngay_ct)).getMonth()+1,nam:(new Date($obj$$.ngay_ct)).getFullYear(),ten_phu_cap:$cust$jscomp$1_d$jscomp$22_phu_cap_cust$$.ten_phu_cap||
"Ph\u1ee5 c\u1ea5p theo kh\u00e1ch h\u00e0ng",tien:$t_phu_cap_t_sl_xuat$$/2},$details_phu_cap$$.push($cust$jscomp$1_d$jscomp$22_phu_cap_cust$$))}(new PostBook($obj$$,$details_phu_cap$$,global.getModel("phucap"),async($detail$$,$callback$$)=>{$callback$$($detail$$)})).run(function($e$$,$rs$$){$callback$$($e$$,$rs$$)})})},post_tdttno:function($callback$$){account.findOne({tk:$obj$$.tk_no,id_app:$obj$$.id_app},{tk_cn:1},async function($d_chinh_error$$,$tk$$){if($d_chinh_error$$)return $callback$$($d_chinh_error$$);
if($tk$$?.tk_cn===!0||$options$$.post_tdtt_tm){const $ma_kh_no$$=$obj$$.ma_kh_no||$obj$$.ma_kh;let $kh_bo_xung$$=($obj$$.details||[]).filter($d$$=>($d$$.ma_kh_no||$d$$.ma_kh)&&($d$$.ma_kh_no||$d$$.ma_kh)!=$ma_kh_no$$);$kh_bo_xung$$.forEach($d$$=>{$d$$.tien_nt=($d$$.tien_ct_nt||0)-($d$$.tien_ck_nt||0)-($d$$.gt_vt_du||0)+($d$$.tien_thue_nt||0);$d$$.tien=$d$$.tien_nt*$obj$$.ty_gia;$d$$.ma_kh=$d$$.ma_kh_no||$d$$.ma_kh});$kh_bo_xung$$=await $kh_bo_xung$$.asyncGroupBy(["ma_kh"],["tien_nt","tien"]);const $bao_hiem$$=
[];$obj$$.tien_bh_chi&&$obj$$.ma_kh_bh&&($d_chinh_error$$={...$obj$$},$d_chinh_error$$.ma_kh=$obj$$.ma_kh_bh,$d_chinh_error$$.tien_nt=$obj$$.tien_bh_chi,$d_chinh_error$$.tien=$d_chinh_error$$.tien_bh_chi*($obj$$.ty_gia||1),$bao_hiem$$.push($d_chinh_error$$));$d_chinh_error$$=[{...$obj$$}];$d_chinh_error$$.forEach($detail$$=>{$detail$$.ma_kh=$ma_kh_no$$;$detail$$.tien_nt=Math.max(0,$obj$$.details.csum("tien_ct_nt")-$obj$$.details.csum("tien_ck_nt")-$obj$$.details.csum("gt_vt_du")-($obj$$.tien_ck_hd||
0)+$obj$$.details.csum("tien_thue_nt")+($obj$$.tien_phi_vc_nt||0)-$kh_bo_xung$$.csum("tien_nt")-$bao_hiem$$.csum("tien_nt"));$detail$$.tien=$detail$$.tien_nt*$obj$$.ty_gia});(new PostBook($obj$$,[...$kh_bo_xung$$,...$bao_hiem$$,...$d_chinh_error$$].filter($d$$=>$d$$.tien_nt),Tdttno,function($detail$$,$callback$$){try{$detail$$.so_hd||($detail$$.so_hd=$obj$$.so_ct),$detail$$.ngay_hd||($detail$$.ngay_hd=$obj$$.ngay_ct)}catch($e$$){Logger.error($e$$,$obj$$)}$callback$$($detail$$)})).run(function($e$$,
$rs$$){$callback$$($e$$,$rs$$)})}else Tdttno.deleteMany({id_ct:$obj$$._id},function($error$$){$callback$$($error$$)})})},post_sokho:$callback$$=>{async.series({kt:$callback$$=>{$options$$.not_post_sokho?$callback$$():(new PostSokho($obj$$,[...$product_details$$],async($detail$$,$callback$$)=>{$detail$$.nxt=$detail$$.nxt||2;$detail$$.tk_no=$obj$$.tk_no;$detail$$.ma_kho=$detail$$.ma_kho||$obj$$.ma_kho;$callback$$($detail$$)})).run(function($e$$,$rs$$){if($e$$)return $callback$$($e$$);$ket_qua_post_sokho$$=
$rs$$.rs_sokho;$callback$$(null,$rs$$)})},npp:$callback$$=>{$options$$.not_post_sokho?$callback$$():(new PostBook($obj$$,$product_details_npp$$,global.getModel("sokhonpp"),async($detail$$,$callback$$)=>{$detail$$.tk_no=$obj$$.tk_no;$detail$$.ma_kho=$detail$$.ma_kho||$obj$$.ma_kho;$callback$$($detail$$)})).run(function($e$$,$rs$$){$callback$$($e$$,$rs$$)})},tt:$callback$$=>{$options$$.post_sokhott?(new PostBook($obj$$,$product_details$$,Sokhott,async($detail$$,$callback$$)=>{$detail$$.nxt=$detail$$.nxt||
2;$detail$$.tk_no=$obj$$.tk_no;$detail$$.ma_kho=$detail$$.ma_kho||$obj$$.ma_kho;$callback$$($detail$$)})).run(function($e$$,$rs$$){$callback$$($e$$,$rs$$)}):$callback$$()}},($e$$,$rs$$)=>{$callback$$($e$$,$rs$$)})},post_vatra:function($callback$$){(async()=>{if($obj$$.ngay_hd||$obj$$.vatras&&$obj$$.vatras.length>0){let $details_vatra$$=($obj$$.vatras||[]).filter($v$$=>$v$$.ma_thue);if($obj$$.ngay_hd){var $d$$=$obj$$.details.map($detail$$=>({...$detail$$,thue_suat:($detail$$.ma_thue?$detail$$.thue_suat:
$obj$$.thue_suat)||0,ma_thue:$detail$$.ma_thue||$obj$$.ma_thue,tien_thue_nt:$detail$$.tien_thue_nt||0,tien_thue:$detail$$.tien_thue||0})).filter($d$$=>$d$$.ma_thue);await $d$$.filter($r$$=>!$r$$.tk_thue_co&&$r$$.ma_thue).asyncJoinModel2($obj$$.id_app,"vat",{where:"ma_thue",fields:["tk_thue_co"]});$d$$=await $d$$.asyncGroupBy(["ma_thue","thue_suat","ten_vt_vat","tk_thue_co"],"tien_ct_nt tien_ct tien_nt tien tien_ck tien_ck_nt tien_thue tien_thue_nt".split(" "));$d$$.forEach($detail$$=>{try{$detail$$.tk_du_thue=
$obj$$.tk_no,$detail$$.t_tien_nt=($detail$$.tien_ct_nt||0)-($detail$$.tien_ck_nt||0),$detail$$.t_tien=($detail$$.tien_ct||0)-($detail$$.tien_ck||0),$detail$$.t_thue_nt=$detail$$.tien_thue_nt,$detail$$.t_thue=$detail$$.tien_thue,$detail$$.ten_vt=$detail$$.ten_vt_vat||$obj$$.ten_vt||$obj$$.dien_giai}catch($e$$){Logger.error($e$$,$obj$$)}});$details_vatra$$=[...$details_vatra$$,...$d$$]}(new PostBook($obj$$,$details_vatra$$,Vatra,($detail$$,$callback$$)=>{$detail$$={...$detail$$};$detail$$.ten_vt=$detail$$.ten_vt||
$obj$$.dien_giai;$callback$$($detail$$)})).run(function($e$$,$rs$$){$e$$&&Logger.error("[hd2][post vatra]",$e$$,JSON.stringify($details_vatra$$,null,2));$callback$$($e$$,$rs$$)})}else $callback$$()})()},post_socai:function($callback$$){setImmediate(async()=>{let $details$$=[];$options$$.hoach_toan_ck_vt?($obj$$.details.forEach(function($d$jscomp$29_detail$$){$d$jscomp$29_detail$$={...$d$jscomp$29_detail$$};$d$jscomp$29_detail$$.tien_nt=$d$jscomp$29_detail$$.tien_ct_nt;$d$jscomp$29_detail$$.tien=$d$jscomp$29_detail$$.tien_ct?
$d$jscomp$29_detail$$.tien_ct:utils.round($d$jscomp$29_detail$$.tien_ct_nt*$obj$$.ty_gia,0);$d$jscomp$29_detail$$.tk_co=$d$jscomp$29_detail$$.tk_dt||$kho$$.tk_dt||$options$$.tk_dt;$d$jscomp$29_detail$$.ma_kh||($d$jscomp$29_detail$$.ma_kh=$obj$$.ma_kh);$d$jscomp$29_detail$$.tk_no=$obj$$.tk_no;$details$$.push($d$jscomp$29_detail$$)}),($obj$$.details||[]).filter($d$$=>$d$$.tien_ck_nt).forEach(function($d$jscomp$31_detail$$){$d$jscomp$31_detail$$={...$d$jscomp$31_detail$$};$d$jscomp$31_detail$$.tk_no=
$d$jscomp$31_detail$$.tk_ck||$obj$$.tk_ck||$kho$$.tk_ck||$options$$.tk_ck;$d$jscomp$31_detail$$.ma_kh||($d$jscomp$31_detail$$.ma_kh=$obj$$.ma_kh);$d$jscomp$31_detail$$.tk_co=$obj$$.tk_no;$d$jscomp$31_detail$$.tien_nt=$d$jscomp$31_detail$$.tien_ck_nt;$d$jscomp$31_detail$$.tien=$d$jscomp$31_detail$$.tien_ck;$d$jscomp$31_detail$$.ma_kh_no=$d$jscomp$31_detail$$.ma_kh||$obj$$.ma_kh;$d$jscomp$31_detail$$.ma_kh_co=$obj$$.ma_kh_no||$d$jscomp$31_detail$$.ma_kh||$obj$$.ma_kh;$d$jscomp$31_detail$$.check_balance=
!1;$details$$.push($d$jscomp$31_detail$$)})):$obj$$.details.forEach(function($d$jscomp$32_detail$$){$d$jscomp$32_detail$$={...$d$jscomp$32_detail$$};$d$jscomp$32_detail$$.tien_nt=$d$jscomp$32_detail$$.tien_ct_nt-($d$jscomp$32_detail$$.tien_ck_nt||0);$d$jscomp$32_detail$$.tien=utils.round($d$jscomp$32_detail$$.tien_nt*$obj$$.ty_gia,0);$d$jscomp$32_detail$$.tk_co=$d$jscomp$32_detail$$.tk_dt||$kho$$.tk_dt||$options$$.tk_dt;$d$jscomp$32_detail$$.ma_kh||($d$jscomp$32_detail$$.ma_kh=$obj$$.ma_kh);$d$jscomp$32_detail$$.tk_no=
$obj$$.tk_no;$details$$.push($d$jscomp$32_detail$$)});($obj$$.details||[]).filter($d$$=>$d$$.gt_vt_du).forEach(function($d$$){const $detail$$={...$d$$};$detail$$.tien_nt=$detail$$.gt_vt_du;$detail$$.tien=utils.round($detail$$.gt_vt_du*$obj$$.ty_gia,0);$detail$$.tk_co=$d$$.tk_gv_vt_du||$kho$$.tk_gv||$options$$.tk_gv;$detail$$.ma_kh||($detail$$.ma_kh=$obj$$.ma_kh);$detail$$.dien_giai=$d$$.dien_giai_vt_du;$detail$$.tk_no=$d$$.tk_vt||$options$$.tk_vt;$detail$$.ma_kh_no=$detail$$.ma_kh||$obj$$.ma_kh;$details$$.push($detail$$)});
($obj$$.details||[]).filter($d$$=>$d$$.gt_vt_du).forEach(function($d$$){const $detail$$={...$d$$};$detail$$.tien_nt=$detail$$.gt_vt_du;$detail$$.tien=utils.round($detail$$.gt_vt_du*$obj$$.ty_gia,0);$detail$$.tk_co=$obj$$.tk_no;$detail$$.ma_kh_no=$detail$$.ma_kh||$obj$$.ma_kh;$detail$$.ma_kh_co=$obj$$.ma_kh_no||$detail$$.ma_kh||$obj$$.ma_kh;$detail$$.dien_giai=$d$$.dien_giai_vt_du;$detail$$.tk_no=$d$$.tk_tl_vt_du||$d$$.tk_tl;$details$$.push($detail$$)});if($obj$$.tien_ck_hd){var $o_tt$jscomp$1_tt$$=
{};$o_tt$jscomp$1_tt$$.tk_no=$obj$$.tk_ck||$kho$$.tk_ck||$options$$.tk_ck;$o_tt$jscomp$1_tt$$.tk_co=$obj$$.tk_no;$o_tt$jscomp$1_tt$$.tien_nt=$obj$$.tien_ck_hd;$o_tt$jscomp$1_tt$$.tien=$o_tt$jscomp$1_tt$$.tien_nt*($obj$$.ty_gia||1);$o_tt$jscomp$1_tt$$.ma_kh_no=$obj$$.ma_kh;$o_tt$jscomp$1_tt$$.ma_kh_co=$obj$$.ma_kh_no||$obj$$.ma_kh;$o_tt$jscomp$1_tt$$.check_balance=!1;$details$$.push($o_tt$jscomp$1_tt$$)}$obj$$.tien_bh_chi&&$obj$$.ma_kh_bh&&$obj$$.ma_kh!=$obj$$.ma_kh_bh&&($o_tt$jscomp$1_tt$$={},$o_tt$jscomp$1_tt$$.tk_no=
$obj$$.tk_no,$o_tt$jscomp$1_tt$$.tk_co=$obj$$.tk_no,$o_tt$jscomp$1_tt$$.tien_nt=$obj$$.tien_bh_chi,$o_tt$jscomp$1_tt$$.tien=$o_tt$jscomp$1_tt$$.tien_bh_chi*($obj$$.ty_gia||1),$o_tt$jscomp$1_tt$$.ma_kh_no=$obj$$.ma_kh_bh,$o_tt$jscomp$1_tt$$.ma_kh_co=$obj$$.ma_kh,$o_tt$jscomp$1_tt$$.check_balance=!1,$details$$.push($o_tt$jscomp$1_tt$$));$obj$$.thu_nhap_ctv&&$obj$$.ma_ctv&&(($obj$$.details||[]).filter($r$$=>$r$$.tien_hoa_hong_ctv).forEach($r$$=>{$r$$.tk_cp_ctv=$r$$.tk_cp_ctv||$obj$$.tk_cp_ctv||$kho$$.tk_cp_ctv||
$options$$.tk_cp_ctv||$obj$$.tk_no_hoa_hong||$kho$$.tk_no_hoa_hong||$options$$.tk_no_hoa_hong;$r$$.tk_cn_ctv=$r$$.tk_cn_ctv||$obj$$.tk_cn_ctv||$kho$$.tk_cn_ctv||$options$$.tk_cn_ctv||$obj$$.tk_co_hoa_hong||$kho$$.tk_co_hoa_hong||$options$$.tk_co_hoa_hong}),(await ($obj$$.details||[]).filter($r$$=>$r$$.tien_hoa_hong_ctv).asyncGroupBy(["tk_cp_ctv","tk_cn_ctv"],["tien_hoa_hong_ctv"])).forEach($r$$=>{let $tt$$={};$tt$$.tk_no=$r$$.tk_cp_ctv;$tt$$.tk_co=$r$$.tk_cn_ctv;$tt$$.tien=$tt$$.tien_nt=$r$$.tien_hoa_hong_ctv;
$tt$$.ma_kh_no=$tt$$.ma_kh_co=$obj$$.ma_ctv;$tt$$.ma_nt="VND";$tt$$.ty_gia=1;$tt$$.dien_giai="Hoa h\u1ed3ng b\u00e1n h\u00e0ng c\u1ed9ng t\u00e1c vi\u00ean c\u1ea5p 1";$tt$$.tk_no&&$tt$$.tk_co&&$details$$.push($tt$$)}));$obj$$.thu_nhap_ctv2&&$obj$$.ma_ctv2&&(($obj$$.details||[]).filter($r$$=>$r$$.tien_hoa_hong_ctv2).forEach($r$$=>{$r$$.tk_cp_ctv=$r$$.tk_cp_ctv||$obj$$.tk_cp_ctv||$kho$$.tk_cp_ctv||$options$$.tk_cp_ctv||$obj$$.tk_no_hoa_hong||$kho$$.tk_no_hoa_hong||$options$$.tk_no_hoa_hong;$r$$.tk_cn_ctv=
$r$$.tk_cn_ctv||$obj$$.tk_cn_ctv||$kho$$.tk_cn_ctv||$options$$.tk_cn_ctv||$obj$$.tk_co_hoa_hong||$kho$$.tk_co_hoa_hong||$options$$.tk_co_hoa_hong}),(await ($obj$$.details||[]).filter($r$$=>$r$$.tien_hoa_hong_ctv2).asyncGroupBy(["tk_cp_ctv","tk_cn_ctv"],["tien_hoa_hong_ctv2"])).forEach($r$$=>{let $tt$$={};$tt$$.tk_no=$r$$.tk_cp_ctv;$tt$$.tk_co=$r$$.tk_cn_ctv;$tt$$.tien=$tt$$.tien_nt=$r$$.tien_hoa_hong_ctv2;$tt$$.ma_kh_no=$tt$$.ma_kh_co=$obj$$.ma_ctv2;$tt$$.ma_nt="VND";$tt$$.ty_gia=1;$tt$$.dien_giai=
"Hoa h\u1ed3ng b\u00e1n h\u00e0ng c\u00f4ng t\u00e1c vi\u00ean c\u1ea5p 2";$tt$$.tk_no&&$tt$$.tk_co&&$details$$.push($tt$$)}));$obj$$.tien_hoa_hong&&$obj$$.ma_kh_hoa_hong&&(($obj$$.details||[]).filter($r$$=>$r$$.tien_hoa_hong).forEach($r$$=>{$r$$.tk_no_hoa_hong=$r$$.tk_no_hoa_hong||$obj$$.tk_no_hoa_hong||$kho$$.tk_no_hoa_hong||$options$$.tk_no_hoa_hong;$r$$.tk_co_hoa_hong=$r$$.tk_co_hoa_hong||$obj$$.tk_co_hoa_hong||$kho$$.tk_co_hoa_hong||$options$$.tk_co_hoa_hong}),(await ($obj$$.details||[]).filter($r$$=>
$r$$.tien_hoa_hong).asyncGroupBy(["tk_no_hoa_hong","tk_co_hoa_hong"],["tien_hoa_hong"])).forEach($r$$=>{let $tt$$={};$tt$$.tk_no=$r$$.tk_no_hoa_hong;$tt$$.tk_co=$r$$.tk_co_hoa_hong;$tt$$.tien=$tt$$.tien_nt=$r$$.tien_hoa_hong;$tt$$.tien=$tt$$.tien_nt*($obj$$.ty_gia||1);$tt$$.ma_kh_no=$tt$$.ma_kh_co=$obj$$.ma_kh_hoa_hong;$tt$$.ma_nv=$obj$$.ma_nv;$tt$$.check_balance=!1;$tt$$.ma_nt="VND";$tt$$.ty_gia=1;$tt$$.dien_giai="Hoa h\u1ed3ng b\u00e1n h\u00e0ng";$tt$$.tk_no&&$tt$$.tk_co&&$details$$.push($tt$$)}));
$obj$$.tien_hoa_hong_gt&&$obj$$.ma_kh_hoa_hong_gt&&(($obj$$.details||[]).filter($r$$=>$r$$.tien_hoa_hong_gt).forEach($r$$=>{$r$$.tk_no_hoa_hong_gt=$r$$.tk_no_hoa_hong_gt||$obj$$.tk_no_hoa_hong_gt||$kho$$.tk_no_hoa_hong_gt||$options$$.tk_no_hoa_hong_gt||$obj$$.tk_no_hoa_hong||$kho$$.tk_no_hoa_hong||$options$$.tk_no_hoa_hong;$r$$.tk_co_hoa_hong_gt=$r$$.tk_co_hoa_hong_gt||$obj$$.tk_co_hoa_hong_gt||$kho$$.tk_co_hoa_hong_gt||$options$$.tk_co_hoa_hong_gt||$obj$$.tk_co_hoa_hong||$kho$$.tk_co_hoa_hong||$options$$.tk_co_hoa_hong}),
(await ($obj$$.details||[]).filter($r$$=>$r$$.tien_hoa_hong_gt).asyncGroupBy(["tk_no_hoa_hong_gt","tk_co_hoa_hong_gt"],["tien_hoa_hong_gt"])).forEach($r$$=>{let $tt$$={};$tt$$.tk_no=$r$$.tk_no_hoa_hong_gt;$tt$$.tk_co=$r$$.tk_co_hoa_hong_gt;$tt$$.tien_nt=$r$$.tien_hoa_hong_gt;$tt$$.tien=$tt$$.tien_nt*($obj$$.ty_gia||1);$tt$$.ma_kh_no=$tt$$.ma_kh_co=$obj$$.ma_kh_hoa_hong_gt;$tt$$.ma_nv=$obj$$.ma_nv;$tt$$.check_balance=!1;$tt$$.dien_giai="Hoa h\u1ed3ng gi\u1edbi thi\u1ec7u";$tt$$.ma_nt="VND";$tt$$.ty_gia=
1;$tt$$.tk_no&&$tt$$.tk_co&&$details$$.push($tt$$)}));$obj$$.tien_hoa_hong_kho&&$obj$$.ma_kh_hoa_hong_kho&&(($obj$$.details||[]).filter($r$$=>$r$$.tien_hoa_hong_kho).forEach($r$$=>{$r$$.tk_no_hoa_hong_kho=$r$$.tk_no_hoa_hong_kho||$obj$$.tk_no_hoa_hong_kho||$kho$$.tk_no_hoa_hong_kho||$options$$.tk_no_hoa_hong_kho||$obj$$.tk_no_hoa_hong||$kho$$.tk_no_hoa_hong||$options$$.tk_no_hoa_hong;$r$$.tk_co_hoa_hong_kho=$r$$.tk_co_hoa_hong_kho||$obj$$.tk_co_hoa_hong_kho||$kho$$.tk_co_hoa_hong_kho||$options$$.tk_co_hoa_hong_kho||
$obj$$.tk_co_hoa_hong||$kho$$.tk_co_hoa_hong||$options$$.tk_co_hoa_hong}),(await ($obj$$.details||[]).filter($r$$=>$r$$.tien_hoa_hong_kho).asyncGroupBy(["tk_no_hoa_hong_kho","tk_co_hoa_hong_kho"],["tien_hoa_hong_kho"])).forEach($r$$=>{let $tt$$={};$tt$$.tk_no=$r$$.tk_no_hoa_hong_kho;$tt$$.tk_co=$r$$.tk_co_hoa_hong_kho;$tt$$.tien_nt=$r$$.tien_hoa_hong_kho;$tt$$.tien=$tt$$.tien_nt*($obj$$.ty_gia||1);$tt$$.ma_kh_no=$tt$$.ma_kh_co=$obj$$.ma_kh_hoa_hong_kho;$tt$$.ma_nv=$obj$$.ma_nv;$tt$$.check_balance=
!1;$tt$$.dien_giai="Hoa h\u1ed3ng cho ch\u1ee7 kho";$tt$$.ma_nt="VND";$tt$$.ty_gia=1;$tt$$.tk_no&&$tt$$.tk_co&&$details$$.push($tt$$)}));$obj$$.tien_hoa_hong_ql&&$obj$$.ma_kh_hoa_hong_ql&&($obj$$.details.filter($r$$=>$r$$.tien_hoa_hong_ql).forEach($r$$=>{$r$$.tk_no_hoa_hong_ql=$r$$.tk_no_hoa_hong_ql||$obj$$.tk_no_hoa_hong_ql||$kho$$.tk_no_hoa_hong_ql||$options$$.tk_no_hoa_hong_ql||$obj$$.tk_no_hoa_hong||$kho$$.tk_no_hoa_hong||$options$$.tk_no_hoa_hong;$r$$.tk_co_hoa_hong_ql=$r$$.tk_co_hoa_hong_ql||
$obj$$.tk_co_hoa_hong_ql||$kho$$.tk_co_hoa_hong_ql||$options$$.tk_co_hoa_hong_ql||$obj$$.tk_co_hoa_hong||$kho$$.tk_co_hoa_hong||$options$$.tk_co_hoa_hong}),(await $obj$$.details.filter($r$$=>$r$$.tien_hoa_hong_ql).asyncGroupBy(["tk_no_hoa_hong_ql","tk_co_hoa_hong_ql"],["tien_hoa_hong_ql"])).forEach($r$$=>{let $tt$$={};$tt$$.tk_no=$r$$.tk_no_hoa_hong_ql;$tt$$.tk_co=$r$$.tk_co_hoa_hong_ql;$tt$$.tien_nt=$r$$.tien_hoa_hong_ql;$tt$$.tien=$tt$$.tien_nt*($obj$$.ty_gia||1);$tt$$.ma_kh_no=$tt$$.ma_kh_co=$obj$$.ma_kh_hoa_hong_ql;
$tt$$.ma_nv=$obj$$.ma_nv;$tt$$.check_balance=!1;$tt$$.dien_giai="Hoa h\u1ed3ng cho \u0111i\u1ec1u h\u00e0nh kinh doanh";$tt$$.ma_nt="VND";$tt$$.ty_gia=1;$tt$$.tk_no&&$tt$$.tk_co&&$details$$.push($tt$$)}));$o_tt$jscomp$1_tt$$={...$obj$$};$o_tt$jscomp$1_tt$$.tk_no=$obj$$.tk_no;$o_tt$jscomp$1_tt$$.tk_co=$obj$$.tk_thue_co;$o_tt$jscomp$1_tt$$.tien_nt=$obj$$.details.csum("tien_thue_nt");$o_tt$jscomp$1_tt$$.tien=$o_tt$jscomp$1_tt$$.tien_nt*$o_tt$jscomp$1_tt$$.ty_gia;$o_tt$jscomp$1_tt$$.dien_giai_thue&&($o_tt$jscomp$1_tt$$.dien_giai=
$o_tt$jscomp$1_tt$$.dien_giai_thue);$details$$.push($o_tt$jscomp$1_tt$$);if($obj$$.vatras&&$obj$$.vatras.length>0)for(var $o$jscomp$1_o$$ of $obj$$.vatras)$o$jscomp$1_o$$.tk_no=$obj$$.tk_no,$o$jscomp$1_o$$.tk_co=$o$jscomp$1_o$$.tk_thue_co,$o$jscomp$1_o$$.tien_nt=$o$jscomp$1_o$$.t_thue_nt,$o$jscomp$1_o$$.tien=$o$jscomp$1_o$$.t_thue,$o$jscomp$1_o$$.dien_giai_thue&&($o$jscomp$1_o$$.dien_giai=$o$jscomp$1_o$$.dien_giai_thue),$details$$.push($o$jscomp$1_o$$);$obj$$.tk_phi_vc=$obj$$.tk_phi_vc||$options$$.tk_phi_vc;
$obj$$.tk_phi_vc&&($o$jscomp$1_o$$={...$obj$$},$o$jscomp$1_o$$.tk_no=$obj$$.tk_no,$o$jscomp$1_o$$.tk_co=$obj$$.tk_phi_vc,$o$jscomp$1_o$$.tien_nt=$obj$$.tien_phi_vc_nt,$o$jscomp$1_o$$.tien=$o$jscomp$1_o$$.tien_nt*$o$jscomp$1_o$$.ty_gia,$o$jscomp$1_o$$.dien_giai="Ph\u00ed giao h\u00e0ng",$details$$.push($o$jscomp$1_o$$));const $details_giavon$$=[];($ket_qua_post_sokho$$||[]).filter($r$$=>$r$$.nxt!=1).forEach(function($detail$$){$detail$$.toObject&&($detail$$=$detail$$.toObject());$detail$$={...$detail$$};
$detail$$.tk_no=$detail$$.tk_gv;$detail$$.ma_kh||($detail$$.ma_kh=$obj$$.ma_kh);$detail$$.tk_co=$detail$$.tk_vt;$detail$$.tien_nt=$detail$$.tien_xuat_nt;$detail$$.tien=$detail$$.tien_xuat;$details_giavon$$.push($detail$$)});async.series({xdtk:$callback$$=>{$details_giavon$$.joinModel2($obj$$.id_app,dmvt,{where:"ma_vt",fields:["tk_vt","gia_mua","tk_gv"]},()=>{$details_giavon$$.forEach($s$$=>{$s$$.tk_co||($s$$.tk_co=$s$$.tk_vt||$options$$.tk_vt);$s$$.tk_no||($s$$.tk_no=$s$$.tk_gv||$options$$.tk_gv);
$s$$.ma_nt="VND";$s$$.ty_gia=1});$callback$$()})}},async()=>{$details_giavon$$.forEach($d$$=>{$d$$.ma_kh_no=$d$$.ma_kh||$obj$$.ma_kh;$d$$.ma_kh_co=$d$$.ma_kh||$obj$$.ma_kh});$details$$=$details$$.concat($details_giavon$$);(new PostSocai($obj$$,$details$$,void 0,void 0,$_options$$)).run(function($e$$,$rs$$){$callback$$($e$$,$rs$$)})})})},thanhtoanhoahongnv:$callback$$=>{if($obj$$.da_chuyen_hoa_hong||!$obj$$.tien_hoa_hong||!$obj$$.user_nv||!$obj$$.chuyen_ngay)return $callback$$();setImmediate(async()=>
{try{if($appInfo$$.wallet_address&&$appInfo$$.wallet_token&&$appInfo$$.tang_gioi_thieu_denom){let $wallet_nhan_vien$$=await global.getModel("asskey").findOne({id_app:$appInfo$$._id.toString(),username:$obj$$.user_nv,wallet_type:8});$wallet_nhan_vien$$||=await global.getModel("asskey").createWallet($appInfo$$._id.toString(),$obj$$.user_nv,"T\u00e0i kho\u1ea3n nh\u1eadn th\u01b0\u1edfng",8);let $amount$$=$obj$$.tien_hoa_hong,$denom$$=$appInfo$$.tang_gioi_thieu_denom,$memo$$=`Hoa h\u1ed3ng cho \u0111\u01a1n h\u00e0ng s\u1ed1 ${$obj$$.so_ct}: ${numeral($amount$$).format()} ${$denom$$.toUpperCase()}`;
await spend($appInfo$$,$obj$$.be_introduced,$wallet_nhan_vien$$.address,$amount$$,$denom$$,$memo$$,"","2");$obj$$.da_chuyen_hoa_hong=!0;await model.updateOne({_id:$obj$$._id},{da_chuyen_hoa_hong:!0})}}catch($e$$){Logger.error("Kh\u00f4ng th\u1ec3 thanh to\u00e1n ti\u1ec1n hoa h\u1ed3ng",$e$$)}$callback$$()})},thanhtoanhoahonggt:$callback$$=>{if($obj$$.da_chuyen_hoa_hong_gt||!$obj$$.tien_hoa_hong_gt||!$obj$$.user_gt||!$obj$$.chuyen_ngay_gt)return $callback$$();setImmediate(async()=>{try{if($appInfo$$.wallet_address&&
$appInfo$$.wallet_token&&$appInfo$$.tang_gioi_thieu_denom){let $wallet_gt$$=await global.getModel("asskey").findOne({id_app:$appInfo$$._id.toString(),username:$obj$$.user_gt,wallet_type:8});$wallet_gt$$||=await global.getModel("asskey").createWallet($appInfo$$._id.toString(),$obj$$.user_gt,"T\u00e0i kho\u1ea3n nh\u1eadn th\u01b0\u1edfng",8);let $amount$$=$obj$$.tien_hoa_hong_gt,$denom$$=$appInfo$$.tang_gioi_thieu_denom,$memo$$=`Hoa h\u1ed3ng cho \u0111\u01a1n h\u00e0ng s\u1ed1 ${$obj$$.so_ct}: ${numeral($amount$$).format()} ${$denom$$.toUpperCase()}`;
await spend($appInfo$$,$obj$$.be_introduced,$wallet_gt$$.address,$amount$$,$denom$$,$memo$$,$obj$$.introduce_code,"2");$obj$$.da_chuyen_hoa_hong_gt=!0;await model.updateOne({_id:$obj$$._id},{da_chuyen_hoa_hong_gt:!0})}}catch($e$$){Logger.error("Kh\u00f4ng th\u1ec3 thanh to\u00e1n ti\u1ec1n hoa h\u1ed3ng",$e$$)}$callback$$()})},thanhtoanhoahongctv:$callback$$=>{if($obj$$.da_chuyen_hoa_hong_ctv||!$obj$$.thu_nhap_ctv||!$obj$$.user_ctv||!$obj$$.chuyen_ngay_ctv)return $callback$$();setImmediate(async()=>
{try{if($appInfo$$.wallet_address&&$appInfo$$.wallet_token&&$appInfo$$.tang_gioi_thieu_denom){if($obj$$.user_ctv&&$obj$$.thu_nhap_ctv){let $wallet_ctv$$=await global.getModel("asskey").findOne({id_app:$appInfo$$._id.toString(),username:$obj$$.user_ctv,wallet_type:8});$wallet_ctv$$||=await global.getModel("asskey").createWallet($appInfo$$._id.toString(),$obj$$.user_ctv,"T\u00e0i kho\u1ea3n nh\u1eadn th\u01b0\u1edfng",8);let $amount$$=$obj$$.thu_nhap_ctv,$denom$$=$appInfo$$.tang_gioi_thieu_denom,$memo$$=
`Hoa h\u1ed3ng cho \u0111\u01a1n h\u00e0ng s\u1ed1 ${$obj$$.so_ct}: ${numeral($amount$$).format()} ${$denom$$.toUpperCase()}`;await spend($appInfo$$,$obj$$.be_introduced,$wallet_ctv$$.address,$amount$$,$denom$$,$memo$$,$obj$$.introduce_code,"2")}if($obj$$.user_ctv2&&$obj$$.thu_nhap_ctv2){let $wallet_ctv2$$=await global.getModel("asskey").findOne({id_app:$appInfo$$._id.toString(),username:$obj$$.user_ctv2,wallet_type:8});$wallet_ctv2$$||=await global.getModel("asskey").createWallet($appInfo$$._id.toString(),
$obj$$.user_ctv2,"T\u00e0i kho\u1ea3n nh\u1eadn th\u01b0\u1edfng",8);let $amount$$=$obj$$.thu_nhap_ctv2,$denom$$=$appInfo$$.tang_gioi_thieu_denom,$memo$$=`Hoa h\u1ed3ng cho \u0111\u01a1n h\u00e0ng s\u1ed1 ${$obj$$.so_ct}: ${numeral($amount$$).format()} ${$denom$$.toUpperCase()}`;await spend($appInfo$$,$obj$$.be_introduced,$wallet_ctv2$$.address,$amount$$,$denom$$,$memo$$,$obj$$.introduce_code,"2")}$obj$$.da_chuyen_hoa_hong_ctv=!0;await model.updateOne({_id:$obj$$._id},{da_chuyen_hoa_hong_ctv:!0})}}catch($e$$){Logger.error("Kh\u00f4ng th\u1ec3 thanh to\u00e1n ti\u1ec1n hoa h\u1ed3ng",
$e$$)}$callback$$()})},thanhtoanhoahongql:$callback$$=>{if($obj$$.da_chuyen_hoa_hong_ql||!$obj$$.tien_hoa_hong_ql||!$obj$$.user_ql||!$obj$$.chuyen_ngay_ql)return $callback$$();setImmediate(async()=>{try{if($appInfo$$.wallet_address&&$appInfo$$.wallet_token&&$appInfo$$.tang_gioi_thieu_denom){let $wallet_ql$$=await global.getModel("asskey").findOne({id_app:$appInfo$$._id.toString(),username:$obj$$.user_ql,wallet_type:8});$wallet_ql$$||=await global.getModel("asskey").createWallet($appInfo$$._id.toString(),
$obj$$.user_ql,"T\u00e0i kho\u1ea3n nh\u1eadn th\u01b0\u1edfng",8);let $amount$$=$obj$$.tien_hoa_hong_ql,$denom$$=$appInfo$$.tang_gioi_thieu_denom,$memo$$=`Hoa h\u1ed3ng cho \u0111\u01a1n h\u00e0ng s\u1ed1 ${$obj$$.so_ct}: ${numeral($amount$$).format()} ${$denom$$.toUpperCase()}`;await spend($appInfo$$,$obj$$.be_introduced,$wallet_ql$$.address,$amount$$,$denom$$,$memo$$,$obj$$.introduce_code,"2");$obj$$.da_chuyen_hoa_hong_ql=!0;await model.updateOne({_id:$obj$$._id},{da_chuyen_hoa_hong_ql:!0})}}catch($e$$){Logger.error("Kh\u00f4ng th\u1ec3 thanh to\u00e1n ti\u1ec1n hoa h\u1ed3ng",
$e$$)}$callback$$()})},thanhtoanhoahongchukho:$callback$$=>{if($obj$$.da_chuyen_hoa_hong_kho||!$obj$$.tien_hoa_hong_kho||!$obj$$.user_kho||!$obj$$.chuyen_ngay_kho)return $callback$$();setImmediate(async()=>{try{if($appInfo$$.wallet_address&&$appInfo$$.wallet_token&&$appInfo$$.tang_gioi_thieu_denom){let $wallet_kho$$=await global.getModel("asskey").findOne({id_app:$appInfo$$._id.toString(),username:$obj$$.user_kho,wallet_type:8});$wallet_kho$$||=await global.getModel("asskey").createWallet($appInfo$$._id.toString(),
$obj$$.user_kho,"T\u00e0i kho\u1ea3n nh\u1eadn th\u01b0\u1edfng",8);let $amount$$=$obj$$.tien_hoa_hong_kho,$denom$$=$appInfo$$.tang_gioi_thieu_denom,$memo$$=`Hoa h\u1ed3ng cho \u0111\u01a1n h\u00e0ng s\u1ed1 ${$obj$$.so_ct}: ${numeral($amount$$).format()} ${$denom$$.toUpperCase()}`;await spend($appInfo$$,$obj$$.be_introduced,$wallet_kho$$.address,$amount$$,$denom$$,$memo$$,$obj$$.introduce_code,"2");$obj$$.da_chuyen_hoa_hong_kho=!0;await model.updateOne({_id:$obj$$._id},{da_chuyen_hoa_hong_kho:!0})}}catch($e$$){Logger.error("Kh\u00f4ng th\u1ec3 thanh to\u00e1n ti\u1ec1n hoa h\u1ed3ng",
$e$$)}$callback$$()})}},function($e$$,$rs$$){$fn$$($e$$,$rs$$)})};const $valid$$=function($i_user$$,$obj$$,$next$$){$obj$$.thue_suat=$obj$$.thue_suat||0;$obj$$.tien_phi_vc_nt=$obj$$.tien_phi_vc_nt||0;$obj$$.tien_phi_vc=utils.round($obj$$.tien_phi_vc_nt*$obj$$.ty_gia,0);$obj$$.details.forEach($detail$$=>{tinhGiaChuaThue($obj$$,$detail$$)});$obj$$.vatras=($obj$$.vatras||[]).filter($d$$=>$d$$);$obj$$.vatras.forEach($d$$=>{$d$$.t_tien=utils.round($d$$.t_tien_nt*($obj$$.ty_gia||1),0);$d$$.t_thue=utils.round($d$$.t_thue_nt*
($obj$$.ty_gia||1),0)});for($i_user$$=0;$i_user$$<$obj$$.details.length;$i_user$$++){const $detail$$=$obj$$.details[$i_user$$];$detail$$.line=$i_user$$;$detail$$.tien_ck_nt=$detail$$.tien_ck_nt||0;$detail$$.tien_thue_nt=$detail$$.tien_thue_nt||0;$detail$$.tien=utils.round($detail$$.tien_nt*$obj$$.ty_gia,0);$detail$$.tien_ct=utils.round($detail$$.tien_ct_nt*$obj$$.ty_gia,0);$detail$$.gia_ban=utils.round($detail$$.gia_ban_nt*$obj$$.ty_gia,0);$detail$$.tien_ck=utils.round($detail$$.tien_ck_nt*$obj$$.ty_gia,
0);$detail$$.tien_thue=utils.round($detail$$.tien_thue_nt*$obj$$.ty_gia,0);$detail$$.tien_xuat=$detail$$.tien_xuat_nt}$obj$$.id_contract?salecontract.findOne({_id:$obj$$.id_contract,id_app:$obj$$.id_app}).lean().then($c$$=>{$c$$&&($obj$$.ma_hd=$c$$.ma_hd);$next$$(null,$obj$$)}).catch($e$$=>{$next$$($e$$)}):$next$$(null,$obj$$)};$contr$$.creating=async function($user$$,$obj$$,$next$$){$obj$$.details||($obj$$.details=[]);$valid$$($user$$,$obj$$,async function($error$$){if($error$$)return $next$$($error$$);
await $obj$$.details.asyncJoinModel2($user$$.current_id_app,dmvt,{where:"ma_vt",setFields:($item$$,$ref$$)=>{$item$$.combo=$ref$$.combo||[];$item$$.ma_thue||($item$$.ma_thue=$ref$$.ma_thue);$item$$.ten_vt=$ref$$.ten_vt;$item$$.status_vt=$ref$$.status;$item$$.gia_mua=$ref$$.gia_mua_tmp}});$error$$=($obj$$.details||[]).filter($d$$=>!$d$$.status_vt);if($error$$.length>0)return $next$$(`C\u00e1c m\u1eb7t h\u00e0ng sau \u0111\u00e3 ng\u1eebng kinh doanh ho\u1eb7c kh\u00f4ng t\u1ed3n t\u1ea1i trong h\u1ec7 th\u1ed1ng : ${$error$$.map($d$$=>
$d$$.ten_vt||$d$$.ma_vt).join(",")}`);let $ngay_nay_thang_truoc$$=moment($obj$$.ngay_ct).subtract(1,"months").toDate(),$details$$=[];$obj$$.details.forEach($d$$=>{$d$$.combo&&$d$$.combo.length>0?$details$$=[...$details$$,...$d$$.combo]:$details$$.push($d$$)});await $details$$.filter($r$$=>!$r$$.gia_mua).asyncJoinModel2($obj$$.id_app,"giatb",{where:$item$$=>({ma_vt:$item$$.ma_vt,id_app:$obj$$.id_app,gia:{$gt:0},nam:$ngay_nay_thang_truoc$$.getFullYear(),thang:$ngay_nay_thang_truoc$$.getMonth()+1}),
fields:[{gia_mua:"gia"}]});$ngay_nay_thang_truoc$$=moment($ngay_nay_thang_truoc$$).subtract(1,"months").toDate();await $details$$.filter($r$$=>!$r$$.gia_mua).asyncJoinModel2($obj$$.id_app,"giatb",{where:$item$$=>({ma_vt:$item$$.ma_vt,id_app:$obj$$.id_app,gia:{$gt:0},nam:$ngay_nay_thang_truoc$$.getFullYear(),thang:$ngay_nay_thang_truoc$$.getMonth()+1}),fields:[{gia_mua:"gia"}]});$obj$$.details.filter($d$$=>$d$$.combo&&$d$$.combo.length>0).forEach($detail$$=>{$detail$$.combo=$detail$$.combo.map($item$$=>
{$item$$.sl_xuat_1_combo=$item$$.sl_xuat;$item$$.sl_xuat=$item$$.sl_xuat_1_combo*$detail$$.sl_xuat;$item$$.tien_xuat=$item$$.tien_xuat_nt=$item$$.sl_xuat*($item$$.gia_von_nt||0);$item$$.tien_hang=$item$$.tien_hang_nt=0;$item$$.tien=$item$$.tien_nt=$item$$.sl_xuat*($item$$.gia_ban_nt||0);$item$$.tien_ck=$item$$.tien_ck_nt=$item$$.sl_xuat*($item$$.tien_ck_nt||0);$item$$.tt=$item$$.tt_nt=$item$$.tien_nt-($item$$.tien_ck_nt||0);return{...$item$$}});$detail$$.gia_mua=$detail$$.combo.map($c$$=>($c$$.gia_mua||
0)*$c$$.sl_xuat_1_combo).reduce(($a$$,$b$$)=>$a$$+$b$$,0)});$obj$$.result_export_einvoice=null;$next$$(null,$obj$$)})};$contr$$.updating=async function($user$$,$data$$,$obj$$,$next$$){$data$$.details||($data$$.details=$obj$$.details);$data$$.ngay_ct=$data$$.ngay_ct||$obj$$.ngay_ct;await $data$$.details.asyncJoinModel2($user$$.current_id_app,dmvt,{where:"ma_vt",setFields:($item$$,$ref$$)=>{let $old_combo$$=($item$$.combo||[]).map($i$$=>({ma_vt:$i$$.ma_vt,sl_xuat:$i$$.sl_xuat})),$new_combo$$=($ref$$.combo||
[]).map($i$$=>({ma_vt:$i$$.ma_vt,sl_xuat:$i$$.sl_xuat}));_.isEqual($old_combo$$,$new_combo$$)||($item$$.combo=$ref$$.combo||[]);$item$$.gia_mua=$ref$$.gia_mua_tmp}});let $ngay_nay_thang_truoc$$=moment($data$$.ngay_ct).subtract(1,"months").toDate(),$details$$=[];$data$$.details.forEach($d$$=>{$d$$.combo&&$d$$.combo.length>0?$details$$=$details$$.concat($d$$.combo):$details$$.push($d$$)});await $details$$.filter($r$$=>!$r$$.gia_mua).asyncJoinModel2($obj$$.id_app,"giatb",{where:$item$$=>({ma_vt:$item$$.ma_vt,
id_app:$obj$$.id_app,gia:{$gt:0},nam:$ngay_nay_thang_truoc$$.getFullYear(),thang:$ngay_nay_thang_truoc$$.getMonth()+1}),fields:[{gia_mua:"gia"}]});$ngay_nay_thang_truoc$$=moment($ngay_nay_thang_truoc$$).subtract(1,"months").toDate();await $details$$.filter($r$$=>!$r$$.gia_mua).asyncJoinModel2($obj$$.id_app,"giatb",{where:$item$$=>({ma_vt:$item$$.ma_vt,id_app:$obj$$.id_app,gia:{$gt:0},nam:$ngay_nay_thang_truoc$$.getFullYear(),thang:$ngay_nay_thang_truoc$$.getMonth()+1}),fields:[{gia_mua:"gia"}]});
$data$$.details.filter($d$$=>$d$$.combo&&$d$$.combo.length>0).forEach($detail$$=>{$detail$$.combo=$detail$$.combo.map($item$$=>{$item$$.sl_xuat_1_combo==void 0&&($item$$.sl_xuat_1_combo=$item$$.sl_xuat||0);$item$$.sl_xuat=$item$$.sl_xuat_1_combo*$detail$$.sl_xuat;$item$$.tien_xuat=$item$$.tien_xuat_nt=$item$$.sl_xuat*($item$$.gia_von_nt||0);$item$$.tien_hang=$item$$.tien_hang_nt=0;$item$$.tien=$item$$.tien_nt=$item$$.sl_xuat*($item$$.gia_ban_nt||0);$item$$.tien_ck=$item$$.tien_ck_nt=$item$$.sl_xuat*
($item$$.tien_ck_nt||0);$item$$.tt=$item$$.tt_nt=$item$$.tien_nt-($item$$.tien_ck_nt||0);return{...$item$$}});$detail$$.gia_mua=$detail$$.combo.map($c$$=>($c$$.gia_mua||0)*$c$$.sl_xuat_1_combo).reduce(($a$$,$b$$)=>$a$$+$b$$,0)});const $ct_tt$$=await Tdttno_tt.findOne({id_hd:$obj$$._id,id_app:$obj$$.id_app}).lean();if($ct_tt$$)return $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$$.deleting=async function($ct_tt$jscomp$1_user$$,$obj$$,$next$$){($ct_tt$jscomp$1_user$$=await Tdttno_tt.findOne({id_hd:$obj$$._id,id_app:$obj$$.id_app}).lean())?$next$$(`Kh\u00f4ng th\u1ec3 xo\u00e1 phi\u1ebfu n\u00e0y do \u0111\u00e3 \u0111\u01b0\u1ee3c thanh to\u00e1n b\u1edfi ${$ct_tt$jscomp$1_user$$.ma_ct||"ch\u1ee9ng t\u1eeb"}: ${$ct_tt$jscomp$1_user$$.so_ct}, ng\u00e0y ${moment($ct_tt$jscomp$1_user$$.ngay_ct).format("DD/MM/YYYY")}`):
$next$$(null,$obj$$)};$contr$$.on("saved",function($obj$$){$obj$$.id_dh2&&global.getModel("dh2").updateMany({_id:$obj$$.id_dh2,id_app:$obj$$.id_app},{id_hd2:$obj$$._id.toString(),trang_thai:"7"},()=>{global.getModel("dh2").findOne({_id:$obj$$.id_dh2},($e$$,$_obj$$)=>{$_obj$$&&controller.postData($_obj$$,global.controllers.DH2,$e$$=>{$e$$&&Logger.error($e$$)})})})});$contr$$.on("deleted",function($obj$$){$obj$$.id_dh2&&global.getModel("dh2").updateMany({_id:$obj$$.id_dh2,id_app:$obj$$.id_app,id_pxh:{$in:[null,
"",void 0]}},{id_hd2:"",trang_thai:"3"},()=>{global.getModel("dh2").updateMany({_id:$obj$$.id_dh2,id_app:$obj$$.id_app,id_pxh:{$nin:[null,"",void 0]}},{id_hd2:"",trang_thai:"6"},()=>{global.getModel("dh2").findOne({_id:$obj$$.id_dh2,id_app:$obj$$.id_app},($e$$,$_obj$$)=>{$_obj$$&&controller.postData($_obj$$,global.controllers.DH2,$e$$=>{$e$$&&Logger.error($e$$)})})})})});$contr$$.view=function($user$$,$items$$,$fn$$){const $id_app$$=$user$$.current_id_app;async.parallel({dt:function($callback$$){$items$$.filter($item$$=>
$item$$.ma_dt).joinModel2($id_app$$,dmdt,[{where:"ma_dt",fields:[{name:"ten_dt",value:"ten_dt"}]}],function(){$callback$$()})},kh:function($callback$$){$items$$.filter($item$$=>$item$$.ma_kh).joinModel2($id_app$$,customer,[{where:"ma_kh",fields:["ten_kh","email","nh_kh"]}],function(){$callback$$()})},ghn:function($callback$$){$items$$.filter($item$$=>$item$$.tinh_thanh&&$item$$.quan_huyen&&$item$$.xa_phuong).joinModel2(null,"xaphuong",[{where:{tinh_thanh:"ten_tinh_thanh",quan_huyen:"ten_quan_huyen",
xa_phuong:"ten_xa_phuong"},fields:["provinceid_ghn","districtid_ghn","wardcode_ghn"]}],function(){$callback$$()})},nv:function($callback$$){$items$$.filter($item$$=>$item$$.ma_nv).joinModel($id_app$$,dmnv,[{akey:"ma_nv",bkey:"ma_nv",setFields:($item$$,$ref$$)=>{$item$$.ma_bp||($item$$.ma_bp=$ref$$.ma_bp);$item$$.ten_nv=$ref$$.ten_nv}}],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$$()})},cong_no:function($callback$$){setImmediate(async()=>{try{const $id_hds$$=$items$$.map($i$$=>$i$$._id.toString()),$congnos$$=await global.getModel("tdttno").getBalance({id_app:$id_app$$,id_hd:{$in:$id_hds$$}});for(let $item$$ of $items$$){let $invoice$$=
$congnos$$.find($c$$=>$c$$.id_ct.toString()==$item$$._id.toString());if($invoice$$&&($item$$.da_thanh_toan_nt=$invoice$$.da_thanh_toan_nt,$item$$.da_thanh_toan=$invoice$$.da_thanh_toan,$item$$.con_lai_nt=$invoice$$.con_lai_nt,$item$$.con_lai=$invoice$$.con_lai,$item$$.con_lai_nt)){let $t_invoice$$={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=$invoice$$.da_thanh_toan_nt;$t_invoice$$.da_t