Drupal Association members fund grants that make connections all over the world.
Complete Description of my issue (TL;DR schematics below):
There is one entity ("project") which has its data and among them there are four Field Collections with unlimited cardinality ("direct costs", "personnel", etc).
In every one of these FCs, there are two or three fields that are used by a "Total" field for each item, using a computed field.
Back to the host entity, there is one computed field for each one of the FCs, for convenience, to calculate the subtotal of all the items in each.
In all those cases, if I edit any detail on the FCs or add/delete one, their item's total and the host subtotal for the specific FC are updated.
Then, there is also a "grand total", which basically sums up all four subtotals. That grand total one is not updated, unless I edit the host entity itself afterwards.
So, my question is related to this specific field: is it a bug that the field does not compute, is it the intended behavio(u)r or I could do something to have it working -- nevermind the fact that I can basically replicate all the FColl subtotals calculations on this field.
ps: There is even another Field Collection ("Proposal"), which has a computed field that takes the percentage fields on the host entity and apply them on the grand total, which also has the same behavio(u)r.
After I changed the code to replicate all calculations to work around this case and noticed the last field (proposal value), which is a computed field from a field collection using values from its host, won't be updated when another FC from the host is changed, only
if the host, or the FC itself, is updated afterwards.
- FColl1 - 1, 2, ..., N
- FColl1_item: a+b*c = total ok
- Subtotal_FColl1 += FColl1_item[N]->total ok
- FColl4 - 1, 2, ..., N
- FColl4_item: a+b*c = total ok
- Subtotal_FColl4 += FColl4_item[N]->total ok
- Grand_total = Subtotal_FColl1+Subtotal_FColl2+Subtotal_FColl3+Subtotal_FColl4 not ok
- Perc1 (float)
- Perc2 (float)
- Perc3 (float)
- Proposal_Value = Grand_Total + [percentages applied on Grand_Total] not ok