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

     File:           bes_search_list.asp
     Description:    Vangt de parameters van bes_search op en verwerkt die in een aanroep van bes_list
     Parameters:     urole
                     Alle zoek-criteria van bes_search.asp
     Context:        Vanuit bes_search.asp
     Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="bes_list.inc" -->

<%
var urole = getQParamSafe("urole", "");   // Indien niet meegegeven, veronderstel dan frontend gebruik
var fronto = (urole == "fo");
var backo = (urole == "bo");
var minfo = (urole == "mi");
var frontend = (urole == "fe" || (!fronto && !backo && !minfo));

// FORM parameters: de waarde indien aanwezig, anders null
// Vaak is een lege selectie ook een -1, dus dan is-ie wel aanwezig, maar hoeft niet
// als filter te worden toegepast. Dan is null dus gelijk aan -1, qua betekenis,
// Vandaar dat een default van -1 ipv null ook mag
// In eerste instantie identificeren we elk veld gewoon 1-op-1.
var outputmode = getQParamInt("outputmode", 0); //  0 = screen, 1 = print, 2 = excel etc
var showall = getQParamInt("showall", 0) == 1;

var params = { urole : urole,
               outputmode: outputmode,
               showall: showall
             };

var rfo_key = getQParamInt("rfonum", null, true); // Aanvraag nummer (rfo key, request for order) of opdracht nummer (groupby is 1 0f 6)

if (rfo_key > 0)
{
  params.rfo_key = (rfo_key != -1 ? rfo_key : null);
  var groupbes = getQParamInt("groupby", -1); // Groepering 1
  params.groupbes      = (groupbes != -1? groupbes : null);
}
else
{ // Alleen als rfo_key (bestelaanvraag key) niet opgegeven is, zijn de resterende parameters van belang!
  // Period from start-time until end-time
  // Indien geen datums meegegeven, dan huidige datum voor beide kalenders nemen anders duurt de query te lang.
  var datefrom = getQParamDate("date_from", null);
  var dateto = getQParamDate("date_to", null);

  // Voor velden die de user in kan typen valideren we zodanig dat we er tegen kunnen
  var catalogus_key = getQParamInt("disc", -1); // catalogus
  var besgroep_key = getQParamInt("srtgroep", -1); // groep
  var item_key = getQParamInt("srtdeel", -1); // item
  var supplier_key = getQParamInt("sSuppl_key", -1); // leverancier
  var groupbes = getQParamInt("groupby", -1); // Groepering 1
  var groupbes2 = getQParamInt("groupby2", -1); // Groepering 2
  var requestor_key = getQParamInt("sName_key", -1);
  var personfor_key = getQParamInt("personFor", -1);
  var company_key = getQParamInt("sComp_key", -1);
  var dep_key = getQParamInt("sDept_key", -1);
  var kp = getQParam("kp", "");
  var item = getQParam("item", "");

  params.datefrom      = datefrom;
  params.dateto        = dateto;
  params.catalogus_key = (catalogus_key != -1? catalogus_key : null);
  params.besgroep_key  = (besgroep_key != -1? besgroep_key : null);
  params.item_key      = (item_key != -1? item_key : null);
  params.supplier_key  = (supplier_key != -1? supplier_key : null);
  params.groupbes      = (groupbes != -1? groupbes : null);
  params.groupbes2     = (groupbes2 != -1? groupbes2 : null);
  params.requestor_key = (requestor_key != -1? requestor_key : null);
  params.personfor_key = (personfor_key != -1? personfor_key : null);
  params.company_key   = (company_key != -1? company_key : null);
  params.dep_key       = (dep_key != -1? dep_key : null);
  params.kp            = (kp != ""? kp : null);
  params.item          = (item != ""? item : null);

  // Status checkboxen niet aanwezig bij minfo
  if (!minfo)
  {
    var st_rfoNew =  (getQParamInt("rfoNew", 0) == 1);
    var st_rfoFiat =  (getQParamInt("rfoFiat", 0) == 1);
    var st_rfoOpen = (getQParamInt("rfoOpen", 0) == 1);
    var st_rfoDelivered = (getQParamInt("rfoDelivered", 0) == 1);
    var st_rfoClosed =  (getQParamInt("rfoClosed", 0) == 1);

    // ** de velden van de form zijn nu allemaal bekend **
    // ** nu volgt de verwerking

    // Statusfilters:
    // FE: Nieuw (2), open (3, 4, 5), geleverd (1, 6, 7, 8, 9)
    // FO: Nieuw (2), open (3, 4, 5), geleverd (6, 9), archief (1, 7, 8)
    // BO: Nieuw (2, 3, 4), open (5), geleverd (6, 9), archief (1, 7, 8)
    // Merk op: de ids kunnen afhankelijk van de urole andere betekenis hebben, dus.
    var besstatus1 = (frontend && st_rfoDelivered) || (!frontend && st_rfoClosed);
    var besstatus2 = st_rfoNew;
    var besstatus3 = st_rfoFiat;
    var besstatus4 = (frontend && st_rfoOpen) || (fronto && st_rfoOpen) || (backo && st_rfoNew);
    var besstatus5 = st_rfoOpen;
    var besstatus6 = st_rfoDelivered;
    var besstatus7 = besstatus1;
    var besstatus8 = besstatus1;
    var besstatus9 = st_rfoDelivered;

    var ordstatus1 = null;
    var ordstatus2 = null;
    var ordstatus3 = null;
    var ordstatus4 = null;
    var ordstatus5 = null;
    var ordstatus6 = null;
    var ordstatus7 = null;
  }
  else // minfo
  {
    var rfo_status_arr = getQParamIntArray("rfostatus", [1,2,3,4,5,6,7,8]); // Aanvraag status
    var ord_status_arr = getQParamIntArray("orderstatus", [-1]); // Opdracht status

    var besstatus1 = false;
    var besstatus2 = false;
    var besstatus3 = false;
    var besstatus4 = false;
    var besstatus5 = false;
    var besstatus6 = false;
    var besstatus7 = false;
    var besstatus8 = false;
    var besstatus9 = false;
    for (var mst = 0; mst < rfo_status_arr.length; mst++)
    {
      switch(rfo_status_arr[mst])
      {
        case 1: besstatus1 = true;
                break;
        case 2: besstatus2 = true;
                break;
        case 3: besstatus3 = true;
                break;
        case 4: besstatus4 = true;
                break;
        case 5: besstatus5 = true;
                break;
        case 6: besstatus6 = true;
                break;
        case 7: besstatus7 = true;
                break;
        case 8: besstatus8 = true;
                break;
        case 9: besstatus9 = true;
                break;
      }
    }

    var ordstatus1 = false;
    var ordstatus2 = false;
    var ordstatus3 = false;
    var ordstatus4 = false;
    var ordstatus5 = false;
    var ordstatus6 = false;
    var ordstatus7 = false;
    for (var ost = 0; ost < ord_status_arr.length; ost++)
    {
      switch(ord_status_arr[ost])
      {
        case 1: ordstatus1 = true;
                break;
        case 2: ordstatus2 = true;
                break;
        case 3: ordstatus3 = true;
                break;
        case 4: ordstatus4 = true;
                break;
        case 5: ordstatus5 = true;
                break;
        case 6: ordstatus6 = true;
                break;
        case 7: ordstatus7 = true;
                break;
      }
    }
  }

  params.besstafg    = besstatus1;
  params.besstnew    = besstatus2;
  params.besstfia    = besstatus3;
  params.besstacc    = besstatus4;
  params.besstbes    = besstatus5;
  params.besstlev    = besstatus6;
  params.besstver    = besstatus7;
  params.besstann    = besstatus8;
  params.besstont    = besstatus9;
  params.besordstafg = ordstatus1;
  params.besordstnew = ordstatus2;
  params.besordstbeh = ordstatus3;
  params.besordstbes = ordstatus4;
  params.besordstbev = ordstatus5;
  params.besordstlev = ordstatus6;
  params.besordstver = ordstatus7;
}

var ord = getQParamInt("ord", 0) == 1; // Via ORD binnengekomen dan ook ORD rechten pakken (fromORD)
var autfunction = "";
switch(urole)
{
  case "fe": autfunction = "WEB_BESUSE";
             break;
  case "fo": autfunction = "WEB_BESFOF";
             break;
  case "bo": autfunction = "WEB_BESBOF";
             break;
  case "mi": if (ord)
               autfunction = "WEB_BESBOR"; // via ORD binnengekomen dan ook ORD rechten pakken
             else
               autfunction = "WEB_BESBAC"; // via BES binnengekomen dan ook BES rechten pakken
             break;
}

bes_list(autfunction, params);
%><% ASPPAGE_END(); %> 
