kpiplus
Version:
KPI+
1 lines • 1.36 kB
JavaScript
var qts=require("../models/qts"),sotinhkh=require("../models/sotinhkh"),arrayfuncs=require("./array-funcs"),phanbokh=require("./phanbokh"),tinhkhauhao1ts=require("./tinhkhauhao1ts"),async=require("async"),underscore=require("underscore"),moment=require("moment");module.exports=function(n,t){if(n&&n.thang&&n.nam&&n.id_app){void 0===n.tinh_kh_theo_ngay&&(n.tinh_kh_theo_ngay=!0);var a=moment(new Date(n.nam,n.thang,0)).endOf("date").toDate();qts.find({id_app:n.id_app,ngay_kh:{$lte:a}}).lean().exec(function(a,e){if(a)return t(a);async.map(e,function(t,a){var e={};underscore.extend(e,n),e.id_ts=t._id,sotinhkh.findOne({id_app:e.id_app,id_ts:e.id_ts,nam:e.nam,thang:e.thang},function(n,i){return n?a(n):i&&i.sua_kh?a(null,i):void sotinhkh.remove({id_app:e.id_app,id_ts:e.id_ts,nam:e.nam,thang:e.thang},function(n){if(n)return a(n);tinhkhauhao1ts(e,function(n,i){return n?a(n):i?void async.map(i,function(n,a){n.id_app=e.id_app,n.nam=e.nam,n.thang=e.thang,sotinhkh.create(n,function(n,e){if(n)return a(n);(e=e.toObject()).ten_ts=t.ten_ts,e.ma_ct=t.ma_ct,e.tk_cp=t.tk_cp,e.tk_kh=t.tk_kh,e.ma_bp=t.ma_bp,a(null,e)})},function(n,t){a(n,t)}):a(null,null)})})})},function(n,a){if(n)return t(n);var e=[];a.forEach(function(n){n.forEach(function(n){e.push(n)})}),t(null,e)})})}else t("Lỗi: Báo cáo này yêu cầu các tham số: so_the_ts,thang,nam,id_app")};