flexbiz-server
Version:
Flexible Server
11 lines (10 loc) • 4.38 kB
JavaScript
const ckvt=require("../../libs/ckvt"),getGiaBan=require("../../libs/getGiaban"),Dmvt=global.getModel("dmvt"),Dmkho=global.getModel("dmkho"),async=require("async"),controller=require("../../controllers/controllerRPT"),moment=require("moment");
module.exports=function($router$$){new controller($router$$,"ckvt",async function($_queryvt_req_vts$$,$callback$$){const $condition$$=$_queryvt_req_vts$$.query;if(!$condition$$.ma_vt&&($condition$$.ma_kh||$condition$$.ma_ncc||$condition$$.ma_nvt||$condition$$.ma_nvt2||$condition$$.ma_nvt3||$condition$$.ma_nvt4)){$_queryvt_req_vts$$={id_app:$condition$$.id_app};if($condition$$.ma_ncc||$condition$$.ma_kh)$_queryvt_req_vts$$.ma_ncc=$condition$$.ma_ncc||$condition$$.ma_kh;$condition$$.ma_nvt&&$condition$$.ma_nvt.length>
0&&($_queryvt_req_vts$$.ma_nvt=$condition$$.ma_nvt);$condition$$.ma_nvt2&&$condition$$.ma_nvt2.length>0&&($_queryvt_req_vts$$.ma_nvt2=$condition$$.ma_nvt2);$condition$$.ma_nvt3&&$condition$$.ma_nvt3.length>0&&($_queryvt_req_vts$$.ma_nvt3=$condition$$.ma_nvt3);$condition$$.ma_nvt4&&$condition$$.ma_nvt4.length>0&&($_queryvt_req_vts$$.ma_nvt4=$condition$$.ma_nvt4);$_queryvt_req_vts$$=await Dmvt.find($_queryvt_req_vts$$,{ma_vt:1}).lean();$condition$$.ma_vt=$_queryvt_req_vts$$.map($v$$=>$v$$.ma_vt)}ckvt($condition$$,
function($error$$,$report$$){if($error$$)return $callback$$($error$$);$report$$=$report$$.filter($r$$=>$r$$.ton00||$r$$.du00);const $id_app$$=$condition$$.id_app;async.parallel({vt:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt).joinModel2($id_app$$,Dmvt,{where:"ma_vt",fields:"ten_vt tg_tk tk_vt ma_ncc ma_dvt ma_nvt ma_vt2 ma_vt3 ma_vt4".split(" "),setFields:($a$$,$b$$)=>{if($b$$.picture){let $p$$=$b$$.picture.split(".");$a$$.picture_thumb=$b$$.picture+".thumb."+$p$$[$p$$.length-1]}else $a$$.picture=
"/getfile/others/noimage.png",$a$$.picture_thumb="/getfile/others/noimage.png"}},()=>{$callback$$()})},kho:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_kho).joinModel2($id_app$$,Dmkho,{where:"ma_kho",fields:["ten_kho","la_kho_online"]},()=>{$callback$$()})},tt1:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt1).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt1,loai_tt:"1"}),fields:{barcode1:"ma_tt2"}},()=>{$callback$$()})},tt2:$callback$$=>
{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt2).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt2,loai_tt:"2"}),fields:{barcode2:"ma_tt2"}},()=>{$callback$$()})},tt3:$callback$$=>{$report$$.filter($r$$=>$r$$.ma_vt&&$r$$.ma_tt3).joinModel2($id_app$$,global.getModel("dmtt"),{where:$item$$=>({ma_vt:$item$$.ma_vt,ma_tt:$item$$.ma_tt3,loai_tt:"3"}),fields:{barcode3:"ma_tt2"}},()=>{$callback$$()})},gb:function($callback$$){async.mapLimit($report$$,
20,($item$$,$callback$$)=>{const $condition_giaban$$={ma_vt:$item$$.ma_vt,id_app:$condition$$.id_app};$item$$.ma_kho&&($condition_giaban$$.ma_kho=$item$$.ma_kho);$item$$.ma_tt1&&($condition_giaban$$.ma_tt1=$item$$.ma_tt1);$item$$.ma_tt2&&($condition_giaban$$.ma_tt2=$item$$.ma_tt2);$item$$.ma_tt3&&($condition_giaban$$.ma_tt3=$item$$.ma_tt3);getGiaBan($condition_giaban$$,($e$$,$gia$$)=>{if($e$$)return Logger.error("error when get gia_ban on dmvt",$e$$,$condition_giaban$$),$callback$$();$gia$$?($item$$.gia_ban_le=
$gia$$.gia_ban_le||0,$item$$.doanh_thu_du_tinh=($item$$.gia_ban_le||0)*($item$$.ton00||0)):($item$$.gia_ban_le=0,$item$$.doanh_thu_du_tinh=0);$callback$$(null)})},()=>{$callback$$()})}},async function($error$$){if($error$$)return $callback$$($error$$);$error$$=$condition$$.ngay;!$error$$&&$condition$$.den_ngay&&($error$$=$condition$$.den_ngay);$error$$=moment($error$$).endOf("date").toDate();!($error$$.getTime()>=moment().endOf("date").toDate())||$condition$$.ma_kho||$condition$$.ma_lo||$condition$$.han_sd||
$condition$$.ma_tt1||$condition$$.ma_tt2||$condition$$.ma_tt3||$condition$$.id_ct||$condition$$.ma_dvcs||(await $report$$.filter($r$$=>$r$$.ma_vt&&$r$$.la_kho_online).asyncGroupBy(["ma_vt"],["ton00"])).forEach(async $sk$$=>{let $vt$$=await global.getModel("dmvt").findOne({id_app:$condition$$.id_app,ma_vt:$sk$$.ma_vt});$vt$$&&($vt$$.ton_kho_online_hien_tai=$sk$$.ton00,$vt$$.save($e$$=>{$e$$&&Logger.error($e$$)}))});$report$$.forEach($r$$=>{$r$$.barcode=$r$$.barcode1||$r$$.barcode2||$r$$.barcode3||
$r$$.ma_vt2});$callback$$(null,$report$$)})})})};