Task Lifecycle & Execution
Business perspective: Task Lifecycle & Execution
1. Business Summary
Tasks are the executable production units: assignment, scheduling, status, working days, vendor availability, delegation, rejection, checklists, logs, evaluation eligibility, and finance hooks (vendor invoice, internal invoice).
2. Business Value
The atomic unit of delivery, accountability, and payment.
3. Users / Stakeholders
PMs, vendors/resources, reviewers, vendor managers, finance.
4. Workflows
A. Task creation (auto)
- AutomationComponent::autoPlaning() (Job autoplan):
1. Compute available minutes for the job based on start/end_date minus risk factor.
2. Query phase_types_details for task types and time-share %.
3. Create tasks per phase or per file mode.
4. Each task has start_date, end_date, task_type_id, phase_id, amount.
5. linkFileToTask() connects source files.
B. Manual creation
- PM creates task via UI or mobile API.
C. Assignment & delegation
- assignee_id set; partially_delegate_to_id/fully_delegate_to_id allow re-routing.
- Resource selection (RFR / strategy) finalizes assignee.
D. Acceptance / rejection
- Vendor accepts via web/mobile (mobile_apis/acceptTask, rejectTask).
- TaskRejection record captures reason.
E. Verification & closure
- setVerificationStage() (EngineFunctions) updates task as verified.
- TMS push of finalized files; OUT folder upload progress recorded.
- PM closes task; finance invoice eligibility unlocked.
F. Logging
- TaskLog, TaskWorkingDay, TaskVendorAvailability track activity, working days, vendor availability state.
5. Sub-Features
- Per-phase or per-file scheduling.
- Delegation paths.
- TaskRejection workflow.
- Vendor availability tracking.
- Checklists.
- Logs and audit trail.
6. Business Rules
- Tasks tied to a job; phase scheduling sequential.
- Risk factor reduces available time.
- Approval status drives downstream finance availability.
- Submitted approved evaluations queue async background processing.
7. Data Entities
Task, TaskLog, TaskRejection, TaskRelation, TaskVendorAvailability, TaskWorkingDay, TaskChecklist, TasksChecklist, TaskStatus, ApprovalStatus, EvaluationTemplate.
8. Entry Points
projects/tasks.mobile_apis/{acceptTask,rejectTask,downloadAttachment,uploadFiles,…}.tms/task_assigned.automation/autoplanning.
9. Inputs & Outputs
- Inputs: job, phase, type, dates, assignee, files.
- Outputs: task record, logs, vendor invoice eligibility.
10. Integrations
- Finance (vendor invoice, internal invoice).
- Resource selection.
- TMS file flow.
- Email/push alerts.
11. Calculations / Logic
- Time-share % per task type per phase determines duration.
- Productivity drives capacity.
- Acceptance/rejection status drives downstream.
12. Status Lifecycle
- TaskStatus: typically created → assigned → in-progress → completed → verified → closed (or rejected/cancelled).
- ApprovalStatus: pending → approved/rejected.
13. Permissions
- PM, vendor, reviewer, VM, finance — security-engine driven.
- Creator/assignee can edit; admin overrides.
14. Reports & KPIs
- On-time delivery, rejection rate, productivity, vendor utilization, evaluation scores.
15. Risks & Observations
- No explicit state-machine validation in models — code relies on UI/components.
- Status transitions and finance hooks tightly coupled.
- Race conditions between TMS/MOC sync and task close.
16. Source Code Evidence
app/Plugin/projects/Model/Task.php,TaskLog.php,TaskRejection.php,TaskRelation.php,TaskVendorAvailability.php,TaskWorkingDay.php,TaskChecklist.php.app/Plugin/projects/Controller/TasksController.php,TaskRelationsController.php,TaskRejectionsController.php,TaskWorkingDaysController.php,TaskVendorAvailabilitiesController.php.app/Controller/Component/AutomationComponent.php::autoPlaning(),linkFileToTask().app/Controller/TmsController.php::task_assigned().