Alle API's via nieuwe stijl fields

svn path=/Website/trunk/; revision=24435
This commit is contained in:
Jos Groot Lipman
2015-03-13 13:34:37 +00:00
parent 9bcd3004ea
commit 8decd00522
31 changed files with 334 additions and 359 deletions

View File

@@ -91,6 +91,9 @@ api2 = {
Session.Codepage = 65001; // We doen *uitsluitend* utf-8
Response.Charset = 'utf-8';
if (typeof model == "function") // Nieuwe stijl is het een function. Even compatible.
model = new model();
api2.authenticate(model);
var method = String(Request.ServerVariables("REQUEST_METHOD"));
@@ -152,8 +155,8 @@ api2 = {
var result = { id: model.records_name,
methods: [],
includes: [],
filters: [],
labels: api2.labels(model) };
fields: []
};
for (var i in model.includes)
result.includes.push(i);
if ("REST_GET" in model)
@@ -167,10 +170,11 @@ api2 = {
for (var fld in model.fields)
{ // TODO: We missen hard-coded filters als reservableequipment/allowedinroom nu nog
if (model.fields[fld].filter)
result.filters.push({ id: fld,
if (!model.fields.hidden)
result.fields.push({ id: fld,
filter: model.fields[fld].filter,
type: model.fields[fld].typ
type: model.fields[fld].typ,
label: model.fields[fld].label
});
}
}
@@ -240,19 +244,6 @@ api2 = {
}
return filter;
},
labels: function _labels(model)
{
var result = {};
for (var fld in model.fields)
{
if (model.fields[fld].label)
result[fld] = model.fields[fld].label;
else if (typeof model.fields[fld].track == 'string')
result[fld] = model.fields[fld].track;
}
return result;
},
/*
We begonnen ooit met fields als een array van { name: "xxx", dbs: "yyyy", .... }
Maar later bleek het handiger een hash van "xxx": { dbs: "yyyy", .... }
@@ -262,15 +253,8 @@ api2 = {
*/
normalize: function _normalize(model)
{
if (!model.fields.length)
return; // het is al een hash
var newfields = {};
for (var i in model.fields)
{
newfields[model.fields[i]["name"]] = model.fields[i];
//delete model.fields[i]["name"];
}
model.fields = newfields;
if (model.fields.length)
OLD_STYLE_MODEL_DETECTED
},
form2JSONdata: function _form2JSONdata(model, params, formfields) // Maak een jsondata-object voor gebruik vanuit model_xxx.inc
{

View File

@@ -4,8 +4,7 @@
File: model_apis.inc
Description: Api model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: Api model.
Parameters:
Context:
@@ -16,11 +15,12 @@
<%
model_apis =
{
table: null,
primary: null,
table: "apis",
primary: "id",
records_name: "apis",
record_name: "api",
fields: [],
fields : { "id" : { xxdbs: "fac_usrrap_key", typ: "varchar", label: "Api", filter: "exact" }},
REST_GET: function _GET(params)
{
var autfunction = "WEB_PRSSYS"; // is dit niet erg streng?
@@ -57,6 +57,10 @@ model_apis =
},
DELETE: function (params) /* delete api */
{
}
},
search: { autosubmit: true },
list: { default_url: "api2/{0}.scf" }
// list: { default_url: "api2/{0}.api?pretty=1" }
}
%>

View File

@@ -4,8 +4,7 @@
File: model_appointments.inc
Description: Afspraken model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: Afspraken model.
Parameters:
Context:
@@ -106,7 +105,7 @@ model_appointments =
+ " ORDER BY bez_actie_default DESC NULLS LAST, bez_actie_omschrijving";
var oRs = Oracle.Execute(sqla);
fields.push({ dbs: "bez_actie_key", typ: "key", val: oRs("bez_actie_key").Value });
fields["action"] = { dbs: "bez_actie_key", typ: "key", val: oRs("bez_actie_key").Value };
oRs.Close()
}
}
@@ -143,9 +142,9 @@ model_appointments =
var fields = api2.update_fields(params, model_appointments, jsondata); // Build updater
model_appointments._validate_fields(fields, params, jsondata);
fields.push({ dbs: "bez_afspraak_key", typ: "key", seq: "bez_s_bez_afspraak_key" });
fields.push({ dbs: "bez_afspraak_host_key", typ: "key", val: user_key });
fields.push({ dbs: "bez_afspraak_contact_key", typ: "key", val: user_key });
fields["id"] = { dbs: "bez_afspraak_key", typ: "key", seq: "bez_s_bez_afspraak_key" };
fields["host"] = { dbs: "bez_afspraak_host_key", typ: "key", val: user_key };
fields["contact"] = { dbs: "bez_afspraak_contact_key", typ: "key", val: user_key };
var bezIns = buildInsert("bez_afspraak", fields, { noValidateToken: true });
var afs_key = bezIns.sequences["bez_afspraak_key"];

View File

@@ -4,8 +4,7 @@
File: model_buildings.inc
Description: Gebouwen model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: Gebouwen model.
Parameters:
Context:
@@ -21,15 +20,15 @@ model_buildings =
primary: "alg_gebouw_key",
records_name: "buildings",
record_name: "building",
fields: [{ name: "id", dbs: "alg_gebouw_key", typ: "key", filter: "exact" },
{ name: "code", dbs: "alg_gebouw_code", typ: "varchar", filter: "like" },
{ name: "name", dbs: "alg_gebouw_naam", typ: "varchar", filter: "like" },
fields: {"id" : { dbs: "alg_gebouw_key", typ: "key", filter: "exact" },
"code" : { dbs: "alg_gebouw_code", typ: "varchar", filter: "like" },
"name" : { dbs: "alg_gebouw_naam", typ: "varchar", filter: "like" },
// is afgeleid gegeven { name: "description", dbs: "alg_gebouw_omschrijving", typ: "varchar"},
{ name: "visitable" , dbs: "alg_gebouw_bez", typ: "check", filter: "exact"},
{ name: "location", dbs: "alg_locatie_key", typ: "key", foreign: "alg_locatie", filter: "exact"},
{ name: "coordinate_x", dbs: "alg_gebouw_x", typ: "number"},
{ name: "coordinate_y", dbs: "alg_gebouw_y", typ: "number"},
],
"visitable" : { dbs: "alg_gebouw_bez", typ: "check", filter: "exact"},
"location" : { dbs: "alg_locatie_key", typ: "key", foreign: "alg_locatie", filter: "exact"},
"coordinate_x": { dbs: "alg_gebouw_x", typ: "number"},
"coordinate_y": { dbs: "alg_gebouw_y", typ: "number"}
},
REST_GET: function _GET(params)
{
var urole = "fe"; // TODO: Moet echt niet ter zake doen

View File

@@ -4,12 +4,11 @@
File: model_contours.inc
Description: CAD contour model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: CAD contour model.
Parameters:
Context:
Notes: Dummy placeholder
Notes:
*/
%>
<!-- #include file="../Shared/json2.js" -->
@@ -23,13 +22,13 @@ model_cadcontours =
aliasprefix: "CAD.",
records_name: "cadcontours",
record_name: "cadcontour",
fields: [{ name: "id", dbs: "cad_imp_contour_key", typ: "key", filter: "exact" },
{ name: "name", dbs: "cad_imp_contour_nr", typ: "varchar", filter: "like" },
{ name: "cadarea", dbs: "cad_imp_contour_opp", typ: "float" },
{ name: "cadalt1", dbs: "cad_imp_contour_opp_alt1", typ: "float" },
{ name: "cadalt2", dbs: "cad_imp_contour.cad_imp_contour_opp_alt2", typ: "float" },
{ name: "concept", dbs: "cad_imp_contour_concept", typ: "number" }
],
fields: {"id" : { dbs: "cad_imp_contour_key", typ: "key", filter: "exact" },
"name" : { dbs: "cad_imp_contour_nr", typ: "varchar", filter: "like" },
"cadarea" : { dbs: "cad_imp_contour_opp", typ: "float" },
"cadalt1" : { dbs: "cad_imp_contour_opp_alt1", typ: "float" },
"cadalt2" : { dbs: "cad_imp_contour.cad_imp_contour_opp_alt2", typ: "float" },
"concept" : { dbs: "cad_imp_contour_concept", typ: "number" }
},
_check_authorization: function(params, method)
{

View File

@@ -4,8 +4,7 @@
File: model_companies.inc
Description: Bedrijven model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: Bedrijven model.
Parameters:
Context:
@@ -18,33 +17,33 @@ model_companies =
primary: "prs_bedrijf_key",
records_name: "companies",
record_name: "company",
fields: [{ name: "id", dbs: "prs_bedrijf_key" , typ: "key", filter: "exact" },
{ name: "name", dbs: "prs_bedrijf_naam" , typ: "varchar", filter: "like" },
{ name: "postaddress", dbs: "prs_bedrijf_post_adres" , typ: "varchar", filter: "like" },
{ name: "postzipcode", dbs: "prs_bedrijf_post_postcode" , typ: "varchar", filter: "like" },
{ name: "postcity", dbs: "prs_bedrijf_post_plaats" , typ: "varchar", filter: "like" },
{ name: "postcountry", dbs: "prs_bedrijf_post_land" , typ: "varchar", filter: "like" },
{ name: "visitaddress", dbs: "prs_bedrijf_bezoek_adres" , typ: "varchar", filter: "like" },
{ name: "visitzipcode", dbs: "prs_bedrijf_bezoek_postcode" , typ: "varchar", filter: "like" },
{ name: "visitcity", dbs: "prs_bedrijf_bezoek_plaats" , typ: "varchar", filter: "like" },
{ name: "visitcountry", dbs: "prs_bedrijf_bezoek_land" , typ: "varchar", filter: "like" },
{ name: "phone", dbs: "prs_bedrijf_telefoon" , typ: "varchar", filter: "like" },
{ name: "phone2", dbs: "prs_bedrijf_telefoon2" , typ: "varchar", filter: "like" }, /*?*/
{ name: "contactname", dbs: "prs_bedrijf_contact_persoon" , typ: "varchar", filter: "like" },
{ name: "contactphone", dbs: "prs_bedrijf_contact_telefoon", typ: "varchar", filter: "like" },
{ name: "remark", dbs: "prs_bedrijf_opmerking" , typ: "varchar", filter: "like" },
{ name: "remark2", dbs: "prs_bedrijf_opmerking2" , typ: "varchar", filter: "like" }, /*?*/
{ name: "hourrate", dbs: "prs_bedrijf_uurloon" , typ: "float", filter: "like" },
{ name: "code", dbs: "prs_leverancier_nr" , typ: "varchar", filter: "like" },
{ name: "agreement", dbs: "prs_overeenkomst_nr" , typ: "varchar", filter: "like" },
{ name: "agreementdate",dbs: "prs_overeenkomst_datum" , typ: "date", filter: "range" },
{ name: "isinternal", dbs: "prs_bedrijf_intern" , typ: "varchar", filter: "exact" },
{ name: "issupplier", dbs: "prs_bedrijf_leverancier" , typ: "varchar", filter: "exact" },
{ name: "isexecutor", dbs: "prs_bedrijf_uitvoerende" , typ: "varchar", filter: "exact" }, /*naam?*/
{ name: "iscontractor", dbs: "prs_bedrijf_contract" , typ: "varchar", filter: "exact" },
{ name: "isrenter", dbs: "prs_bedrijf_huurder" , typ: "varchar", filter: "exact" },
{ name: "email", dbs: "prs_bedrijf_email" , typ: "varchar", filter: "like" }
],
fields: {"id" : { dbs: "prs_bedrijf_key" , typ: "key", filter: "exact" },
"name" : { dbs: "prs_bedrijf_naam" , typ: "varchar", filter: "like" },
"postaddress" : { dbs: "prs_bedrijf_post_adres" , typ: "varchar", filter: "like" },
"postzipcode" : { dbs: "prs_bedrijf_post_postcode" , typ: "varchar", filter: "like" },
"postcity" : { dbs: "prs_bedrijf_post_plaats" , typ: "varchar", filter: "like" },
"postcountry" : { dbs: "prs_bedrijf_post_land" , typ: "varchar", filter: "like" },
"visitaddress" : { dbs: "prs_bedrijf_bezoek_adres" , typ: "varchar", filter: "like" },
"visitzipcode" : { dbs: "prs_bedrijf_bezoek_postcode" , typ: "varchar", filter: "like" },
"visitcity" : { dbs: "prs_bedrijf_bezoek_plaats" , typ: "varchar", filter: "like" },
"visitcountry" : { dbs: "prs_bedrijf_bezoek_land" , typ: "varchar", filter: "like" },
"phone" : { dbs: "prs_bedrijf_telefoon" , typ: "varchar", filter: "like" },
"phone2" : { dbs: "prs_bedrijf_telefoon2" , typ: "varchar", filter: "like" }, /*?*/
"contactname" : { dbs: "prs_bedrijf_contact_persoon" , typ: "varchar", filter: "like" },
"contactphone" : { dbs: "prs_bedrijf_contact_telefoon", typ: "varchar", filter: "like" },
"remark" : { dbs: "prs_bedrijf_opmerking" , typ: "varchar", filter: "like" },
"remark2" : { dbs: "prs_bedrijf_opmerking2" , typ: "varchar", filter: "like" }, /*?*/
"hourrate" : { dbs: "prs_bedrijf_uurloon" , typ: "float", filter: "like" },
"code" : { dbs: "prs_leverancier_nr" , typ: "varchar", filter: "like" },
"agreement" : { dbs: "prs_overeenkomst_nr" , typ: "varchar", filter: "like" },
"agreementdate": { dbs: "prs_overeenkomst_datum" , typ: "date", filter: "range" },
"isinternal" : { dbs: "prs_bedrijf_intern" , typ: "varchar", filter: "exact" },
"issupplier" : { dbs: "prs_bedrijf_leverancier" , typ: "varchar", filter: "exact" },
"isexecutor" : { dbs: "prs_bedrijf_uitvoerende" , typ: "varchar", filter: "exact" }, /*naam?*/
"iscontractor" : { dbs: "prs_bedrijf_contract" , typ: "varchar", filter: "exact" },
"isrenter" : { dbs: "prs_bedrijf_huurder" , typ: "varchar", filter: "exact" },
"email" : { dbs: "prs_bedrijf_email" , typ: "varchar", filter: "like" }
},
REST_GET: function _GET(params)
{
var autfunction = "WEB_RELMAN";

View File

@@ -4,8 +4,7 @@
File: model_contracts.inc
Description: contract model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: contract model.
Parameters:
Context:
@@ -24,21 +23,21 @@ model_contracts =
primary: "cnt_contract_key",
records_name: "contracts",
record_name: "contract",
fields: [{ name: "id", dbs: "cnt_contract_key", typ: "key", filter: "exact" },
{ name: "name", dbs: "cnt_contract_nummer_intern", typ: "varchar", filter: "exact" },
{ name: "description", dbs: "cnt_contract_omschrijving", typ: "varchar", filter: "like" },
{ name: "startdate", dbs: "cnt_contract_looptijd_van", typ: "date", track: L("lcl_cnt_date_start"), filter: "range" },
{ name: "reminderdate", dbs: "cnt_contract_rappeldatum", typ: "date", track: L("lcl_cnt_rappel_date"), filter: "range",
sql: "cnt.cnt_getRappeldatum(cnt_contract.cnt_contract_key)" },
{ name: "canceldate", dbs: "cnt_contract_opzegdatum", typ: "date", track: L("lcl_cnt_cancel_date"), filter: "range",
sql: "cnt.cnt_getOpzegdatum(cnt_contract.cnt_contract_key)" },
{ name: "enddate", dbs: "cnt_contract_looptijd_tot", typ: "date", track: L("lcl_cnt_enddate"), filter: "range" },
{ name: "contractor", dbs: "cnt_prs_bedrijf_key", typ: "key", foreign: "prs_bedrijf", track: L("lcl_cnt_contractant"), filter: "exact" },
{ name: "status", dbs: "cnt_contract_status", typ: "key", foreign: cnt.getcntstatustext, track: L("lcl_status"), filter: "exact" },
{ name: "department", dbs: "prs_afdeling_key_eig", typ: "key", foreign: "prs_afdeling", track: L("lcl_cnt_owner"), filter: "exact" },
{ name: "service", dbs: "prs_dienst_key", typ: "key", foreign: "prs_dienst", track: L("lcl_prs_companies_dienst"), filter: "exact" },
{ name: "contracttype", dbs: "ins_discipline_key", typ: "key", foreign: "cnt_discipline", track: L("lcl_cnt_srttype"), filter: "exact" }
],
fields: {"id" : { dbs: "cnt_contract_key", typ: "key", filter: "exact" },
"name" : { dbs: "cnt_contract_nummer_intern", typ: "varchar", filter: "exact" },
"description" : { dbs: "cnt_contract_omschrijving", typ: "varchar", filter: "like" },
"startdate" : { dbs: "cnt_contract_looptijd_van", typ: "date", track: true, label: L("lcl_cnt_date_start"), filter: "range" },
"reminderdate" : { dbs: "cnt_contract_rappeldatum", typ: "date", track: true, label: L("lcl_cnt_rappel_date"), filter: "range",
sql: "cnt.cnt_getRappeldatum(cnt_contract.cnt_contract_key)" },
"canceldate" : { dbs: "cnt_contract_opzegdatum", typ: "date", track: true, label: L("lcl_cnt_cancel_date"), filter: "range",
sql: "cnt.cnt_getOpzegdatum(cnt_contract.cnt_contract_key)" },
"enddate" : { dbs: "cnt_contract_looptijd_tot", typ: "date", track: true, label: L("lcl_cnt_enddate"), filter: "range" },
"contractor" : { dbs: "cnt_prs_bedrijf_key", typ: "key", foreign: "prs_bedrijf", track: true, label: L("lcl_cnt_contractant"), filter: "exact" },
"status" : { dbs: "cnt_contract_status", typ: "key", foreign: cnt.getcntstatustext, track: true, label: L("lcl_status"), filter: "exact" },
"department" : { dbs: "prs_afdeling_key_eig", typ: "key", foreign: "prs_afdeling", track: true, label: L("lcl_cnt_owner"), filter: "exact" },
"service" : { dbs: "prs_dienst_key", typ: "key", foreign: "prs_dienst", track: true, label: L("lcl_prs_companies_dienst"), filter: "exact" },
"contracttype" : { dbs: "ins_discipline_key", typ: "key", foreign: "cnt_discipline", track: true, label: L("lcl_cnt_srttype"), filter: "exact" }
},
includes: {
},

View File

@@ -4,10 +4,9 @@
File: model_departments.inc
Description: department model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: department model.
Parameters:
Context:
Notes: Dummy placeholder
Notes:
*/

View File

@@ -4,8 +4,7 @@
File: model_districts.inc
Description: District model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: District model.
Parameters:
Context:

View File

@@ -4,8 +4,7 @@
File: model_floors.inc
Description: floor model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: floor model.
Parameters:
Context:
@@ -21,12 +20,12 @@ model_floors =
primary: "alg_verdieping_key",
records_name: "floors",
record_name: "floor",
fields: [{ name: "id", dbs: "alg_verdieping_key", typ: "key", filter: "exact" },
{ name: "name", dbs: "alg_verdieping_omschrijving", typ: "varchar"},
{ name: "code", dbs: "alg_verdieping_code", typ: "varchar", filter: "exact"},
{ name: "sequence", dbs: "alg_verdieping_volgnr", typ: "number", filter: "exact"}, /* range zou ook kunnen */
{ name: "building", dbs: "alg_gebouw_key", typ: "key", foreign: "alg_gebouw"}
],
fields: {"id" : { dbs: "alg_verdieping_key", typ: "key", filter: "exact" },
"name" : { dbs: "alg_verdieping_omschrijving", typ: "varchar"},
"code" : { dbs: "alg_verdieping_code", typ: "varchar", filter: "exact"},
"sequence": { dbs: "alg_verdieping_volgnr", typ: "number", filter: "exact"}, /* range zou ook kunnen */
"building": { dbs: "alg_gebouw_key", typ: "key", foreign: "alg_gebouw"}
},
REST_GET: function _GET(params)
{
var urole = "fe"; // TODO: Moet echt niet ter zake doen

View File

@@ -4,8 +4,7 @@
File: model_invoicelines.inc
Description: Factuurregel model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: Factuurregel model.
Parameters:
Context:
@@ -25,16 +24,16 @@ model_invoicelines =
primary: "fin_factuurregel_key",
records_name: "invoicelines",
record_name: "invoiceline",
fields: [{ name: "id", dbs: "fin_factuurregel_key", typ: "key", filter: "exact" },
{ name: "name", dbs: "fin_factuurregel_omschrijving", typ: "varchar", track: L("lcl_descr"), filter: "like" },
{ name: "line", dbs: "fin_factuurregel_nr", typ: "number" },
{ name: "total", dbs: "fin_factuurregel_totaal", typ: "float", track: L("lcl_fin_total_sum_exBTW") },
{ name: "vat", dbs: "fin_factuurregel_btw", typ: "float", track: L("lcl_fin_total_sum_inBTW") },
{ name: "reference", dbs: "fin_factuurregel_referentie", typ: "varchar", track: L("lcl_fin_referencecode"), filter: "like" },
{ name: "vatvalue", dbs: "fin_btwtabelwaarde_key", typ: "key", foreign: "fin_btwtabelwaarde", track: L("lcl_fin_btwtarief"), filter: "exact" },
{ name: "costtype", dbs: "prs_kostensoort_key", typ: "key", foreign: "prs_kostensoort", track: L("lcl_shared_charge_type"), filter: "exact" }
// niet terug linken{ name: "factuur", dbs: "fin_factuur_key", typ: "key", foreign: "fac_factuur", filter: "exact" }
],
fields: { "id" : { dbs: "fin_factuurregel_key", typ: "key", filter: "exact" },
"name" : { dbs: "fin_factuurregel_omschrijving", typ: "varchar", track: true, label: L("lcl_descr"), filter: "like" },
"line" : { dbs: "fin_factuurregel_nr", typ: "number" },
"total" : { dbs: "fin_factuurregel_totaal", typ: "float", track: true, label: L("lcl_fin_total_sum_exBTW") },
"vat" : { dbs: "fin_factuurregel_btw", typ: "float", track: true, label: L("lcl_fin_total_sum_inBTW") },
"reference": { dbs: "fin_factuurregel_referentie", typ: "varchar", track: true, label: L("lcl_fin_referencecode"), filter: "like" },
"vatvalue" : { dbs: "fin_btwtabelwaarde_key", typ: "key", foreign: "fin_btwtabelwaarde", track: true, label: L("lcl_fin_btwtarief"), filter: "exact" },
"costtype" : { dbs: "prs_kostensoort_key", typ: "key", foreign: "prs_kostensoort", track: true, label: L("lcl_shared_charge_type"), filter: "exact" }
// niet terug linken{ name: "factuur", dbs: "fin_factuur_key", typ: "key", foreign: "fac_factuur", filter: "exact" }
},
_pre_analyze_fields: function (params, jsondata) /* analyseer inkomende jsondata, common voor PUT en POST */
{
@@ -166,9 +165,9 @@ model_invoicelines =
var volgnr = oRs("volgnr").value + 1;
oRs.Close();
fields.push({ dbs: "fin_factuur_key", typ: "key", val: factuur_key });
fields.push({ dbs: "fin_factuurregel_key", typ: "key", seq: "fin_s_fin_factuurregel_key" });
fields.push({ dbs: "fin_factuurregel_nr", typ: "number", val: volgnr });
fields["invoice"] = { dbs: "fin_factuur_key", typ: "key", val: factuur_key };
fields["id"] = { dbs: "fin_factuurregel_key", typ: "key", seq: "fin_s_fin_factuurregel_key" };
fields["line"] = { dbs: "fin_factuurregel_nr", typ: "number", val: volgnr };
var finIns = buildInsert("fin_factuurregel", fields, { noValidateToken: true });
var factuurregel_key = finIns.sequences["fin_factuurregel_key"];

View File

@@ -4,8 +4,7 @@
File: model_invoices.inc
Description: Factuur model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: Factuur model.
Parameters:
Context:
@@ -35,25 +34,25 @@ model_invoices =
record_name: "invoice",
// Het interne factuurnr is de id, het externe nummer is name
fields: [{ name: "id", dbs: "fin_factuur_key", typ: "key", filter: "exact" },
{ name: "invoicedate", dbs: "fin_factuur_datum", typ: "datetime", track: L("lcl_fin_findate"), filter: "range" },
/*readonly*/ { name: "creditor", dbs: "prs_bedrijf_key", typ: "key", foreign: "prs_bedrijf", track: L("lcl_ord_company_uit"), filter: "exact",
sql: "COALESCE(mld_opdr.mld_uitvoerende_keys, bes_bestelopdr.prs_bedrijf_key, cnt_contract.cnt_prs_bedrijf_key)" },
/*readonly*/ { name: "referencetype", dbs: "dummy", typ: "varchar", filter: "exact",
sql: "DECODE(fin_factuur.mld_opdr_key, NULL, DECODE(fin_factuur.bes_bestelopdr_key, NULL, DECODE(fin_factuur.cnt_contract_key, NULL, '?', 'C'), 'B'), 'O')" },
{ name: "name", dbs: "fin_factuur_nr", typ: "varchar", track: L("lcl_fin_invoice_nr_extern"), filter: "exact" },
{ name: "order", dbs: "mld_opdr_key", typ: "key", foreign: "mld_opdr", filter: "exact"},
{ name: "contract", dbs: "cnt_contract_key", typ: "key", foreign: "cnt_contract", filter: "exact"},
{ name: "purchaseorder", dbs: "bes_bestelopdr_key", typ: "key", foreign: "bes_bestelopdr", filter: "exact"},
{ name: "total", dbs: "fin_factuur_totaal", typ: "float", track: L("lcl_fin_totaal_bedrag"), filter: "range" },
{ name: "vat", dbs: "fin_factuur_totaal_btw", typ: "float", track: L("lcl_fin_totaal_bedrag_btw"), filter: "range" },
{ name: "status", dbs: "fin_factuur_statuses_key", typ: "key", foreign: fin.getfinstatustext, track: L("lcl_fin_fin_status"), filter: "exact" },
{ name: "accountingperiod", dbs: "fin_factuur_boekmaand", typ: "varchar", track: L("lcl_fin_divide_period"), filter: "exact" },
{ name: "reference", dbs: "fin_factuur_debiteur_nr", typ: "varchar", track: L("lcl_fin_debtor_nr"), filter: "like" },
{ name: "costtype", dbs: "prs_kostensoort_key", typ: "key", foreign: "prs_kostensoort", track: L("lcl_shared_charge_type"), filter: "exact" },
{ name: "contact", dbs: "prs_perslid_key_user", typ: "key", foreign: "prs_perslid", track: L("lcl_mld_name"), filter: "exact" },
{ name: "remark", dbs: "fin_factuur_opmerking", typ: "varchar", track: L("lcl_fin_remark"), filter: "like" }
],
fields: {"id" : { dbs: "fin_factuur_key", typ: "key", filter: "exact" },
"invoicedate" : { dbs: "fin_factuur_datum", typ: "datetime", track: true, label: L("lcl_fin_findate"), filter: "range" },
/*readonly*/ "creditor" : { dbs: "prs_bedrijf_key", typ: "key", foreign: "prs_bedrijf", track: true, label: L("lcl_ord_company_uit"), filter: "exact",
sql: "COALESCE(mld_opdr.mld_uitvoerende_keys, bes_bestelopdr.prs_bedrijf_key, cnt_contract.cnt_prs_bedrijf_key)" },
/*readonly*/ "referencetype" : { dbs: "dummy", typ: "varchar", filter: "exact",
sql: "DECODE(fin_factuur.mld_opdr_key, NULL, DECODE(fin_factuur.bes_bestelopdr_key, NULL, DECODE(fin_factuur.cnt_contract_key, NULL, '?', 'C'), 'B'), 'O')" },
"name" : { dbs: "fin_factuur_nr", typ: "varchar", track: true, label: L("lcl_fin_invoice_nr_extern"), filter: "exact" },
"order" : { dbs: "mld_opdr_key", typ: "key", foreign: "mld_opdr", filter: "exact"},
"contract" : { dbs: "cnt_contract_key", typ: "key", foreign: "cnt_contract", filter: "exact"},
"purchaseorder" : { dbs: "bes_bestelopdr_key", typ: "key", foreign: "bes_bestelopdr", filter: "exact"},
"total" : { dbs: "fin_factuur_totaal", typ: "float", track: true, label: L("lcl_fin_totaal_bedrag"), filter: "range" },
"vat" : { dbs: "fin_factuur_totaal_btw", typ: "float", track: true, label: L("lcl_fin_totaal_bedrag_btw"), filter: "range" },
"status" : { dbs: "fin_factuur_statuses_key", typ: "key", foreign: fin.getfinstatustext, track: true, label: L("lcl_fin_fin_status"), filter: "exact" },
"accountingperiod": { dbs: "fin_factuur_boekmaand", typ: "varchar", track: true, label: L("lcl_fin_divide_period"), filter: "exact" },
"reference" : { dbs: "fin_factuur_debiteur_nr", typ: "varchar", track: true, label: L("lcl_fin_debtor_nr"), filter: "like" },
"costtype" : { dbs: "prs_kostensoort_key", typ: "key", foreign: "prs_kostensoort", track: true, label: L("lcl_shared_charge_type"), filter: "exact" },
"contact" : { dbs: "prs_perslid_key_user", typ: "key", foreign: "prs_perslid", track: true, label: L("lcl_mld_name"), filter: "exact" },
"remark" : { dbs: "fin_factuur_opmerking", typ: "varchar", track: true, label: L("lcl_fin_remark"), filter: "like" }
},
includes: {"invoicelines": { model: model_invoicelines,
joinfield: "fin_factuur_key"
}
@@ -162,7 +161,7 @@ model_invoices =
model_invoices._analyze_fields(fields, params, jsondata);
model_invoices._validate_fields(fields, params, jsondata);
fields.push({ dbs: "fin_factuur_key", typ: "key", seq: "fin_s_fin_factuur_key" });
fields["id"] = { dbs: "fin_factuur_key", typ: "key", seq: "fin_s_fin_factuur_key" };
var finIns = buildInsert("fin_factuur", fields, { noValidateToken: true} );
var factuur_key = finIns.sequences["fin_factuur_key"];

View File

@@ -96,8 +96,8 @@ model_issueobjects =
var new_key = null;
if (params.isNew)
{
fields.push({ dbs: "mld_melding_key", typ: "key", val: parent_key });
fields.push({ dbs: "mld_melding_object_key", typ: "key", seq: "mld_s_mld_object_key" });
fields["issue"] = { dbs: "mld_melding_key", typ: "key", val: parent_key };
fields["id"] = { dbs: "mld_melding_object_key", typ: "key", seq: "mld_s_mld_object_key" };
var mldIns = buildInsert("mld_melding_object", fields, { noValidateToken: true });
new_key = mldIns.sequences["mld_melding_object_key"];

View File

@@ -471,10 +471,10 @@ model_issues =
model_issues._analyze_fields(fields, params, jsondata);
model_issues._validate_fields(fields, params, jsondata);
fields.push({ dbs: "mld_alg_onroerendgoed_keys", typ: "key", val: (params.data.alg_onroerendgoed_keys==-1 ? null : params.data.alg_onroerendgoed_keys) });
fields.push({ dbs: "mld_meldbron_key", typ: "key", val: S("mld_meldbron_key") });
fields.push({ dbs: "mld_melding_module", typ: "varchar", val: "MLD" });
fields.push({ dbs: "mld_melding_key", typ: "key", seq: "mld_s_mld_melding_key" });
fields["alg"] = { dbs: "mld_alg_onroerendgoed_keys", typ: "key", val: (params.data.alg_onroerendgoed_keys==-1 ? null : params.data.alg_onroerendgoed_keys) };
fields["origin"] = { dbs: "mld_meldbron_key", typ: "key", val: S("mld_meldbron_key") };
fields["module"] = { dbs: "mld_melding_module", typ: "varchar", val: "MLD" };
fields["issue"] = { dbs: "mld_melding_key", typ: "key", seq: "mld_s_mld_melding_key" };
var mldIns = buildInsert("mld_melding", fields, { noValidateToken: true });
var new_key = mldIns.sequences["mld_melding_key"];

View File

@@ -4,8 +4,7 @@
File: model_locations.inc
Description: Locatie model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: Locatie model.
Parameters:
Context:
@@ -21,13 +20,13 @@ model_locations =
primary: "alg_locatie_key",
records_name: "locations",
record_name: "location",
fields: [{ name: "id", dbs: "alg_locatie_key", typ: "key", filter: "exact" },
{ name: "code", dbs: "alg_locatie_code", typ: "varchar", filter: "like" },
{ name: "name", dbs: "alg_locatie_omschrijving", typ: "varchar"},
{ name: "district", dbs: "alg_district_key", typ: "key", foreign: "alg_district"},
{ name: "coordinate_x", dbs: "alg_locatie_x", typ: "number"},
{ name: "coordinate_y", dbs: "alg_locatie_y", typ: "number"}
],
fields: {"id" : { dbs: "alg_locatie_key", typ: "key", filter: "exact" },
"code" : { dbs: "alg_locatie_code", typ: "varchar", filter: "like" },
"name" : { dbs: "alg_locatie_omschrijving", typ: "varchar"},
"district" : { dbs: "alg_district_key", typ: "key", foreign: "alg_district"},
"coordinate_x" : { dbs: "alg_locatie_x", typ: "number"},
"coordinate_y" : { dbs: "alg_locatie_y", typ: "number"}
},
REST_GET: function _GET(params)
{
var urole = "fe"; // TODO: Moet echt niet ter zake doen

View File

@@ -4,12 +4,11 @@
File: model_notes.inc
Description: notes model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: notes model.
Parameters:
Context:
Notes: Dummy placeholder
Notes:
*/
/*
@@ -70,13 +69,13 @@ model_notes =
primary: "key",
records_name: "notes",
record_name: "note",
fields: [{ name: "id", dbs: "key", typ: "key", filter: "exact" },
{ name: "writer", dbs: "writer_key", typ: "key", foreign: "prs_perslid", filter: "exact" },
{ name: "description", dbs: "omschrijving", typ: "varchar", filter: "like" },
{ name: "createdate", dbs: "aanmaak", typ: "datetime" }
fields: {"id" : { dbs: "key", typ: "key", filter: "exact" },
"writer" : { dbs: "writer_key", typ: "key", foreign: "prs_perslid", filter: "exact" },
"description" : { dbs: "omschrijving", typ: "varchar", filter: "like" },
"createdate" : { dbs: "aanmaak", typ: "datetime" }
// { name: "module", dbs: "module", typ: "varchar", filter: "exact" }
// { name: "parent", dbs: "parent_key", typ: "key", filter: "exact" } //niet terug linken
],
},
_analyze_fields: function (fields, params, jsondata) /* analyseer inkomende data, common voor PUT en POST */
@@ -171,11 +170,11 @@ model_notes =
//
var xxx_tabel = model_notes._getNoteTable(params.data.module); // De tabel met notes die aangepast moet worden.
var fields = [];
fields.push({ dbs: "prs_perslid_key", typ: "key", val: user_key });
fields.push({ dbs: xxx_tabel.parent+"_key", typ: "key", val: params.filter.id });
fields.push({ dbs: xxx_tabel.naam+"_aanmaak", typ: "datetime", val: new Date() });
fields.push({ dbs: xxx_tabel.naam+"_omschrijving", typ: "varchar", val: jsondata.description });
fields.push({ dbs: xxx_tabel.naam+"_key", typ: "key", seq: xxx_tabel.seq });
fields["writer"] = { dbs: "prs_perslid_key", typ: "key", val: user_key };
fields["parent"] = { dbs: xxx_tabel.parent+"_key", typ: "key", val: params.filter.id };
fields["created"] = { dbs: xxx_tabel.naam+"_aanmaak", typ: "datetime", val: new Date() };
fields["description"] = { dbs: xxx_tabel.naam+"_omschrijving", typ: "varchar", val: jsondata.description };
fields["id"] = { dbs: xxx_tabel.naam+"_key", typ: "key", seq: xxx_tabel.seq };
var xxxIns = buildInsert(xxx_tabel.naam, fields, { noValidateToken: true });
var new_key = xxxIns.sequences[xxx_tabel.naam];

View File

@@ -4,8 +4,7 @@
File: model_objects.inc
Description: Object model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: Object model.
Parameters:
Context:
@@ -22,22 +21,22 @@ model_objects =
records_name: "objects",
record_name: "object",
multi_update: true,
fields: [{ name: "id", dbs: "ins_deel_key", typ: "key", filter: "exact" },
fields: {"id" : { dbs: "ins_deel_key", typ: "key", filter: "exact" },
//{ name: "code", dbs: "ins_deel_code", typ: "varchar", filter: "like" },
{ name: "name", dbs: "ins_deel_omschrijving", typ: "varchar"},
{ name: "type", dbs: "ins_srtdeel_key", typ: "key", filter: "exact", foreign: "ins_srtdeel"},
{ name: "state", dbs: "ins_deel_state", typ: "varchar" },
{ name: "statedate", dbs: "ins_deel_statedate", typ: "datetime" },
{ name: "location", dbs: "alg_v_allonroerendgoed.alg_locatie_key", typ: "key", foreign: "alg_locatie"},
{ name: "building", dbs: "alg_v_allonroerendgoed.alg_gebouw_key", typ: "key", foreign: "alg_gebouw" },
{ name: "floor", dbs: "alg_v_allonroerendgoed.alg_verdieping_key", typ: "key", foreign: "alg_verdieping" },
{ name: "room", dbs: "alg_v_allonroerendgoed.alg_ruimte_key", typ: "key", foreign: "alg_ruimte" },
"name" : { dbs: "ins_deel_omschrijving", typ: "varchar"},
"type" : { dbs: "ins_srtdeel_key", typ: "key", filter: "exact", foreign: "ins_srtdeel"},
"state" : { dbs: "ins_deel_state", typ: "varchar" },
"statedate": { dbs: "ins_deel_statedate", typ: "datetime" },
"location" : { dbs: "alg_v_allonroerendgoed.alg_locatie_key", typ: "key", foreign: "alg_locatie"},
"building" : { dbs: "alg_v_allonroerendgoed.alg_gebouw_key", typ: "key", foreign: "alg_gebouw" },
"floor" : { dbs: "alg_v_allonroerendgoed.alg_verdieping_key", typ: "key", foreign: "alg_verdieping" },
"room" : { dbs: "alg_v_allonroerendgoed.alg_ruimte_key", typ: "key", foreign: "alg_ruimte" }
//{ name: "type", dbs: "ins_deel_statedate", typ: "key", filter: "exact", foreign: "ins_srtdeel"},
//{ name: "district", dbs: "alg_district_key", typ: "key", foreign: "alg_district"},
//{ name: "coordinate_x", dbs: "ins_deel_x", typ: "number"},
//{ name: "coordinate_y", dbs: "ins_deel_y", typ: "number"},
],
},
REST_GET: function _GET(params)
{
var urole = "fe"; // TODO: Moet echt niet ter zake doen

View File

@@ -578,7 +578,7 @@ model_orders =
if (act_key > 0)
fields["act"] = { dbs: "fac_activiteit_key", typ: "key", val: act_key };
fields.push({ dbs: "mld_opdr_key", typ: "key", seq: "mld_s_mld_opdr_key" });
fields["id"] = { dbs: "mld_opdr_key", typ: "key", seq: "mld_s_mld_opdr_key" };
var mldIns = buildInsert("mld_opdr", fields, { noValidateToken: true });
var opdr_key = mldIns.sequences["mld_opdr_key"];
sql = mldIns.sql;
@@ -768,7 +768,7 @@ model_orders =
upd_params.checkteverzenden = checkTeVerzenden;
if (checkTeVerzenden)
{
fields.push({ dbs: "mld_opdr_teverzenden", typ: "check", val: "" });
fields["mustsend"] = { dbs: "mld_opdr_teverzenden", typ: "check", val: "" };
}
if (!params.auth.ORDBOF)
@@ -851,19 +851,19 @@ model_orders =
if (reapprove || refiat)
{ // Zet de refiat waarden. Het hergoedkeurings- en/of herfiatteringstraject wordt opnieuw ingegaan. // Tracking hiervan is niet nodig.
if (opdr_info.hours > 0)
fields.push({ dbs: "mld_opdr_uren_refiat", typ: "float", val: opdr_info.hours });
fields["hoursrefiat"] = { dbs: "mld_opdr_uren_refiat", typ: "float", val: opdr_info.hours };
if (opdr_info.h_rate > 0)
fields.push({ dbs: "mld_opdr_uurloon_refiat", typ: "float", val: opdr_info.h_rate });
fields["raterefiat"] = { dbs: "mld_opdr_uurloon_refiat", typ: "float", val: opdr_info.h_rate };
if (opdr_info.m_cost > 0)
fields.push({ dbs: "mld_opdr_materiaal_refiat", typ: "float", val: opdr_info.m_cost });
fields["matrerialfiat"] = { dbs: "mld_opdr_materiaal_refiat", typ: "float", val: opdr_info.m_cost };
if (opdr_info.t_cost > 0)
fields.push({ dbs: "mld_opdr_kosten_refiat", typ: "float", val: opdr_info.t_cost });
fields["costrefiat"] = { dbs: "mld_opdr_kosten_refiat", typ: "float", val: opdr_info.t_cost };
// Ook voor status 5 wordt refiatstatus gezet zodat bekend is dat het om een herfiattering gaat. De fiatteringsvoorwaarde is dan iets anders.
fields.push({ dbs: "mld_statusopdr_key_refiat", typ: "number", val: opdr_info.opdr_status });
fields["statusrefiat"] = { dbs: "mld_statusopdr_key_refiat", typ: "number", val: opdr_info.opdr_status };
// Goedkeuring opnieuw ingaan kan alleen als het approved bedrag leeg is.
fields.push({ dbs: "mld_opdr_approved_refiat", typ: "float", val: opdr_info.approved });
fields.push({ dbs: "mld_opdr_approved", typ: "float", val: null });
fields["approvedrefiat"] = { dbs: "mld_opdr_approved_refiat", typ: "float", val: opdr_info.approved };
fields["approved"] = { dbs: "mld_opdr_approved", typ: "float", val: null };
}
// Met FSN#20132 kan bij bestaande opdrachten via deze weg niet meer het opdrachttype wijzigen

View File

@@ -4,8 +4,7 @@
File: model_persons.inc
Description: Perslid model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: Perslid model.
Parameters:
Context:
@@ -24,17 +23,17 @@ model_persons =
primary: "prs_perslid_key",
records_name: "persons",
record_name: "person",
fields: [{ name: "id", dbs: "prs_perslid_key", typ: "key", filter: "exact"},
{ name: "lastname", dbs: "prs_perslid_naam", typ: "varchar", filter: "exact"},
{ name: "firstname", dbs: "prs_perslid_voornaam", typ: "varchar", filter: "exact"},
{ name: "mail", dbs: "prs_perslid_email", typ: "varchar", filter: "exact"},
{ name: "login", dbs: "prs_perslid_oslogin", typ: "varchar", filter: "exact"},
{ name: "department", dbs: "prs_afdeling_key", typ: "key", foreign: "prs_afdeling"},
{ name: "location", dbs: "prs_v_werkplek_gegevens.alg_locatie_key", typ: "key", foreign: "alg_locatie", filter: "exact"},
{ name: "building", dbs: "prs_v_werkplek_gegevens.alg_gebouw_key", typ: "key", foreign: "alg_gebouw" },
{ name: "floor", dbs: "prs_v_werkplek_gegevens.alg_verdieping_key", typ: "key", foreign: "alg_verdieping" },
{ name: "room", dbs: "prs_v_werkplek_gegevens.alg_ruimte_key", typ: "key", foreign: "alg_ruimte" }
],
fields: {"id" : { dbs: "prs_perslid_key", typ: "key", filter: "exact"},
"lastname" : { dbs: "prs_perslid_naam", typ: "varchar", filter: "like"},
"firstname" : { dbs: "prs_perslid_voornaam", typ: "varchar", filter: "like"},
"mail" : { dbs: "prs_perslid_email", typ: "varchar", filter: "exact"},
"login" : { dbs: "prs_perslid_oslogin", typ: "varchar", filter: "exact"},
"department": { dbs: "prs_afdeling_key", typ: "key", foreign: "prs_afdeling"},
"location" : { dbs: "prs_v_werkplek_gegevens.alg_locatie_key", typ: "key", foreign: "alg_locatie", filter: "exact"},
"building" : { dbs: "prs_v_werkplek_gegevens.alg_gebouw_key", typ: "key", foreign: "alg_gebouw" },
"floor" : { dbs: "prs_v_werkplek_gegevens.alg_verdieping_key", typ: "key", foreign: "alg_verdieping" },
"room" : { dbs: "prs_v_werkplek_gegevens.alg_ruimte_key", typ: "key", foreign: "alg_ruimte" }
},
REST_GET: function _GET(params)
{

View File

@@ -4,8 +4,7 @@
File: model_regions.inc
Description: Regio model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: Regio model.
Parameters:
Context:
@@ -111,7 +110,7 @@ model_regions =
model_regions._check_authorization(params, "POST");
var fields = api2.update_fields(params, model_regions, jsondata); // Build updater
fields.push({dbs: "alg_regio_key", typ: "key", seq: "alg_s_alg_regio_key" });
fields["id"] = {dbs: "alg_regio_key", typ: "key", seq: "alg_s_alg_regio_key" };
var regIns = buildInsert("alg_regio", fields, { noValidateToken: true });
var reg_key = regIns.sequences["alg_regio_key"];

View File

@@ -169,7 +169,8 @@ function model_reports_template()
// Voltooi model_reports_template voor een bepaald rapport
function model_reports(fac_usrrap_key)
{
var usrrap = model_reportsx.REST_GET({filter: { "id" : fac_usrrap_key}, include: ["columns"] })[0];
var reportsx = new model_reportsx(fac_usrrap_key, { include: ["columns"] });
var usrrap = reportsx.data;
user.auth_required_or_abort(usrrap);
var model = new model_reports_template();

View File

@@ -16,47 +16,48 @@
<!-- #include file="./model_reportcolumns.inc" -->
<%
model_reportsx =
function model_reportsx(usrrap_key, params)
{
table: "fac_usrrap",
primary: "fac_usrrap_key",
records_name: "reports",
record_name: "report",
records_title: L("lcl_menu_fac_reports"),
record_title: L("lcl_usrrap_report"),
autfunction: "WEB_PRSSYS",
params = params || {};
this.table = "fac_usrrap";
this.primary = "fac_usrrap_key";
this.records_name = "reports";
this.record_name = "report";
this.records_title = L("lcl_menu_fac_reports");
this.record_title = L("lcl_usrrap_report");
this.autfunction = "WEB_PRSSYS";
fields: { "id" : { dbs: "fac_usrrap_key", typ: "key", label: "Key", filter: "exact" },
"name" : { dbs: "fac_usrrap_omschrijving", typ: "varchar", label: L("lcl_usrrap_report"), filter: "like", translate: true , len : 60},
"description" : { dbs: "fac_usrrap_info", typ: "varchar", label: L("lcl_usrrap_info"), translate: true },
"viewname" : { dbs: "fac_usrrap_view_name", typ: "varchar", label: L("lcl_usrrap_viewname"), filter: "like"},
"authorisation": { dbs: "fac_functie_key", typ: "key", label: L("lcl_usrrap_functie"), foreign: "fac_functie"},
"styling" : { dbs: "fac_usrrap_functie", typ: "key", label: L("lcl_usrrap_styling"),
LOV: L("lcl_usrrap_stylingLOV") }, // 0;on-gestylede;1;gestylede;2;procedure;3;procedure gestyled;8;Via tabelizer
this.fields = { "id" : { dbs: "fac_usrrap_key", typ: "key", label: "Key", filter: "exact" },
"name" : { dbs: "fac_usrrap_omschrijving", typ: "varchar", label: L("lcl_usrrap_report"), filter: "like", translate: true , len : 60},
"description" : { dbs: "fac_usrrap_info", typ: "varchar", label: L("lcl_usrrap_info"), translate: true },
"viewname" : { dbs: "fac_usrrap_view_name", typ: "varchar", label: L("lcl_usrrap_viewname"), filter: "like"},
"authorisation": { dbs: "fac_functie_key", typ: "key", label: L("lcl_usrrap_functie"), foreign: "fac_functie"},
"styling" : { dbs: "fac_usrrap_functie", typ: "key", label: L("lcl_usrrap_styling"),
LOV: L("lcl_usrrap_stylingLOV") }, // 0;on-gestylede;1;gestylede;2;procedure;3;procedure gestyled;8;Via tabelizer
"urllink" : { dbs: "fac_usrrap_urllink", typ: "varchar", label: L("lcl_usrrap_urllink")},
"autorefresh" : { dbs: "fac_usrrap_autorefresh", typ: "check", label: L("lcl_usrrap_autorefresh")}
},
list: { columns: ["id", "name", "viewname", "description"] },
includes: {"columns": { model: model_reportcolumns,
"urllink" : { dbs: "fac_usrrap_urllink", typ: "varchar", label: L("lcl_usrrap_urllink")},
"autorefresh" : { dbs: "fac_usrrap_autorefresh", typ: "check", label: L("lcl_usrrap_autorefresh")}
};
this.list = { columns: ["id", "name", "viewname", "description"] };
this.includes = {"columns": { model: model_reportcolumns,
joinfield: "fac_usrrap_key"
}
},
};
_check_authorization: function(params, method)
this._check_authorization = function(params, method)
{
params.message = "";
var autfunction = "WEB_PRSSYS";
params.authparams = user.checkAutorisation(autfunction); // pessimistisch
},
};
_analyze_fields: function (fields, params, jsondata) /* analyseer inkomende data, common voor PUT en POST */
this._analyze_fields = function (fields, params, jsondata) /* analyseer inkomende data, common voor PUT en POST */
{
},
};
_clone_report_cols: function(old_usrrap_key, new_model)
this._clone_report_cols = function(old_usrrap_key, new_model)
{
var oldrap = usrrap.fac_usrrap_info(usrrap_key); // Niet via 'model', die kan geen VIEW-rapporten aan
var oldrap = usrrap.fac_usrrap_info(old_usrrap_key); // Niet via 'model', die kan geen VIEW-rapporten aan
for (var i = 0; i < oldrap.columns.length; i++)
{
@@ -71,13 +72,13 @@ model_reportsx =
new_model.columns.push(newcol);
}
__Log(new_model);
},
};
REST_GET: function _reportsx_GET(params, jsondata)
this.REST_GET = function _reportsx_GET(params, jsondata)
{
var query = api2.sqlfields(params, model_reportsx);
var query = api2.sqlfields(params, this);
var wheres = api2.sqlfilter(params, model_reportsx);
var wheres = api2.sqlfilter(params, this);
query.wheres = query.wheres.concat(wheres);
authparams = user.checkAutorisation("WEB_PRSSYS", true);
@@ -97,16 +98,17 @@ model_reportsx =
if (params.include && params.include.length)
sql += ", fac_usrrap_cols_volgnr";
var json = api2.sql2json (params, sql, model_reportsx);
var json = api2.sql2json (params, sql, this);
return json;
},
REST_PUT: function _reportsx_REST_PUT(params, jsondata, the_key) /* update report */
{
model_reportsx._check_authorization(params, "PUT");
};
var fields = api2.update_fields(params, model_reportsx, jsondata); // Build updater
model_reportsx._analyze_fields(fields, params, jsondata);
this.REST_PUT = function _reportsx_REST_PUT(params, jsondata, the_key) /* update report */
{
this._check_authorization(params, "PUT");
var fields = api2.update_fields(params, this, jsondata); // Build updater
this._analyze_fields(fields, params, jsondata);
var wheres = [" fac_usrrap_key = " + the_key];
var roomUpd = buildTrackingUpdate("fac_usrrap", wheres.join(" AND " ), fields, { noValidateToken: true });
@@ -115,16 +117,17 @@ model_reportsx =
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
var beztrack = api2.process_includes(params, model_reportsx, jsondata, the_key);
var beztrack = api2.process_includes(params, this, jsondata, the_key);
return { key: the_key, warning: "" };
},
REST_POST: function _reportsx_REST_POST(params, jsondata) /* new report */
{
model_reportsx._check_authorization(params, "POST");
};
var fields = api2.update_fields(params, model_reportsx, jsondata); // Build updater
model_reportsx._analyze_fields(fields, params, jsondata);
this.REST_POST = function _reportsx_REST_POST(params, jsondata) /* new report */
{
this._check_authorization(params, "POST");
var fields = api2.update_fields(params, this, jsondata); // Build updater
this._analyze_fields(fields, params, jsondata);
fields["xxx"] = {dbs: "fac_usrrap_key", typ: "key", seq: "fac_s_fac_usrrap_key" };
var rapIns = buildInsert("fac_usrrap", fields, { noValidateToken: true });
@@ -134,13 +137,14 @@ model_reportsx =
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
var beztrack = api2.process_includes(params, model_reportsx, jsondata, rap_key);
var beztrack = api2.process_includes(params, this, jsondata, rap_key);
return { key: rap_key, warning: "" };
},
REST_DELETE: function (params, the_key) /* delete report */
};
this.REST_DELETE = function (params, the_key) /* delete report */
{
model_reportsx._check_authorization(params, "DELETE");
this._check_authorization(params, "DELETE");
var sql = "DELETE FROM fac_usrrap"
+ " WHERE fac_usrrap_key = " + the_key;
@@ -149,10 +153,18 @@ model_reportsx =
abort_with_warning(err.friendlyMsg);
return { key: the_key, warning: "" };
}
}
if (user.oslogin() != "_FACILITOR")
{
model_reportsx.REST_POST = false;
};
if (user.oslogin() != "_FACILITOR")
{
this.REST_POST = false;
}
if (usrrap_key > 0)
{
params.filter = { "id" : usrrap_key };
this.data = this.REST_GET(params)[0];
}
}
%>

View File

@@ -4,8 +4,7 @@
File: model_reservableconsumables.inc
Description: reserveerbare artikelen model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: reserveerbare artikelen model.
Parameters:
Context:
@@ -22,24 +21,24 @@ model_reservableconsumables =
primary: "res_artikel_key",
records_name: "reservableconsumables",
record_name: "reservableconsumables",
fields: [ { name: "id", dbs: "res_artikel_key", typ: "key", filter: "exact" },
{ name: "name", dbs: "res_artikel_omschrijving", typ: "varchar", filter: "like" },
{ name: "code", dbs: "res_artikel_nr", typ: "number", filter: "like" },
{ name: "seqnr", dbs: "res_artikel_volgnummer", typ: "number" },
{ name: "remark", dbs: "res_artikel_opmerking", typ: "varchar", filter: "like" },
{ name: "unit", dbs: "res_artikel_eenheid", typ: "varchar", filter: "like" },
{ name: "price", dbs: "res_artikel_prijs", typ: "float" },
{ name: "fixed", dbs: "res_artikel_prijs_vast", typ: "check0", filter: "exact" },
{ name: "purchase", dbs: "res_artikel_inkoopprijs", typ: "float"},
{ name: "vat", dbs: "res_artikel_btw", typ: "float" },
{ name: "employeecost", dbs: "res_artikel_kostenpersoneel", typ: "float" },
{ name: "generalcost" , dbs: "res_artikel_kostenalgemeen", typ: "float" },
{ name: "catalog", dbs: "res_discipline_key", typ: "key", foreign: "res_discipline" },
{ name: "group", dbs: "res_artikel_groep", typ: "varchar", filter: "like" },
{ name: "start", dbs: "res_artikel_ingangsdatum", typ: "date" },
{ name: "expires", dbs: "res_artikel_vervaldatum", typ: "date" },
{ name: "minimum", dbs: "res_artikel_minimum", typ: "number", filter: "exact" }
],
fields: { "id" : { dbs: "res_artikel_key", typ: "key", filter: "exact" },
"name" : { dbs: "res_artikel_omschrijving", typ: "varchar", filter: "like" },
"code" : { dbs: "res_artikel_nr", typ: "number", filter: "like" },
"sequence" : { dbs: "res_artikel_volgnummer", typ: "number" },
"remark" : { dbs: "res_artikel_opmerking", typ: "varchar", filter: "like" },
"unit" : { dbs: "res_artikel_eenheid", typ: "varchar", filter: "like" },
"price" : { dbs: "res_artikel_prijs", typ: "float" },
"fixed" : { dbs: "res_artikel_prijs_vast", typ: "check0", filter: "exact" },
"purchase" : { dbs: "res_artikel_inkoopprijs", typ: "float"},
"vat" : { dbs: "res_artikel_btw", typ: "float" },
"employeecost": { dbs: "res_artikel_kostenpersoneel", typ: "float" },
"generalcost" : { dbs: "res_artikel_kostenalgemeen", typ: "float" },
"catalog" : { dbs: "res_discipline_key", typ: "key", foreign: "res_discipline" },
"group" : { dbs: "res_artikel_groep", typ: "varchar", filter: "like" },
"start" : { dbs: "res_artikel_ingangsdatum", typ: "date" },
"expires" : { dbs: "res_artikel_vervaldatum", typ: "date" },
"minimum" : { dbs: "res_artikel_minimum", typ: "number", filter: "exact" }
},
REST_GET: function _GET(params)
{

View File

@@ -4,8 +4,7 @@
File: model_reservableequipment.inc
Description: reserveerbare delen model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: reserveerbare delen model.
Parameters:
Context:
@@ -39,16 +38,16 @@ model_reservableequipment =
primary: "res_deel_key",
records_name: "reservableequipment",
record_name: "reservableequipment",
fields: [ { name: "id", dbs: "res_deel_key", typ: "key", filter: "exact" },
{ name: "name", dbs: "res_deel_omschrijving", typ: "varchar", filter: "like" },
{ name: "remark", dbs: "res_deel_opmerking", typ: "varchar", filter: "like" },
{ name: "unit", dbs: "res_deel_eenheid", typ: "varchar", filter: "like" },
{ name: "price", dbs: "res_deel_prijs", typ: "float", filter: "like" },
{ name: "fixed", dbs: "res_deel_prijs_vast", typ: "check0", filter: "exact" },
{ name: "object", dbs: "res_ins_deel_key", typ: "key", foreign: "ins_deel" },
{ name: "catalog", dbs: "res_discipline_key", typ: "key", foreign: "res_discipline", filter: "exact" },
{ name: "scope", dbs: "res_deel_alg_level", typ: "key", foreign: alg_level }
],
fields: { "id" : { dbs: "res_deel_key", typ: "key", filter: "exact" },
"name" : { dbs: "res_deel_omschrijving", typ: "varchar", filter: "like" },
"remark" : { dbs: "res_deel_opmerking", typ: "varchar", filter: "like" },
"unit" : { dbs: "res_deel_eenheid", typ: "varchar", filter: "like" },
"price" : { dbs: "res_deel_prijs", typ: "float", filter: "like" },
"fixed" : { dbs: "res_deel_prijs_vast", typ: "check0", filter: "exact" },
"object" : { dbs: "res_ins_deel_key", typ: "key", foreign: "ins_deel" },
"catalog" : { dbs: "res_discipline_key", typ: "key", foreign: "res_discipline", filter: "exact" },
"scope" : { dbs: "res_deel_alg_level", typ: "key", foreign: alg_level }
},
// advanced filter
filter: { prefunc: function _prefilterfunc(params)
{

View File

@@ -4,8 +4,7 @@
File: model_reservablerooms.inc
Description: Bezoekers model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: Bezoekers model.
Parameters:
Context:
@@ -40,16 +39,16 @@ model_reservablerooms =
primary: "res_ruimte_key",
records_name: "reservablerooms",
record_name: "reservableroom",
fields: [{ name: "id", dbs: "res_ruimte_key", typ: "key", filter: "exact" },
{ name: "name", dbs: "res_ruimte_nr", typ: "varchar"},
{ name: "description", dbs: "res_ruimte_omschrijving", typ: "varchar"},
{ name: "open", dbs: "res_ruimte_begintijd", typ: "time", val: fnFrom },
{ name: "close", dbs: "res_ruimte_eindtijd", typ: "time", val: fnTo },
{ name: "location", dbs: "alg_v_allonroerendgoed.alg_locatie_key", typ: "key", foreign: "alg_locatie", filter: "exact"},
{ name: "capacity", dbs: "dummy", typ: "varchar", sql: sqlcap },
{ name: "room", dbs: "res_alg_ruimte.res_alg_ruimte_key", typ: "key", foreign: "alg_ruimte"},
{ name: "image", dbs: "res_ruimte_image", typ: "varchar" }
],
fields: {"id" : { dbs: "res_ruimte_key", typ: "key", filter: "exact" },
"name" : { dbs: "res_ruimte_nr", typ: "varchar"},
"description": { dbs: "res_ruimte_omschrijving", typ: "varchar"},
"open" : { dbs: "res_ruimte_begintijd", typ: "time", val: fnFrom },
"close" : { dbs: "res_ruimte_eindtijd", typ: "time", val: fnTo },
"location" : { dbs: "alg_v_allonroerendgoed.alg_locatie_key", typ: "key", foreign: "alg_locatie", filter: "exact"},
"capacity" : { dbs: "dummy", typ: "varchar", sql: sqlcap },
"room" : { dbs: "res_alg_ruimte.res_alg_ruimte_key", typ: "key", foreign: "alg_ruimte"},
"image" : { dbs: "res_ruimte_image", typ: "varchar" }
},
// advanced filter
filter: { prefunc: function _prefilterfunc(params)
{

View File

@@ -2,10 +2,9 @@
$Revision$
$Id$
File: reservationconsumables.inc
File: model_reservationconsumables.inc
Description: reserveren delen model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: reserveren delen model.
Parameters:
Context:

View File

@@ -2,10 +2,9 @@
$Revision$
$Id$
File: reservationequipment.inc
File: model_reservationequipment.inc
Description: reserveren delen model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: reserveren delen model.
Parameters:
Context:
@@ -140,11 +139,11 @@ model_reservationequipment =
var res_tot = new Date(oRs("res_rsv_ruimte_tot").value);
oRs.Close();
fields.push({ dbs: "res_rsv_deel_key", typ: "key", seq: "res_s_res_rsv_deel_key" });
fields.push({ dbs: "res_rsv_ruimte_key", typ: "key", val: rsv_ruimte_key });
fields.push({ dbs: "res_rsv_deel_van", typ: "datetime", val: res_van });
fields.push({ dbs: "res_rsv_deel_tot", typ: "datetime", val: res_tot });
fields.push({ dbs: "res_rsv_deel_aantal", typ: "number", val: 1 });
fields["id"] = { dbs: "res_rsv_deel_key", typ: "key", seq: "res_s_res_rsv_deel_key" };
fields["reservation"] = { dbs: "res_rsv_ruimte_key", typ: "key", val: rsv_ruimte_key };
fields["from"] = { dbs: "res_rsv_deel_van", typ: "datetime", val: res_van };
fields["to"] = { dbs: "res_rsv_deel_tot", typ: "datetime", val: res_tot };
fields["amount"] = { dbs: "res_rsv_deel_aantal", typ: "number", val: 1 };
var resIns = buildInsert("res_rsv_deel", fields, { noValidateToken: true });
var rsv_deel_key = resIns.sequences["res_rsv_deel_key"];

View File

@@ -4,8 +4,7 @@
File: model_reservations.inc
Description: Reservering model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: Reservering model.
Parameters:
Context:
@@ -50,9 +49,9 @@ model_reservations =
"name" : { dbs: "res_reservering_id", sql: "res_reservering_key||'/'||res_rsv_ruimte_volgnr", typ: "varchar", label: L("lcl_reservation")},
"from" : { dbs: "res_rsv_ruimte_van", typ: "datetime", filter: "range", label: L("lcl_res_starttime"), track: true}, // TODO: Andere lcl voor catering
"to" : { dbs: "res_rsv_ruimte_tot", typ: "datetime", filter: "range", label: L("lcl_res_endtime"), track: true},
"description" : { dbs: "res_rsv_ruimte_omschrijving", typ: "varchar", track: L("lcl_descr")},
"description" : { dbs: "res_rsv_ruimte_omschrijving", typ: "varchar", label: L("lcl_descr"), track: true },
"activity" : { dbs: "res_activiteit_key", typ: "key", filter: "exact", foreign: "res_activiteit", label: L("lcl_activity"), track: true },
"remark" : { dbs: "res_rsv_ruimte_opmerking", typ: "varchar", track: L("lcl_remark")},
"remark" : { dbs: "res_rsv_ruimte_opmerking", typ: "varchar", label: L("lcl_remark"), track: true},
"host" : { dbs: "res_rsv_ruimte_host_key", typ: "key", foreign: "prs_perslid", label: L("lcl_host"), track: true},
"contact" : { dbs: "res_rsv_ruimte_contact_key", typ: "key", foreign: "prs_perslid", label: L("lcl_name"), track: true},
"visitorscount" : { dbs: "res_rsv_ruimte_bezoekers", typ: "number", label: L("lcl_visitors"), track: true },
@@ -130,9 +129,9 @@ model_reservations =
var oRs = Oracle.Execute(sql);
var res_disc_key = oRs("res_discipline_key").value;
var soort = 0; // reserveerbare ruimtes
fields.push({ dbs: "res_ruimte_opstel_key", typ: "key", val: oRs("res_ruimte_opstel_key").Value });
fields.push({ dbs: "alg_ruimte_key", typ: "key", val: -1 });
fields.push({ dbs: "res_status_bo_key", typ: "key", val: 2 }); // 'ingevoerd'. Altijd bij ruimte reserveringen
fields["configuration"] = { dbs: "res_ruimte_opstel_key", typ: "key", val: oRs("res_ruimte_opstel_key").Value };
fields["room"] = { dbs: "alg_ruimte_key", typ: "key", val: -1 };
fields["bostatus"] = { dbs: "res_status_bo_key", typ: "key", val: 2 }; // 'ingevoerd'. Altijd bij ruimte reserveringen
oRs.Close();
}
else // moet er een alg_ruimte zijn
@@ -162,7 +161,7 @@ model_reservations =
+ " AND res_srtactiviteit_soort = " + soort;
oRs = Oracle.Execute(sql);
//jsondata.reservation.activity = oRs("res_activiteit_key").Value;
fields.push({ dbs: "res_activiteit_key", typ: "key", val: oRs("res_activiteit_key").Value });
fields["activity"] = { dbs: "res_activiteit_key", typ: "key", val: oRs("res_activiteit_key").Value };
oRs.Close()
}
}
@@ -235,24 +234,22 @@ model_reservations =
model_reservations._validate_fields(fields, params, jsondata);
// Eerst een nieuw res_reservering record aanmaken
var resfields = [ { dbs: "res_reservering_key", typ: "key", seq: "res_s_res_reservering_key" },
{ dbs: "res_reservering_aanmaak", typ: "datetime", val: new Date() }
];
var resfields = { "id": { dbs: "res_reservering_key", typ: "key", seq: "res_s_res_reservering_key" },
"create": { dbs: "res_reservering_aanmaak", typ: "datetime", val: new Date() }
};
var resIns = buildInsert("res_reservering", resfields, { noValidateToken: true });
var reservering_key = resIns.sequences["res_reservering_key"];
var volgnr = 1;
Oracle.Execute(resIns.sql);
// Nu aan de slag met een res_rsv_ruimte record
fields = fields.concat(
[ { dbs: "res_rsv_ruimte_key", typ: "key", seq: "res_s_res_rsv_ruimte_key" },
{ dbs: "res_reservering_key", typ: "key", val: reservering_key },
{ dbs: "res_rsv_ruimte_volgnr", typ: "number", val: volgnr }
]);
fields.push({ dbs: "res_rsv_ruimte_host_key", typ: "key", val: user_key });
fields.push({ dbs: "res_rsv_ruimte_contact_key", typ: "key", val: user_key });
fields["id"] = { dbs: "res_rsv_ruimte_key", typ: "key", seq: "res_s_res_rsv_ruimte_key" };
fields["reskey"] = { dbs: "res_reservering_key", typ: "key", val: reservering_key };
fields["sequence"] = { dbs: "res_rsv_ruimte_volgnr", typ: "number", val: volgnr };
fields["host"] = { dbs: "res_rsv_ruimte_host_key", typ: "key", val: user_key };
fields["contact"] = { dbs: "res_rsv_ruimte_contact_key", typ: "key", val: user_key };
if (!jsondata.status)
fields.push({ dbs: "res_status_fo_key", typ: "key", val: S("res_default_fe_status_key") });
fields["status"] = { dbs: "res_status_fo_key", typ: "key", val: S("res_default_fe_status_key") };
var resIns = buildInsert("res_rsv_ruimte", fields, { noValidateToken: true });
var rsv_ruimte_key = resIns.sequences["res_rsv_ruimte_key"];

View File

@@ -4,12 +4,11 @@
File: model_rooms.inc
Description: room model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: room model.
Parameters:
Context:
Notes: Dummy placeholder
Notes:
*/
%>
<!-- #include file="../Shared/kenmerk_common.inc"-->

View File

@@ -4,8 +4,7 @@
File: model_visitors.inc
Description: Bezoekers model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: Bezoekers model.
Parameters:
Context:
@@ -79,8 +78,8 @@ model_visitors =
REST_POST: function (params, jsondata, parent_key) /* new visitors */
{
var fields = api2.update_fields(params, model_visitors, jsondata); // Build updater
fields.push({ dbs: "bez_bezoekers_key", typ: "key", seq: "bez_s_bez_bezoekers_key" });
fields.push({ dbs: "bez_afspraak_key", typ: "key", val: parent_key });
fields["id"] = { dbs: "bez_bezoekers_key", typ: "key", seq: "bez_s_bez_bezoekers_key" };
fields["afspraak"] = { dbs: "bez_afspraak_key", typ: "key", val: parent_key };
var bezIns = buildInsert("bez_bezoekers", fields, { noValidateToken: true });
var bez_key = bezIns.sequences["bez_bezoekers_key"];

View File

@@ -4,10 +4,9 @@
File: model_workplaces.inc
Description: workplace model. Dit bestand heeft niets met interfacing te maken
maar werkt uitsluitend op JSON-data
Description: workplace model
Parameters:
Context:
Notes: Dummy placeholder
Notes:
*/