202 lines
6.6 KiB
PHP
202 lines
6.6 KiB
PHP
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: model_bgt_project.inc
|
|
|
|
Description: Model voor bgt_project
|
|
|
|
Context:
|
|
|
|
Notes:
|
|
*/
|
|
%>
|
|
<!-- #include file="../api2/model_bgt_kostenrubriek.inc" -->
|
|
<!-- #include file="../bgt/bgt_tools.inc" -->
|
|
<%
|
|
|
|
function model_bgt_project()
|
|
{
|
|
this.records_name = "budgetprojects";
|
|
this.record_name = "budgetproject";
|
|
this.table = "bgt_project";
|
|
this.primary = "bgt_project_key";
|
|
this.soft_delete = "bgt_project_verwijder";
|
|
this.autfunction = "WEB_BGTMGT";
|
|
this.record_title = L("bgt_project");
|
|
this.records_title = L("bgt_project_m");
|
|
|
|
|
|
this.fields = {
|
|
"id": {
|
|
"dbs": "bgt_project_key",
|
|
"label": L("lcl_key"),
|
|
"typ": "key",
|
|
"required": true,
|
|
"hidden_fld": true,
|
|
"filter": "exact",
|
|
"seq": "bgt_s_bgt_project_key",
|
|
"defaultvalue": null
|
|
},
|
|
"budgetdiscipline": { /* TODO linkt nu naar algemene discpline, moet bgt-variant in scf zijn? */
|
|
"dbs": "ins_discipline_key",
|
|
"label": L("bgt_discipline_omschrijving"),
|
|
"typ": "key",
|
|
"required": true,
|
|
"insertonly": true,
|
|
"foreign": {
|
|
"tbl": "ins_tab_discipline",
|
|
"key": "ins_discipline_key",
|
|
"desc": "ins_discipline_omschrijving",
|
|
"where": "ins_discipline_module = 'BGT' AND ins_discipline_verwijder IS NULL"
|
|
},
|
|
"showtransit": true
|
|
},
|
|
"name": {
|
|
"dbs": "bgt_project_omschrijving",
|
|
"label": L("bgt_project_omschrijving"),
|
|
"typ": "varchar",
|
|
"required": true,
|
|
"translate": true
|
|
},
|
|
"code": {
|
|
"dbs": "bgt_project_code",
|
|
"label": L("bgt_project_code"),
|
|
"typ": "varchar",
|
|
"required": true
|
|
},
|
|
"sequence": {
|
|
"dbs": "bgt_project_volgnr",
|
|
"label": L("bgt_project_volgnr"),
|
|
"typ": "number"
|
|
},
|
|
"account": {
|
|
"dbs": "prs_kostenplaats_key",
|
|
"label": L("bgt_budget_account"),
|
|
"typ": "key",
|
|
"foreign": bgt_account_foreign()
|
|
},
|
|
"pricedate": {
|
|
"dbs": "bgt_project_prijspeildatum",
|
|
"label": L("bgt_project_prijspeildatum"),
|
|
"typ": "date"
|
|
},
|
|
"info": {
|
|
"dbs": "bgt_project_info",
|
|
"label": L("bgt_project_info"),
|
|
"typ": "memo"
|
|
},
|
|
"notes": {
|
|
"dbs": "bgt_project_notes",
|
|
"label": L("bgt_project_notes"),
|
|
"typ": "memo"
|
|
}
|
|
};
|
|
|
|
//this.print = { xmlnode: "budget", where: "project"};
|
|
|
|
this.hook_pre_edit = function (obj, fld)
|
|
{
|
|
if (mode != "save")
|
|
{
|
|
var sql = "SELECT count(*)"
|
|
+ " FROM bgt_kostenrubriek"
|
|
+ " WHERE bgt_project_key = " + obj.id;
|
|
var oRs = Oracle.Execute(sql);
|
|
if (oRs(0) == 0) // Een nieuw project, of een project waaraan nog geen rubrieken zijn gekoppeld.
|
|
{ // Voeg de selectie voor het standaardproject toe.
|
|
fld["import"] = {
|
|
"dbs": "fac_usrtab.fac_usrtab_key",
|
|
"label": "Standaard projectdata",
|
|
"typ": "key",
|
|
"foreign": {
|
|
"tbl": "(SELECT d.fac_usrdata_key"
|
|
+ " , d.fac_usrdata_code"
|
|
+ " FROM fac_usrtab t"
|
|
+ " , fac_usrdata d"
|
|
+ " WHERE d.fac_usrtab_key = t.fac_usrtab_key"
|
|
+ " AND t.fac_usrtab_naam = 'project_import')",
|
|
"key": "fac_usrdata_key",
|
|
"desc": "fac_usrdata_code"
|
|
}
|
|
};
|
|
}
|
|
oRs.Close();
|
|
|
|
if (obj.id > 0)
|
|
{
|
|
fld["account"].foreign.tbl = bgt_account_foreign_tbl(obj.id);
|
|
}
|
|
else
|
|
{
|
|
fld["account"].hidden_fld = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
this.hook_pre_post = function(params, obj)
|
|
{
|
|
// Controle op, en wijzigingen aan data voordat het record wordt toegevoegd.
|
|
}
|
|
|
|
this.hook_post_post = function(params, obj, key)
|
|
{
|
|
// Nadat het project-record is toegevoegd is de key hiervan bekend.
|
|
create_default_kostenplaatsgrp(key);
|
|
var data_key = getFParamInt("import", -1);
|
|
create_default_projectdata(key, data_key);
|
|
}
|
|
|
|
this.hook_pre_put = function(params, obj, key)
|
|
{
|
|
// Wordt alleen gebruikt bij wijzigen.
|
|
create_default_kostenplaatsgrp(key);
|
|
var data_key = getFParamInt("import", -1);
|
|
create_default_projectdata(key, data_key);
|
|
}
|
|
|
|
|
|
// if (!S("bgt_enabled"))
|
|
// {
|
|
// this.fields.budgetdiscipline.hidden_fld = true
|
|
// this.fields.budgetdiscipline.default_value = 1
|
|
// }
|
|
|
|
this.REST_GET = generic_REST_GET(this);
|
|
this.REST_POST = generic_REST_POST(this);
|
|
this.REST_PUT = generic_REST_PUT(this);
|
|
this.REST_DELETE = generic_REST_DELETE(this);
|
|
|
|
|
|
function create_default_kostenplaatsgrp(key)
|
|
{
|
|
var sql_u = "SELECT count(*) aantal"
|
|
+ " FROM prs_kostenplaatsgrp"
|
|
+ " WHERE bgt_project_key = " + key;
|
|
var oRs_u = Oracle.Execute(sql_u);
|
|
if (oRs_u("aantal").Value == 0)
|
|
{
|
|
var sql = "SELECT d.bgt_disc_params_code"
|
|
+ " , p.bgt_project_code"
|
|
+ " FROM bgt_disc_params d"
|
|
+ " , bgt_project p"
|
|
+ " WHERE d.bgt_ins_discipline_key = p.ins_discipline_key"
|
|
+ " AND p.bgt_project_key = " + key;
|
|
var oRs = Oracle.Execute(sql);
|
|
if (!oRs.eof)
|
|
{
|
|
var sql_i = "INSERT INTO prs_kostenplaatsgrp"
|
|
+ " (prs_kostenplaatsgrp_nr, prs_kostenplaatsgrp_oms, bgt_project_key)"
|
|
+ " VALUES"
|
|
+ " (" + safe.quoted_sql(oRs("bgt_disc_params_code").Value)
|
|
+ " ," + safe.quoted_sql(oRs("bgt_project_code").Value)
|
|
+ " ," + key
|
|
+ " )";
|
|
Oracle.Execute(sql_i);
|
|
}
|
|
oRs.Close();
|
|
}
|
|
oRs_u.Close();
|
|
}
|
|
}
|
|
%> |