Advertisement
salatiel

f_get_permission

Sep 27th, 2012
2,336
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //--------------------------------------------------------------------------------------------
  2. //
  3. // Verifica permissão do usuário e etapa do programa pra acesso de determinada funcionalidade
  4. // Retorna P caso seja permitido executar a funcionalidade e uma mensagem caso contrário
  5. //
  6. //-------------------------------------------------------------------------------------------
  7.  
  8. string lz_perm_perfil, lz_perm_etapa, lz_perm_situacao
  9. string lz_perfil, lz_etapa, lz_situacao
  10.  
  11. if isnull(az_perfil) then
  12.     return "Argumento perfil não foi informado"
  13. else
  14.     if len(az_perfil) <> 5 then
  15.         return "Argumento perfil foi informado com tamnanho diferente"
  16.     end if
  17. end if
  18.  
  19. if isnull(az_etapa) then
  20.     return "Argumento etapa não foi informado"
  21. else
  22.     if len(az_etapa) <> 6 then
  23.         return "Argumento etapa foi informado com tamanho diferente"
  24.     end if
  25. end if
  26.  
  27. if isnull(az_situacao) then
  28.     return "Argumento situacao não foi informado"
  29. else
  30.     if len(az_situacao) <> 3 then
  31.         return "Argumento situacao foi informado com tamnanho diferente"
  32.     end if
  33. end if
  34.  
  35. // Recuperar o perfil, etapa e situação
  36.  
  37. lz_perfil = gz_perfil
  38. lz_etapa = gz_etapa
  39. lz_situacao = gz_situacao
  40.  
  41. // Recupera premissao do perfil
  42.  
  43. choose case lz_perfil
  44.     case "CE"
  45.             lz_perm_perfil = mid(az_perfil,1,1)    
  46.     case "GE"
  47.             lz_perm_perfil = mid(az_perfil,2,1)
  48.     case "FD"
  49.             lz_perm_perfil = mid(az_perfil,3,1)
  50.     case "CO"
  51.             lz_perm_perfil = mid(az_perfil,4,1)
  52.     case "UN"
  53.             lz_perm_perfil = mid(az_perfil,5,1)
  54. end choose
  55.        
  56. if not (lz_perm_perfil = "S" or lz_perm_perfil = "N") then
  57.     return "Permissão inválida para perfil"
  58. end if
  59.  
  60. // Recupera premissao da etapa
  61.  
  62. choose case lz_etapa
  63.     case "PR"
  64.             lz_perm_etapa = mid(az_etapa,1,1)      
  65.     case "IN"
  66.             lz_perm_etapa = mid(az_etapa,2,1)  
  67.     case "S1"
  68.             lz_perm_etapa = mid(az_etapa,3,1)  
  69.     case "S2"
  70.             lz_perm_etapa = mid(az_etapa,4,1)  
  71.     case "AC"
  72.             lz_perm_etapa = mid(az_etapa,5,1)
  73.     case "EN"
  74.             lz_perm_etapa = mid(az_etapa,6,1)
  75. end choose
  76.        
  77. if not (lz_perm_etapa = "S" or lz_perm_etapa = "N") then
  78.     return "Permissão inválida para etapa"
  79. end if
  80.  
  81. // Recupera premissao da situação
  82.  
  83. choose case lz_situacao
  84.     case "AB"
  85.             lz_perm_situacao = mid(az_situacao,1,1)    
  86.     case "FC"
  87.             lz_perm_situacao = mid(az_situacao,2,1)
  88.     case "FD"
  89.             lz_perm_situacao = mid(az_situacao,3,1)
  90.     case else
  91.             lz_perm_situacao = "S"
  92. end choose
  93.    
  94. if not (lz_perm_situacao = "S" or lz_perm_situacao = "N") then
  95.     return "Permissão inválida para situacao"
  96. end if
  97.  
  98.  
  99. choose case lz_situacao // verificar a situação da aplicação
  100.     case "FC" // fechada pelo cecom
  101.     if lz_perfil = "CE" then // verifica se o usuario é do Cecom
  102.         if lz_perm_etapa = "S" then // verifica se etapa pode ser executada
  103.             return "P"                      
  104.          else
  105.             return "Funcionalidade não disponível nessa etapa"
  106.          end if
  107.       else
  108.         return "Funcionalidade não disponível para este usuário"
  109.       end if
  110.    
  111.     case "FG"
  112.     if lz_perfil = "CE" or lz_perfil = "GE" then // verifica se o usuario é do Cecom ou gerente da DRI
  113.         if lz_perm_etapa = "S" then // verifica se etapa pode ser executada
  114.           return "P"
  115.          else
  116.           return "Funcionalidade não disponível nessa etapa"                            
  117.          end if
  118.         else
  119.          return "Funcionalidade não disponível para este usuário"  
  120.       end if        
  121.    
  122.     case else // ta aberta
  123.     if lz_perm_perfil = "S" then // verifica se o perfil pode abrir
  124.         if lz_perm_etapa = "S" then    // verifica se etapa pode ser executada
  125.             return "P"            
  126.          else
  127.             return "Funcionalidade não disponível nessa etapa"
  128.             end if
  129.       else
  130.         return "Funcionalidade não disponível para este usuário"
  131.       end if
  132. end choose
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement