Skip to main content

End-to-End Project Workflows

This guide walks through the operational steps for common project types in AceCBM, followed by testing principles to ensure data flows correctly.


End-to-End Roofing / Customer Project Flow​

Roofing projects track labor, tasks, timeline dependencies, and physical inventory consumption.

Step 1: Create Project​

Create the project record in the proj table. The project initializes in the Planning (PLAN) status.

Step 2: Assemble the Team​

Assign employees to specific project roles in the proj_team drawer. For roofing, assign roles like Project Manager (PM), Foreman (FORE), Roofer (ROOF), and Estimator (EST).

[!IMPORTANT] Ensure a Project Manager (PM) is designated with an active effective date. This is required for project activation.

Step 3: Add Tasks and Milestones​

Add project tasks in the task table. For a roofing project, set up:

  • Site Inspection (normal task)
  • Permit Approval (normal task)
  • Material Ordering (normal task)
  • Delivery Milestone (milestone — milestone_flg = 'Y', 0-day duration)
  • Roof Tear-Off (normal task)
  • Install Shingles (normal task)
  • Final Sign-off (milestone)

Step 4: Define Predecessors & Dependencies​

Link tasks on the Gantt timeline. For example, draw a Finish-to-Start (FS) line from Roof Tear-Off to Install Shingles so that shingle installation cannot begin until the tear-off is completed.

Step 5: Define Labor Rates​

Open the Labor Rates drawer and set the hourly cost rates for each role involved in the project (e.g., PM, Roofer, Foreman) for the active planning period.

Step 6: Enter Labor Estimates​

Open the General Labor estimates drawer. Plan the estimated hours by role:

  • Project-level general labor (e.g., PM = 40 hours monthly)
  • Task-specific labor (e.g., Roofers = 120 hours on the Install Shingles task)

Step 7: Define Material Estimates​

Open the Materials drawer. Enter the estimated quantities and target unit costs for items needed (e.g., 75 bundles of Architectural Shingles, 3 rolls of Underlayment). This defines your material budget.

Step 8: Activate the Project​

Click Activate Project in the header. The system checks activation criteria. If successful, status changes to ACTIVE and an activation note is added to history. This opens the project for timesheets and material consumption.

Step 9: Log Timesheets​

Crew members log clock-ins and clock-outs against the active tasks. Once approved by the supervisor (status ApprovedWithEdit or ApprovedWithoutEdit), the hours are converted into Actual Labor Cost based on the labor rate active during that shift.

Step 10: Issue Materials (Project MIN)​

When materials are loaded onto dispatch trucks and issued, create and post a Project Material Issue Note (MIN) voucher:

  • Select document types: doc_type = 'MIN', doc_type2 = 'PROJ', tran_type = 'PROJ'.
  • Select target project id2 = proj_id.
  • Posting inventory decreases stock and adds to project actual costs (positive cost rows).

Step 11: View Cost Summary​

Open the Cost Summary drawer to monitor financial health. The dashboard compiles the planned vs. actual labor and materials, calculating remaining budgets and usage percentages.


End-to-End IT Development Project Flow​

IT projects focus primarily on timeline tasks and labor burns, usually without inventory tracking or Project Material Issue Notes.

Step 1: Create Project​

Create the project in PLAN status.

Step 2: Assign Team Roles​

Assign developers and engineering resources (e.g., Project Manager PM, Product Engineer PE, Tester TSTR).

Step 3: Configure Gantt Tasks​

Plan tasks such as Requirements, Dev Sprint 1, QA Testing, and Milestones (e.g., Code Freeze).

Step 4: Establish Dependency Sequences​

Configure predecessors (e.g., QA Testing depends FS on Dev Sprint 1).

Step 5: Define Hourly Rates​

Enter hourly internal costs for PE, TSTR, and PM roles in the Labor Rates drawer.

Step 6: Input Labor Estimates​

Add monthly or weekly estimates (e.g., PE = 220 hours during the Development sprint task).

Step 7: Activate the Project​

Complete activation readiness (active PM, planned start date, configured tasks). Status updates to ACTIVE.

Step 8: Direct Timesheet Logging​

Developers log hours directly to tasks. IT projects typically bypass shift schedules, allowing workers to log timesheet logs directly in proj_schd (specifying task, role, employee, and worked minutes).

Step 9: Monitor Burn Rates​

Open the Planned vs. Actual Role Hours analytics card in the Cost Summary drawer to compare estimated development hours against timesheets and identify potential overruns by role.


Important Testing Rules​

When testing or audit-checking data integrity, enforce these core validation rules:

1. Planned vs. Actual Data Origins​

  • Planned Labor: Multiplies proj_role_est hours by resolved proj_role_rate.
  • Planned Material: Multiplies proj_item quantity by target unit cost.
  • Actual Labor: Sums approved proj_schd hours multiplied by resolved proj_role_rate.
  • Actual Material: Sums positive project cost rows in posted vchr MINs.

2. Labor Estimate Scopes​

  • Project-Level Labor (task_id = 0): General management hours (like PM overhead). These sum into the overall Cost Summary but do not appear on individual Gantt task rows.
  • Task-Level Labor (task_id > 0): Tied directly to a task row. These must display as "Task Hrs" and "Task Est Cost" on the corresponding Gantt task line.

3. Approved Timesheet Filter​

Only timesheet logs in proj_schd marked ApprovedWithEdit or ApprovedWithoutEdit count as actual labor. Pending or rejected logs must be ignored.

4. Actual Material Cost Filters​

To check material actuals, only count rows where:

  • doc_type = 'MIN', doc_type2 = 'PROJ', tran_type = 'PROJ', id2 = proj_id, post_sts = 'P'.
  • Filter for line_no >= 101 and line_no < 10000 (positive cost adjustments). Exclude inventory-reduction rows (line_no >= 10101 or negative values) to prevent costs from cancelling out to zero.

5. DONE/CANCEL Security Locks​

Once a project transitions to DONE or CANCEL, it enters a secure, read-only state. Database and API edits to tasks, teams, rates, estimates, and material logs must be blocked.