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().

← Deep dives index