<%@language = "javascript" %>
<% /*
     $Revision$
     $Id$

    File:               SuggestBedrijf.asp
    Description:        Suggereer bedrijven
    Parameters:         k         De eerste paar letters
                        bAll      Haal alle records op (met nog steeds een maximum van 500)
                        filtcode  Beperkt de lijst met getoonde bedrijven
                                  'C': Filter op bedrijven van bestaande contracten
                                  'I': Filter op interne bedrijven
                                  'M': Filter op bedrijven dien uitvoerende zjin in bestaande meldingopdrachten
                                  'U': Filter op uitvoerende bedrijven
    Globals:
    Context:
    Note:
*/ %>

<%
JSON_Result = true;
%>

<!-- #include file="../../Shared/common.inc" -->
<!-- #include file="./suggest.inc" -->
<!-- #include file="./bedrijfFilter.inc" -->

<%
var chars = getQParam("k", "");
var autlevel = getQParamInt("autlevel", -1);
var bAll = getQParamInt("SuggestAll", 0) == 1;
var filtcode = getQParam("filtcode", "");
var extracode = getQParam("extraCode", "");
var dienst = getQParamInt("dienst", -1);

chars = chars.replace(/\*/g,"%");

var params = {dienst: dienst};
var filtClause = getFiltClauseBedrijf(filtcode, params);

var extraInf = getExtraInfbedrijf(extracode);

if (autlevel > -1) // Deze is gemakkelijk
{
  filtClause +=" AND b.prs_bedrijf_key = " + user.afdeling().prs_bedrijf_key();
}

if (filtcode == "Lv")
{
  var fav_lev = "SELECT bs.prs_bedrijf_key, COUNT(DISTINCT bb.bes_bestelling_key)  aantal"
              + "  FROM bes_bestelling bb"
              + "     , bes_bestelling_item bi"
              + "     , bes_srtdeel bs"
              + " WHERE bb.bes_bestelling_key = bi.bes_bestelling_key"
              + "   AND bi.bes_srtdeel_key = bs.bes_srtdeel_key"
              + "   AND bes_bestelling_datum > TRUNC(SYSDATE-365)"
              + "   AND bb.prs_perslid_key = " + user_key
              + " GROUP BY bs.prs_bedrijf_key";
  var sql = "SELECT b.prs_bedrijf_key"
          + "     , prs_bedrijf_naam naam"
          + "     , COALESCE(prs_leverancier_nr, ' ') lev"
          + extraInf
          + "     , b.prs_bedrijf_naam_upper"
          + "     , NVL(bx.aantal, 0) aantal"
          + "  FROM prs_v_aanwezigbedrijf b"
          + "     , (" +fav_lev + ") bx"
          + " WHERE UPPER(b.prs_bedrijf_naam) LIKE " + safe.quoted_sql_wild(chars + "%")
          + "   AND  b.prs_bedrijf_key = bx.prs_bedrijf_key(+)"
          + filtClause
          + " ORDER BY aantal DESC"
          + "        , b.prs_bedrijf_naam_upper";
}
else
{
  // Geen autorisatie bij externe bedrijven (prs_bedrijf)
  // Niet persoon of plaats afhankelijk
  sql = "SELECT b.prs_bedrijf_key"
      + ", prs_bedrijf_naam naam"
      + ", COALESCE(prs_leverancier_nr, ' ') lev"
      + extraInf
      + ", b.prs_bedrijf_naam_upper"
      + " FROM prs_v_aanwezigbedrijf b"
      + " WHERE UPPER(prs_bedrijf_naam) LIKE " + safe.quoted_sql_wild(chars + "%")
      + filtClause
      + " ORDER BY b.prs_bedrijf_naam_upper ";
}

WriteResult(sql, bAll, "naam", "prs_bedrijf_key", "lev", "extra");
%>
