<% /*
     $Revision$
     $Id$

    File:               persoonFilter.inc
    Description:        functies voor persoon suggest velden
    Globals:
    Context:
    Note:
*/ %>


<%

function getFiltClauseContactpersoon(pfiltcode, params)
{
  var lfiltClause = "";
  if (pfiltcode && pfiltcode != "")
  {
    switch(pfiltcode)
    {
      case 'U':    lfiltClause = " AND b.prs_bedrijf_uitvoerende = 1";
                   break;
      default:     __Log("KIES JUISTE FILTERCODE!!!");
                   lfiltClause = " AND 1 = 2";
                   break;
    }
  }
  if (params && params.uitv_key > 0 && params.aanvrager_key > 0)
  { // De volgende opdrachtnemers/vakmannen zijn beschikbaar als contactpersoon:
    // 1) De opdrachtnemers/vakmannen waarbij geen diensten zijn opgegeven.
    // 2) De opdrachtnemers/vakmannen die de benodigde dienst leveren voor de betreffende opdrachtgever/aanvrager.
    //    a) Voor een bepaalde opdrachtgever (prs_bedrijf_voor_key > 0).
    //    b) Voor alle opdrachtgevers (prs_bedrijf_voor_key IS NULL).
    lfiltClause += " AND (NOT EXISTS (SELECT dl.prs_bedrijfdienstlocatie_key"
                 + "                     FROM prs_bedrijfdienstlocatie dl"
                 + "                    WHERE dl.prs_perslid_key = cp.prs_perslid_key)"
                 + "   OR EXISTS (SELECT dl.prs_bedrijfdienstlocatie_key"
                 + "                FROM prs_bedrijfdienstlocatie dl"
                 + "               WHERE dl.prs_perslid_key = cp.prs_perslid_key"
                 + "                 AND dl.prs_dienst_key IN (SELECT prs_dienst_key"
                 + "                                             FROM prs_bedrijfdienstlocatie"
                 + "                                            WHERE prs_bedrijf_key = " + params.uitv_key
                 + (params.loc_key > 0
                   ? "                                            AND (alg_locatie_key = " + params.loc_key + " OR alg_locatie_key IS NULL)"
                   : "")
                 + (params.bld_key > 0
                   ? "                                            AND (alg_gebouw_key = " + params.bld_key + " OR alg_gebouw_key IS NULL)"
                   : "")
                 + "                                          )"
                 + "                 AND (dl.prs_bedrijf_voor_key = (SELECT ab.prs_bedrijf_key"
                 + "                                                  FROM prs_perslid p"
                 + "                                                     , prs_v_afdeling_boom ab"
                 + "                                                 WHERE p.prs_afdeling_key = ab.prs_afdeling_key"
                 + "                                                   AND p.prs_perslid_key = " + params.aanvrager_key + ")"
                 + "                   OR dl.prs_bedrijf_voor_key IS NULL))"
                 + "     )";
  }

  return lfiltClause;
}
%>
