<%
'
'    Filename: fac_authgroepgrid.asp
'    Generated with CodeCharge 2.0.5
'    ASP 2.0 & Templates.ccp build 11/30/2001
'

'-------------------------------
' 
' fac_authgroepgrid CustomIncludes Event begin
%>
<!-- #INCLUDE FILE="Common.asp" -->
<%
' fac_authgroepgrid CustomIncludes Event end


'===============================
' Save Page and File Name available into variables
'-------------------------------
sFileName = "fac_authgroepgrid.asp"
sTemplateFileName = "fac_authgroepgrid.html"
'===============================


'===============================
' fac_authgroepgrid CustomSecurity Event begin
checkAutorisation("WEB_FACMSU")
' fac_authgroepgrid CustomSecurity Event end
'===============================

'===============================
' fac_authgroepgrid Open Event begin
' fac_authgroepgrid Open Event end
'===============================

'===============================
' fac_authgroepgrid OpenAnyPage Event begin
' fac_authgroepgrid OpenAnyPage Event end
'===============================

'===============================
'Save the name of the form and type of action into the variables
'-------------------------------
sAction = GetParam("FormAction")
sForm = GetParam("FormName")
'===============================

' fac_authgroepgrid Show begin

'===============================
' Display page
'-------------------------------
' Load HTML template for this page
'-------------------------------
LoadTemplate sAppPath & sTemplateFileName, "main"
'-------------------------------
' Load HTML template of Header and Footer
'-------------------------------
'-------------------------------
SetVar "FileName", sFileName


'-------------------------------
' Step through each form
'-------------------------------
FunctieSearch_Show
FunctieGrid_Show
'-------------------------------
' Process page templates
'-------------------------------
Parse "main", False
'-------------------------------
' Output the page to the browser
'-------------------------------
Response.write PrintVar("main")

' fac_authgroepgrid Show end

'-------------------------------
' Destroy all object variables
'-------------------------------

' fac_authgroepgrid Close Event begin
' fac_authgroepgrid Close Event end

cn.Close
Set cn = Nothing
UnloadTemplate
'===============================

'===============================
' Display Grid Form
'-------------------------------
Sub FunctieGrid_Show()
'-------------------------------
' Initialize variables  
'-------------------------------
  Dim rs
  Dim sWhere : sWhere = ""
  Dim sOrder : sOrder = ""
  Dim sSQL : sSQL = ""
  Dim sFormTitle: sFormTitle = "Functies"
  Dim HasParam : HasParam = false
  Dim bReq : bReq = true
  Dim iRecordsPerPage : iRecordsPerPage = 50
  Dim iCounter : iCounter = 0
  Dim iPage : iPage = 0
  Dim bEof : bEof = False
  Dim iTmpI : iTmpI = 0
  Dim iTmpJ : iTmpJ = 0
  Dim sCountSQL : sCountSQL = ""

  SetVar "TransitParams", "FAC_FUNCTIE_MODULE=" & ToURL(GetParam("FAC_FUNCTIE_MODULE")) & "&FAC_GROEP_KEY=" & ToURL(GetParam("FAC_GROEP_KEY")) & "&sFAC_GROEP_UPPER=" & ToURL(GetParam("sFAC_GROEP_UPPER")) & "&"
  SetVar "FormParams", "FAC_FUNCTIE_MODULE=" & ToURL(GetParam("FAC_FUNCTIE_MODULE")) & "&FAC_GROEP_KEY=" & ToURL(GetParam("FAC_GROEP_KEY")) & "&sFAC_GROEP_UPPER=" & ToURL(GetParam("sFAC_GROEP_UPPER")) & "&"

'-------------------------------
' Build WHERE statement
'-------------------------------
  pFAC_FUNCTIE_MODULE = GetParam("FAC_FUNCTIE_MODULE")
  if not isEmpty(pFAC_FUNCTIE_MODULE) then
    HasParam = true
    sWhere = sWhere & "FAC_FUNCTIE_MODULE like '%" & replace(pFAC_FUNCTIE_MODULE, "'", "''") & "%'"
  end if


  if HasParam then
    sWhere = " AND (" & sWhere & ")"
  end if
  
'-------------------------------
' Build ORDER BY statement
'-------------------------------

'-------------------------------
' Build base SQL statement
'-------------------------------
  sSQL = "SELECT F.FAC_FUNCTIE_CODE as FAC_FUNCTIE_CODE,     F.FAC_FUNCTIE_DISCIPLINE as FAC_FUNCTIE_DISCIPLINE,     F.FAC_FUNCTIE_KEY as FAC_FUNCTIE_KEY,     F.FAC_FUNCTIE_MIN_LEVEL as FAC_FUNCTIE_MIN_LEVEL,     F.FAC_FUNCTIE_MODULE as FAC_FUNCTIE_MODULE,     F.FAC_FUNCTIE_OMSCHRIJVING as FAC_FUNCTIE_OMSCHRIJVING FROM FAC_FUNCTIE F, fac_module M WHERE NOT F.FAC_FUNCTIE_MODULE LIKE 'LAN'   AND M.fac_module_extern = 1   AND M.fac_module_name = f.fac_functie_module"
  sOrder = " ORDER BY F.FAC_FUNCTIE_OMSCHRIJVING asc"
'-------------------------------

'-------------------------------
' FunctieGrid Open Event begin
' We voegen de EXISTS hier aan dw sql toe omdat het invoegen van de session 
' anders de fout"missing right parenthesis" geeft.
sSQL = sSQL & " AND EXISTS"&_
              " (SELECT *"&_
              "  FROM fac_v_webgebruiker g"&_
              "     , fac_functie ff"&_
              " WHERE ff.fac_functie_key = g.fac_functie_key"&_
              "   AND prs_perslid_key = " & Session("User_key")&_
              "   AND (   ff.fac_functie_code = 'WEB_PRSSYS'"&_
              "        OR ff.fac_functie_code = 'WEB_' || m.fac_module_name || 'MSU'"&_
              "       ))"

if getParam("FAC_GROEP_KEY") <> "" then
  fldFAC_GROEP_KEY = getParam("FAC_GROEP_KEY")
end if

sqlGroepOmschr = "select fac_groep_omschrijving from fac_groep where fac_groep_key = " & ToSQL(fldFAC_GROEP_KEY, "Number")
openrs rsGroep,sqlGroepOmschr
if not rsGroep.EOF then
  sFormTitle = "Rechten van groep "& ToHTML(getValue(rsGroep,"fac_groep_omschrijving"))
end if
rsGroep.Close

transit = "?sFAC_GROEP_UPPER=" & ToURL(GetParam("sFAC_GROEP_UPPER"))
setvar "Footer","<font class=DataFont><a href=fac_groepgrid.asp" & transit & ">"&FCLTLCL("Terug naar overzicht")&"</a></font>"
' FunctieGrid Open Event end
'-------------------------------

'-------------------------------
' Assemble full SQL statement
'-------------------------------
  sSQL = sSQL & sWhere & sOrder
  if sCountSQL = "" then
    iTmpI = instr(lcase(sSQL), "select")
    iTmpJ = instr(lcase(sSQL), "from") - 1
    sCountSQL = replace(sSQL, mid(sSQL, iTmpI + 6, iTmpJ - 6), " count(*) ")
    iTmpI = instr(lcase(sCountSQl), "order by")
    if iTmpI > 1 then sCountSQL = left(sCountSQL, iTmpI - 1)
  end if
'-------------------------------

SetVar "FormTitle", sFormTitle

'-------------------------------
' Process if form has all required parameter
'-------------------------------
  if not bReq then
    SetVar "DListFunctieGrid", ""
    Parse "FunctieGridNoRecords", False
    SetVar "FunctieGridNavigator", ""
    Parse "FormFunctieGrid", False
    exit sub
  end if
'-------------------------------

'-------------------------------
' Open the recordset
'-------------------------------
  openrs rs, sSQL
'-------------------------------

'-------------------------------
' Process empty recordset
'-------------------------------
  if rs.eof then
    set rs = nothing
    SetVar "DListFunctieGrid", ""
    Parse "FunctieGridNoRecords", False
    SetVar "FunctieGridNavigator", ""
    Parse "FormFunctieGrid", False
    exit sub
  end if
'-------------------------------

'-------------------------------
' Initialize page counter and records per page
'-------------------------------
  iRecordsPerPage = 50
  iCounter = 0
'-------------------------------

'-------------------------------
' Process page scroller
'-------------------------------
  iPage = GetParam("FormFunctieGrid_Page")
  openrs rsCount, sCountSQL
  dResult = CLng(rsCount.fields(0).value) / iRecordsPerPage
  iPageCount = int(dResult)
  if iPageCount < dResult then iPageCount = iPageCount + 1
  SetVar "FunctieGridPageCount", iPageCount
  set rsCount = nothing
  if IsEmpty(iPage) then
    iPage = 1
  else
    if iPage = "last" then iPage = iPageCount
  end if
  while not rs.eof and iCounter < (iPage-1)*iRecordsPerPage
    rs.movenext
    iCounter = iCounter + 1
  wend
  iCounter = 0
'-------------------------------

'-------------------------------
' Display grid based on recordset
'-------------------------------
  while not rs.EOF  and iCounter < iRecordsPerPage
'-------------------------------
' Create field variables based on database fields
'-------------------------------
    fldFAC_FUNCTIE_CODE = GetValue(rs, "FAC_FUNCTIE_CODE")
    fldFAC_FUNCTIE_DISCIPLINE = GetValue(rs, "FAC_FUNCTIE_DISCIPLINE")
    fldFAC_FUNCTIE_KEY = GetValue(rs, "FAC_FUNCTIE_KEY")
    fldFAC_FUNCTIE_MIN_LEVEL = GetValue(rs, "FAC_FUNCTIE_MIN_LEVEL")
    fldFAC_FUNCTIE_MODULE = GetValue(rs, "FAC_FUNCTIE_MODULE")
    fldFAC_FUNCTIE_OMSCHRIJVING_URLLink = "fac_authgroeprecord.asp"
    fldFAC_FUNCTIE_OMSCHRIJVING_FAC_FUNCTIE_KEY = GetValue(rs, "FAC_FUNCTIE_KEY")
    fldFAC_FUNCTIE_OMSCHRIJVING_FAC_GROEPRECHTEN_KEY = GetValue(rs, "FAC_FUNCTIE_KEY")
    fldFAC_FUNCTIE_OMSCHRIJVING = GetValue(rs, "FAC_FUNCTIE_OMSCHRIJVING")
'-------------------------------
' FunctieGrid Show begin
'-------------------------------

'-------------------------------
' FunctieGrid Show Event begin
if ((fldFAC_FUNCTIE_DISCIPLINE = "") or (fldFAC_FUNCTIE_DISCIPLINE="0")) then
  'Autorisatie is op functie niveau. Kijk of er al autorisaties aangegeven zijn.
  sqlGroepRechten = "select * from fac_groeprechten where fac_groep_key = " & ToSQL(fldFAC_GROEP_KEY, "Number")&" and fac_functie_key = " & ToSQL(fldFAC_FUNCTIE_KEY, "Number")
  openrs rsGroepRechten,sqlGroepRechten
  if not rsGroepRechten.EOF then
    'Autorisaties bestaan
    prs_read  = decode_org_level(getValue(rsGroepRechten,"fac_gebruiker_prs_level_read"))
    prs_write = decode_org_level(getValue(rsGroepRechten,"fac_gebruiker_prs_level_write"))
    alg_read  = decode_pos_level(getValue(rsGroepRechten,"fac_gebruiker_alg_level_read"))
    alg_write = decode_pos_level(getValue(rsGroepRechten,"fac_gebruiker_alg_level_write"))
    fldFAC_GEBRUIKER_PRS_LEVEL_READ = prs_read
    fldFAC_GEBRUIKER_PRS_LEVEL_WRITE = prs_write
    fldFAC_GEBRUIKER_ALG_LEVEL_READ = alg_read
    fldFAC_GEBRUIKER_ALG_LEVEL_WRITE = alg_write
    fldFAC_FUNCTIE_OMSCHRIJVING_FAC_GROEPRECHTEN_KEY = getValue(rsGroepRechten,"fac_groeprechten_key")
  else
    fldFAC_GEBRUIKER_PRS_LEVEL_READ = FCLTLCL("Geen")
    fldFAC_GEBRUIKER_PRS_LEVEL_WRITE = FCLTLCL("Geen")
    fldFAC_GEBRUIKER_ALG_LEVEL_READ = FCLTLCL("Geen")
    fldFAC_GEBRUIKER_ALG_LEVEL_WRITE = FCLTLCL("Geen")
    fldFAC_FUNCTIE_OMSCHRIJVING_FAC_GROEPRECHTEN_KEY = ""
  end if
  rsGroepRechten.Close
else
  'autorisatie is op discipline niveau
  s_filter = ""
  if getParam("FAC_FUNCTIE_MODULE") <> "" then
    s_filter = "&fac_functie_module_filter="& ToURL(getParam("FAC_FUNCTIE_MODULE"))
  end if
  details = "<a href=fac_authgroepdisciplinegrid.asp?"&_
     "fac_functie_key=" & ToSQL(fldFAC_FUNCTIE_KEY, "Number") &_
     "&fac_groep_key=" & ToSQL(fldFAC_GROEP_KEY, "Number") &_
     "&fac_functie_module="& ToURL(fldFAC_FUNCTIE_MODULE)&s_filter &_
     "&sFAC_GROEP_UPPER="& ToURL(getParam("sFAC_GROEP_UPPER")) &">"
  fldFAC_FUNCTIE_OMSCHRIJVING = "<font class=""DataFont"">"&fldFAC_FUNCTIE_OMSCHRIJVING&"</font>"
  fldFAC_FUNCTIE_OMSCHRIJVING = "</a>"&details&fldFAC_FUNCTIE_OMSCHRIJVING&"</a>"
  fldFAC_GEBRUIKER_PRS_LEVEL_READ = "..."
  fldFAC_GEBRUIKER_PRS_LEVEL_WRITE = "..."
  fldFAC_GEBRUIKER_ALG_LEVEL_READ = "..."
  fldFAC_GEBRUIKER_ALG_LEVEL_WRITE = "..."
end if
' FunctieGrid Show Event end
'-------------------------------

'-------------------------------
' Replace Template fields with database values
'-------------------------------
    
      SetVar "FAC_FUNCTIE_KEY", fldFAC_FUNCTIE_KEY
      SetVar "FAC_FUNCTIE_OMSCHRIJVING", fldFAC_FUNCTIE_OMSCHRIJVING
      SetVar "FAC_FUNCTIE_OMSCHRIJVING_URLLink", fldFAC_FUNCTIE_OMSCHRIJVING_URLLink
      SetVar "PrmFAC_FUNCTIE_OMSCHRIJVING_FAC_FUNCTIE_KEY", ToURL(fldFAC_FUNCTIE_OMSCHRIJVING_FAC_FUNCTIE_KEY)
      SetVar "PrmFAC_FUNCTIE_OMSCHRIJVING_FAC_GROEPRECHTEN_KEY", ToURL(fldFAC_FUNCTIE_OMSCHRIJVING_FAC_GROEPRECHTEN_KEY)
      SetVar "FAC_FUNCTIE_CODE", fldFAC_FUNCTIE_CODE
      SetVar "FAC_FUNCTIE_MIN_LEVEL", ToHTML(fldFAC_FUNCTIE_MIN_LEVEL)
      SetVar "FAC_GEBRUIKER_PRS_LEVEL_READ", fldFAC_GEBRUIKER_PRS_LEVEL_READ
      SetVar "FAC_GEBRUIKER_PRS_LEVEL_WRITE", fldFAC_GEBRUIKER_PRS_LEVEL_WRITE
      SetVar "FAC_GEBRUIKER_ALG_LEVEL_READ", fldFAC_GEBRUIKER_ALG_LEVEL_READ
      SetVar "FAC_GEBRUIKER_ALG_LEVEL_WRITE", fldFAC_GEBRUIKER_ALG_LEVEL_WRITE
      SetVar "FAC_FUNCTIE_DISCIPLINE", ToHTML(fldFAC_FUNCTIE_DISCIPLINE)
      SetVar "FAC_FUNCTIE_MODULE", ToHTML(fldFAC_FUNCTIE_MODULE)
    Parse "DListFunctieGrid", True

'-------------------------------
' FunctieGrid Show end
'-------------------------------

'-------------------------------
' Move to the next record and increase record counter
'-------------------------------
    rs.MoveNext
    iCounter = iCounter + 1
  wend
'-------------------------------


'-------------------------------
' FunctieGrid Navigation begin
'-------------------------------
  bEof = rs.eof
  if rs.eof and iPage = 1 then
	SetVar "FunctieGridNavigator", ""
  else
    iCounter = 1
    iHasPages = iPage
    iDisplayPages = 0
    iNumberOfPages = 10
    iHasPages = iPageCount
    if (iHasPages - iPage) < int(iNumberOfPages/2) then
      iStartPage = iHasPages - iNumberOfPages
    else
      iStartPage = iPage - iNumberOfPages + int(iNumberOfPages/2)
    end if
    if iStartPage < 0 then iStartPage = 0
    for iPageCount = iStartPage + 1 to iPage - 1
      SetVar "NavigatorPageNumber", iPageCount
      SetVar "NavigatorPageNumberView", iPageCount
      Parse "FunctieGridNavigatorPages", true
      iDisplayPages = iDisplayPages + 1
    next
    SetVar "NavigatorPageSwitch", "_"
    SetVar "NavigatorPageNumber", iPage
    SetVar "NavigatorPageNumberView", iPage
    Parse "FunctieGridNavigatorPages", true
    iDisplayPages = iDisplayPages + 1
    SetVar "NavigatorPageSwitch", ""
    iPageCount = iPage + 1
    while iDisplayPages < iNumberOfPages and iStartPage + iDisplayPages < iHasPages
      SetVar "NavigatorPageNumber", iPageCount
      SetVar "NavigatorPageNumberView", iPageCount
      Parse "FunctieGridNavigatorPages", true
      iDisplayPages = iDisplayPages + 1
      iPageCount = iPageCount + 1
    wend
    if bEof then
      SetVar "FunctieGridNavigatorLastPage", "_"
    else
      SetVar "NextPage", (iPage + 1)
    end if
    if iPage = 1 then
      SetVar "FunctieGridNavigatorFirstPage", "_"
    else
      SetVar "PrevPage", (iPage - 1)
    end if
    SetVar "FunctieGridCurrentPage", iPage
    Parse "FunctieGridNavigator", False
  end if
'-------------------------------
' FunctieGrid Navigation end
'-------------------------------

'-------------------------------
' Finish form processing
'-------------------------------
  set rs = nothing
  SetVar "FunctieGridNoRecords", ""
  Parse "FormFunctieGrid", False

'-------------------------------
' FunctieGrid Close Event begin
' FunctieGrid Close Event end
'-------------------------------
End Sub
'===============================


'===============================
' Display Search Form
'-------------------------------
Sub FunctieSearch_Show()
  Dim sFormTitle: sFormTitle = ""
  Dim sActionFileName: sActionFileName = "fac_authgroepgrid.asp"
  Dim sFAC_FUNCTIE_MODULEDisplayValue: sFAC_FUNCTIE_MODULEDisplayValue = ""

'-------------------------------
' FunctieSearch Open Event begin
' FunctieSearch Open Event end
'-------------------------------
      SetVar "FormTitle", sFormTitle
      SetVar "ActionPage", sActionFileName
      SetVar "FAC_GROEP_KEY", ToHTML(GetParam("FAC_GROEP_KEY"))
      SetVar "sFAC_GROEP_UPPER", ToHTML(GetParam("sFAC_GROEP_UPPER"))

'-------------------------------
' Set variables with search parameters
'-------------------------------
      fldFAC_FUNCTIE_MODULE = GetParam("FAC_FUNCTIE_MODULE")

'-------------------------------
' FunctieSearch Show begin
'-------------------------------


'-------------------------------
' FunctieSearch Show Event begin
' FunctieSearch Show Event end
'-------------------------------
      SetVar "FunctieSearchLBFAC_FUNCTIE_MODULE", ""
      SetVar "Selected", ""
      SetVar "ID", ""
      SetVar "Value", sFAC_FUNCTIE_MODULEDisplayValue
      Parse "FunctieSearchLBFAC_FUNCTIE_MODULE", True
      openrs rsFAC_FUNCTIE_MODULE, "SELECT   fac_module_name, fac_module_name || ' - ' || fac_module_remark     FROM fac_module    WHERE fac_module_extern = 1      AND EXISTS (             SELECT *               FROM fac_v_webgebruiker g, fac_functie f              WHERE f.fac_functie_key = g.fac_functie_key                AND prs_perslid_key = "&Session("User_key")&"                AND (   fac_functie_code = 'WEB_PRSSYS'                     OR fac_functie_code = 'WEB_' || fac_module_name || 'MSU'                    )) ORDER BY fac_module_name ASC"
      while not rsFAC_FUNCTIE_MODULE.EOF
        SetVar "ID", GetValue(rsFAC_FUNCTIE_MODULE, 0) : SetVar "Value", GetValue(rsFAC_FUNCTIE_MODULE, 1)
        if cstr(GetValue(rsFAC_FUNCTIE_MODULE, 0)) = cstr(fldFAC_FUNCTIE_MODULE) then SetVar "Selected", "SELECTED" else SetVar "Selected", ""
        Parse "FunctieSearchLBFAC_FUNCTIE_MODULE", True
        rsFAC_FUNCTIE_MODULE.MoveNext
      wend
      set rsFAC_FUNCTIE_MODULE = nothing
    

'-------------------------------
' FunctieSearch Show end
'-------------------------------

'-------------------------------
' FunctieSearch Close Event begin
' FunctieSearch Close Event end
'-------------------------------
      Parse "FormFunctieSearch", False
End Sub
'===============================

%>