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

    File:         kpn_copy_mandate
    Description:  Kopieer kostenplaats mandateringen van een persoon naar een andere persoon.
    Parameters:
        keys      String van prs_perslidkostenplaats keys
        modal     Weergave in modal scherm. Andere weergave (buttons, gehele breedte)

    Context:
    Note:         De geselecteerde mandateringsregels moeten van dezelfde persoon zijn.

*/
%>

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

<%
FCLTHeader.Requires({plugins:["jQuery"]})

var kpnman_keys = getQParamIntArray("keys", []);
var modal = (getQParamInt("modal", 0) == 1);
var outerjoin = false;

var authparams = user.checkAutorisation("WEB_FINMSU", true);
if (authparams && authparams.ALGwritelevel < 9)
{
    outerjoin = true; // alles, mandateren
}
else
{
    outerjoin = false; // kostenplaatsverantwoordelijke, ondermandateren

    // Voor WEB_FACMAN kijken naar prs write rechten, fac_functie_min_level = 7, lezen en schrijven organisatie
    // (Let op dat alg write rechten dan altijd -1 zijn, ook bij geen write rechten)
    // Dus alleen kijken naar prs write rechten
    var authparams = user.checkAutorisation("WEB_FACMAN");
    var canWrite = (authparams.PRSwritelevel < 9);
    user.auth_required_or_abort(canWrite);

    if (kpnman_keys.length > 0)
    {
        var tobecopied = 0;
        var ingesloten = [];
        for (var i = 0; i < kpnman_keys.length; i++)
        {
            if (canWrite)
            {   // De rechten heb je
                sql = "SELECT prs_perslidkostenplaats_key"
                    + "     , prs_kostenplaats_key"
                    + "  FROM prs_perslidkostenplaats"
                    + " WHERE prs_perslidkostenplaats_key = " + kpnman_keys[i]
                var oRs = Oracle.Execute(sql);
                if (oRs.eof)
                    shared.record_not_found("<!--" + kpnman_keys[i] + "-->");

                if (!oRs.eof && oRs("prs_kostenplaats_key").value)
                {   // prs_kostenplaats_key heeft een waarde
                    ingesloten.push(kpnman_keys[i]);
                    tobecopied++;
                }
            }
        }
        user.auth_required_or_abort(tobecopied > 0); // We klagen niet over enkele wel en enkele niet
        kpnman_keys = ingesloten;
    }
}

// Zijn er nu nog mandateringen en zijn ze allemaal van dezelfde persoon.
var prsman = false;
if (kpnman_keys.length > 0)
{
    var sql = "SELECT COUNT(DISTINCT prs_perslid_key) aantal"
            + "  FROM prs_perslidkostenplaats"
            + " WHERE prs_perslidkostenplaats_key IN (" + kpnman_keys.join(",") + ")";
    var oRs = Oracle.Execute(sql);
    var aantal = oRs("aantal").Value;
    oRs.Close();
    prsman = (aantal == 1);
}
user.auth_required_or_abort(prsman);


var sql = "SELECT pk.prs_perslidkostenplaats_key"
        + "     , k.prs_kostenplaats_key"
        + "     , pk.prs_perslid_key"
        + "     , k.prs_kostenplaats_nr || ' ' || k.prs_kostenplaats_omschrijving kostenplaats"
        + "     , CASE WHEN pk.prs_perslidkostenplaats_boeken = 1"
                + "    THEN 'ja'"
                + "    ELSE 'nee'"
                + " END boeken"
        + "     , CASE WHEN pk.prs_perslidkostenplaats_inzage = 1"
                + " THEN 'ja'"
                + " ELSE 'nee'"
                + " END inzage"
        + "  FROM prs_perslidkostenplaats pk"
        + "     , prs_kostenplaats k"
        + " WHERE k.prs_kostenplaats_key" + (outerjoin ? "(+)" : "") + " = pk.prs_kostenplaats_key" // prs_kostenplaats_key != 0 bij alleen FACMAN schrijf rechten
        + "   AND pk.prs_perslidkostenplaats_key IN (" + (kpnman_keys.length ? kpnman_keys.join(",") : "-1") + ")"
        + " ORDER BY kostenplaats, boeken, inzage";
%>

<html>
  <head>
<%
    FCLTHeader.Generate();
%>
    <script type="text/javascript">
        kpnman_keys = "<%=kpnman_keys.join(",")%>";

        async function kpn_submit()
        {
            document.activeElement.blur(); // trigger laatste onChanges
            if (kpnman_keys.length == 0)
            {
                FcltMgr.alert(L("lcl_prs_select_one_boekeninzage"));
                return false;
            }
            if (!await validateForm("u2"))
                return false;
            $("#savebtn").css('visibility', 'hidden'); // Als protectRequest.validateToken() bij opslaan wordt afgebroken kan niet opnieuw worden opgeslagen
            var data = $("[name=u2]").serialize();
            $.post( $("form[name=u2]")[0].action
                  , data
                  , FcltCallbackClose
                  , "json");

        }
        function kpn_cancel()
        {
            FcltMgr.closeDetail(window, { cancel: true } );
        }



    </script>
  </head>

  <body class="<%=modal ? "fclt-modal mod_edit_mandate" : "editmode"%>">
  <% SUBFRAME_START();
    if (!modal && kpnman_keys.length > 0)
    {
      var buttons =  [ {title: L("lcl_submit"), action:"kpn_submit()", icon: "fa-fclt-save", id: "savebtn", importance: 1 },
                       {title: L("lcl_cancel"), action:"kpn_cancel()", icon: "fa-fclt-cancel", id: "cancelbtn", importance: 3} ];
      IFRAMER_HEADER(L("lcl_kpn_mandate_frame"), buttons);
    }
%>
      <form name="u2"
            action="kpn_copy_mandate_save.asp?keys=<%=kpnman_keys.join(",")%>"
            method="post"
            target="hidFrameSubmit"
            onSubmit="kpn_submit();">
<%      BLOCK_START((modal || kpnman_keys.length == 0? "kpnManModal" : "kpnMan"), "", { "icon": "fa-user-plus" });

            FCLTpersoonselector( "kpn_prskey"  // te mandateren persoon
                               , "sgKpnPrskey"
                               ,  { perslidKey: -1 // kpn_prskey
                                 , label: L("lcl_prs_name")
                                 , whenEmpty: L("lcl_select_persoon")
                                 , autlevel: authparams.PRSwritelevel
                                 , filtercode: (S("prs_mandaterequiresprofiel") == 1 ? "B" : null)  // UWVA#14068
                                 , required: true
                                 });
%>
        <tr>
          <td colspan="2">
<%
            var rst = new ResultsetTable({ sql: sql
                                         , keyColumn: "prs_perslidkostenplaats_key"
                                         , ID: "prstable"
                                         , noPrint: true
                                         });

            rst.addColumn(new Column({caption: L("lcl_prs_kosten"),     content: "kostenplaats"}));
            rst.addColumn(new Column({caption: L("lcl_prs_book"),       content: "boeken"}));
            rst.addColumn(new Column({caption: L("lcl_prs_inspection"), content: "inzage"}));

            var cnt = rst.processResultset();
%>
          </td>
        </tr>
<%
        BLOCK_END();
        IFACE.FORM_END();
%>
      </form>
      <iframe src="../Shared/empty.html" name="hidFrameSubmit" style="display:none"></iframe>
<%
    if (modal || kpnman_keys.length == 0)
    {
        var buttons = [];
        if (rst.rowNum > 0)
            buttons.push({title: L("lcl_submit"), icon: "fa-fclt-save", action: "kpn_submit()", id: "savebtn",   importance: 1});
        buttons.push({title: L("lcl_cancel"), icon: "fa-fclt-cancel",    action: "kpn_cancel()", id: "cancelbtn", importance: 3});
        SIMPLE_BLOCK_START();
        CreateButtons(buttons);
        SIMPLE_BLOCK_END();
    }
SUBFRAME_END();
%>
  </body>
</html>
<% ASPPAGE_END(); %>
