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

<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/calendar.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="fin_flexkenmerk.inc" -->
<!-- #include file="fin.inc" -->
<!-- #include file="../Shared/kostensoortselector.inc" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->

<%

FCLTHeader.Requires({ plugins: ["suggest", "jQuery"],
                      js: ["date.js", "../fin/fin_edit_factuur.js", "../fin/fin.js"]
                    });

var fin_key = getQParamInt("fin_key", -1);
var copy = (getQParamInt("fin_copy", 0) == 1);
var referentie = getQParam("referentie", "");
var fin_copy_key = -1;
if (copy)
{
  fin_copy_key = fin_key;
  if (fin_copy_key == -1) Response.End;
  fin_key = -1; // Bij kopieren wordt er een nieuwe factuur aangemaakt, waarbij de initiele waarden van de invoervelden de waarden van de te kopieren opdracht moeten zijn.
}

var this_fin = fin.func_enabled_factuur(fin_key); // Wat heb ik zoal aan rechten

// this_fin.canInvLinChange = false;

var fin_factuur; // Globale variabele met alle fin_factuur informatie
var ref_info = {}; // Globale variabele met alle referentie informatie
if (fin_key > 0)
{
  user.auth_required_or_abort(this_fin.canWriteAny);
  // func_enabled_factuur heeft deze al voor ons bepaald.
  fin_factuur = this_fin.factuur_info;
  ref_info = this_fin.referentieinfo;
}
else // nieuwe factuur. Defaults bepalen
{
  user.auth_required_or_abort(this_fin.canFEWrite || this_fin.canFOWrite); // Alleen FE (als contactpersoon) of FO kan aanmaken.

  if (copy)
  { // Haal de opdrachtgegevens op van de opdracht
    fin_factuur = fin.factuur_info(fin_copy_key); // Globale variabele met alle fin_factuur informatie
    fin_factuur.fin_status_key = 2;
    fin_factuur.fin_status_oms = "";
    fin_factuur.fin_bron_key = 0;
    fin_factuur.fin_bron_oms = "";
    this_fin.factuur_info = fin_factuur;
    this_fin.copy = true;
  }
  else
  {
    var dt = new Date();
    var fin_boekm = dt.getFullYear() + "-" + ((dt.getMonth() + 1) < 10? "0" + (dt.getMonth() + 1) : (dt.getMonth() + 1));
    var fin_boekm_jaar = fin_boekm.substr(0,4);
    fin_factuur = { fin_key: -1,
                    mld_key: null,
                    opdr_volgnr: "",
                    mld_prefix: "",
                    cnt_nr: null,
                    cnt_key: -1,
                    besopdr_key: null,
                    bes_volgnr: "",
                    fin_totaal: 0,
                    fin_totaal_btw: 0,
                    fin_gbedrag: 0,
                    perslid_key_user: user_key,
                    perslid_key_goedkeur: -1,
                    perslid_key_fiat: null,
                    fin_opm: "",
                    fin_status_key: 2,
                    fin_status_oms: "",
                    fin_bron_key: 0,
                    fin_bron_oms: "",
                    fin_perslid_user: user.naam(),
                    fin_perslid_goedkeur: "",
                    fin_date: new Date(),
                    fin_nr: "",
                    fin_boekm: fin_boekm,
                    fin_boekm_jaar: fin_boekm_jaar,
                    fin_debiteur: "",
                    fin_costsrt_key: -1,
                    fin_costsrt: "",
                    fin_costsrt_default: -1, // Is afhankelijk van het referentie type // TODO: opvragen
                    bes_id: "",
                    default_costsrt_selected: false, // ((fin_costsrt_key == fin_costsrt_default) && (fin_costsrt_key != null)), // TODO: opvragen
                    kostenplaats_naam: "",
                    cnt_contract_plaats_key: null
                  }
    if (referentie != "")
    {
      ref_info.referentie = referentie;
    }
    this_fin.factuur_info = fin_factuur;
  }
}
var asContactpersoon = this_fin.canFEWrite && !this_fin.canFOWrite;

var refoms = L("lcl_fin_referentie");
var refurl = "";
var reftitle = "";
if (ref_info.ref_type == "O")
{
  refoms = L("lcl_shared_order");
  refurl = "appl/mld/mld_opdr.asp?urole=fo&opdr_key=" + fin_factuur.mldopdr_key;
  reftitle = (fin_factuur.mld_prefix != null? fin_factuur.mld_prefix + " " : "") + fin_factuur.mld_key + "/" + fin_factuur.opdr_volgnr;
}
else if (ref_info.ref_type == "B")
{
  refoms = L("lcl_fin_bestelopdracht");
  refurl = "appl/bes/bes_opdr.asp?urole=fo&ordernr=" + fin_factuur.besopdr_key
  reftitle = S("bes_bestelling_prefix") + fin_factuur.bes_key + "/" + fin_factuur.bes_volgnr;
}
else if (ref_info.ref_type == "C")
{
  refoms = L("lcl_contract");
  refurl = "appl/cnt/cnt_contract.asp?urole=fo&cnt_key=" + fin_factuur.cnt_key
  reftitle = "C" + fin_factuur.cnt_nr +(fin_factuur.cnt_versie? "." + fin_factuur.cnt_versie : "");
}

var sql = "SELECT fin_btwtabelwaarde_perc"
        + "     , fin_btwtabel_key"
        + "     , fin_btwtabelwaarde_verlegd"
        + " FROM fin_btwtabelwaarde"
        + " WHERE fin_btwtabelwaarde_key = " + S("fin_btw_default");
var oRs = Oracle.Execute(sql);
var fin_btwtabel_key = oRs("fin_btwtabel_key").value; // Standaard btw tabel key
var fin_btw_default_verlegd = oRs("fin_btwtabelwaarde_verlegd").value || 0;
oRs.Close();
%>

<html>
  <head>
<%
    FCLTHeader.Generate();
%>
    <script  type="text/javascript" >
      var fin_splitsen_omschr = <%=S("fin_splitsen_omschr")%> == 1;
      var fin_key = <%=fin_key%>;
      var fin_defaultboekmaand = <%=S("fin_defaultboekmaand")%>;
      var fin_enable_kostensoort = <%=S("fin_enable_kostensoort")%>;
      var fin_kostensoort_verplicht = <%=S("fin_kostensoort_verplicht")%>;
      var asContactpersoon = <%=asContactpersoon? 1 : 0%> == 1;
      var cnt_srttype_rental = <%=S("cnt_srttype_rental")%>;
      var fin_factuur_verlegdmode = <%=S("fin_factuur_verlegdmode")%>;
      var fin_invoice_check_total = <%=(S("fin_invoice_check_total"))%>;
      var canInvLinChange = <%=this_fin.canInvLinChange? 1 : 0%> == 1;

      $(function()
      {
        $("#referentienr").focus();
<%      if (fin_key > 0 && S("fin_enable_kostensoort") != 0 && this_fin.canInvLinChange)
        { %>
          // Overal suggest van maken
          var rowIndex = parseInt($("#rowIndex").val());
          for (var i=1; i <= rowIndex; i++)
          {
              var x = new Suggest({ objectName: "sgCostCentre" + i,
                                    queryField: $("#fincostsrt" + i + "_show")[0],
                                    queryUrl: "../shared/suggest/SuggestKostensoort.asp?a=1",
                                    initKey: $("#fincostsrt" + i).val(),
                                    keyField: $("#fincostsrt" + i)[0],
                                    highlightDescript: true
                  });
              window["sgCostCentre" + i] = x;

          }
<%      } %>

        $("table#sel_items").on("focusin", "input[type=text]", function (e)
        {
          var obj = e.currentTarget;
          obj.select();
        });
        $("table#sel_items").on("change", "input", function (e)
        {
          var obj = e.currentTarget;
          if (obj.id.match(/^sum\d+/)) // voorkom dat sumBTW ook meegaat, die mag je toch niet wijzigen
            SumChanged(obj);
        });
        $("table#sel_items").on("change", "select", function (e)
        {
          var obj = e.currentTarget;
          if (obj.id.match(/^BTW/))
          {
            setPrice(obj);
            checkVerlegd();
          }
        });
        $("#totalBTW_txt").blur(function (e)
        {
          checkDiffTotalBTW();
        });

        $('textarea').autogrow();
        FcltMgr.resized(window);

        $('#reflink').addClass('details');
        $('#lev_uit').addClass('details');
<%      if (!ref_info.lev_num)
        { %>
          $("#tr_lev_num").hide();
<%      } %>
<%      if (!ref_info.lev_opm)
        { %>
          $("#tr_lev_opm").hide();
<%      } %>
<%      if (fin_key > 0)
        { %>
          $('#reflink').click(function()
                              {
                                FcltMgr.openDetail("<%=refurl%>");
                              }
                             );
<%        if (this_fin.canReqRelDetails)
          { %>
            $('#lev_uit').click(function()
                                {
                                  if ("<%=ref_info.lev_uit_type%>" == "B")
                                    prslink = "appl/prs/prs_bedrijf.asp?bedrijf_key=<%=ref_info.lev_uit_key%>";
                                  else
                                    prslink = "appl/prs/prs_perslid.asp?prs_key=<%=ref_info.lev_uit_key%>";
                                  FcltMgr.openDetail(prslink);
                                }
                               );
<%        } %>
<%      } %>
        referenceChanged(false);

<%      if (this_fin.canInvLinChange) // AAIT#38947
        { %>
           if ($("table#sel_items input[id^=sum]").not(":hidden").length == 0)
           {
               AddItem(true);
           }
<%      } %>
      });

      // Settings needed by fin_edit_factuur.js
      var canReqRelDetails = (<%=this_fin.canReqRelDetails? 1 : 0%> == 1);

      var bShowDiscipline = false;

      var currency_pref = '<%=S("currency_pref")%>';
      var currency_suff = '<%=S("currency_suff")%>';

      var default_costsrt_selected = (<%=fin_factuur.default_costsrt_selected? 1 : 0%> == 1);
      var fin_key = <%=fin_key%>;
      var finboekm_jaar = '<%=safe.jsstring(fin_factuur.finboekm_jaar)%>';

      var fin_btw_default = <%=S("fin_btw_default")%>;
      var fin_btw_default_verlegd = <%=fin_btw_default_verlegd%>;
      var btwtabel = new Array();
<%    if (ref_info.btwtabel) // Is er een uitvoerende gedefinieeerd
      {
        serversidebtwtabel = ref_info.btwtabel;
      }
      else
      { // Kies default btwtabel m.b.v. setting S("fin_btw_default") als er geen referentie is geselecteerd (komt voor bij facturen die zijn geimporteerd)
        serversidebtwtabel = fin.btwtabel_info(fin_btwtabel_key); // default tabel hadden we al
      }
%>
      var JSONdata = "<%=safe.jsstring(JSON.stringify(serversidebtwtabel))%>";
      window.btwtabel = JSON.parse(JSONdata);
      window.btwtabel_key = <%= ref_info.btwtabel_key? ref_info.btwtabel_key : fin_btwtabel_key %>;
      var fin_materiaal;
    </script>
  </head>

  <body class="editmode">
  <% SUBFRAME_START(); %>
<%  var buttons =  [{ title: L("lcl_submit"), icon: "fa-fclt-save", action:"fin_submit()", singlepress: true, id: "btn_fin_submit" },
                    { title: L("lcl_cancel"), icon: "fa-fclt-cancel", action:"fin_cancel()" }];
    IFRAMER_HEADER(L("lcl_fin_frame_algemeen"), buttons);
%>
    <form id="u2" name="u2" action="fin_edit_factuur_save.asp" method="post" onSubmit="fin_submit();">
    <% BLOCK_START("finInfo", L("lcl_fin_info"), { icon: "fa-file-invoice" }); %>
        <input type="hidden" name="fin_key" id="fin_key" value="<%=fin_key%>">
        <input type="hidden" id="fin_type" name="fin_type" value="<%=fin_key > 0 && ref_info.ref_type? ref_info.ref_type : ""%>">
        <input type="hidden" id="fin_status_key" name="fin_status_key" value="<%=fin_factuur.fin_status_key%>">
        <input type="hidden" id="loc_code" name="loc_code" value="<%=ref_info.loc_code? ref_info.loc_code : ""%>">
        <input type="hidden" name="copyfin_key" value="<%=copy? fin_copy_key : '-1'%>">
        <input type="hidden" id="referentienr_old" name="referentienr_old" value="">  <% /* Als de referentie bestaat dan wordt de initiële waarde clientside wel opgeslagen */ %>
        <input type="hidden" id="gpercentage" name="gpercentage" value="<%=fin_key > 0 && ref_info? ref_info.gpercentage : ""%>">
        <input type="hidden" id="defaultbtw" name="defaultbtw" value="<%=S("fin_btw_default")%>">
        <input type="hidden" id="defaultbtw_verlegd" name="defaultbtw_verlegd" value="<%=fin_btw_default_verlegd%>">
<%

        // Referentie
        RWFIELDTR("referentienr",
                  "fldshort",
                  L("lcl_fin_referentie"),
                  (ref_info? ref_info.referentie : ""),
                  { readonly: !this_fin.canChange || referentie != "",
                    required: true,
                    html: ' onChange="clearRefDetails();referenceChanged(true);"'
                  });

        // Factuur datum
        FCLTcalendar( "calendar",
                      { label : L("lcl_fin_findate"),
                        datum: fin_factuur.fin_date,
                        readonly: !this_fin.canDateChange,
                        required: true
                      });

        // Extern factuur nummer
        var events = (!this_fin.canChange
                     ? ''
                     : 'onKeyPress="clearExtInvDetails();"')
                   + ' onChange="clearExtInvDetails();referenceChanged();"';

        RWFIELDTR("finnr",
                  "fld",
                  L("lcl_fin_invoice_nr_extern"),
                  (fin_factuur? fin_factuur.fin_nr : ""),
                  { readonly: !this_fin.canChange,
                    required: true,
                    maxlength: 30,
                    html: events
                  }
                 );

        if ((S("fin_invoice_check_total") &1) == 1)
            RWFIELDTR("fin_tot_excl", "fldshort float", L("lcl_fin_factuur_totaal_excl")+" ("+L("lcl_valutasign")+")", safe.curr(fin_factuur.fin_totaal)
                     , { required: ((S("fin_invoice_check_total") & 4) == 4) });

        if ((S("fin_invoice_check_total") &2) == 2)
            RWFIELDTR("fin_tot_incl", "fldshort float", L("lcl_fin_factuur_totaal_incl")+" ("+L("lcl_valutasign")+")", safe.curr(fin_factuur.fin_totaal + fin_factuur.fin_totaal_btw)
                     , { required: ((S("fin_invoice_check_total") & 4) == 4) });

        // Fast check to see if we have anything to do with contractscope
        sql= "SELECT 1 FROM cnt_v_aanwezigcontract_plaats WHERE ROWNUM = 1";
        oRs = Oracle.Execute(sql);
        var anycntscopes = !oRs.eof;
        oRs.close();

        if (anycntscopes)
        {
            sql = "SELECT   ap.cnt_contract_plaats_key, "
                + "         cp.cnt_plaats_omschrijving "
                + "    FROM cnt_v_aanwezigcontract_plaats ap, "
                + "         cnt_v_contract_plaats cp "
                + "   WHERE ap.cnt_contract_key = " + fin_factuur.cnt_key
                + "     AND cp.cnt_plaats_key = ap.cnt_alg_plaats_key"
                + "     AND cp.cnt_plaats_code = ap.cnt_alg_plaats_code "
                + "ORDER BY cp.cnt_plaats_omschrijving ";

            FCLTselector("cnt_plaats_key", sql,
              {  label: L("lcl_fin_location_scope"),
                 emptyOption: "",
                 whenEmpty: "",
                 initKey: fin_factuur.cnt_contract_plaats_key
              });
        }
        // Verdeelperiode
        events = ' onKeyPress="kenmerkDividePeriodKey(event);"'
               + ' onPropertyChange="kenmerkDividePeriodChange(event);"'
               + ' onChange="devidePeriodChanged();"';

        RWFIELDTR("finboekm",
                  "fldshort",
                  L("lcl_fin_divide_period"),
                  fin_factuur.fin_boekm,
                  { readonly: !this_fin.canChange,
                    html: events
                  });

        // Eigen debiteurnummer
        RWFIELDTR("findebtor",
                  "fld",
                  L("lcl_fin_debtor_nr"),
                  fin_factuur.fin_debiteur,
                  { readonly: !this_fin.canChange, maxlength: 30 });

        if (S("fin_factuur_verlegdmode") & 1 == 1)
            RWFIELDTR("fingbedrag", "fldshort required0isoke", L("lcl_fin_gbedrag"), (fin_factuur.fin_gbedrag? fin_factuur.fin_gbedrag : ""), {datatype: "currency"});

        // Kostensoort
        // (S("fin_enable_kostensoort"), S("fin_kostensoort_verplicht"))
        // (0, 0) = don't show, don't check, kostensoort isn't that important
        // (0, 1) = don't show, check for findable kostensoort & store that value, else fail
        // (1, 0) = editable, may be left empty
        // (1, 1) = editable, required
        if (S("fin_enable_kostensoort") == 0)
        { // Kostensoort niet tonen.
          // Indien S("fin_kostensoort_verplicht") == 1 dan bij invullen controleren of er een kostensoort (automatisch) is ingevuld (FcltGetRefInfoCallback)
          // Niet in beeld in edit-mode maar wel opslaan via FcltGetRefInfoCallback!
%>        <input type="hidden" name="fincostsrt" id="fincostsrt" value="<%=fin_factuur.fin_costsrt_key%>"><%
        }
        else if (this_fin.canChange)
        { // Kostensoort editable
          FCLTkostensoortselector("fincostsrt",
                                  "sgCostCentre",
                                  { kostensoortKey: fin_factuur.fin_costsrt_key,
                                    label: L("lcl_shared_charge_type"),
                                    filtercode: "FIN",
                                    refkey: fin_key,
                                    whenEmpty: "",
                                    readonly: !this_fin.canChange,
                                    required: S("fin_kostensoort_verplicht") == 1
                                 });
        }
        // Na de FCLTkostensoortselector anders is het object sgCostCentre nog niet aanwezig.
%>      <script  type="text/javascript" >
          $(function()
          {
<%          if (referentie != "")
            { %>
              referenceChanged(true);
<%          } %>
          });
        </script>
<%
        if (S("fin_enable_goedkeuren") != 0)
        {
        FCLTpersoonselector("goedkeurder",
                            "sgGoedkeurder",
                            { perslidKey: fin_factuur.perslid_key_goedkeur,
                              label: L("lcl_fin_goedkeurder"),
                              readonly: !this_fin.canChange,
                              filtercode: "FING", // Goedkeurder.
                              required: S("fin_enable_goedkeuren") == 2
                            });
        }
        ROFIELDTR("fld", L("lcl_shared_created_by"), fin_factuur.fin_perslid_user); // Aangemaakt door
        if (fin_key > 0) // Bij nieuwe invoer is er nog geen status.
          ROFIELDTR("fld", L("lcl_fin_fin_status"), fin_factuur.fin_status_oms); // Factuurstatus

        if (S("fin_factuur_flags") > 0)
        {
            sql = [];
            for (var i = 0; i < S("fin_factuur_flags"); i++)
            {
                sql.push("SELECT " + i + ", " + safe.quoted_sql(L("lcl_fin_flag" + i)) + " FROM DUAL");
            }
            FCLTselector("finflag",
                         sql.join(" UNION ALL "),
                         { initKey: fin_factuur.flag,
                           label: L("lcl_fin_flags"),
                           flag: fin_factuur.flag
                         });
        }

        ROFIELDTR("fld", L("lcl_fin_invoice_source"), fin_factuur.fin_bron_oms, {suppressEmpty: true});

        // Opmerking
        RWTEXTAREATR("remark",
                     "fldtxt",
                     L("lcl_fin_remark"),
                     (fin_key != -1 || fin_copy_key > 0? fin_factuur.fin_opm : ""),
                     { readonly: !this_fin.canRemarkChange });
        BLOCK_END();


        BLOCK_START("finRefInfo", L("lcl_fin_referentie_info"), {icon: "fa-paperclip"});
        // Met de class details wordt aangeven dat het een onclick event is. Het onclick event wordt in $(function() {}) gedefinieerd voor reflink
        // Dit gebeurt niet m.b.v. de params.infoPointer omdat de waarde veranderd als de referentie wordt aangepast
        RWFIELDTR("reflink", "fld", refoms, reftitle, { readonly: true }); // Melding
        // Opdrachttype. Alleen als ref_type is "O" (opdrachten)
%>      <tr id="tr_refopdrtype" <%=(ref_info.ref_type == 'O') ? "" : "style='display:none'"%>>
          <td class="label"><label><%=L("lcl_mld_typeopdr")%></label></td>
          <td>
            <input class="fld" id="refopdrtype" readonly value="<%=(ref_info.ref_type == 'O'? safe.htmlattr(ref_info.typeopdr_omschr) : '')%>">
          </td>
        </tr>
<%      // Opdrachtid. Alleen als ref_type is "O" (opdrachten)
%>      <tr id="tr_opdr_id" <%=(ref_info.ref_type == 'O') ? "" : "style='display:none'"%>>
          <td class="label"><label><%=L("lcl_opdr_id")%></label></td>
          <td><div class="fld readonly" id="opdr_id"><%=ref_info.opdr_id && ref_info.opdr_id? safe.html(ref_info.opdr_id) : ""%></div></td>
        </tr>
<%      RWFIELDTR("lev_uit", "fld", L("lcl_cnt_contractant"), (ref_info.lev_uit? ref_info.lev_uit : ""), { readonly: true });  // Leverancier/Uitvoerder
%>      <input type="hidden" name="lev_uit_key" id="lev_uit_key" value="<%=ref_info.lev_uit_key? ref_info.lev_uit_key : ""%>"><%
        RWFIELDTR("lev_num", "fld", L("lcl_prs_companies_leverancier_nr"), (ref_info.lev_uit_nr? ref_info.lev_uit_nr : ""), { trid: "tr_lev_num", readonly: true});  // leveranciernummer
        RWFIELDTR("lev_typ", "fld", L("lcl_prs_relatietype"), (ref_info.reltype_oms? ref_info.reltype_oms : ""), {readonly: true}); // Relatietype leverancier.
        //RWFIELDTR("lev_opm", "fldtxt", L("lcl_prs_company_remark"), (ref_info.lev_opm? safe.html(ref_info.lev_opm) : ""), { trid: "tr_lev_opm", readonly: true }); // Opmerking leverancier.
        RWTEXTAREATR("lev_opm", "fldtxt", L("lcl_prs_company_remark"), (ref_info.lev_opm? safe.html(ref_info.lev_opm) : ""), { trid: "tr_lev_opm", readonly: true }); // Opmerking leverancier.

        // Return waarde fin.getnomatchreasoncontract():
        // 00 (0): No match
        // 01 (1): Termijn kosten matchen
        // 10 (2): Totaal kosten matchen
        // 11 (3): Termijn kosten en totaal kosten matchen
        var matchresult = 3; // Standaard geen class nomatch
        if (ref_info.ref_type == "C" && fin_factuur.fin_status_key == 2)
        {
          matchresult = fin.getnomatchreasoncontract(ref_info, fin_factuur.totaalgefactureerd, fin_factuur.fin_totaal);
        }
        // Note: ik zou dolgraag overal suppressEmpty doen, maar dan ben je ook de placeholder kwijt die nodig is bij wijzigen referentie > niet mogelijk
        // TODO: hier graag vermelden of het incl of excl BTW is
        var totkosten = (ref_info.totbedrag? ref_info.totbedrag : "");
        var showkosten = (ref_info.totbedrag || ref_info.levkosten || ref_info.korting);
        if (ref_info.ref_type == "B")
        {   // levkosten en korting bestaan alleen voor ref_type=B
            totkosten += ref_info.levkosten - ref_info.korting;
        }
        RWFIELDTR("totbedrag", "fldshort"  + ((matchresult & 2) != 2? " nomatch" : ""), L("lcl_fin_CO_sum"), (showkosten?  S("currency_pref") + safe.curr(totkosten) + S("currency_suff") : ""), { readonly: true }); // Contract/Opdrachtbedrag
        var factuurschema = false;
        if (ref_info.ref_type == "C")
        {
          factuurschema = ref_info.factuurschema;
        }
        RWFIELDTR("termbedrag", "fldshort" + ((matchresult & 1) != 1? " nomatch" : ""), L("lcl_cnt_period_sum") + (factuurschema? " " + L("lcl_fin_divide_period").toLowerCase() : ""),   (ref_info.termbedrag? S("currency_pref") + safe.curr(ref_info.termbedrag) + S("currency_suff") : ""), { readonly: true }); // Contracttermijnbedrag
        RWFIELDTR("status", "fld",       L("lcl_status"),         (ref_info.status? ref_info.status : ""),                       { readonly: true }); // Status
        RWFIELDTR("kostenplaats_naam", "fld",       L("lcl_shared_account"), (ref_info.kostenplaats_naam? ref_info.kostenplaats_naam : ""), { readonly: true }); // kostenplaats nr+omschr
        RWFIELDTR("startdate", "flddate",   L("lcl_fin_start_date"), (ref_info.startdatum? ref_info.startdatum : ""), { readonly: true });
        RWFIELDTR("enddate", "flddate",   L("lcl_fin_end_date"),   (ref_info.einddatum? ref_info.einddatum : ""), { readonly: true });
        RWFIELDTR("gefactureerd", "fldshort", L("lcl_fin_invoiced"),   (ref_info.gefactureerd? S("currency_pref") + safe.curr(ref_info.gefactureerd) + S("currency_suff") : ""), { readonly: true }); // Reeds gefactureerd (ex.BTW)
        RWFIELDTR("gefactureerd_jaar", "fldshort", L("lcl_fin_invoiced_year").format(fin_factuur.fin_boekm_jaar), (ref_info.gefactureerd_jaar? S("currency_pref") + safe.curr(ref_info.gefactureerd_jaar) + S("currency_suff") : ""), { readonly: true }); // Reeds gefactureerd (ex.BTW) over 2009

        RWFIELDTR("gefactureerd_verdeel",
                  "fldshort",
                  L("lcl_fin_invoiced") + " " + L("lcl_fin_divide_period").toLowerCase(),
                  (ref_info.gefactureerd_verdeelperiode || ref_info.gefactureerd_verdeelperiode == 0? S("currency_pref") + safe.curr(ref_info.gefactureerd_verdeelperiode) + S("currency_suff") : ""),
                  {readonly: true, trhidden: !factuurschema}); // Reeds gefactureerd in de verdeelperiode (ex.BTW)

        // Opdracht omschrijving. Alleen als ref_type is "M" (melding opdrachten)
        // De opdracht omschrijving niet in een <textarea> omdat dit veld bij contact en bestelling referenties niet zichtbaar is
        // en bij wisselen van referenties wel gevuld kan worden
        // Dit omdat de functie $('textarea').autogrow() dan de foutmelding "Invalid argument." geeft. (standaard jquery component)
%>      <tr id="tr_opdr_omschr" <%=ref_info.show_omschr? "" : "style='display:none'"%>>
          <td class="label"><label><%=L("lcl_descr")%></label></td>
          <td><div class="fldtxt readonly" id="opdr_omschr"><%=ref_info.show_omschr && ref_info.opdr_omschr? safe.html(ref_info.opdr_omschr) : ""%></div></td>
        </tr>
<%      // Locatie gegevens. Alleen als ref_type is "C" (contracten)
        var loc_geg_string = [];
        if (ref_info.loc_geg && ref_info.loc_geg.length > 0)
        {
          for (i = 0; i < ref_info.loc_geg.length; i++)
          {
            loc_geg_string.push(ref_info.loc_geg[i].loc_desc);
          }
        } %>
        <tr id="tr_loc_omschr" <%=(ref_info.loc_geg && ref_info.loc_geg.length > 0)? "" : 'style="display: none"'%>>
          <td class="label"><label><%=L("lcl_location")%></label></td>
          <td><div class="fldtxt readonly" id="loc_omschr"><%=safe.html(loc_geg_string.join(",\n"))%></div></td>
        </tr>
<%
        BLOCK_END();

        BLOCK_START("finInvPartInfo", L("lcl_fin_deelfactuurgeg"), {icon: "fa-abacus", hidden: !(ref_info.aantalfacturen > 1)});
          // Aantal facturen met dezelfde factuurnummer (kan worden bijgewerkt tijdens het invullen)
          RWFIELDTR("fincnt", "fldshort", L("lcl_fin_aantal_facturen"), (ref_info.aantalfacturen ? ref_info.aantalfacturen : "0"), { readonly: true }); // Aantal facturen met dezelfde factuurnummer
          // Totaal bedrag van het aantal facturen met dezelfde factuurnummer
          RWFIELDTR("finsom", "fldshort", L("lcl_fin_totaal_bedrag"), S("currency_pref") + safe.curr(ref_info.totaalbedrag? ref_info.totaalbedrag : "0") + S("currency_suff"), { readonly: true }); // Totaal bedrag van het aantal facturen met dezelfde factuurnummer
          RWFIELDTR("finsominc", "fldshort", L("lcl_fin_totaal_bedrag_btw"), S("currency_pref") + safe.curr(ref_info.totaalbedrag? (ref_info.totaalbedrag + ref_info.totaalbtwbedrag) : "0") + S("currency_suff"), {readonly:true}); // Totaal bedrag van het aantal facturen met dezelfde factuurnummer
        BLOCK_END();

        generateFlexKenmerkCode ({ fin_key: (copy? fin_copy_key : fin_key), // Factuurnummer
                                   copy: copy,
                                   reado  : !this_fin.canChange,
                                   kenmerk_niveau: "F"
                                 });

        BLOCK_START("finItems", L("lcl_fin_invoicerows"), { icon: "fa-file-alt", wide: true, nopadding: true });
        // Regelkenmerken tonen
        if (!this_fin.canInvLinChange)
          fin.showReadableFINregels(fin_factuur);
        else
        {
          fin.showEditableFINregels(this_fin, serversidebtwtabel);
%>        <script  type="text/javascript" >
            $(function()
            {
              checkDiffTotalBTW();
            });
          </script>
<%
        }
        BLOCK_END();
        IFACE.FORM_END();
%>
      </div>
    </form>
    <% SUBFRAME_END(); %>
  </body>
</html>
<% ASPPAGE_END(); %>
