[Vtigercrm-developers] get entity parent in workflow custom function?
Alex Hall
ahall at autodist.com
Tue Jun 19 10:09:19 GMT 2018
That's a good idea. I'm not sure it will work with the interface I'm thinking of using, but I'll look into it. It would certainly be easier than what I'm trying to do.
> On Jun 18, 2018, at 18:09, Oleg Antonov <oleg.a at pinstudio.ru> wrote:
>
> 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 <mailto: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 <mailto: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 <mailto: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 <mailto:ahall at autodist.com>
> _______________________________________________
> http://www.vtiger.com/ <http://www.vtiger.com/>
> _______________________________________________
> http://www.vtiger.com/ <http://www.vtiger.com/>
>
>
>
> --
> Alex Hall
> Automatic Distributors, IT department
> ahall at autodist.com <mailto:ahall at autodist.com>
>
> _______________________________________________
> http://www.vtiger.com/ <http://www.vtiger.com/>
>
> _______________________________________________
> http://www.vtiger.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.vtigercrm.com/pipermail/vtigercrm-developers/attachments/20180619/970a429f/attachment-0001.html>
More information about the vtigercrm-developers
mailing list