UNPKG

kpiplus

Version:

KPI+

1 lines 2.48 kB
var so1=require("../../models/so1"),hd3=require("../../models/hd3"),dmkh=require("../../models/customer"),rptobject=require("../../models/rptobject"),async=require("async"),underscore=require("underscore"),arrayfuncs=require("../../libs/array-funcs"),controller=require("../../controllers/controllerRPT");module.exports=function(n){new controller(n,"ptdonhang",function(n,a){var e=n.query;if(!e.tu_ngay||!e.den_ngay||!e.bao_cao_theo)return a("Báo cáo này yêu cầu các tham số:tu_ngay,den_ngay,bao_cao_theo");var o={id_app:e.id_app},t=e.bao_cao_theo;o.ngay_ct={$gte:e.tu_ngay,$lte:e.den_ngay},e.ma_dvcs&&(o.ma_dvcs={$regex:e.ma_dvcs,$options:"i"}),e.ma_kho&&(o.ma_kho={$regex:e.ma_kho,$options:"i"}),async.parallel({rptobject:function(n){rptobject.findOne({code_rpt:"ptdonhang",ma_obj:t}).lean().exec(function(a,e){return a?n(a):e?void n(null,e):n("Không thể báo cáo theo đối tượng này")})},dskhach:function(n){e.nh_kh?dmkh.find({id_app:o.id_app,status:!0,nh_kh:e.nh_kh}).lean().exec(function(a,e){if(a)return n(a);n(null,underscore.pluck(e,"ma_kh"))}):n(null,null)}},function(n,r){if(n)return a(n);var c=r.rptobject;r.dskhach&&(o.ma_kh={$in:r.dskhach}),async.parallel({tralai:function(n){var a={id_app:o.id_app,ngay_ct:o.ngay_ct};e.ma_dvcs&&(a.ma_dvcs={$regex:e.ma_dvcs,$options:"i"}),e.ma_kho&&(a.ma_kho={$regex:e.ma_kho,$options:"i"}),r.dskhach&&(a.ma_kh={$in:r.dskhach}),hd3.find(a).lean().exec(function(a,e){if(a)return n(a);n(null,e)})},donhang:function(n){so1.find(o).lean().exec(function(a,e){if(a)return n(a);n(null,e)})}},function(n,o){if(n)return console.log(n),a(n);var r=o.tralai;(o=o.donhang).forEach(function(n){n.dat_hang=1,Number(n.trang_thai)>=3&&(n.da_phat=1),4==Number(n.trang_thai)&&(n.thanh_cong=1),5==Number(n.trang_thai)&&(n.huy=1)}),r.forEach(function(n){n.tra_lai=1,o.push(n)}),o.groupBy(t,[{name:"dat_hang",value:"dat_hang"},{name:"da_phat",value:"da_phat"},{name:"thanh_cong",value:"thanh_cong"},{name:"huy",value:"huy"},{name:"tra_lai",value:"tra_lai"}],function(n,o){if(n)return console.log(n),a(n);var r=underscore.sortBy(o,function(n){return n[t]}),u=1;r.forEach(function(n){n.stt=u,n.bold=!1,u++});var h=require("../../models/"+c.model_obj),i=c.value_field,_=c.header_field;r.joinModel(e.id_app,h,[{akey:t,bkey:i,fields:[{name:"chi_tieu",value:_}]}],function(n){r.push({chi_tieu:"Tổng cộng",dat_hang:r.csum("dat_hang"),da_phat:r.csum("da_phat"),thanh_cong:r.csum("thanh_cong"),huy:r.csum("huy"),bold:!0}),a(null,r)})})})})})};