I group all information for a project within a Primary Project Task, and group sub tasks as specific types of categories for the project.
For instance, a Project will always have a single sub task assigned as an Appointment. A Project will always contain 1 or more TimeLogs. A time log category is a subtask, and all time log entries are contained as sub tasks to the Time Log Category.
A Project may have 1 or more Financial Transactions such as deposits, and expenditures. These are all contained with the Transactions sub task for the Project.
The Project Task Record contains a set of custom fields specific to each Project Category, time logs, transactions, appointment, photo gallery, documents, etc. I have a set of custom fields for TimeLog, StartTime, EndTime, hours, laborers. If there is more than a single laborer, the time log task contains a set of sub tasks to identify laborers for the that time log. If the laborer's start and/or end times are different another sub task is created to maintain that information.
So for at Project, a time log category is created and 1:M sub tasks for the time log category are created for each time log entry. A time log sub task entry may have more than a single laborer for that time log. Each Laborer is a sub task to the time log entry. If the laborer has a different set of times which is different than the time log, but on the same date, that information is specific to that laborer and is stored on the task for that laborer.
So when I go to access all the information for a project, and the include_subtasks=true, not having the custom fields available for each sub task that means I have to recursively loop through each sub task to acquire the set of custom fields for that sub task.
Recursive loops (calling the same function within an array tree) is practically impossible with api call because by their very nature are linear and don't lend themselves available to call the same function in a recursive nature.
Presently I have to use a separate api call to get the custom fields for each of the sub tasks. It would be great to have an option to include_custom_fields.
Thanks, Scott.