[Vtigercrm-developers] get entity parent in workflow custom function?

Oleg Antonov oleg.a at pinstudio.ru
Mon Jun 18 22:09:10 GMT 2018


Why don't you store primary contact in custom field (UItype 10) in the
organization?


2018-06-19 0:05 GMT+03:00 Alex Hall <ahall at autodist.com>:

> Thanks, but that's not quite what I'm going for. I want to run this
> function each time a contact is updated, changing it to be primary if the
> custom field was checked and removing its status as primary if the box was
> unchecked. Where my function comes in is in making sure that, upon becoming
> primary, any other contacts assigned to this user are removed as primary.
> Essentially, this custom field is being forced to be a single field shared
> by all contacts of an organization, where only one contact can have the
> field checked at a time.
>
> I therefore need to get from the entity passed to the function, to its
> sibling contacts. I also need the status of the "primary" custom field to
> know if I have to change anything. If I do, I have to set "primary" to
> false in all other contacts that belong to the same organization as the one
> represented by the entity, then set the entity's "primary" to true.
>
>
> On Mon, Jun 18, 2018 at 4:17 PM, Christoper J Combrink <
> christopher at wowfingers.com> wrote:
>
>> It's really late.. But I may have a solution that goes about a totally
>> different way.
>>
>> If I understand your logic - you could query all contracts into an array
>> that are "related to" an organisation and then mark the most recently
>> created one as the primary contact. Assuming you always want to have the
>> most recent one set as primary?
>>
>> Regards,
>>
>> CJC
>>
>> (sent on the move)
>>
>> On Mon, 18 Jun 2018, 21:45 Alex Hall, <ahall at autodist.com> wrote:
>>
>>> Hello list,
>>> I've been asked to write a custom function for a workflow to run
>>> whenever a contact is updated. We have a custom field called "is primary
>>> contact", which is just a checkbox. However, each organization can only
>>> have one primary contact at a time. That means the custom function has to
>>> move the "primary" designation to the newly selected contact. Put another
>>> way, the function has to do these tasks:
>>>
>>> * get $entity's "is primary" custom field value
>>> * exit if the newly set value is false, as there's nothing to update
>>> * get $entity's parent organization (remember that $entity is from a
>>> contacts workflow)
>>> * set all the children contacts of $entity's parent organization to not
>>> be primary, while setting $entity itself to be the only primary
>>>
>>> My main problem right now is finding $entity's parent. I can't figure
>>> out how to do that. I've looked at the source code, but there's nothing in
>>> that class that seems to be a way of accessing the parent. What's the trick
>>> to this, or can it not be done how I want? Is there another way anyone can
>>> see to get this working? Hopefully I've explained enough to make sense.
>>> Thanks.
>>>
>>> --
>>> Alex Hall
>>> Automatic Distributors, IT department
>>> ahall at autodist.com
>>> _______________________________________________
>>> http://www.vtiger.com/
>>
>>
>> _______________________________________________
>> http://www.vtiger.com/
>>
>
>
>
> --
> Alex Hall
> Automatic Distributors, IT department
> ahall at autodist.com
>
> _______________________________________________
> http://www.vtiger.com/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.vtigercrm.com/pipermail/vtigercrm-developers/attachments/20180619/1992304f/attachment.html>


More information about the vtigercrm-developers mailing list