<% /*
     $Revision$
     $Id$

    File:        prj_list.inc
    Description: Definieert de serverside functie prj_list() die een lijst van scenario's toont die
                 voldoen aan de gegeven parameters/criteria, binnen de readautorisaties van de user.
    Parameters:  -
    Context:     -

    Note:        -

*/ %>

<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="prj.inc" -->

<%
FCLTHeader.Requires({ plugins:["suggest", "jQuery"],
                      js: ["../PRJ/prj_list.js", "jquery-ui.js"]
                    });

function prj_list (pautfunction, params)
{ // VALIDATE AND PREPARE
  // Als een parameter niet gedefinieerd of null is, dan doet-ie niks
  // anders wordt die verondersteld een zinvolle waarde te hebben
  // NB: -1 is vaak geen zinvolle waarde; null had het dan moeten zijn!

  // Valid and supported parameters are:
  // params.outputmode     : print to 0 = screen, 1 = printer, 2 = excel, etc.
  // showall               : boolean
  // params.scenario       : wildcard string
  // params.loc_key        : key
  // params.bld_key        : key
  // params.verhuisaanvraag: key

  //
  // if a parameters has a value of -1, then it is assumed not to be set and to be ignored.

  // De functie checkAutorisation(autfunction) geeft een Response.End indien er geen autorisatie voor autfunction wordt gevonden
  var authparams = user.checkAutorisation(pautfunction);

  // Voor resulttable de globalen zetten; zou ng anders moeten.
  var outputmode = params.outputmode; // print to 0 = screen, 1 = printer, 2 = excel, etc.
  var print = (outputmode == 1 || outputmode == 5);
  var excel = (outputmode == 2 || outputmode == 6);
  var showall = params.showall;

  var scenario = params.scenario;
  var loc_key = params.loc_key;
  var bld_key = params.bld_key;
  var verhuisaanvraag_key = params.verhuisaanvraag_key;
%>

  <html>
    <head>
<%
      FCLTHeader.Generate({ outputmode: outputmode });
%>
      <script type="text/javascript">
        // Text strings used by prj_list.js
      </script>
    </head>

    <body id="listbody">
<%
      var sql = "SELECT DISTINCT s.prj_scenario_key"
                + ", s.prj_scenario_omschrijving"
                + ", s.prj_scenario_opmerking"
                + ", p.prs_perslid_naam_full"
                + ", s.prj_scenario_aanmaak"
                + ", s.prj_scenario_datum"
                + ", s.prj_scenario_raming"
                + ", s.mld_melding_key"
                + " FROM prj_scenario s"
                + ", prs_v_perslid_fullnames_all p"
                + ", prj_ruimte rx"
                + ", alg_v_plaatsaanduiding a"
                + ", alg_verdieping v"
                + ", alg_gebouw g"
                + " WHERE s.prs_perslid_key = p.prs_perslid_key(+)"
                + " AND rx.prj_scenario_key(+) = s.prj_scenario_key"
                + " AND a.alg_onroerendgoed_keys(+) = rx.alg_verdieping_key"
                + " AND a.alg_onroerendgoed_type(+) = 'V'"   // vermijdt locatie
                + " AND v.alg_verdieping_key(+) = rx.alg_verdieping_key"
                + " AND g.alg_gebouw_key(+) = v.alg_gebouw_key"
                + ((authparams.ALGreadlevel > -1)
                  ? " AND (alg_locatie_key IN (SELECT alg_locatie_key FROM fac_v_my_locations"
                    + " WHERE prs_perslid_key = " + user_key + " AND niveau = " + authparams.ALGreadlevel + ")"
                    + " OR alg_locatie_key IS NULL)"
                  : "");

      if (scenario)
        sql += " AND UPPER (s.prj_scenario_omschrijving) LIKE " + safe.quoted_sql_wild("%" + scenario + "%");

      if (loc_key)
        sql += " AND g.alg_locatie_key = " + loc_key;

      if (bld_key)
        sql += " AND v.alg_gebouw_key = " + bld_key;

      if (verhuisaanvraag_key)
        sql += " AND s.mld_melding_key = " + verhuisaanvraag_key;

      sql += " ORDER BY prj_scenario_key"

      /**********************************
       * Callback functies ResultsetTable
       *********************************/

      function fnrowActionEnabler(oRs)
      {
        // Bepaal of de vereiste rechten voor de acties aanwezig zijn voor DIT record.
        eEdit = true;

        var data = { eEdit: eEdit };
        return data;
      }

      var addurl = "appl/prj/prj_scenario.asp";

      var rst = new ResultsetTable({ keyColumn: "prj_scenario_key",
                                     sql: sql,
                                     ID: "prjtable",
                                     rowActionEnabler: fnrowActionEnabler,
                                     filterParams: params,
                                     outputmode: outputmode,
                                     title: L("lcl_prj_verhuis_scenarios"),
                                     showAll: showall,
                                     buttons: [{ icon: "plus.png", title: L("lcl_add"), action: "FcltMgr.openDetail('" + addurl + "', '" + L("lcl_add") + "')" }]
                                    });

      rst.addColumn(new Column({caption: L("lcl_prj_scenario"), content: "prj_scenario_key"}));
      rst.addColumn(new Column({caption: L("lcl_complain"), content: "mld_melding_key"}));
      rst.addColumn(new Column({caption: L("lcl_prj_scenario"), content: "prj_scenario_omschrijving"}));
      rst.addColumn(new Column({caption: L("lcl_prj_behandelaar"), content: "prs_perslid_naam_full"}));
      rst.addColumn(new Column({caption: L("lcl_prj_geplande_aanvang"), content: "prj_scenario_datum", datatype: "date", nowrap: true}));
      rst.addColumn(new Column({caption: L("lcl_remark"), content: "prj_scenario_opmerking"}));

      /* de mogelijke acties */
      rst.addAction({ action: "prj_edit", caption: L("lcl_prj_details"), isDefault: true });

      var cnt = rst.processResultset();
}
%>