Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //--------------------------------------------------------------------------------------------
- //
- // Verifica permissão do usuário e etapa do programa pra acesso de determinada funcionalidade
- // Retorna P caso seja permitido executar a funcionalidade e uma mensagem caso contrário
- //
- //-------------------------------------------------------------------------------------------
- string lz_perm_perfil, lz_perm_etapa, lz_perm_situacao
- string lz_perfil, lz_etapa, lz_situacao
- if isnull(az_perfil) then
- return "Argumento perfil não foi informado"
- else
- if len(az_perfil) <> 5 then
- return "Argumento perfil foi informado com tamnanho diferente"
- end if
- end if
- if isnull(az_etapa) then
- return "Argumento etapa não foi informado"
- else
- if len(az_etapa) <> 6 then
- return "Argumento etapa foi informado com tamanho diferente"
- end if
- end if
- if isnull(az_situacao) then
- return "Argumento situacao não foi informado"
- else
- if len(az_situacao) <> 3 then
- return "Argumento situacao foi informado com tamnanho diferente"
- end if
- end if
- // Recuperar o perfil, etapa e situação
- lz_perfil = gz_perfil
- lz_etapa = gz_etapa
- lz_situacao = gz_situacao
- // Recupera premissao do perfil
- choose case lz_perfil
- case "CE"
- lz_perm_perfil = mid(az_perfil,1,1)
- case "GE"
- lz_perm_perfil = mid(az_perfil,2,1)
- case "FD"
- lz_perm_perfil = mid(az_perfil,3,1)
- case "CO"
- lz_perm_perfil = mid(az_perfil,4,1)
- case "UN"
- lz_perm_perfil = mid(az_perfil,5,1)
- end choose
- if not (lz_perm_perfil = "S" or lz_perm_perfil = "N") then
- return "Permissão inválida para perfil"
- end if
- // Recupera premissao da etapa
- choose case lz_etapa
- case "PR"
- lz_perm_etapa = mid(az_etapa,1,1)
- case "IN"
- lz_perm_etapa = mid(az_etapa,2,1)
- case "S1"
- lz_perm_etapa = mid(az_etapa,3,1)
- case "S2"
- lz_perm_etapa = mid(az_etapa,4,1)
- case "AC"
- lz_perm_etapa = mid(az_etapa,5,1)
- case "EN"
- lz_perm_etapa = mid(az_etapa,6,1)
- end choose
- if not (lz_perm_etapa = "S" or lz_perm_etapa = "N") then
- return "Permissão inválida para etapa"
- end if
- // Recupera premissao da situação
- choose case lz_situacao
- case "AB"
- lz_perm_situacao = mid(az_situacao,1,1)
- case "FC"
- lz_perm_situacao = mid(az_situacao,2,1)
- case "FD"
- lz_perm_situacao = mid(az_situacao,3,1)
- case else
- lz_perm_situacao = "S"
- end choose
- if not (lz_perm_situacao = "S" or lz_perm_situacao = "N") then
- return "Permissão inválida para situacao"
- end if
- choose case lz_situacao // verificar a situação da aplicação
- case "FC" // fechada pelo cecom
- if lz_perfil = "CE" then // verifica se o usuario é do Cecom
- if lz_perm_etapa = "S" then // verifica se etapa pode ser executada
- return "P"
- else
- return "Funcionalidade não disponível nessa etapa"
- end if
- else
- return "Funcionalidade não disponível para este usuário"
- end if
- case "FG"
- if lz_perfil = "CE" or lz_perfil = "GE" then // verifica se o usuario é do Cecom ou gerente da DRI
- if lz_perm_etapa = "S" then // verifica se etapa pode ser executada
- return "P"
- else
- return "Funcionalidade não disponível nessa etapa"
- end if
- else
- return "Funcionalidade não disponível para este usuário"
- end if
- case else // ta aberta
- if lz_perm_perfil = "S" then // verifica se o perfil pode abrir
- if lz_perm_etapa = "S" then // verifica se etapa pode ser executada
- return "P"
- else
- return "Funcionalidade não disponível nessa etapa"
- end if
- else
- return "Funcionalidade não disponível para este usuário"
- end if
- end choose
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement