[Vtigercrm-developers] Updating Related Account Field Display Value Programmatically in Vtiger 7 Edit View

Emmanuele Maida emmanuele.maida at gmail.com
Tue Apr 11 14:59:34 GMT 2023


Thanks for your reply, i tried with this:

    container.find('input[name="account_id"]').val(accountId).trigger(Vtiger_Edit_Js.referenceSelectionEvent, {
        'source_module': 'Accounts',
        'record': accountId
    }).trigger('SaveAjax', {
        'record': accountId,
        'value': response['data']['accountname']
    });

But it doesn't work..

Emmanuele Maida
Il Apr 11, 2023, 4:16 PM +0200, Alan Lord <alanslists at gmail.com> ha scritto:
> As I recall, you will need to update the uimeta object in the dom
> possibly via the SaveAjax action?
>
> HTH
>
> Al
>
> On 09/04/2023 22:38, Emmanuele Maida wrote:
> > Hello everyone,
> >
> > I'm currently working on customizing the Edit view of a custom module
> > called "Pratiche" in Vtiger 7.5. The module has two related fields,
> > contact_id and account_id. When a contact is selected, I want to
> > automatically update the related account based on the selected contact's
> > linked account.
> >
> > I have managed to update the account_id field value programmatically,
> > but the display value of the related account field (account_id_display)
> > does not update accordingly. The user has to refresh the page or to save
> > to see the that the account has been correctly updated.
> >
> > Here's the relevant code from my Pratiche_Edit_Js file:
> >
> > updateAccountIdBasedOnContactId: function (container) {
> > var thisInstance = this;
> > container.find('input[name="contact_id"]').on(Vtiger_Edit_Js.referenceSelectionEvent, function (e, data) {
> > console.log("Contact selected:", data);
> > thisInstance.getRecordDetails(data).then(
> > function (response) {
> > console.log("Contact details:", response);
> > var accountId = response['data']['account_id'];
> > var contactName = data['selectedName'];
> > var message = "Vuoi compilare i dati dell'azienda con quelli del
> > contatto " + contactName + " appena selezionato?";
> > app.helper.showConfirmationBox({ 'message': message }).then(function (e) {
> > console.log("User confirmed");
> > container.find('input[name="account_id"]').val(accountId).trigger(Vtiger_Edit_Js.referenceSelectionEvent, {
> > 'source_module': 'Accounts',
> > 'record': accountId
> >                         });
> > // Imposta il valore visualizzato del campo account
> > container.find('input[name="account_id_display"]').val(response['data']['accountname']);
> >
> > // Ottieni i dettagli dell'azienda relazionata
> > var accountData = {
> > 'source_module': 'Accounts',
> > 'record': accountId // Modifica qui
> >                         };
> > thisInstance.getRecordDetails(accountData).then(
> > function (accountDetails) {
> > console.log("Account details:", accountDetails);
> > // Qui puoi utilizzare i dettagli dell'azienda per compilare altri campi
> > // ad esempio:
> > container.find('input[name="custom_field"]').val(accountDetails['data']['custom_field']);
> >                             },
> > function (accountError, accountErr) {
> > console.log("Error retrieving account details:", accountError, accountErr);
> >                             }
> >                         );
> >
> > container.find('input[name="account_id_display"]').trigger('change');
> > container.find('input[name="account_id"]').trigger('change');
> >                     },
> > function (error, err) {
> > console.log("User canceled");
> >                         });
> >                 },
> > function (error, err) {
> > console.log("Error retrieving contact details:", error, err);
> >                 }
> >             );
> >         });
> >     },
> >
> >
> >
> > I have tried triggering the 'change' event on the account_id_display
> > field, but it still doesn't update the display value. I am looking for a
> > way to update the account display field in real-time so that the user
> > can see the updated account name without refreshing the page.
> >
> > Could someone please provide some guidance on how to achieve this?
> > Are there any specific events or methods that I should be using to
> > update the display value of the related account field programmatically?
> >
> > Any help would be greatly appreciated. Thank you!
> >
> >
> > _______________________________________________
> > http://www.vtiger.com/
>
>
> _______________________________________________
> http://www.vtiger.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.vtigercrm.com/pipermail/vtigercrm-developers/attachments/20230411/4d9c7818/attachment.html>


More information about the vtigercrm-developers mailing list