<% /*
     $Revision$
     $Id$

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


<%

function getFiltClauseKostensoort(pfiltcode, params)
{
  params = params || {};
  var lfiltClause = "";
  var kostensoort_key = params.kostensoortKey || -1;
  var vervaldatum = "SYSDATE";
  if (pfiltcode && pfiltcode != "") {
    var sql = "";
    if (params.ref_key > 0) {
      switch (pfiltcode) {
        case "FIN":
          sql = "SELECT fin_factuur_datum  vervaldatum"
              + "     , prs_kostensoort_key"
              + "  FROM fin_factuur"
              + " WHERE fin_factuur_key = " + params.ref_key;
          break;
        case "OPD":
          sql = "SELECT mld_opdr_datumbegin  vervaldatum"
              + "     , prs_kostensoort_key"
              + "  FROM mld_opdr"
              + " WHERE mld_opdr_key = " + params.ref_key;
          break;
        case "CNT":
          sql = "SELECT cnt_contract_looptijd_tot  vervaldatum"
              + "     , prs_kostensoort_key"
              + "  FROM cnt_contract"
              + " WHERE cnt_contract_key = " + params.ref_key;
          break;
      }
      var oRs = Oracle.Execute(sql);
      kostensoort_key = oRs("prs_kostensoort_key").Value || -1;
      vervaldatum = (new Date(oRs("vervaldatum").Value)).toSQL();
      oRs.Close();
    }
  }

  if (pfiltcode != "ALL") {
    if (params.ref_key == 0) { // Dan mogen vervallen kostensoorten (blijkbaar) wel
      lfiltClause = " AND prs_kostensoort_verwijder IS NULL";
    } else {
      lfiltClause = " AND (       (   prs_kostensoort_eind >= " + vervaldatum
                  + "              OR prs_kostensoort_eind IS NULL)"
                  + "         AND prs_kostensoort_verwijder IS NULL"
                  + (kostensoort_key > -1 ? "      OR prs_kostensoort_key = " + kostensoort_key : "")
                  + "     )";
    }
  }
  return lfiltClause;
}

function getExtraInfKostensoort(pextracode)
{
  var lExtraInf = ", 'Extra' extra";
  if (pextracode && pextracode != "")
  {
    switch(pextracode)
    {
      case 'B': lExtraInf = ", ks.prs_kostensoort_btw extra"; // Inclusief/Exclusief btw
                break;
    }
  }
  return lExtraInf;
}
%>
