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

     File:         prs_edit_bedrijf_save.asp
     Description:  SUBMIT-form
*/ %>

<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../shared/save2db.inc" -->
<!-- #include file="../Shared/kenmerk_common.inc"-->

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

var bedrijf_key = getQParamInt("bedrijf_key", -1);
var levnr = getFParam("bdr_levnr", -1);

var isNew = (bedrijf_key < 0);

if (S("prs_bedrijf_leveranciernr_unique") == 1)
{ // Controleer of het leveranciersnummer al wordt gebruikt bij een bedrijf
  sql = "SELECT b.prs_bedrijf_key"
      + "  FROM prs_v_aanwezigbedrijf b"
      + " WHERE UPPER(b.prs_leverancier_nr) = " + safe.quoted_sql_upper(levnr);
  if (bedrijf_key > 0)
  {
    sql += " AND b.prs_bedrijf_key NOT IN (" + bedrijf_key + ")";
  }
  oRs = Oracle.Execute(sql);

  if (!oRs.eof)
  { // Er is al een bedrijf met dezelfde leveranciersnummer aanwezig
    abort_with_warning(L("lcl_prs_levnr_unique"));
  }
  oRs.close();
}

var intern = getFParamInt("bdr_intern", 0);
var fields =  [ { dbs: "prs_bedrijf_naam", typ: "varchar",  frm: "bdr_naam",                track:  L("lcl_prs_companies_name") },
                { dbs: "prs_bedrijf_post_adres", typ: "varchar",  frm: "bdr_pstadr",        track:  L("lcl_prs_companies_post_adres") },
                { dbs: "prs_bedrijf_post_postcode", typ: "varchar",  frm: "bdr_pstpstc",    track:  L("lcl_prs_companies_post_postcode") },
                { dbs: "prs_bedrijf_post_plaats", typ: "varchar",  frm: "bdr_pstpl",        track:  L("lcl_prs_companies_post_plaats") },
                { dbs: "prs_bedrijf_post_land", typ: "varchar",  frm: "bdr_pstland",        track:  L("lcl_prs_companies_post_land") },
                { dbs: "prs_bedrijf_bezoek_adres", typ: "varchar",  frm: "bdr_bezadr",      track:  L("lcl_prs_companies_bezoek_adres") },
                { dbs: "prs_bedrijf_bezoek_postcode", typ: "varchar",  frm: "bdr_bezpstc",  track:  L("lcl_prs_companies_bezoek_postcode") },
                { dbs: "prs_bedrijf_bezoek_plaats", typ: "varchar",  frm: "bdr_bezpl",      track:  L("lcl_prs_companies_bezoek_plaats") },
                { dbs: "prs_bedrijf_bezoek_land", typ: "varchar",  frm: "bdr_bezland",      track:  L("lcl_prs_companies_bezoek_land") },
                { dbs: "prs_bedrijf_telefoon", typ: "varchar",  frm: "bdr_tel",             track:  L("lcl_prs_companies_telefoon") },
                { dbs: "prs_bedrijf_fax", typ: "varchar",  frm: "bdr_fax",                  track:  L("lcl_prs_companies_fax") },
                { dbs: "prs_bedrijf_url", typ: "varchar",  frm: "bdr_url",                  track:  L("lcl_prs_companies_url") },
                { dbs: "prs_bedrijf_telefoon2", typ: "varchar",  frm: "bdr_tel2",           track:  L("lcl_prs_companies_telefoon2") },
                { dbs: "prs_bedrijf_contact_persoon", typ: "varchar",  frm: "bdr_cntper",   track:  L("lcl_prs_companies_contact_person") },
                { dbs: "prs_bedrijf_contact_telefoon", typ: "varchar",  frm: "bdr_cnttel",  track:  L("lcl_prs_companies_contact_telefoon") },
                { dbs: "prs_bedrijf_contact_fax", typ: "varchar",  frm: "bdr_cntfax",       track:  L("lcl_prs_companies_contact_fax") },
                { dbs: "prs_bedrijf_opmerking", typ: "varchar",  frm: "bdr_opm",            track: L("lcl_prs_companies_opmerking") },
                { dbs: "prs_bedrijf_opmerking2", typ: "varchar",  frm: "bdr_opm2",          track: L("lcl_prs_companies_opmerking2") },
                { dbs: "prs_bedrijf_uurloon", typ: "float",  frm: "bdr_uurln",              track: L("lcl_prs_companies_uurloon") },
                { dbs: "prs_bedrijf_mld_limiet", typ: "float",  frm: "bdr_mldlim",          track: L("lcl_prs_companies_mld_limiet") },
                { dbs: "prs_leverancier_nr", typ: "varchar",  frm: "bdr_levnr",             track: L("lcl_prs_companies_leverancier_nr") },
                { dbs: "prs_overeenkomst_nr", typ: "varchar",  frm: "bdr_ovknr",            track: L("lcl_prs_companies_overeenkomst_nr") },
                { dbs: "prs_overeenkomst_datum", typ: "date",  frm: "bdr_ovkdat",           track: L("lcl_prs_companies_overeenkomst_datum") },
                { dbs: "prs_bedrijf_leverancier", typ: "check",  frm: "bdr_lev",            track: L("lcl_prs_companies_leverancier") },
                { dbs: "prs_bedrijf_uitvoerende", typ: "check",  frm: "bdr_uitv",           track: L("lcl_prs_companies_leverancier_nr") },
                { dbs: "prs_bedrijf_contract", typ: "check",  frm: "bdr_cntr",              track: L("lcl_prs_companies_contract") },
                { dbs: "prs_bedrijf_intern", typ: "number",  val: (intern > 0 ? intern : null) }, // intern=0 opslaan als NULL
                { dbs: "prs_bedrijf_huurder", typ: "check",  frm: "bdr_huur",               track: L("lcl_prs_companies_huurder") },
                { dbs: "prs_bedrijf_email", typ: "varchar",  frm: "bdr_email",              track:  L("lcl_prs_companies_email") },
                { dbs: "prs_bedrijf_image_loc", typ: "varchar",  frm: "bdr_imgloc",         track: L("lcl_prs_companies_image_loc") },
                { dbs: "prs_bedrijf_details_loc", typ: "varchar",  frm: "bdr_detloc",       track: L("lcl_prs_companies_details_loc") },
                { dbs: "mld_adres_key_lev", typ: "key",  frm: "mld_adrlkey",                track: L("lcl_prs_companies_adres_lev"),  foreign: "mld_v_afleveradres" },
                { dbs: "mld_adres_key_fac", typ: "key",  frm: "mld_adrfkey",                track: L("lcl_prs_companies_adres_fac"),  foreign: "mld_v_factuuradres" },
                { dbs: "prs_bedrijf_ingids", typ: "check",  frm: "bdr_ingids",              track: L("lcl_prs_companies_ingids") },
                { dbs: "prs_bedrijf_order_confirm", typ: "check",  frm: "bdr_confirm",      track: L("lcl_prs_companies_order_confirm") },
                { dbs: "prs_bedrijf_xmlcatalogus_loc", typ: "varchar",  frm: "bdr_xmlcatl", track: L("lcl_prs_companies_xmlcatalogus_loc") },
                { dbs: "prs_bedrijf_bes_limiet", typ: "float",  frm: "bdr_beslim",          track: L("lcl_prs_companies_bes_limiet") },
                { dbs: "fin_btwtabel_key", typ: "key",  frm: "finbtwtabelkey",              track: L("fin_btwtabel"),                 foreign: "fin_btwtabel" },
                { dbs: "prs_bedrijf_bes_kosten", typ: "float",  frm: "bdr_beskst",          track: L("lcl_prs_companies_bes_kosten") },
                { dbs: "prs_relatietype_key", typ: "key",  frm: "prs_reltype_key",          track: L("lcl_prs_relatietype"),          foreign: "prs_relatietype" },
                { dbs: "prs_bedrijf_x",  typ: "float",  frm: "xcoord",                      track: L("lcl_geoxcoord")},
                { dbs: "prs_bedrijf_y",  typ: "float",  frm: "ycoord",                      track: L("lcl_geoycoord")}
              ];
// Checken of het eenheden selectveld met dagen/uren bij "Uitvoertijd" niet readonly was en wel is meegegeven.
// Als dit eenheden selectieveld readonly was dan is er geen waarde voor uitvoertijd ingevuld en moeten beide waarden null worden.
fields = shared.add_time_field(fields, "prs_bedrijf_t_uitvoertijd",   "bdr_uitvtijd",   "dayshours");

var warning = "";
var prsUpd;
if (bedrijf_key > 0)
{
  var prsUpd = buildTrackingUpdate("prs_bedrijf", " prs_bedrijf_key = " + bedrijf_key, fields);
  var err = Oracle.Execute(prsUpd.sql, true);
  if (err.friendlyMsg)
      warning = err.friendlyMsg;
}
else
{
  fields.push({  dbs: "prs_bedrijf_key",         typ: "key",      seq: "prs_s_prs_alluitvoerende_keys" });
  var regIns = buildInsert("prs_bedrijf", fields);
  var bedrijf_key = regIns.sequences["prs_bedrijf_key"];
  sql = regIns.sql;
  var err = Oracle.Execute(sql, true);
  if (err.friendlyMsg)
    warning = err.friendlyMsg;
  // Geen trackaction voor nieuwe bedrijven.
}

var flextrack = [];
if (!warning)
{
  currentKenmerkenSQL = "SELECT kl.prs_kenmerk_key"
                      + "     , kl.prs_kenmerklink_waarde"
                      + "     , k.prs_kenmerk_toonbaar"
                      + "     , k.fac_functie_key"
                      + "  FROM prs_kenmerklink kl"
                      + "     , prs_kenmerk k"
                      + " WHERE k.prs_kenmerk_key = kl.prs_kenmerk_key"
                      + "   AND prs_kenmerklink_verwijder IS NULL"
                      + "   AND prs_link_key = " + bedrijf_key;
 var allKenmerkenSQL = " SELECT " + lcl.xsql('k.prs_kenmerk_omschrijving', 'k.prs_kenmerk_key') + " kenmerk_omschrijving"
                     + "      , k.prs_kenmerk_kenmerktype    kenmerk_kenmerktype"
                     + "      , k.prs_kenmerk_systeem        kenmerk_systeem"
                     + "      , k.prs_kenmerk_toonbaar       kenmerk_readonly"
                     + "      , k.prs_kenmerk_uniek          kenmerk_uniek"
                     + "      , fac_kenmerkdomein_key"
                     + "   FROM prs_kenmerk k "
                     + "  WHERE k.prs_kenmerk_verwijder IS NULL"
                     + "    AND k.prs_kenmerk_key = "; /* wordt in saveFlexkenmerken uitgebreid */

  flextrack =
    saveFlexKenmerken(bedrijf_key, { kenmerkTable: "prs_kenmerklink",
                                     kenmerkParentKey : "prs_link_key",
                                     kenmerkWaarde: "prs_kenmerklink_waarde",
                                     kenmerkKey: "prs_kenmerk_key",
                                     kenmerkToonbaar: "prs_kenmerk_toonbaar",
                                     currentKenmerkenSQL: currentKenmerkenSQL,
                                     allKenmerkenSQL: allKenmerkenSQL,
                                     requestQF: Request.Form,
                                     module: "PRS",
                                     moduleName: "prs_kenmerklink_niveau",
                                     moduleVal: "B",
                                     isNew: isNew,
                                     tracking: true,
                                     flexPath: "PRS/B"
                            });
  if (!isNew)
  {
    if (flextrack.length)
    {
      if (prsUpd && prsUpd.trackarray)
        prsUpd.trackarray = prsUpd.trackarray.concat(flextrack);
      else
        prsUpd.trackarray = flextrack;
    }
    if (prsUpd.trackarray.length)
      shared.trackaction("PRSUPB", bedrijf_key, prsUpd.trackarray.join("\n") );
  }
}
%>
<html>
  <head>
<%  FCLTHeader.Generate() %>
    <script>
        $(function ()
        {
          FcltMgr.closeDetail(window, { bedrijf_key: <%=bedrijf_key%>,
                                        warning: "<%=safe.jsstring(warning)%>",
                                        keepForm: <%=warning?"true":"false"%>
                                       });
        });
    </script>
  </head>
  <body>
  </body>
</html>
<% ASPPAGE_END(); %>
