private void CalculateBonusOfQl3(ManagerL3 newManager) { // Hoa hong quan ly m_PersistenceManager.SaveAccountBonus(newManager.ParentId, ConstUtil.BONUS_TYPE_QL3.Amount, ConstUtil.BONUS_TYPE_QL3.Type); var managerLevel = (ManagerL3)m_PersistenceManager.GetManagerLevel <ManagerL3>(newManager.ParentId); if (managerLevel != null && managerLevel.ParentId != -1) { m_PersistenceManager.SaveAccountBonus(managerLevel.ParentId, ConstUtil.BONUS_TYPE_QL3.Amount, ConstUtil.BONUS_TYPE_QL3.Type); } // Can cap if ((newManager.LevelIndex % 3) != 1) { m_PersistenceManager.SaveAccountBonus(newManager.ParentId, ConstUtil.BONUS_TYPE_CCL3.Amount, ConstUtil.BONUS_TYPE_CCL3.Type); if (managerLevel != null && managerLevel.ParentId != -1) { m_PersistenceManager.SaveAccountBonus(managerLevel.ParentId, ConstUtil.BONUS_TYPE_CCL3.Amount, ConstUtil.BONUS_TYPE_CCL3.Type); } } // move to QL4 approved queue if (newManager.LevelIndex % 9 == 0) { if (managerLevel != null && managerLevel.ParentId != -1) { InsertToQlApproveQueue(managerLevel.ParentId, 4); } } }
private ManagerL3 AddToQl3Tree(long calcAccountId) { // Get level and level_index var lastestChild = (ManagerL3)m_PersistenceManager.GetQlLatestChild <ManagerL3>(); // Find Parent account if (lastestChild == null) { var root = new ManagerL3 { AccountId = calcAccountId, ChildIndex = 0, Level = 0, LevelIndex = 0, IsActive = "Y", ParentId = -1, CreatedBy = "JOB", CreatedDate = DateTime.Now }; m_PersistenceManager.Save(root); return(root); } else { var newLevel = lastestChild.Level; var newLevelIndex = lastestChild.LevelIndex + 1; if (Math.Pow(3, lastestChild.Level) == lastestChild.LevelIndex) { newLevel = lastestChild.Level + 1; newLevelIndex = 1; } var parentLevel = newLevel - 1; var parentLevelIndex = (newLevelIndex % 3 > 0) ? ((newLevelIndex / 3) + 1) : (newLevelIndex / 3); var managerParent = (ManagerL3)m_PersistenceManager.FindQlByLocation <ManagerL3>(parentLevel, parentLevelIndex); // Insert into QL3 tree var newNode = new ManagerL3 { AccountId = calcAccountId, ChildIndex = (newLevelIndex % 3) == 0 ? 3 : newLevelIndex % 3, Level = newLevel, LevelIndex = newLevelIndex, IsActive = "Y", ParentId = managerParent.AccountId, CreatedBy = "JOB", CreatedDate = DateTime.Now }; m_PersistenceManager.Save(newNode); return(newNode); } }