FlecBase Docs

How to use Time entries (CSV import + approve)

Import a timesheet, approve the rows, drop a bad batch if needed.

  1. Build the CSV. Header columns: placement_ref, work_date, qty are required. pay_code_item_ref (NORMAL/T15/…) or item_name identifies which line to charge against. pay_rate / charge_rate are optional — supply them when the source system carries the historical rate (SC export); leave them blank to have FlecBase resolve via the pay code. external_ref is the source-system row id; supplying it makes re-imports idempotent.
    📷Screenshot: CSV columns: placement_ref, work_date, pay_code_item_ref, qty, optional rates + external_ref time-entries_csv_format.png
  2. Dry-run. php artisan time:import-csv /path/to/file.csv --tenant=<slug> --dry-run. The dry run validates every row and reports the counts without writing.
    📷Screenshot: time:import-csv — dry-run preview before commit time-entries_import_cli.png
  3. Commit the import. Same command without --dry-run. Every row from the file shares one import_batch_uuid. The command echoes the batch UUID so you can find / undo the batch later.
  4. Approve in the UI. Open Ledger → Time Entries. Filter by placement, date range, or paste the batch UUID into the Batch filter to see just this import. Spot-check the rates and quantities, tick the rows, click Approve selected.
    📷Screenshot: Time Entries list — filters for placement, status, date, batch UUID time-entries_list.png
  5. Reject what looks wrong. Bulk action Reject selected sets status to Rejected — kept in the system for audit but never billable.
    📷Screenshot: Bulk Approve action — flip imported → approved time-entries_bulk_approve.png
  6. Recover from a bad CSV. Select any row(s) from the same batch and use the bulk action Delete whole import batch. Drops every unbilled row sharing that batch UUID — rows already on an issued invoice are protected. Re-import the corrected file.
    📷Screenshot: Delete whole import batch — recover from a bad CSV time-entries_delete_batch.png
📷Screenshot: Time entries — how to use time-entries_2.png

← Back to Time entries (CSV import + approve) overview