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

    File:               fin_show_note.asp (wellicht beter zou zijn fin_notes_list.asp)
    Description:        Toont een overzicht van de notes van één factuur of alle notes
                        Dit zal hoofdzakelijk zijn als behorend bij een bepaalde factuur
                        maar kan ook "open" zijn (vanuit het menu). In dat geval wordt
                        er nog wat identificerende factuurinfo getoond.
    Parameters:         fin_key
    Noot:               De variant zonder fin_key ondersteunen we nog niet echt!

// TODO:
//       de query beperken tot de facturen waarvoor ik FINFOF of FINBOF rechten heb
//       als fin_key -1 is
*/%>

<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="./fin.inc" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<%

var fin_key = getQParamInt("fin_key", -1); // vanuit het menu hebben we geen fin_key
var embedded = getQParamInt("embedded", -1);
var outputmode = getQParamInt("outputmode", 0);
var showall = getQParamInt("showall", 0) == 1;


if (fin_key > 0)
{
    var this_fin = fin.func_enabled_factuur(fin_key); // Wat heb ik zoal aan rechten
    user.auth_required_or_abort(this_fin.canReadNotes);
}

%>
<html>
<head>
<%  FCLTHeader.Generate({outputmode: outputmode}); %>
   <script type="text/javascript">
        function persoonDetails(evt, perslid_key)
        {
            FcltMgr.stopPropagation(evt);
            FcltMgr.openDetail("appl/fac/fac_user.asp?prs_key=" + perslid_key);
        }
        function fin_notechange(fin_note_key)
        {
            if (FcltMgr.startEdit(window))
                window.location.href = "fin_edit_note.asp?fin_key=<%=fin_key%>" + (fin_note_key?"&note_key="+fin_note_key:"") + "&embedded=<%=embedded%>"
        }
<% if (fin_key == -1) { %>
        function fin_edit(row)
        {
          $(row).addClass('dirty');
          var fin_key = row.getAttribute("ROWKEY");
          url = "appl/fin/fin_factuur.asp?fin_key=" + fin_key;
          FcltMgr.openDetail(url, L("lcl_fin_factuur") + ' ' + fin_key);
        }
<% } %>
   </script>
</head>

<body id="listbody">
<% SUBFRAME_START(); %>
<%
    function fnPerslidNaamFull(oRs)
    {
        var html = "<span class='details' onclick='persoonDetails(event,"+ oRs("prs_perslid_key").Value +")'>"
                 + safe.html(oRs("prs_perslid_naam_full").Value)
                 + "</span>";

        return html;
    }

// Je kunt alleen een notitie toevoegen als je binnen een bekende factuur bent
    var buttons = [];
    if (fin_key > 0 && this_fin.canWriteNotes) // Manual add allowed
    {
        var sql = "SELECT fin_factuur_note_key, prs_perslid_key"
                + "  FROM fin_factuur_note"
                + " WHERE fin_factuur_key =" + fin_key
                + " ORDER BY fin_factuur_note_aanmaak DESC";
        var oRs = Oracle.Execute(sql);
        if (!oRs.eof)
        {
          if (oRs("prs_perslid_key").value == user_key)
          {
            buttons.push({title: L("lcl_fin_note_edit"), icon: "fa-fclt-edit", action: "fin_notechange("+oRs("fin_factuur_note_key").value+")", id: "bedit_fin_note"});
          }
        }
        oRs.Close();
        buttons.push({title: L("lcl_add"), icon: "fa-plus", action:"fin_notechange()", id:"bchange_fin_note" });
    }

    var pageTitle = "";
    if (fin_key > 0)
    {
       sql = "SELECT fin_factuur_nr"
           + " FROM fin_factuur f"
           + " WHERE f.fin_factuur_key = " + fin_key;
       oRs = Oracle.Execute(sql);
       pageTitle = L('lcl_fin_invoice') + " " + oRs("fin_factuur_nr").Value;
       oRs.Close();

       sql = "SELECT n.fin_factuur_note_aanmaak"
           + ",      n.fin_factuur_note_key"
           + ",      pf.prs_perslid_key"
           + ",      pf.prs_perslid_naam_full"
           + ",      n.fin_factuur_note_omschrijving"
           + "  FROM fin_factuur_note n, prs_v_perslid_fullnames_all pf"
           + " WHERE n.prs_perslid_key = pf.prs_perslid_key (+)"
           + "   AND n.fin_factuur_key = " + fin_key
           + " ORDER BY n.fin_factuur_note_aanmaak "
           + (true ? "DESC " : "");  // wordt setting (zie UWVA#14408)
    }
    else
    {
        // Overzicht van alle factuurnotes binnen mijn FINBOF/FINFOF autorisaties tbd

    }

    var rst = new ResultsetTable({ sql:sql,
                                   keyColumn: (fin_key == -1)?"fin_factuur_key":"fin_factuur_note_key",
                                   noPrint:(embedded != -1),
                                   ID: "notestable",
                                   buttons: buttons,
                                   title: L("lcl_fin_frame_notes") + " " + pageTitle,
                                   outputmode: outputmode,
                                   showAll: showall,
                                   emptySetString : L("lcl_fin_note_emptyset")
                                 });

    rst.addColumn(new Column({caption: L("lcl_date_time"), content: "fin_factuur_note_aanmaak", datatype:"datetime"}));
    if (fin_key == -1) {
        rst.addColumn(new Column({caption: L("lcl_fin_invoice"), content: "fin_factuur_key"}));
    }
    rst.addColumn(new Column({caption: L("lcl_fin_changedby"), content: fnPerslidNaamFull}));
    rst.addColumn(new Column({caption: L("lcl_fin_note"), content: "fin_factuur_note_omschrijving"}));

    // als ik in een contextloos overzicht zit, kan ik naar de edit van de Melding (niet van de note!)
    // Moet ik wel schrijfrechten hebben ook (TODO)
    if (fin_key == -1) {
        rst.addAction({ action: "fin_edit", caption: L("lcl_edit"), isDefault: true } );
    }
    var cnt = rst.processResultset();
%>
<% SUBFRAME_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>
