UNPKG

kpiplus

Version:

KPI+

1 lines 2.56 kB
var dmvt=require("../models/dmvt"),dmgiaban=require("../models/dmgiaban"),dmchietkhau=require("../models/dmchietkhau"),dmkhuyenmai=require("../models/dmkhuyenmai"),arrayfuncs=require("./array-funcs"),async=require("async"),underscore=require("underscore"),moment=require("moment");module.exports=function(e,n){if(!e||!e.ma_vt||!e.id_app)return void n("Lỗi: Báo cáo này yêu cầu các tham số: ma_vt,id_app");let a,t,_={ma_vt:e.ma_vt,id_app:e.id_app,status:!0};e.nh_kh&&(_.nh_kh={$or:[{$eq:null},{$eq:e.nh_kh}]}),e.ma_kh&&(_.ma_kh={$or:[{$eq:null},{$eq:e.ma_kh}]}),e.ma_kho&&(_.ma_kho={$or:[{$eq:null},{$eq:e.ma_kho}]}),e.ngay_ct?e.ngay_ct=new Date(e.ngay_ct):e.ngay_ct=new Date;let i=moment(e.ngay_ct).startOf("date").toDate();a={$lte:moment(e.ngay_ct).endOf("date").toDate()},t={$gte:i},_.hieu_luc_tu=a,_.hieu_luc_den=t,async.parallel({price:n=>{dmgiaban.findOne(_).lean().exec((a,t)=>{if(a)return n(a);t?n(null,t):dmvt.findOne({ma_vt:e.ma_vt,id_app:e.id_app}).lean().exec((a,t)=>{if(a||!t)return n(a||e.ma_vt+" is not exists");let i={};underscore.extend(i,_),i.ma_vt="",i.$or=[{ma_nvt:null},{ma_nvt:""}],t.ma_nvt&&i.$or.push({ma_nvt:t.ma_nvt}),dmgiaban.findOne(i).lean().exec((e,a)=>{if(e)return n(e);a||(a={gia_ban_le:t.gia_ban_le0||t.gia_ban_le||0,gia_ban_buon:t.gia_ban_buon0||t.gia_ban_buon||0}),n(null,a)})})})},discount:n=>{let a={};underscore.extend(a,_),dmchietkhau.find(a).lean().exec((t,_)=>{if(t)return n(t);_?n(null,_):dmvt.findOne({ma_vt:e.ma_vt,id_app:e.id_app}).lean().exec((t,_)=>{if(t||!_)return n(t||e.ma_vt+" is not exists");let i={};underscore.extend(i,a),i.ma_vt="",i.$or=[{ma_nvt:null},{ma_nvt:""}],_.ma_nvt&&i.$or.push({ma_nvt:_.ma_nvt}),dmchietkhau.find(i).lean().exec((e,a)=>{if(e)return n(e);n(null,a)})})})},promotion:n=>{let a={};underscore.extend(a,_),dmkhuyenmai.find(a).lean().exec((t,_)=>{if(t)return n(t);_?n(null,_):dmvt.findOne({ma_vt:e.ma_vt,id_app:e.id_app}).lean().exec((t,_)=>{if(t||!_)return n(t||e.ma_vt+" is not exists");let i={};underscore.extend(i,a),i.ma_vt="",i.$or=[{ma_nvt:null},{ma_nvt:""}],_.ma_nvt&&i.$or.push({ma_nvt:_.ma_nvt}),dmkhuyenmai.find(i).lean().exec((e,a)=>{if(e)return n(e);n(null,a)})})})}},(e,a)=>{if(e)return n(e);a.price={gia_ban_le:a.price.gia_ban_le,gia_ban_buon:a.price.gia_ban_buon};let t=underscore.find(a.discount,e=>e.sl_tu<=1&&!e.ma_kh&&!e.nh_kh);t&&(t={sl_tu:t.sl_tu,ty_le_ck:t.ty_le_ck,tien_ck:t.tien_ck},underscore.extend(a.price,t));let _=underscore.filter(a.discount,e=>e.sl_tu>=1);_.length>0&&(a.price.ck_sl_tu2=_),a.price.promotion=a.promotion,n(null,a.price)})};