-
TimeSheets Page
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add Timesheet
+
+
+ Bulk Approve
+
+
+ Export
+
+
+
+
+
+
+
+
+
+
mdi-clock
+
+
{{ totalHoursThisWeek }}
+
Hours This Week
+
+
+
+
+
+
+
+
+
mdi-clock-alert
+
+
{{ pendingApprovals }}
+
Pending Approval
+
+
+
+
+
+
+
+
+
mdi-currency-usd
+
+
${{ totalLaborCost }}
+
Labor Cost
+
+
+
+
+
+
+
+
+
mdi-account-group
+
+
{{ activeEmployees }}
+
Active Employees
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Timesheet Details - {{ selectedTimesheet.timesheetId }}
+
+ {{ selectedTimesheet.employee }} -
+ {{ formatDate(selectedTimesheet.date) }}
+
+
+
+
+ {{ selectedTimesheet.status.toUpperCase() }}
+
+
+
+
+
+
+
+
+
+
+
+
Time & Job Information
+
+
+
+ mdi-account
+ Employee:
+ {{ selectedTimesheet.employee }}
+
+
+
+ mdi-calendar
+ Date:
+ {{
+ formatDate(selectedTimesheet.date)
+ }}
+
+
+
+ mdi-briefcase
+ Job ID:
+ {{ selectedTimesheet.jobId }}
+
+
+
+ mdi-account-hard-hat
+ Customer:
+ {{ selectedTimesheet.customer }}
+
+
+
+ mdi-map-marker
+ Address:
+ {{ selectedTimesheet.address }}
+
+
+
+ mdi-wrench
+ Task:
+ {{
+ selectedTimesheet.taskDescription
+ }}
+
+
+
+
+
Time Details
+
+
+ Clock In:
+ {{ selectedTimesheet.clockIn }}
+
+
+ Clock Out:
+ {{
+ selectedTimesheet.clockOut
+ }}
+
+
+ Break Time:
+ {{ selectedTimesheet.breakTime }} min
+
+
+ Regular Hours:
+ {{
+ selectedTimesheet.regularHours
+ }}
+
+
+ Overtime Hours:
+ {{
+ selectedTimesheet.overtimeHours
+ }}
+
+
+ Total Hours:
+ {{
+ selectedTimesheet.totalHours
+ }}
+
+
+
+
+
Pay Calculation
+
+
+ Regular Rate:
+ ${{ selectedTimesheet.hourlyRate }}/hr
+
+
+ Overtime Rate:
+ ${{ selectedTimesheet.overtimeRate }}/hr
+
+
+ Mileage:
+ {{ selectedTimesheet.mileage }} miles
+
+
+ Total Pay:
+ ${{ selectedTimesheet.totalPay }}
+
+
+
+
+
+
+
Work Details
+
+
+
+
Equipment Used:
+
+
+ {{ equipment }}
+
+
+
+
+
+
+
Materials Used:
+
+
+ mdi-package-variant
+ {{ material }}
+
+
+
+
+
+
+
Work Notes:
+
+ {{ selectedTimesheet.notes }}
+
+
+
+
+
+
Approval Status:
+
+
+
mdi-check-circle
+
+
+ Approved by {{ selectedTimesheet.approvedBy }}
+
+
+ {{ formatDate(selectedTimesheet.approvedDate) }}
+
+
+
+
+ mdi-clock
+ Pending approval
+
+
+
+
+
+
+
+
+
+
+
+
+ Close
+
+
+ Approve
+
+ Edit
+
+
+
-
-
+
+
diff --git a/frontend/src/utils.js b/frontend/src/utils.js
index d99089b..bd900df 100644
--- a/frontend/src/utils.js
+++ b/frontend/src/utils.js
@@ -1281,6 +1281,364 @@ class DataUtils {
systemType: "Commercial Irrigation",
},
];
+
+ static dummyTimesheetData = [
+ // Current week entries (Oct 25-31, 2025)
+ {
+ id: 1,
+ timesheetId: "TS-2025-001",
+ employee: "Mike Thompson",
+ employeeId: "EMP001",
+ date: "2025-10-25",
+ weekOf: "2025-10-21",
+ jobId: "JOB001",
+ customer: "John Doe",
+ address: "123 Lane Dr, Cityville, MN",
+ taskDescription: "Sprinkler System Installation - Zone 1-4",
+ clockIn: "07:30",
+ clockOut: "17:00",
+ breakTime: 30, // minutes
+ regularHours: 9.0,
+ overtimeHours: 0.5,
+ totalHours: 9.5,
+ status: "submitted",
+ approved: false,
+ approvedBy: null,
+ approvedDate: null,
+ hourlyRate: 28.5,
+ overtimeRate: 42.75,
+ totalPay: 292.88,
+ notes: "Completed main line installation and zone 1-4 heads",
+ equipment: ["Trencher", "Compactor", "Hand tools"],
+ mileage: 45,
+ materials: ["PVC Pipe - 200ft", "Sprinkler Heads - 15", "Valves - 4"],
+ },
+ {
+ id: 2,
+ timesheetId: "TS-2025-002",
+ employee: "Sarah Johnson",
+ employeeId: "EMP002",
+ date: "2025-10-25",
+ weekOf: "2025-10-21",
+ jobId: "JOB007",
+ customer: "Chris Taylor",
+ address: "159 Spruce Ct, Capital City, WA",
+ taskDescription: "Zone Expansion Install",
+ clockIn: "08:00",
+ clockOut: "16:30",
+ breakTime: 30,
+ regularHours: 8.0,
+ overtimeHours: 0,
+ totalHours: 8.0,
+ status: "approved",
+ approved: true,
+ approvedBy: "Lisa Anderson",
+ approvedDate: "2025-10-26",
+ hourlyRate: 26.0,
+ overtimeRate: 39.0,
+ totalPay: 208.0,
+ notes: "Added 3 new zones, tested all systems",
+ equipment: ["Boring machine", "Hand tools"],
+ mileage: 32,
+ materials: [
+ "Irrigation tubing - 150ft",
+ "Sprinkler Heads - 8",
+ "Control wire - 300ft",
+ ],
+ },
+ {
+ id: 3,
+ timesheetId: "TS-2025-003",
+ employee: "David Martinez",
+ employeeId: "EMP003",
+ date: "2025-10-25",
+ weekOf: "2025-10-21",
+ jobId: "JOB012",
+ customer: "Sophia White",
+ address: "258 Palm Blvd, Riverside, AZ",
+ taskDescription: "Drip System Repair & Maintenance",
+ clockIn: "07:00",
+ clockOut: "15:30",
+ breakTime: 30,
+ regularHours: 8.0,
+ overtimeHours: 0,
+ totalHours: 8.0,
+ status: "draft",
+ approved: false,
+ approvedBy: null,
+ approvedDate: null,
+ hourlyRate: 24.5,
+ overtimeRate: 36.75,
+ totalPay: 196.0,
+ notes: "Repaired multiple leaks in drip lines, replaced emitters",
+ equipment: ["Hand tools", "Pressure gauge"],
+ mileage: 28,
+ materials: ["Drip tubing - 50ft", "Emitters - 25", "Fittings - misc"],
+ },
+ {
+ id: 4,
+ timesheetId: "TS-2025-004",
+ employee: "Chris Wilson",
+ employeeId: "EMP004",
+ date: "2025-10-24",
+ weekOf: "2025-10-21",
+ jobId: "JOB003",
+ customer: "Mike Johnson",
+ address: "789 Pine Rd, Villagetown, TX",
+ taskDescription: "Controller Programming & System Testing",
+ clockIn: "09:00",
+ clockOut: "17:30",
+ breakTime: 60,
+ regularHours: 7.5,
+ overtimeHours: 0,
+ totalHours: 7.5,
+ status: "submitted",
+ approved: false,
+ approvedBy: null,
+ approvedDate: null,
+ hourlyRate: 30.0,
+ overtimeRate: 45.0,
+ totalPay: 225.0,
+ notes: "Programmed new smart controller, tested all 8 zones",
+ equipment: ["Laptop", "Multimeter", "Hand tools"],
+ mileage: 42,
+ materials: ["Smart Controller - 1", "Wire nuts - 10"],
+ },
+ {
+ id: 5,
+ timesheetId: "TS-2025-005",
+ employee: "Lisa Anderson",
+ employeeId: "EMP005",
+ date: "2025-10-24",
+ weekOf: "2025-10-21",
+ jobId: "JOB017",
+ customer: "Ethan Walker",
+ address: "456 Walnut Rd, Meadowbrook, ND",
+ taskDescription: "Backflow Prevention Installation",
+ clockIn: "08:30",
+ clockOut: "16:00",
+ breakTime: 30,
+ regularHours: 7.0,
+ overtimeHours: 0,
+ totalHours: 7.0,
+ status: "approved",
+ approved: true,
+ approvedBy: "Mike Thompson",
+ approvedDate: "2025-10-25",
+ hourlyRate: 27.5,
+ overtimeRate: 41.25,
+ totalPay: 192.5,
+ notes: "Installed backflow preventer, pressure testing completed",
+ equipment: ["Pipe cutter", "Threading machine", "Pressure tester"],
+ mileage: 38,
+ materials: ["Backflow Preventer - 1", "Copper fittings - misc", "Solder"],
+ },
+ {
+ id: 6,
+ timesheetId: "TS-2025-006",
+ employee: "Mike Thompson",
+ employeeId: "EMP001",
+ date: "2025-10-23",
+ weekOf: "2025-10-21",
+ jobId: "JOB015",
+ customer: "Andrew Lewis",
+ address: "357 Dogwood Dr, Lakeview, VT",
+ taskDescription: "System Winterization",
+ clockIn: "07:30",
+ clockOut: "15:00",
+ breakTime: 30,
+ regularHours: 7.0,
+ overtimeHours: 0,
+ totalHours: 7.0,
+ status: "approved",
+ approved: true,
+ approvedBy: "Lisa Anderson",
+ approvedDate: "2025-10-24",
+ hourlyRate: 28.5,
+ overtimeRate: 42.75,
+ totalPay: 199.5,
+ notes: "Winterized entire system, drained all lines and components",
+ equipment: ["Air compressor", "Hand tools"],
+ mileage: 55,
+ materials: ["Compressed air", "Antifreeze - 2 gallons"],
+ },
+ // Previous week entries (Oct 14-20, 2025)
+ {
+ id: 7,
+ timesheetId: "TS-2025-007",
+ employee: "Sarah Johnson",
+ employeeId: "EMP002",
+ date: "2025-10-20",
+ weekOf: "2025-10-14",
+ jobId: "JOB010",
+ customer: "Olivia Thomas",
+ address: "147 Cypress St, Uptown, GA",
+ taskDescription: "Emergency Repair - Main Line Leak",
+ clockIn: "07:00",
+ clockOut: "18:30",
+ breakTime: 30,
+ regularHours: 8.0,
+ overtimeHours: 3.0,
+ totalHours: 11.0,
+ status: "approved",
+ approved: true,
+ approvedBy: "Mike Thompson",
+ approvedDate: "2025-10-21",
+ hourlyRate: 26.0,
+ overtimeRate: 39.0,
+ totalPay: 325.0,
+ notes: "Emergency call - repaired major main line break",
+ equipment: ["Excavator", "Pipe cutter", "Hand tools"],
+ mileage: 67,
+ materials: ["PVC Pipe - 20ft", "Couplings - 4", "Pipe cement"],
+ },
+ {
+ id: 8,
+ timesheetId: "TS-2025-008",
+ employee: "David Martinez",
+ employeeId: "EMP003",
+ date: "2025-10-19",
+ weekOf: "2025-10-14",
+ jobId: "JOB005",
+ customer: "David Wilson",
+ address: "654 Cedar Blvd, Borough, NY",
+ taskDescription: "Final System Testing & Cleanup",
+ clockIn: "08:00",
+ clockOut: "16:30",
+ breakTime: 30,
+ regularHours: 8.0,
+ overtimeHours: 0,
+ totalHours: 8.0,
+ status: "approved",
+ approved: true,
+ approvedBy: "Lisa Anderson",
+ approvedDate: "2025-10-20",
+ hourlyRate: 24.5,
+ overtimeRate: 36.75,
+ totalPay: 196.0,
+ notes: "Final system testing, site cleanup, customer walkthrough",
+ equipment: ["Hand tools", "Cleanup supplies"],
+ mileage: 25,
+ materials: ["Grass seed - 5 lbs", "Topsoil - 2 bags"],
+ },
+ {
+ id: 9,
+ timesheetId: "TS-2025-009",
+ employee: "Chris Wilson",
+ employeeId: "EMP004",
+ date: "2025-10-18",
+ weekOf: "2025-10-14",
+ jobId: "JOB009",
+ customer: "Joshua Anderson",
+ address: "852 Aspen Rd, Bigcity, NJ",
+ taskDescription: "Valve Replacement & Zone Testing",
+ clockIn: "08:30",
+ clockOut: "17:00",
+ breakTime: 30,
+ regularHours: 8.0,
+ overtimeHours: 0,
+ totalHours: 8.0,
+ status: "approved",
+ approved: true,
+ approvedBy: "Mike Thompson",
+ approvedDate: "2025-10-19",
+ hourlyRate: 30.0,
+ overtimeRate: 45.0,
+ totalPay: 240.0,
+ notes: "Replaced faulty zone 3 valve, tested all zones for proper operation",
+ equipment: ["Trenching shovel", "Hand tools", "Multimeter"],
+ mileage: 48,
+ materials: ["Zone Valve - 1", "Wire nuts - 5", "Electrical tape"],
+ },
+ {
+ id: 10,
+ timesheetId: "TS-2025-010",
+ employee: "Lisa Anderson",
+ employeeId: "EMP005",
+ date: "2025-10-17",
+ weekOf: "2025-10-14",
+ jobId: "JOB014",
+ customer: "Isabella Clark",
+ address: "753 Magnolia Ct, Hilltown, SC",
+ taskDescription: "Sprinkler Head Adjustments & Coverage Testing",
+ clockIn: "09:00",
+ clockOut: "16:30",
+ breakTime: 30,
+ regularHours: 7.0,
+ overtimeHours: 0,
+ totalHours: 7.0,
+ status: "approved",
+ approved: true,
+ approvedBy: "Sarah Johnson",
+ approvedDate: "2025-10-18",
+ hourlyRate: 27.5,
+ overtimeRate: 41.25,
+ totalPay: 192.5,
+ notes: "Adjusted all sprinkler heads for optimal coverage, marked areas needing attention",
+ equipment: ["Hand tools", "Measuring tape", "Spray paint"],
+ mileage: 33,
+ materials: ["Sprinkler Head Adjustment Tools", "Marking flags - 20"],
+ },
+ // Older entries for reporting
+ {
+ id: 11,
+ timesheetId: "TS-2025-011",
+ employee: "Mike Thompson",
+ employeeId: "EMP001",
+ date: "2025-10-16",
+ weekOf: "2025-10-14",
+ jobId: "JOB006",
+ customer: "Sarah Brown",
+ address: "987 Birch Ln, Metropolis, IL",
+ taskDescription: "Site Survey & Design Planning",
+ clockIn: "08:00",
+ clockOut: "15:30",
+ breakTime: 30,
+ regularHours: 7.0,
+ overtimeHours: 0,
+ totalHours: 7.0,
+ status: "approved",
+ approved: true,
+ approvedBy: "Lisa Anderson",
+ approvedDate: "2025-10-17",
+ hourlyRate: 28.5,
+ overtimeRate: 42.75,
+ totalPay: 199.5,
+ notes: "Completed site survey, created design plan for 4-zone expansion",
+ equipment: ["Measuring wheel", "Stake flags", "Camera"],
+ mileage: 40,
+ materials: ["Survey stakes - 50", "Flagging tape - 1 roll"],
+ },
+ {
+ id: 12,
+ timesheetId: "TS-2025-012",
+ employee: "Sarah Johnson",
+ employeeId: "EMP002",
+ date: "2025-10-15",
+ weekOf: "2025-10-14",
+ jobId: "MAINT-001",
+ customer: "Multiple Properties",
+ address: "Various - See route sheet",
+ taskDescription: "Routine Maintenance Route - North Valley",
+ clockIn: "07:00",
+ clockOut: "16:00",
+ breakTime: 30,
+ regularHours: 8.5,
+ overtimeHours: 0,
+ totalHours: 8.5,
+ status: "approved",
+ approved: true,
+ approvedBy: "Mike Thompson",
+ approvedDate: "2025-10-16",
+ hourlyRate: 26.0,
+ overtimeRate: 39.0,
+ totalPay: 221.0,
+ notes: "Completed maintenance on 8 properties - routine checks and minor adjustments",
+ equipment: ["Service truck", "Hand tools", "Pressure gauge"],
+ mileage: 85,
+ materials: ["Sprinkler heads - 3", "Nozzles - 5", "Wire nuts - 10"],
+ },
+ ];
}
export default DataUtils;