<% /* $Revision$ $Id$ File: model_mld_opdr.inc Description: Model voor mld_opdr Context: Notes: */ %> <% function model_mld_opdr() { this.records_name = "orders"; this.record_name = "order"; this.table = "mld_opdr"; this.primary = "mld_opdr_key"; this.autfunction = "WEB_BGTORD"; this.record_title = L("lcl_fin_mld_opdr"); this.records_title = L("lcl_fin_opdrachten"); this.fields = { "id": { "dbs": "mld_opdr_key", "label": L("lcl_key"), "typ": "key", "hidden_fld": true, "required": true, "filter": "exact", "seq": "mld_s_mld_opdr_key" }, "budgetdiscipline": { "dbs": "bgt_project.ins_discipline_key", "label": L("bgt_discipline_omschrijving"), "typ": "key", "required": true, "foreign": bgt_budgetdiscipline_foreign(), "showtransit": true }, "budgetproject": { "dbs": "bgt_project.bgt_project_key", "label": L("bgt_project_omschrijving"), "typ": "key", "required": true, "foreign": bgt_budgetproject_foreign(), "showtransit": true }, "budgetcostcategory": { "dbs": "bgt_kostenrubriek.bgt_kostenrubriek_key", "label": L("bgt_kostenrubriek_oms"), "typ": "key", "required": true, "foreign": bgt_budgetcostcategory_foreign(), "showtransit": true }, "costtypegroup": { "dbs": "prs_kostensoortgrp.prs_kostensoortgrp_key", "label": L("prs_kostensoortgrp_key"), "typ": "key", "required": true, "foreign": bgt_costtypegroup_foreign(), "showtransit": true }, "costtype": { "dbs": "prs_kostensoort_key", "label": L("prs_kostensoort_key"), "typ": "key", "required": true, "foreign": bgt_costtype_foreign(), "showtransit": true }, "company": { "dbs": "mld_uitvoerende_keys", "label": L("lcl_ord_company"), "typ": "key", "foreign": bgt_company_foreign() }, "reference": { "dbs": "mld_opdr_id", "label": L("lcl_opdr_id"), "typ": "varchar" }, "ordernr_sort": { "dbs": "mld_opdr_ordernr_int", "label": L("bgt_opdr_ordernr"), "sql": "fac.safe_to_number(mld_opdr_ordernr)", "typ": "number", "readonly": true }, "ordernr": { "dbs": "mld_opdr_ordernr", "label": L("bgt_opdr_ordernr"), "typ": "varchar", "hidden_fld": true }, "sequence": { "dbs": "mld_opdr_bedrijfopdr_volgnr", "label": L("lcl_ins_volgnr"), "typ": "number", "defaultvalue": 0 }, "account": { "dbs": "prs_kostenplaats_key", "label": L("bgt_budget_account"), "typ": "key", "foreign": bgt_account_foreign() }, "description": { "dbs": "mld_opdr_omschrijving", "label": L("lcl_descr"), "typ": "varchar" }, "startdate": { "dbs": "mld_opdr_datumbegin", "label": L("bgt_contractdatum"), "typ": "date" }, "amount": { "dbs": "mld_opdr_kosten", "label": L("bgt_gecontracteerd"), "typ": "float", "iscurrency": true, "total": true }, "vat": { "dbs": "mld_opdr_kosten_btw", "label": L("lcl_mld_opdr_btw"), "typ": "float", "iscurrency": true, "total": true }, "amountincl": { "dbs": "mld_opdr_kosten_incl", "sql": "mld_opdr_kosten + mld_opdr_kosten_btw", "label": L("lcl_fin_total_sum"), "typ": "float", "readonly": true, "sqlshow": true, "iscurrency": true, "total": true, "defaultvalue": "0", "clone": false }, "invoiced": { "dbs": "mld_opdr_gefactureerd", "sql": "(BGT.getGefactureerd(mld_opdr.mld_opdr_key, 0, NULL, NULL))", "label": L("bgt_facturen"), "typ": "float", "readonly": true, "sqlshow": true, "iscurrency": true, "total": true }, "tobeinvoiced": { "dbs": "mld_opdr_tefactureren", "sql": "(BGT.getTefactureren(mld_opdr.mld_opdr_key, 0, NULL, NULL))", "label": L("bgt_facturentogo"), "typ": "float", "readonly": true, "sqlshow": true, "iscurrency": true, "total": true }, "status": { "dbs": "mld_statusopdr_key", "label": L("lcl_mld_opdr_status"), "typ": "key", "foreign": bgt_orderstatus_foreign(), "defaultvalue": 5 }, "owner": { "dbs": "prs_perslid_key", "label": L("lcl_obj_owner"), "typ": "key", "hidden_fld": true, "foreign": "PRS_PERSLID" }, "issueordertype": { "dbs": "mld_typeopdr_key", "label": L("mld_typeopdr_typeopdr_key"), "typ": "key", "defaultvalue": "5", "hidden_fld": true }, "module": { "dbs": "mld_opdr_module", "label": "module", "typ": "varchar", "defaultvalue": "MLD", "hidden_fld": true }, "additional": { "dbs": "mld_opdr_meerwerk", "label": L("lcl_mld_opdr_meerwerk"), "typ": "check0", "defaultvalue": 0, "filter": "exact" } }; if (mode == "show") { this.fields.ordernr_sort.hidden_fld = false; this.fields.ordernr_sort.readonly = true; } this.hook_pre_edit = function (obj, fld) { var btw_data = {}; if (obj.id > -1 || obj.ordernr_sort) { fld.ordernr.hidden_fld = false; fld.ordernr.readonly = true; } if (obj.id > -1) { var sql = "SELECT s.prs_kostensoort_btw" + " , f.fin_btwtabelwaarde_perc" + " FROM mld_opdr o" + " , prs_kostensoort s" + " , fin_btwtabelwaarde f" + " WHERE s.fin_btwtabelwaarde_key = f.fin_btwtabelwaarde_key" + " AND o.prs_kostensoort_key = s.prs_kostensoort_key" + " AND o.mld_opdr_key = " + obj.id; var oRs = Oracle.Execute(sql); if (!oRs.eof) { btw_data.btw_inc = oRs("prs_kostensoort_btw").Value; btw_data.btw_val = oRs("fin_btwtabelwaarde_perc").Value; } oRs.Close(); } %> <% } this.hook_pre_post = function(params, obj) { var parent_key = getQParamInt("id", -1); if (parent_key > -1) // Bij kopie van opdracht geen nieuw nummer genereren. { var sql = "SELECT o.mld_opdr_ordernr" + " FROM mld_opdr o" + " WHERE o.mld_opdr_key = " + parent_key; var oRs = Oracle.Execute(sql); obj.ordernr = oRs("mld_opdr_ordernr").Value; oRs.Close(); } else { // Genereer een uniek volgnummer binnen het project voor een nieuwe opdracht. var prj_key = (obj.budgetproject ? obj.budgetproject : project_key); var sql = "SELECT COALESCE(MAX(TO_NUMBER(o.mld_opdr_ordernr)), 0) + 1 new_ordernr" + " FROM bgt_project p" + " , bgt_kostenrubriek r" + " , prs_kostensoortgrp g" + " , prs_kostensoort s" + " , mld_opdr o" + " WHERE p.bgt_project_key = r.bgt_project_key" + " AND r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key" + " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key" + " AND s.prs_kostensoort_key = o.prs_kostensoort_key" + " AND p.bgt_project_key = " + prj_key; var oRs = Oracle.Execute(sql); obj.ordernr = oRs("new_ordernr").Value; oRs.Close(); } } var gparams = { GET: { tables: [ "prs_kostensoort", "prs_kostensoortgrp", "bgt_kostenrubriek", "bgt_project" ], wheres: [ "mld_opdr.prs_kostensoort_key = prs_kostensoort.prs_kostensoort_key", "prs_kostensoort.prs_kostensoortgrp_key = prs_kostensoortgrp.prs_kostensoortgrp_key", "prs_kostensoortgrp.bgt_kostenrubriek_key = bgt_kostenrubriek.bgt_kostenrubriek_key", "bgt_kostenrubriek.bgt_project_key = bgt_project.bgt_project_key" ] } }; this.REST_GET = generic_REST_GET(this, gparams); this.REST_POST = generic_REST_POST(this); this.REST_PUT = generic_REST_PUT(this); this.REST_DELETE = generic_REST_DELETE(this); } %>