161 lines
5.2 KiB
C++
161 lines
5.2 KiB
C++
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: model_fin_factuurregel.inc
|
|
|
|
Description: Model voor fin_factuurregel
|
|
|
|
Context:
|
|
|
|
Notes:
|
|
*/
|
|
%>
|
|
<%
|
|
|
|
function model_fin_factuurregel()
|
|
{
|
|
this.records_name = "invoicerows";
|
|
this.record_name = "invoicerow";
|
|
this.table = "fin_factuurregel";
|
|
this.primary = "fin_factuurregel_key";
|
|
this.autfunction = "WEB_BGTUSE"; // "WEB_FINUSE"
|
|
this.record_title = L("lcl_verkoopfactuurregel");
|
|
this.records_title = L("fin_invoicerows");
|
|
|
|
|
|
this.fields = {
|
|
"id": {
|
|
"dbs": "fin_factuurregel_key",
|
|
"label": L("lcl_key"),
|
|
"typ": "key",
|
|
"hidden_fld": true,
|
|
"required": true,
|
|
"filter": "exact",
|
|
"seq": "fin_s_fin_factuurregel_key"
|
|
},
|
|
"invoice": {
|
|
"dbs": "fin_factuur_key",
|
|
"label": L("lcl_fin_invoice_number"),
|
|
"typ": "key",
|
|
"foreign": {
|
|
"tbl": "(SELECT fin_factuur_key"
|
|
+ " , fin_factuur_nr ||' '|| fin_factuur_opmerking oms"
|
|
+ " FROM fin_factuur"
|
|
+ ")",
|
|
"key": "fin_factuur_key",
|
|
"desc": "oms"
|
|
}
|
|
},
|
|
"sequence": {
|
|
"dbs": "fin_factuurregel_nr",
|
|
"label": L("lcl_ins_volgnr"),
|
|
"typ": "number"
|
|
},
|
|
"reference": {
|
|
"dbs": "fin_factuurregel_referentie",
|
|
"label": L("lcl_fin_referentie"),
|
|
"typ": "varchar"
|
|
},
|
|
"description": {
|
|
"dbs": "fin_factuurregel_omschrijving",
|
|
"label": L("lcl_fin_remark"),
|
|
"typ": "varchar"
|
|
},
|
|
"vatvalue": {
|
|
"dbs": "fin_btwtabelwaarde_key",
|
|
"label": L("lcl_fin_btwtarief"),
|
|
"typ": "key",
|
|
"foreign": {
|
|
"tbl": "fin_btwtabelwaarde",
|
|
"key": "fin_btwtabelwaarde_key",
|
|
"desc": "fin_btwtabelwaarde_oms"
|
|
}
|
|
},
|
|
"amount": {
|
|
"dbs": "fin_factuurregel_totaal",
|
|
"label": L("lcl_fin_CO_sum"),
|
|
"typ": "float",
|
|
"iscurrency": true,
|
|
"total": true
|
|
},
|
|
"vat": {
|
|
"dbs": "fin_factuurregel_btw",
|
|
"label": L("lcl_fin_btwsum"),
|
|
"typ": "float",
|
|
"iscurrency": true,
|
|
"total": true
|
|
}
|
|
};
|
|
|
|
this.list = {
|
|
"columns": [
|
|
"sequence",
|
|
"reference",
|
|
"description",
|
|
"vatvalue",
|
|
"amount",
|
|
"vat"
|
|
]
|
|
};
|
|
|
|
this.edit = {
|
|
"modal": true
|
|
};
|
|
|
|
this.hook_pre_edit = function(obj, fld)
|
|
{
|
|
fld.vat.readonly = true;
|
|
}
|
|
|
|
function get_btw_bedrag(btw_key, bedrag_excl)
|
|
{
|
|
var sql = "SELECT fin_btwtabelwaarde_perc"
|
|
+ " , fin_btwtabelwaarde_verlegd"
|
|
+ " FROM fin_btwtabelwaarde"
|
|
+ " WHERE fin_btwtabelwaarde_key = " + btw_key;
|
|
oRs = Oracle.Execute(sql);
|
|
// Er moet een waarde zijn.
|
|
var btw_perc = oRs("fin_btwtabelwaarde_perc").value;
|
|
var verlegd = oRs("fin_btwtabelwaarde_verlegd").value;
|
|
oRs.Close();
|
|
var btw_bedrag = bedrag_excl * btw_perc / 100;
|
|
return btw_bedrag;
|
|
}
|
|
|
|
this.hook_pre_post = function(params, obj)
|
|
{
|
|
// Wordt alleen gebruikt bij toevoegen.
|
|
obj.vat = get_btw_bedrag(obj.vatvalue, obj.amount);
|
|
}
|
|
|
|
this.hook_pre_put = function(params, obj, key)
|
|
{
|
|
// Wordt alleen gebruikt bij wijzigen.
|
|
obj.vat = get_btw_bedrag(obj.vatvalue, obj.amount);
|
|
|
|
// Redundante info fan fin_factuur bijwerken.
|
|
var sql = "UPDATE fin_factuur ff"
|
|
+ " SET ff.fin_factuur_totaal = (SELECT SUM(fin_factuurregel_totaal)"
|
|
+ " FROM fin_factuurregel fr"
|
|
+ " WHERE fr.fin_factuur_key = ff.fin_factuur_key"
|
|
+ " AND fr.fin_factuurregel_key <> " + key
|
|
+ ") + " + obj.amount
|
|
+ " , ff.fin_factuur_totaal_btw = (SELECT SUM(fin_factuurregel_btw)"
|
|
+ " FROM fin_factuurregel fr"
|
|
+ " WHERE fr.fin_factuur_key = ff.fin_factuur_key"
|
|
+ " AND fr.fin_factuurregel_key <> " + key
|
|
+ ") + " + obj.vat
|
|
+ " WHERE ff.fin_factuur_key = (SELECT fin_factuur_key"
|
|
+ " FROM fin_factuurregel"
|
|
+ " WHERE fin_factuurregel_key = " + key
|
|
+ ")";
|
|
Oracle.Execute(sql);
|
|
}
|
|
|
|
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);
|
|
}
|
|
%> |