UNPKG

kpiplus

Version:

KPI+

1 lines 1.46 kB
var model=require("../../models/lienhe"),User=require("../../models/user"),customer=require("../../models/customer"),link=require("../../models/link"),arrays=require("../../libs/array-funcs"),async=require("async"),underscore=require("underscore"),controller=require("../../controllers/controller"),lienhe=function(e){var n=function(e,n,i){if(n.id_kh){var r=n._id.toString(),l={$or:[{id_a:r,id_b:n.id_kh},{id_a:n.id_kh,id_b:r}]};link.find(l).lean().exec(function(e,l){l&&0!==l.length?i(null,n):new link({id_app:n.id_app,id_a:n.id_kh,id_b:r,collection_a:"dmkh",collection_b:"lienhe"}).save(function(e,r){e&&console.error(e),i(null,n)})})}else i(null,n)};this.contr=new controller(e,model,"lienhe",{sort:{ten_lien_he:1},unique:["ten_lien_he","email","dien_thoai"],onFinding:function(e,n,i){async.parallel({find_ten_kh:function(e){n.ten_kh?customer.find({ten_kh:{$regex:n.ten_kh,$options:"i"}},{_id:1}).lean().exec(function(i,r){if(i)return e(i);delete n.ten_kh,id_khs=underscore.pluck(r,"_id"),n.id_kh={$in:id_khs},e()}):e()}},function(e,r){if(e)return i(e);i(null,n)})},onView:function(e,n,i){n.joinModel2(e.current_id_app,customer,[{where:{id_kh:"_id"},fields:[{name:"ten_kh",value:"ten_kh"}]}],function(e){i(null,n)})},onCreating:function(e,n,i,r){r.data&&r.data.ma_kh&&!n.id_kh?customer.findOne({ma_kh:r.data.ma_kh}).lean().exec(function(e,r){r&&(n.id_kh=r._id),i(null,n)}):i(null,n)},onCreated:n,onUpdated:n}),this.contr.route()};module.exports=lienhe;