diff --git a/client/custom/src/views/c-vmh-mietverhaeltnis/fields/warmmiete.js b/client/custom/src/views/c-vmh-mietverhaeltnis/fields/warmmiete.js new file mode 100644 index 00000000..1ca28e18 --- /dev/null +++ b/client/custom/src/views/c-vmh-mietverhaeltnis/fields/warmmiete.js @@ -0,0 +1,38 @@ +define('custom:views/c-vmh-mietverhaeltnis/fields/warmmiete', ['views/fields/currency'], function (Dep) { + + return Dep.extend({ + + setup: function () { + Dep.prototype.setup.call(this); + + this.calculating = false; + + // Listen to changes on dependent fields + this.listenTo(this.model, 'change:kaltmiete', this.calculate.bind(this)); + this.listenTo(this.model, 'change:bKVorauszahlung', this.calculate.bind(this)); + this.listenTo(this.model, 'change:bKPauschale', this.calculate.bind(this)); + }, + + afterRender: function () { + Dep.prototype.afterRender.call(this); + // Don't calculate on initial render - only on changes + }, + + calculate: function () { + if (this.calculating) return; + this.calculating = true; + + var kaltmiete = parseFloat(this.model.get('kaltmiete')) || 0; + var bKVorauszahlung = parseFloat(this.model.get('bKVorauszahlung')) || 0; + var bKPauschale = parseFloat(this.model.get('bKPauschale')) || 0; + + var warmmiete = kaltmiete + bKVorauszahlung + bKPauschale; + + // Set value - this will trigger the parent view to update + this.model.set('warmmiete', warmmiete); + + this.calculating = false; + } + + }); +}); diff --git a/custom/Espo/Custom/Resources/metadata/entityDefs/CVmhMietverhltnis.json b/custom/Espo/Custom/Resources/metadata/entityDefs/CVmhMietverhltnis.json index f2ab8020..45b642d2 100644 --- a/custom/Espo/Custom/Resources/metadata/entityDefs/CVmhMietverhltnis.json +++ b/custom/Espo/Custom/Resources/metadata/entityDefs/CVmhMietverhltnis.json @@ -169,7 +169,8 @@ "isCustom": true, "readOnly": true, "required": false, - "tooltip": true + "tooltip": true, + "view": "custom:views/c-vmh-mietverhaeltnis/fields/warmmiete" }, "vmhMietobjekt": { "type": "link", diff --git a/custom/Espo/Custom/Resources/metadata/formula/CVmhMietverhltnis.json b/custom/Espo/Custom/Resources/metadata/formula/CVmhMietverhltnis.json new file mode 100644 index 00000000..be4b3e20 --- /dev/null +++ b/custom/Espo/Custom/Resources/metadata/formula/CVmhMietverhltnis.json @@ -0,0 +1,3 @@ +{ + "beforeSaveCustomScript": "warmmiete = (kaltmiete ?? 0) + (bKVorauszahlung ?? 0) + (bKPauschale ?? 0);" +} diff --git a/data/config.php b/data/config.php index 9938961a..16c2683a 100644 --- a/data/config.php +++ b/data/config.php @@ -359,8 +359,8 @@ return [ 0 => 'youtube.com', 1 => 'google.com' ], - 'cacheTimestamp' => 1769206320, - 'microtime' => 1769206320.164239, + 'cacheTimestamp' => 1769206439, + 'microtime' => 1769206439.346976, 'siteUrl' => 'https://crm.bitbylaw.com', 'fullTextSearchMinLength' => 4, 'appTimestamp' => 1768843902,