Hi,
I need some help with this...
I've created a new entity called PROJECTS with two one-to-many relationships, one with the entity OPPORTUNITY and another with the entity QUOTE (I have the Sales Pack installed). I need to inherit the value of the field "project" from the OPPORTUNITY in the field with the same name in the form QUOTE when I create a new QUOTE and select the OPPORTUNITY.
I need to do that in the moment I select the OPPORTUNITY as it does with the field ACCOUNT on default way, not after save the form.
I've tried to create a new view in client/custom/src/views/quote/fields/opportunity.js, and register it in custom/Espo/Custom/Resources/metadata/entityDefs/Quote.json, but it doesn't work so I'm doing something wrong.
Thank you in advance for your help.
EspoCRM version 8.2.5
Sales Pack 2.3.4
I need some help with this...
I've created a new entity called PROJECTS with two one-to-many relationships, one with the entity OPPORTUNITY and another with the entity QUOTE (I have the Sales Pack installed). I need to inherit the value of the field "project" from the OPPORTUNITY in the field with the same name in the form QUOTE when I create a new QUOTE and select the OPPORTUNITY.
I need to do that in the moment I select the OPPORTUNITY as it does with the field ACCOUNT on default way, not after save the form.
I've tried to create a new view in client/custom/src/views/quote/fields/opportunity.js, and register it in custom/Espo/Custom/Resources/metadata/entityDefs/Quote.json, but it doesn't work so I'm doing something wrong.
Thank you in advance for your help.
Code:
// file: client/custom/src/views/quote/fields/opportunity.js
define('custom:views/quote/fields/opportunity', ['views/fields/link'], function (Dep) {
return Dep.extend({
setup: function () {
Dep.prototype.setup.call(this);
// Listen for changes to the opportunity field
this.listenTo(this.model, 'change:opportunityId', this.handleOpportunityChange);
},
handleOpportunityChange: function () {
var opportunityId = this.model.get('opportunityId');
if (opportunityId) {
var self = this;
// Fetch the selected opportunity data
this.ajaxGetRequest('Opportunity/' + opportunityId).then(function (data) {
if (data && data.cCprojectId) {
// Set the project link field in the QUOTE entity with the value from OPPORTUNITY
self.model.set('cCprojectId', data.cCprojectId);
self.model.set('cCprojectName', data.cCprojectName); // Assuming the project name field is also needed
}
});
} else {
// Clear the project link field if no opportunity is selected
self.model.set('cCprojectId', '');
self.model.set('cCprojectName', '');
}
},
ajaxGetRequest: function (url) {
return new Promise(function (resolve, reject) {
Espo.Ajax.getRequest(url).done(function (response) {
resolve(response);
}).fail(function () {
reject();
});
});
}
});
});
Code:
{
"clientDefs": {
"Quote": {
"fields": {
"opportunity": {
"view": "custom:views/quote/fields/opportunity"
}
}
}
}
}
Sales Pack 2.3.4

Comment