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_esthours by resolvedproj_role_rate. - Planned Material: Multiplies
proj_itemquantity by target unit cost. - Actual Labor: Sums approved
proj_schdhours multiplied by resolvedproj_role_rate. - Actual Material: Sums positive project cost rows in posted
vchrMINs.
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 >= 101andline_no < 10000(positive cost adjustments). Exclude inventory-reduction rows (line_no >= 10101or 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.