<%@ LANGUAGE="JavaScript" %>
<% /*
     $Revision$
     $Id$

    File:               Bes/fav_items_list.asp
    Description:        Toont een lijst met items van een meegegeven favorieten lijst van een persoon
    Parameters:
        fav_name        De meegegeven favorieten lijst waarvan de items lijst getoond moet worden
    Context:            Binnen sel_favourites.asp worden binnen een frame de items van de meegegeven favorieten lijst
                        getoond
    Note:

*/ %>
<!-- #include file="../Shared/common.inc" -->

<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/json2.js" -->
<%
  FCLTHeader.Requires({ plugins:[],
                      js: ["num2curr.js", "./fav_items_list.js"]
                    });

%>
<html>
<head>
<%
   FCLTHeader.Generate();
%>
</head>
<body class="modal" id="mod_bes_fav">
<%
    var disc_key = getQParamInt('disc_key');
    var recent   = getQParamInt('recent')==1;
    var fav_name = getQParam('fav_name', "");
%>

  <form name="u2">
    <table id="besfavtable" cellspacing=0 cellpadding=0 class="rstable">

    <thead>
    <tr>
<%  if (!recent) { %>
      <th width=15></th>
<%  } %>
    <th><%=L("lcl_bes_srtdeel_nr")%></th>
    <th><%=L("lcl_bes_srtdeel")%></th>
    <th><%=L("lcl_bes_fav_last_ordered")%></th>
    </tr>
  </thead>
  <tbody>
<%
  if (recent) {
    sql = "SELECT bes_srtdeel_key"
        + ", bes_srtdeel_nr"
        + ", srtdeel_omschrijving"
        + ", srtdeel_eenh"
        + ", ins_discipline_key"
        + ", bes_srtgroep_key"
        + ", srtgroep_omschrijving"
        + ", veelvoud"
        + ", bes.getsrtdeelprijs(bes_srtdeel_key, NULL) bes_srtdeel_prijs"
        + ", recent_date"
        + ", num_prop"
        + ", num_prssql"
        + ", staffelgroep"
        + ", bestelminimum"
        + ", srtdeel_opmerking"
        + ", singlegroep"
        + ", CASE WHEN bes_srtdeel_vervaldatum IS NULL OR bes_srtdeel_vervaldatum >= TRUNC(SYSDATE)"
          + "   THEN 0"
          + "   ELSE 1"
          + "END vervallen"
        + " FROM "
          + " (SELECT d.bes_srtdeel_key"
          + ", COALESCE("+ lcl.xsql('bes_srtdeel_eenheid','d.bes_srtdeel_key') +",'') srtdeel_eenh"
          + ", "+ lcl.xsql('bes_srtdeel_omschrijving','d.bes_srtdeel_key') +" srtdeel_omschrijving"
          + ", bes_srtdeel_nr"
          + ", g.ins_discipline_key"
          + ", g.bes_srtgroep_key"
          + ", "+ lcl.xsql('g.bes_srtgroep_omschrijving','g.bes_srtgroep_key') +" srtgroep_omschrijving"
          + ", COALESCE(d.bes_srtdeel_veelvoud, 1) veelvoud"
          + ", bes.getsrtdeelprijs(d.bes_srtdeel_key, NULL) bes_srtdeel_prijs"
          + ", MAX(TRUNC(bo.bes_bestelopdr_datum)) recent_date"
            + ", (SELECT COUNT(bes_kenmerk_key)"
            + " FROM bes_kenmerk k"
            + " WHERE (k.bes_srtinstallatie_key = " + disc_key + " AND k.bes_kenmerk_niveau LIKE 'D'"
            + " OR k.bes_srtinstallatie_key = g.bes_srtgroep_key AND k.bes_kenmerk_niveau LIKE 'G'"
            + " OR k.bes_srtinstallatie_key = d.bes_srtdeel_key AND k.bes_kenmerk_niveau LIKE 'S')"
            + " AND k.bes_kenmerk_verwijder IS NULL"
            + " AND k.bes_kenmerk_type = 'I') num_prop"
            + ", (SELECT COUNT(bes_kenmerk_key)"
            + " FROM bes_kenmerk k"
            + " WHERE (k.bes_srtinstallatie_key = " + disc_key + " AND k.bes_kenmerk_niveau LIKE 'D'"
            + " OR k.bes_srtinstallatie_key = g.bes_srtgroep_key AND k.bes_kenmerk_niveau LIKE 'G'"
            + " OR k.bes_srtinstallatie_key = d.bes_srtdeel_key AND k.bes_kenmerk_niveau LIKE 'S')"
            + " AND k.bes_kenmerk_verwijder IS NULL"
            + " AND k.bes_kenmerk_type = 'I'"
            + " AND k.bes_kenmerk_default LIKE '%##SQL##%') num_prssql"
          + ", CASE bst.bes_staffeltabel_groep"
            + " WHEN 0"
            + " THEN 0" // artikelkorting
            + " WHEN 1"
            + " THEN bst.bes_staffeltabel_key" // groepskorting
            + " ELSE -1" // geen staffelkorting
            + " END staffelgroep"
          + ", COALESCE(d.bes_srtdeel_minimum, 0) bestelminimum"
          + ", " + lcl.xsql('d.bes_srtdeel_opmerking','d.bes_srtdeel_key') +" srtdeel_opmerking"
          + ", dp.bes_disc_params_singlegroep singlegroep"
          + ", d.bes_srtdeel_vervaldatum"
          + " FROM bes_bestelopdr bo"
          + ", bes_bestelopdr_item boi"
          + ", bes_bestelling_item bi"
          + ", bes_v_aanwezigsrtdeel d"
          + ", bes_v_aanwezigsrtgroep g"
          + ", bes_disc_params dp"
          + ", bes_staffeltabel bst"
          + " WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key"
          + " AND d.bes_srtgroep_key = g.bes_srtgroep_key"
          + " AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key"
          + " AND bi.bes_srtdeel_key = d.bes_srtdeel_key"
          + " AND bst.bes_staffeltabel_key(+) = d.bes_staffeltabel_key"
          + " AND g.ins_discipline_key = dp.bes_ins_discipline_key"
          + " AND g.ins_discipline_key = " + disc_key
          //+ " AND bo.prs_perslid_key = " + user_key
          + " GROUP BY d.bes_srtdeel_key"
          + ", d.bes_srtdeel_nr"
          + ", d.bes_srtdeel_omschrijving"
          + ", d.bes_srtdeel_eenheid"
          + ", g.ins_discipline_key"
          + ", g.bes_srtgroep_key"
          + ", g.bes_srtgroep_omschrijving"
          + ", d.bes_srtdeel_veelvoud"
          + ", bes.getsrtdeelprijs(d.bes_srtdeel_key, NULL) "  // gek?
          + ", d.bes_srtdeel_key"
          + ", bst.bes_staffeltabel_groep"
          + ", bst.bes_staffeltabel_key"
          + ", d.bes_srtdeel_minimum"
          + ", d.bes_srtdeel_opmerking"
          + ", dp.bes_disc_params_singlegroep"
          + ", d.bes_srtdeel_vervaldatum"
          + ")"
        + " WHERE ROWNUM <= 20"
        + " ORDER BY recent_date DESC, srtdeel_omschrijving ASC"

  }
  else {
    // hier komen de items uit de favorieten lijst
    sql_recent_date = "(SELECT MAX (bo.bes_bestelopdr_datum)"
                    + " FROM bes_bestelopdr bo"
                    + ", bes_bestelopdr_item boi"
                    + ", bes_bestelling_item bi"
                    + " WHERE bo.bes_bestelopdr_key = boi.bes_bestelopdr_key"
                    + " AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key"
                    + " AND bi.bes_srtdeel_key = d.bes_srtdeel_key)"

    sql = "SELECT d.bes_srtdeel_key"
        + ", bes_srtdeel_nr"
        + ", "+ lcl.xsql('bes_srtdeel_omschrijving','d.bes_srtdeel_key') +" srtdeel_omschrijving"
        + ", COALESCE("+ lcl.xsql('bes_srtdeel_eenheid','d.bes_srtdeel_key') +",'') srtdeel_eenh"
        + ", g.ins_discipline_key disc_key"
        + ", g.bes_srtgroep_key"
        + ", "+ lcl.xsql('g.bes_srtgroep_omschrijving','g.bes_srtgroep_key') +" srtgroep_omschrijving"
        + ", COALESCE(d.bes_srtdeel_veelvoud, 1) veelvoud"
        + ", bes.getsrtdeelprijs(d.bes_srtdeel_key, NULL) bes_srtdeel_prijs"
        + ", " + sql_recent_date + " recent_date"
        + ", bf.bes_favoriet_key fav_key"
        + ", (SELECT COUNT(bes_kenmerk_key)"
        + "     FROM bes_kenmerk k"
        + "     WHERE (k.bes_srtinstallatie_key = " + disc_key + " AND k.bes_kenmerk_niveau LIKE 'D'"
        + "        OR k.bes_srtinstallatie_key = g.bes_srtgroep_key AND k.bes_kenmerk_niveau LIKE 'G'"
        + "        OR k.bes_srtinstallatie_key = d.bes_srtdeel_key AND k.bes_kenmerk_niveau LIKE 'S')"
        + "       AND k.bes_kenmerk_verwijder IS NULL"
        + "       AND k.bes_kenmerk_type = 'I') num_prop"
        + ", (SELECT COUNT(bes_kenmerk_key)"
        + "     FROM bes_kenmerk k"
        + "     WHERE (k.bes_srtinstallatie_key = " + disc_key + " AND k.bes_kenmerk_niveau LIKE 'D'"
        + "        OR k.bes_srtinstallatie_key = g.bes_srtgroep_key AND k.bes_kenmerk_niveau LIKE 'G'"
        + "        OR k.bes_srtinstallatie_key = d.bes_srtdeel_key AND k.bes_kenmerk_niveau LIKE 'S')"
        + "       AND k.bes_kenmerk_verwijder IS NULL"
        + "       AND k.bes_kenmerk_type = 'I'"
        + "       AND k.bes_kenmerk_default LIKE '%##SQL##%') num_prssql"
        + ", CASE bst.bes_staffeltabel_groep"
          + " WHEN 0"
          + " THEN 0" // artikelkorting
          + " WHEN 1"
          + " THEN bst.bes_staffeltabel_key" // groepskorting
          + " ELSE -1" // geen staffelkorting
          + " END staffelgroep"
        + ", COALESCE(d.bes_srtdeel_minimum, 0) bestelminimum"
        + ", "+ lcl.xsql('d.bes_srtdeel_opmerking','d.bes_srtdeel_key') +" srtdeel_opmerking"
        + ", dp.bes_disc_params_singlegroep singlegroep"
        + ", CASE WHEN d.bes_srtdeel_vervaldatum IS NULL OR d.bes_srtdeel_vervaldatum >= TRUNC(SYSDATE)"
        + "   THEN 0"
        + "   ELSE 1"
        + "  END vervallen"
        + " FROM bes_v_aanwezigsrtdeel d"
        + ",     bes_v_aanwezigsrtgroep g"
        + ",     bes_disc_params dp"
        + ",     bes_favoriet bf"
        + ",     bes_staffeltabel bst"
        + " WHERE d.bes_srtgroep_key = g.bes_srtgroep_key"
        + "   AND d.bes_srtdeel_key = bf.bes_srtdeel_key"
        + "   AND bst.bes_staffeltabel_key(+) = d.bes_staffeltabel_key"
        + "   AND g.ins_discipline_key = dp.bes_ins_discipline_key"
        + "   AND bf.bes_favoriet_naam " + (fav_name==""?"IS NULL":"= " + safe.quoted_sql(fav_name))
        + "   AND g.ins_discipline_key = " + disc_key
        + "   AND bf.prs_perslid_key = " + user_key
        + " ORDER BY 2"
    }

    oRs = Oracle.Execute(sql);

    var teller = 0;
    while (!oRs.eof)
    {
      teller++;
      var bes_item_info =
           {  srtdeel_key: oRs("bes_srtdeel_key").value,
              srtdeel_nr: oRs("bes_srtdeel_nr").Value,
              srtgroup_text: oRs("srtgroep_omschrijving").Value,
              srtdeel_omschrijving: oRs("srtdeel_omschrijving").value,
              srtgroup_key: oRs("bes_srtgroep_key").value,
              //srtdeel_image: imgpath,
              veelvoud: oRs("veelvoud").value || 1,
              price:oRs("bes_srtdeel_prijs").value || 0,
              eenheid: oRs("srtdeel_eenh").value || "",
              num_prop: oRs("num_prop").value,
              num_prssql: oRs("num_prssql").value,
              staffelgroep: oRs("staffelgroep").value,
              bestelminimum: oRs("bestelminimum").value,
              opmerking: oRs("srtdeel_opmerking").value,
              singlegroep: oRs("singlegroep").value,
              vervallen: oRs("vervallen").value==1
          };
%>

      <script language=JavaScript>
        AddItem('<%=recent?"":safe.jsstring(fav_name)%>',
                eval("(<%=safe.jsstring(JSON.stringify(bes_item_info))%>)"),
                '<%=toDateString(oRs("recent_date").value)%>',
                <%=recent? 1 : 0%>==1,
                <%=recent? -1 : oRs.fields("fav_key").value%>)

      </script>
<%
      oRs.MoveNext();
    }

%>
    </tbody>

    <tfoot>
    <tr>
    <th colspan="5" align=left name="item_in_list" id="item_in_list">
      <%=teller + L("lcl_bes_fac_items_inlist")%>
    </th>
    </tr>
    </tfoot>
    </table>

    <input type='hidden' id='itemsInList' name='itemsInList' value='<%=teller%>'>
</form>
</body>
</html>

