/**
* 조직 내 하위 직원count를 하고자 한다.
*/
makeSubEmpCount: function (orgData) {
var i, len;
var data = incmm.util.copyObject(orgData);
var map = {};
var sumSubEmpCount = function (key, empCnt) {
// param으로 넘어온 pkey가 없으면 새로 totalEmpCount를 할당해주고,
if (!map[key]) {
map[key] = {
totalEmpCount: empCnt
};
} else {
// param으로 넘어온 pkey가 있으면 기존 totalEmpCount에 값을 더한다.
map[key].totalEmpCount += empCnt;
}
var rkey = map[key].rkey;
// upOrgId가 있는경우에 다시 sumSubEmpCount를 실행한다.
if (rkey) {
sumSubEmpCount(rkey, empCnt);
}
return map;
}
// 개별 data를 돌면서
for (i = 0, len = data.length; i < len; i++) {
var row = data[i];
var pkey = row.orgId; // pkey는 해당 orgId이고,
var rkey = $.trim(row.upOrgId); // rkey는 해당 upOrgId이다.
var empCnt = row.empCount - 0;
// map에 rkey와 totalEmpCount를 할당한다.
if (!map[pkey]) {
map[pkey] = {
rkey: rkey,
totalEmpCount: 0
};
}
sumSubEmpCount(pkey, empCnt); // 하위 조직 count를 구하는 함수에 pkey와 empCnt를 param으로 넘겨준다.
}
return map;
},