flexbiz-server
Version:
Flexible Server
22 lines (21 loc) • 9.62 kB
JavaScript
'use strict';const async=require("async"),utils=require("./utils"),tontucthoi=global.getModel("tontucthoi"),Dmvt=global.getModel("dmvt"),round=4,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.parallel({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$$=()=>{}){if(!this.details)return console.error("details not exists"),$callback$$(null);if(!this.master||!this.master._id)return console.error("masters not exists",this.master),$callback$$(null);let $master$$=this.master;$master$$.toObject&&($master$$=$master$$.toObject());let $details$$=await this.runPrepare(this.prepare,this.details),$model_book$$=this.model_book;if("tdttco"===$model_book$$.modelName.toLowerCase()){var $rs$jscomp$2_tdtts_tdtts$$=await global.getModel("tdttco").find({id_ct:$master$$._id.toString()},
{_id:1,tat_toan:1}).lean();if(0<$rs$jscomp$2_tdtts_tdtts$$.length){if(0<$rs$jscomp$2_tdtts_tdtts$$.filter($t$$=>$t$$.tat_toan).length)return $callback$$(null);$rs$jscomp$2_tdtts_tdtts$$=$rs$jscomp$2_tdtts_tdtts$$.map($t$$=>$t$$._id.toString());if(await global.getModel("tdttco_tt").findOne({id_tdtt:{$in:$rs$jscomp$2_tdtts_tdtts$$}}))return $callback$$(null)}}if("tdttno"===$model_book$$.modelName.toLowerCase()&&($rs$jscomp$2_tdtts_tdtts$$=await global.getModel("tdttno").find({id_ct:$master$$._id.toString()},
{_id:1,tat_toan:1}).lean(),0<$rs$jscomp$2_tdtts_tdtts$$.length)){if(0<$rs$jscomp$2_tdtts_tdtts$$.filter($t$$=>$t$$.tat_toan).length)return $callback$$(null);$rs$jscomp$2_tdtts_tdtts$$=$rs$jscomp$2_tdtts_tdtts$$.map($t$$=>$t$$._id.toString());if(await global.getModel("tdttno_tt").findOne({id_tdtt:{$in:$rs$jscomp$2_tdtts_tdtts$$}}))return $callback$$(null)}"tdttco_tt"===$model_book$$.modelName.toLowerCase()&&await Promise.all($details$$.filter($d$$=>$d$$.id_hd&&$d$$.id_tdtt).map($detail$$=>(async()=>
{let $tdtt$$=await global.getModel("tdttco").findOne({_id:$detail$$.id_tdtt},{_id:1}).lean();!$tdtt$$&&($tdtt$$=await global.getModel("tdttco").findOne({id_ct:$detail$$.id_hd},{_id:1}).lean())&&($detail$$.id_tdtt=$tdtt$$._id.toString())})()));"tdttno_tt"===$model_book$$.modelName.toLowerCase()&&await Promise.all($details$$.filter($d$$=>$d$$.id_hd&&$d$$.id_tdtt).map($detail$$=>(async()=>{let $tdtt$$=await global.getModel("tdttno").findOne({_id:$detail$$.id_tdtt},{_id:1}).lean();!$tdtt$$&&($tdtt$$=
await global.getModel("tdttno").findOne({id_ct:$detail$$.id_hd},{_id:1}).lean())&&($detail$$.id_tdtt=$tdtt$$._id.toString())})()));if("sokho"===$model_book$$.modelName.toLowerCase()||"sokhott"===$model_book$$.modelName.toLowerCase())await $details$$.asyncJoinModel2($master$$.id_app,Dmvt,{where:"ma_vt",fields:"tg_tk"}),$details$$=$details$$.filter($d$$=>$d$$.tg_tk),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=($detail$$.sl_xuat||0)*$detail$$.he_so_qd,$detail$$.sl_nhap_qd=($detail$$.sl_nhap||
0)*$detail$$.he_so_qd)});"sokhokhongton"===$model_book$$.modelName.toLowerCase()&&(await $details$$.asyncJoinModel2($master$$.id_app,Dmvt,{where:"ma_vt",fields:"tg_tk"}),$details$$=$details$$.filter($d$$=>0==$d$$.tg_tk),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))}));"sokhonpp"===$model_book$$.modelName.toLowerCase()&&(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))}));if("vatra"===$model_book$$.modelName.toLowerCase()||"vatvao"===$model_book$$.modelName.toLowerCase())if($rs$jscomp$2_tdtts_tdtts$$=await Promise.all($details$$.filter($r$$=>$r$$.so_hd&&$r$$.so_hd.toUpperCase()!==($master$$.ma_ct||"").toUpperCase()).map($detail$$=>(async()=>{let $v$$=await $model_book$$.findOne({id_app:$master$$.id_app,so_hd:$detail$$.so_hd,
ma_kh:$detail$$.ma_kh||$master$$.ma_kh,so_seri:$detail$$.so_seri,ky_hieu_hoa_don:$detail$$.ky_hieu_hoa_don,id_ct:{$ne:$master$$._id.toString()}});return $v$$?$v$$.so_hd:""})())),$rs$jscomp$2_tdtts_tdtts$$=$rs$jscomp$2_tdtts_tdtts$$.filter($r$$=>$r$$),0<$rs$jscomp$2_tdtts_tdtts$$.length)return $callback$$(`S\u1ed1 ho\u00e1 \u0111\u01a1n ${$rs$jscomp$2_tdtts_tdtts$$.join(",")} \u0111\u00e3 t\u1ed3n t\u1ea1i`);$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$$($error$$);if(0==$details$$.length)return $callback$$(null,[]);$model_book$$.create($details$$,async($e$jscomp$0$$,$rs$$)=>{if($e$jscomp$0$$){console.error("\u0110\u00e3 c\u00f3 l\u1ed7i khi postdata",$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$$(null,$rs$$):(console.error("error save data post",$e$jscomp$0$$,$details$$),$self$$.remove(()=>{$callback$$($e$jscomp$0$$)}))):(console.error("error save data post",$e$jscomp$0$$,$details$$),$self$$.remove(()=>{$callback$$($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$$(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$$("Ch\u1ee9ng t\u1eeb kh\u00f4ng t\u1ed3n t\u1ea1i")})):(console.log("not found controller",$master$$.ma_ct.toUpperCase()),$callback$$(null,$rs$$)):$callback$$(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;