FSN#33592 Verkoopfacturen GUI

svn path=/Website/trunk/; revision=26170
This commit is contained in:
Jos Groot Lipman
2015-09-02 10:18:52 +00:00
parent 9e1f71a96e
commit 12f7d10cb7
7 changed files with 201 additions and 37 deletions

View File

@@ -13,12 +13,13 @@
*/
%>
<%
model_fin_verkoopfactuur = {
"table": "fin_verkoopfactuur",
"primary": "fin_verkoopfactuur_key",
"records_name": "Fin_verkoopfactuurs",
"record_name": "Fin_verkoopfactuur",
"fields": {
function model_fin_verkoopfactuurregels()
{
this.table = "fin_verkoopfactuur";
this.primary = "fin_verkoopfactuur_key";
this.records_name = "saleinvoicelines";
this.record_name = "saleinvoiceline";
this.fields = {
"id": {
"dbs": "fin_verkoopfactuur_key",
"label": L("lcl_fin_verkoopfactuur_key"),
@@ -30,7 +31,8 @@ model_fin_verkoopfactuur = {
"dbs": "fin_verkoopfactuur_aanmaak",
"label": L("lcl_fin_verkoopfactuur_aanmaak"),
"typ": "datetime",
"readonly": true
"readonly": true,
hidden: true
},
"name": {
"dbs": "fin_verkoopfactuur_id",
@@ -115,14 +117,14 @@ model_fin_verkoopfactuur = {
"fin_verkoopfactuur_bedrag": {
"dbs": "fin_verkoopfactuur_bedrag",
"label": L("lcl_fin_verkoopfactuur_bedrag"),
"typ": "number",
"datatype": "float" // currency?
"typ": "float",
"total": true
},
"fin_verkoopfactuur_btw": {
"dbs": "fin_verkoopfactuur_btw",
"label": L("lcl_fin_verkoopfactuur_btw"),
"typ": "number",
"datatype": "float" // currency?
"typ": "float",
"total": true
},
"fin_btwtabelwaarde_code": {
"dbs": "fin_btwtabelwaarde_code",
@@ -245,11 +247,13 @@ model_fin_verkoopfactuur = {
"label": L("lcl_fin_verkoopfactuur_d5"),
"typ": "datetime"
}
},
"list": {
};
this.list = {
"columns": [
"id",
"name",
"fin_verkoopfactuur_xmlnode",
"fin_verkoopfactuur_refkey",
"invoicedate",
"fin_verkoopfactuur_bedrag",
"fin_verkoopfactuur_btw",
@@ -257,26 +261,159 @@ model_fin_verkoopfactuur = {
"fin_verkoopfactuur_n1",
"fin_verkoopfactuur_d1"
]
},
"search": {
"filters": [
"fin_verkoopfactuur_id",
"fin_verkoopfactuur_xmlnode",
"fin_verkoopfactuur_refkey",
"prs_kostenplaats_key"
],
"autosearch": true
},
"print": {
xmlnode: "verkoopfactuur"
},
"autfunction": "WEB_VERFAC",
"record_title": L("lcl_verkoopfactuur"),
"records_title": L("lcl_verkoopfacturen"),
"show": {},
"edit": {},
"soft_delete": null
};
this.autfunction = "WEB_VERFAC";
this.record_title = L("lcl_verkoopfactuurregel"),
this.records_title = L("lcl_verkoopfactuurregels");
this.show = {};
this.edit = {};
api2.generic_REST(this);
//of this.REST_GET = generic_REST_GET(model_fin_verkoopfactuur);
}
api2.generic_REST(model_fin_verkoopfactuur);
//model_fin_verkoopfactuur.REST_GET = generic_REST_GET(model_fin_verkoopfactuur);
// Dit is het model voor de factuurregels van een enkele xmlnode/refkey
model_fin_verkoopfactuur = function()
{
this.table = "verkoopfactuur"
this.tablesql = "(SELECT fin_verkoopfactuur_id"
+ " , fin_verkoopfactuur_datum"
+ " , fin_verkoopfactuur_xmlnode"
+ " , fin_verkoopfactuur_refkey"
+ " , SUM(fin_verkoopfactuur_bedrag) fin_verkoopfactuur_bedrag"
+ " , SUM(fin_verkoopfactuur_btw) fin_verkoopfactuur_btw"
+ " , COUNT(*) aantalregels"
+ " FROM FIN_VERKOOPFACTUUR"
+ " GROUP BY fin_verkoopfactuur_id"
+ " , fin_verkoopfactuur_datum"
+ " , fin_verkoopfactuur_xmlnode"
+ " , fin_verkoopfactuur_refkey) verkoopfactuur";
this.fields = {
"id": {
"dbs": "fin_verkoopfactuur_id",
"label": L("lcl_fin_verkoopfactuur_id"),
"typ": "varchar"
},
"invoicedate": {
"dbs": "fin_verkoopfactuur_datum",
"label": L("lcl_fin_verkoopfactuur_datum"),
"typ": "datetime" // date?
},
"fin_verkoopfactuur_xmlnode": {
"dbs": "fin_verkoopfactuur_xmlnode",
"label": L("lcl_fin_verkoopfactuur_xmlnode"),
"typ": "varchar",
LOV: "resevering;Reservering;bestelopdr;Bestelling;opdracht;Opdracht;contract;Contract"
},
"fin_verkoopfactuur_refkey": {
"dbs": "fin_verkoopfactuur_refkey",
"label": L("lcl_fin_verkoopfactuur_refkey"),
"typ": "varchar"
},
"fin_verkoopfactuur_bedrag": {
"dbs": "fin_verkoopfactuur_bedrag",
"label": L("lcl_fin_verkoopfactuur_bedrag"),
"typ": "float",
"total": true
},
"fin_verkoopfactuur_btw": {
"dbs": "fin_verkoopfactuur_btw",
"label": L("lcl_fin_verkoopfactuur_btw"),
"typ": "float",
"total": true
},
"nrlines": {
"dbs": "aantalregels",
"label": L("lcl_nrfinlines"),
"typ": "number"
}
};
this.primary = "fin_verkoopfactuur_id";
this.includes = { regels: { model: new model_fin_verkoopfactuurregels(),
joinfield: "name" } }
this.list = {
"columns": [
"id",
"invoicedate",
"fin_verkoopfactuur_bedrag",
"fin_verkoopfactuur_btw"
],
default_url : "appl/fin/fin_verkoopfactuur_verzamel.asp?mode=wrap&id="
};
this.search = {
"filters": [
"id",
"fin_verkoopfactuur_xmlnode",
"fin_verkoopfactuur_refkey"
//"account"
]
};
this.autfunction = "WEB_VERFAC";
this.record_title = L("lcl_verkoopfactuur"),
this.records_title = L("lcl_verkoopfacturen");
api2.generic_REST(this);
}
// Dit is het model voor alle factuurregels van een fin_verkoopfactuur_id
fin_verkoopfactuur_verzamel = function()
{
this.table = "verzamel"
this.tablesql = "(SELECT fin_verkoopfactuur_id"
+ " , MIN(fin_verkoopfactuur_key) min_factuur_key"
+ " , SUM(fin_verkoopfactuur_bedrag) fin_verkoopfactuur_bedrag"
+ " , SUM(fin_verkoopfactuur_btw) fin_verkoopfactuur_btw"
+ " , COUNT(*) aantalregels"
+ " FROM FIN_VERKOOPFACTUUR"
+ " GROUP BY fin_verkoopfactuur_id) verzamel";
this.fields = {
"id": {
"dbs": "fin_verkoopfactuur_id",
"label": L("lcl_fin_verkoopfactuur_id"),
"typ": "varchar"
},
"min_factuur_key": {
"dbs": "min_factuur_key",
"label": L("lcl_fin_verkoopfactuur_id"),
"typ": "key",
hidden_fld: true
},
"fin_verkoopfactuur_bedrag": {
"dbs": "fin_verkoopfactuur_bedrag",
"label": L("lcl_fin_verkoopfactuur_bedrag"),
"typ": "float"
},
"fin_verkoopfactuur_btw": {
"dbs": "fin_verkoopfactuur_btw",
"label": L("lcl_fin_verkoopfactuur_btw"),
"typ": "float",
"total": true
}
};
this.primary = "fin_verkoopfactuur_id";
this.includes = { regels: { model: new model_fin_verkoopfactuurregels(),
joinfield: "name" } }
this.list = {
"columns": [
"id",
"fin_verkoopfactuur_bedrag",
"fin_verkoopfactuur_btw"
]
};
this.search = {
"filters": [
"id"
]
};
this.print = {
xmlnode: "verkoopfactuur",
key: "min_factuur_key"
};
this.autfunction = "WEB_VERFAC";
this.record_title = L("lcl_verkoopfactuur_verzamel"),
this.records_title = L("lcl_verkoopfacturen_verzamel");
api2.generic_REST(this);
}
%>

View File

@@ -12,5 +12,6 @@
<!-- #include file='../../appl/scf/scaffolding.inc' -->
<!-- #include file='../../appl/api2/model_fin_verkoopfactuur.inc' -->
<%
scaffolding(model_fin_verkoopfactuur);
%>

View File

@@ -0,0 +1,16 @@
<%@language = 'javascript' %>
<% /*
$Revision$
$Id$
Note:
- all parameters are passed to the model automatically
- printoptie (outputmode?) in detailscherm?
*/ %>
<!-- #include file='../../appl/scf/scaffolding.inc' -->
<!-- #include file='../../appl/api2/model_fin_verkoopfactuur.inc' -->
<%
scaffolding(fin_verkoopfactuur_verzamel);
%>

View File

@@ -149,13 +149,13 @@ function scaffolding_list(model, scf_params)
{ // echte data op via (ons als include van) de 'parent'
xxx_params.filter.id = xxx_params.filter[scf_params.incsetting.joinfield]; // Die zal er dan zijn
xxx_params.include = [ getQParam("model") ];
// xxx_params.columns = []; // De kolommen van de parent hebben we niet nodig
var xxx_array = scf_params.orgmodel.REST_GET(xxx_params);
xxx_array = xxx_array[0][getQParam("model")];
}
else
{
xxx_params.include = xxx_params.include || [];
//if (0) // even uit, pivot kolommen krijgen soms regulier een punt
for (i in scf_params.list.columns)
{
var xmodel = model;

View File

@@ -36,6 +36,8 @@ function scaffolding_print(model, scf_params)
// Toch voeren we die wel uit voor de automatische authorisatiecontrole
if (model.print.xmlnode) // Die is simpel
{
if (model.print.key)
key = xxx_array[0][model.print.key];
FCLT2XMLResponse( {xmlnode: model.print.xmlnode, key: key, stylsesheet: model.print.xmlnode});
Response.End; // Simpel klaar
}

View File

@@ -160,12 +160,14 @@ function scaffolding_search(model, scf_params)
BLOCK_START("searchtable", L("lcl_filterblok") + est_title);
var includefilters = [];
for (var i=0; i < scf_params.search.filters.length; i++)
{
var xmodel = model;
var fld = scf_params.search.filters[i];
if (fld.indexOf(".") > 0) // Bij res_ruimte configurations.res_opstelling_key ofwel <include>.<field>
{
includefilters.push(fld);
xmodel = model.includes[fld.split(".")[0]].model;
var fld = fld.split(".")[1];
}
@@ -204,6 +206,9 @@ function scaffolding_search(model, scf_params)
RWCHECKBOXTR("scf_graph", "fldcheck", L("lcl_scf_graph"), on);
}
if (includefilters.length)
scf_RWHIDDENTR("includefilter", includefilters.join(","));
BLOCK_END();
var buttons = [];
buttons.push({title: L("lcl_search"), action: "doSubmit()" });
@@ -244,6 +249,9 @@ function scaffolding_search(model, scf_params)
var field = model.fields[fld];
if (field.hidden || field.typ=="label") // Hidden kun je ook niet aanzetten, en labels idem.
continue;
if (!field.label || field.label == '<hidden>')
continue;
var on = inArray(fld, scf_params.list.columns);
Response.Write("\n<tr id='" + fld + "'><td><label><input type='checkbox'" + (on?" checked='1'":"") + ">"
+ safe.html(field.label || ("<"+field.dbs+">")) + "</label></td>");

View File

@@ -60,7 +60,7 @@ function scaffolding_wrap(model, scf_params)
</head>
<body>
<% if (key < 0)
<% if (key == -1) // Bij fin_verkoopfactuur is de key alfanumeriek. Pas daarvoor op.
var page = scf_params.this_fullpath + "?mode=edit" + transit; // Maak een nieuw
else
var page = scf_params.this_fullpath + "?mode=show" + transit;
@@ -68,7 +68,7 @@ function scaffolding_wrap(model, scf_params)
IFRAMER("scfFrame", page, { FcltClose: "scfClose" } );
if (key > 0)
if (key != -1)
{
for (var inc in model.includes)
{