// Hàm này dựa vào parent id để lấy được vị trí lớn nhất mà chức năng con đang có
 private decimal get_max_vi_tri(decimal ip_dc_parent_chuc_nang_id)
 {
     US_HT_CHUC_NANG v_us_ht_chuc_nang = new US_HT_CHUC_NANG();
     DS_HT_CHUC_NANG v_ds_ht_chuc_nang = new DS_HT_CHUC_NANG();
     v_us_ht_chuc_nang.load_chuc_nang_max_vi_tri_by_parent_id(ip_dc_parent_chuc_nang_id, v_ds_ht_chuc_nang);
     if (v_ds_ht_chuc_nang.HT_CHUC_NANG.Rows.Count == 0) return 0;
     return CIPConvert.ToDecimal(v_ds_ht_chuc_nang.HT_CHUC_NANG.Rows[0][HT_CHUC_NANG.VI_TRI]);
 }