UNPKG

flexbiz-server

Version:

Flexible Server

24 lines (23 loc) 10.8 kB
'use strict';const async=require("async"),utils=require("./utils"),tontucthoi=global.getModel("tontucthoi"),Dmvt=global.getModel("dmvt"),round=4,tinhgiatb=require("../libs/tinhgiatb1vt"),moment=require("moment"),dinhmucsx=async($id_app$$,$i_ma_sp_qd$$,$dm_ma_tt1$$,$sl_xuat_sl_xuat_qd$$,$dm_of_vt_ma_dvt_vt$$)=>{let $vts$$=[];$dm_ma_tt1$$=await global.getModel("dinhmucsx").findOne({id_app:$id_app$$,ma_sp:$i_ma_sp_qd$$,ma_tt1:$dm_ma_tt1$$||void 0},{details:1}).lean();if(!$dm_ma_tt1$$||!$dm_ma_tt1$$.details|| 0===$dm_ma_tt1$$.details.length)return $vts$$;$dm_ma_tt1$$.details=$dm_ma_tt1$$.details.map($d$$=>{$d$$.toObject&&($d$$=$d$$.toObject());return $d$$});var $he_so_qd_sl$$=1;($i_ma_sp_qd$$=await global.getModel("dmqddvt").findOne({id_app:$id_app$$,ma_vt:$i_ma_sp_qd$$,ma_dvt:$dm_of_vt_ma_dvt_vt$$}).lean())&&($he_so_qd_sl$$=$i_ma_sp_qd$$.mau?$i_ma_sp_qd$$.tu/$i_ma_sp_qd$$.mau:$i_ma_sp_qd$$.ty_le_qd);$sl_xuat_sl_xuat_qd$$*=$he_so_qd_sl$$;await $dm_ma_tt1$$.details.asyncJoinModel2($id_app$$,Dmvt,{where:"ma_vt", setFields:($item$$,$ref$$)=>{$item$$.tk_vt||($item$$.tk_vt=$ref$$.tk_vt);$item$$.tk_gv||($item$$.tk_gv=$ref$$.tk_gv);$item$$.tg_tk=$ref$$.tg_tk;$item$$.xk_nvl=$ref$$.xk_nvl}});for($i_ma_sp_qd$$=0;$i_ma_sp_qd$$<$dm_ma_tt1$$.details.length;$i_ma_sp_qd$$++)$dm_of_vt_ma_dvt_vt$$=$dm_ma_tt1$$.details[$i_ma_sp_qd$$],$he_so_qd_sl$$=0,$he_so_qd_sl$$=1==$dm_of_vt_ma_dvt_vt$$.loai_dinh_muc?$dm_of_vt_ma_dvt_vt$$.sl_dinh_muc*$sl_xuat_sl_xuat_qd$$*(1+($dm_of_vt_ma_dvt_vt$$.ty_le_hao_hut||0)/100):$dm_of_vt_ma_dvt_vt$$.sl_dinh_muc* (1+$dm_of_vt_ma_dvt_vt$$.ty_le_hao_hut/100),$dm_of_vt_ma_dvt_vt$$.xk_nvl?($dm_of_vt_ma_dvt_vt$$=await dinhmucsx($id_app$$,$dm_of_vt_ma_dvt_vt$$.ma_vt,$dm_of_vt_ma_dvt_vt$$.ma_tt1||void 0,$he_so_qd_sl$$,$dm_of_vt_ma_dvt_vt$$.ma_dvt),$vts$$=[...$vts$$,...$dm_of_vt_ma_dvt_vt$$]):($dm_of_vt_ma_dvt_vt$$.sl_xuat=$he_so_qd_sl$$,$vts$$.push($dm_of_vt_ma_dvt_vt$$));return $vts$$},post=function($master$$,$details$$,$model_book$$,$prepare$$){$details$$||($details$$=[]);this.master={...$master$$};this.details= $details$$.map($detail$$=>({...$detail$$}));this.prepare=$prepare$$;this.model_book=$model_book$$}; post.prototype.runPrepare=async($prepareFunction$$,$details$jscomp$0$$)=>{$details$jscomp$0$$=$details$jscomp$0$$.map($d$$=>{$d$$.toObject&&($d$$=$d$$.toObject());return{...$d$$}});return new Promise($resolve$$=>{$prepareFunction$$?async.map($details$jscomp$0$$,($detail$jscomp$0$$,$callback$$)=>{setImmediate(()=>{$detail$jscomp$0$$.toObject=function(){return Object.assign({},$detail$jscomp$0$$)};$prepareFunction$$($detail$jscomp$0$$,$detail$$=>{$detail$$.toObject=function(){return Object.assign({}, $detail$$)};$callback$$(null,$detail$$)})})},($e$$,$details$$)=>{$resolve$$($details$$)}):$resolve$$($details$jscomp$0$$)})}; post.prototype.remove=function($callback$jscomp$0$$=()=>{}){let $master$$=this.master;$master$$&&$master$$.toObject&&($master$$=$master$$.toObject());if(!$master$$._id)return $callback$jscomp$0$$();let $model_book$$=this.model_book;async.series({sks:$callback$$=>{setImmediate(()=>{"sokho"===$model_book$$.modelName.toLowerCase()?global.getModel("sokho").find({id_ct:$master$$._id.toString()}).lean().exec(function($e$$,$sks$$){if($e$$)return $callback$$($e$$);$callback$$(null,$sks$$)}):$callback$$(null, [])})}},($e$jscomp$0$$,$rs$$)=>{if($e$jscomp$0$$)return $callback$jscomp$0$$($e$jscomp$0$$);$model_book$$.deleteMany({id_ct:$master$$._id.toString()},function($error$$){if($error$$)return $callback$jscomp$0$$($error$$);0<$rs$$.sks.length?tontucthoi.tinhTonTucThoi($rs$$.sks,($e$$,$rs$$)=>{$callback$jscomp$0$$($e$$,$rs$$)}):$callback$jscomp$0$$($error$$)})})}; post.prototype.run=async function($callback$jscomp$0$$=()=>{}){if(!this.details)return console.error("details not exists"),$callback$jscomp$0$$(null);if(!this.master||!this.master._id)return console.error("masters not exists",this.master),$callback$jscomp$0$$(null);let $master$$=this.master;$master$$.toObject&&($master$$=$master$$.toObject());let $details$$=await this.runPrepare(this.prepare,this.details),$model_book$$=this.model_book;await $details$$.asyncJoinModel2($master$$.id_app,Dmvt,{where:"ma_vt", setFields:($item$$,$ref$$)=>{$item$$.tk_vt||($item$$.tk_vt=$ref$$.tk_vt);$item$$.tk_gv||($item$$.tk_gv=$ref$$.tk_gv);$item$$.tg_tk=$ref$$.tg_tk;$item$$.xk_nvl=$ref$$.xk_nvl}});var $ps_kg_dm_sp_co_dm_sp_xk_nvl$$=$details$$.filter($p$$=>$p$$.xk_nvl&&2==$p$$.nxt);for(var $i$jscomp$1_i$$=0;$i$jscomp$1_i$$<$ps_kg_dm_sp_co_dm_sp_xk_nvl$$.length;$i$jscomp$1_i$$++)$ps_kg_dm_sp_co_dm_sp_xk_nvl$$[$i$jscomp$1_i$$].dinh_muc_nvl=await dinhmucsx($master$$.id_app,$ps_kg_dm_sp_co_dm_sp_xk_nvl$$[$i$jscomp$1_i$$].ma_vt, $ps_kg_dm_sp_co_dm_sp_xk_nvl$$[$i$jscomp$1_i$$].ma_tt1,$ps_kg_dm_sp_co_dm_sp_xk_nvl$$[$i$jscomp$1_i$$].sl_xuat,$ps_kg_dm_sp_co_dm_sp_xk_nvl$$[$i$jscomp$1_i$$].ma_dvt);if("sokhokhongton"===$model_book$$.modelName.toLowerCase())$details$$=$details$$.filter($d$$=>0==$d$$.tg_tk);else{$details$$=$details$$.filter($d$$=>$d$$.tg_tk||$d$$.dinh_muc_nvl&&0<$d$$.dinh_muc_nvl.length);$ps_kg_dm_sp_co_dm_sp_xk_nvl$$=$details$$.filter($p$$=>$p$$.xk_nvl&&$p$$.dinh_muc_nvl&&0<$p$$.dinh_muc_nvl.length);for($i$jscomp$1_i$$= 0;$i$jscomp$1_i$$<$ps_kg_dm_sp_co_dm_sp_xk_nvl$$.length;$i$jscomp$1_i$$++){const $p$jscomp$0$$=$ps_kg_dm_sp_co_dm_sp_xk_nvl$$[$i$jscomp$1_i$$];let $he_so_qd$$=1,$qd$$=await global.getModel("dmqddvt").findOne({id_app:$master$$.id_app,ma_vt:$p$jscomp$0$$.ma_vt,ma_dvt:$p$jscomp$0$$.ma_dvt}).lean();$qd$$&&($he_so_qd$$=$qd$$.mau?$qd$$.tu/$qd$$.mau:$qd$$.ty_le_qd);let $sl_sp$$=$p$jscomp$0$$.sl_xuat*$he_so_qd$$;$p$jscomp$0$$.dinh_muc_nvl=$p$jscomp$0$$.dinh_muc_nvl.map($d$$=>{$d$$.nxt=$p$jscomp$0$$.nxt;$d$$.ma_sp= $p$jscomp$0$$.ma_vt;$d$$.sl_sp=$sl_sp$$;$d$$.ma_tt1_sp=$p$jscomp$0$$.ma_tt1;$d$$.ma_tt2_sp=$p$jscomp$0$$.ma_tt2;$d$$.ma_tt3_sp=$p$jscomp$0$$.ma_tt3;$d$$.ma_kho=$p$jscomp$0$$.ma_kho;return $d$$});$p$jscomp$0$$.dinh_muc_nvl=$p$jscomp$0$$.dinh_muc_nvl.filter($p$$=>$p$$.tg_tk)}$ps_kg_dm_sp_co_dm_sp_xk_nvl$$=$details$$.filter($p$$=>!$p$$.xk_nvl||!$p$$.dinh_muc_nvl||0===$p$$.dinh_muc_nvl.length);$i$jscomp$1_i$$=$details$$.filter($p$$=>$p$$.xk_nvl&&$p$$.dinh_muc_nvl&&0<$p$$.dinh_muc_nvl.length).map($p$$=> $p$$.dinh_muc_nvl).reduce(($a$$,$b$$)=>$a$$.concat($b$$),[]);$details$$=[...$ps_kg_dm_sp_co_dm_sp_xk_nvl$$,...$i$jscomp$1_i$$]}await $details$$.asyncJoinModel2($master$$.id_app,global.getModel("dmqddvt"),{where:{ma_vt:"ma_vt",ma_dvt:"ma_dvt"},fields:["tu","mau",{he_so_qd:"ty_le_qd"}]});$details$$.forEach($detail$$=>{$detail$$.ma_kho=$detail$$.ma_kho||$master$$.ma_kho;$detail$$.he_so_qd=$detail$$.he_so_qd||1;$detail$$.mau&&$detail$$.tu?($detail$$.he_so_qd=$detail$$.tu/$detail$$.mau,$detail$$.sl_xuat_qd= utils.round(($detail$$.sl_xuat||0)*$detail$$.tu/$detail$$.mau,round),$detail$$.sl_nhap_qd=utils.round(($detail$$.sl_nhap||0)*$detail$$.tu/$detail$$.mau,round)):($detail$$.sl_xuat_qd=utils.round(($detail$$.sl_xuat||0)*$detail$$.he_so_qd,round),$detail$$.sl_nhap_qd=utils.round(($detail$$.sl_nhap||0)*$detail$$.he_so_qd,round))});let $nam$$=(new Date($master$$.ngay_ct)).getFullYear(),$thang$$=(new Date($master$$.ngay_ct)).getMonth()+1;await new Promise($rs$$=>{async.map($details$$.filter($p$$=>$p$$.tg_tk&& ($p$$.sl_xuat&&!$p$$.px_gia_dd||$p$$.sl_nhap&&$p$$.pn_gia_tb)&&$p$$.sl_xuat),($p$$,$callback$$)=>{setImmediate(async()=>{let $he_so_qd$$=1;var $giatb_qd$$=await global.getModel("dmqddvt").findOne({id_app:$master$$.id_app,ma_vt:$p$$.ma_vt,ma_dvt:$p$$.ma_dvt}).lean();$giatb_qd$$&&($he_so_qd$$=$giatb_qd$$.mau?$giatb_qd$$.tu/$giatb_qd$$.mau:$giatb_qd$$.ty_le_qd);$giatb_qd$$={ma_vt:$p$$.ma_vt,nam:$nam$$,thang:$thang$$,ma_kho:{$in:[$p$$.ma_kho,"",null]}};if($giatb_qd$$=await global.getModel("giatb").findOne($giatb_qd$$).sort({ma_kho:-1}).lean())$p$$.gia_von_nt= $p$$.gia_von=($giatb_qd$$.gia||0)*$he_so_qd$$,$p$$.tien_xuat_nt=$p$$.tien_xuat=($p$$.sl_xuat||0)*$p$$.gia_von_nt,$p$$.tien_nhap_nt=$p$$.tien_nhap=($p$$.sl_nhap||0)*$p$$.gia_von_nt,$callback$$();else{let $condition$$={id_app:$master$$.id_app,ma_vt:$p$$.ma_vt,ma_kho:$p$$.ma_kho};$condition$$.tu_ngay=moment($master$$.ngay_ct).startOf("month").toDate();$condition$$.den_ngay=moment($master$$.ngay_ct).endOf("month").toDate();tinhgiatb($condition$$,($e$$,$giatb$$)=>{$e$$&&console.error("Kh\u00f4ng th\u1ec3 t\u00ednh gi\u00e1 trung b\u00ecnh", $e$$,$condition$$);$p$$.gia_von_nt=$rs$$?$p$$.gia_von=($giatb$$.gia||0)*$he_so_qd$$:$p$$.gia_von=0;$p$$.tien_xuat_nt=$p$$.tien_xuat=($p$$.sl_xuat||0)*$p$$.gia_von_nt;$p$$.tien_nhap_nt=$p$$.tien_nhap=($p$$.sl_nhap||0)*$p$$.gia_von_nt;$callback$$()})}})},()=>{$rs$$()})});$details$$=$details$$.map(($detail$$,$line$$)=>{$detail$$.id_ct=$master$$._id.toString();$detail$$.ma_ct=$master$$.ma_ct;$detail$$.so_ct=$master$$.so_ct;$detail$$.ngay_ct=$master$$.ngay_ct;for(let $attr$$ in $model_book$$.schema.paths)if("id_ct"!= $attr$$&&"_id"!=$attr$$&&"__v"!=$attr$$&&"date_updated"!=$attr$$&&"date_created"!=$attr$$){let $v$$=$detail$$[$attr$$];void 0!==$v$$&&null!==$v$$&&""!==$v$$||0===$v$$||void 0===$master$$[$attr$$]||($detail$$[$attr$$]=$master$$[$attr$$])}$detail$$.line=$line$$;delete $detail$$.toObject;delete $detail$$._id;delete $detail$$.__v;return $detail$$});const $self$$=this;$self$$.remove($error$$=>{if($error$$)return console.error("error delete data post",$error$$),$callback$jscomp$0$$($error$$);if(0==$details$$.length)return $callback$jscomp$0$$(null, []);$model_book$$.create($details$$,async($e$jscomp$0$$,$rs$$)=>{if($e$jscomp$0$$){console.error("\u0110\u00e3 c\u00f3 l\u1ed7i khi post sokho",$e$jscomp$0$$);var $contr_msg_error$$=$e$jscomp$0$$.message||$e$jscomp$0$$.error||$e$jscomp$0$$.toString();0<=$contr_msg_error$$.indexOf("E11000 duplicate")&&0<=$contr_msg_error$$.indexOf("id_ct_1_line_1")?($rs$$=await $model_book$$.find({id_ct:$master$$._id.toString()}),0<$rs$$.length?$callback$jscomp$0$$(null,$rs$$):(console.error("error save data post", $e$jscomp$0$$,$details$$),$self$$.remove(()=>{$callback$jscomp$0$$($e$jscomp$0$$)}))):(console.error("error save data post",$e$jscomp$0$$,$details$$),$self$$.remove(()=>{$callback$jscomp$0$$($e$jscomp$0$$)}))}else $master$$.ma_ct?($contr_msg_error$$=global.controllers[$master$$.ma_ct.toUpperCase()])?await $contr_msg_error$$.model.findById($master$$._id)?$callback$jscomp$0$$(null,$rs$$):(console.error("Ch\u1ee9ng t\u1eeb kh\u00f4ng t\u1ed3n t\u1ea1i. X\u00f3a s\u1ed5 s\u00e1ch",$master$$._id),$self$$.remove(()=> {$callback$jscomp$0$$("Ch\u1ee9ng t\u1eeb kh\u00f4ng t\u1ed3n t\u1ea1i")})):(console.log("not found controller",$master$$.ma_ct.toUpperCase()),$callback$jscomp$0$$(null,$rs$$)):$callback$jscomp$0$$(null,$rs$$),$rs$$&&"sokho"===$model_book$$.modelName.toLowerCase()&&setImmediate(()=>{tontucthoi.tinhTonTucThoi($rs$$,$e$$=>{$e$$&&console.error("L\u1ed7i t\u00ednh t\u1ed3n t\u1ee9c th\u1eddi v\u1eadt t\u01b0",$rs$$,$e$$)})})})})};module.exports=post;