swiftops-backend / docs /devlogs /server /runtimeerror.txt

Commit History

  1. fix: add pricing_tier to allowed line item types in invoice schema

    e7d310d
  2. fix: convert Decimals to float in invoice generation additional_metadata for JSON serialization

    8d20770
  3. fix: add invoice_pricing_rules to project overview response and fix Decimal serialization

    a963b0d
  4. fix: convert Decimal to float in invoice pricing rules for JSON serialization

    8f5c70d
  5. feat: add custom reports with aggregations and export parity

    367d57f

  1. Fix report endpoints to be async for compatibility with permission decorator

    93e3d85
  2. Add report viewing and exporting permissions to manager and dispatcher roles

    f978499
  3. Register reports router, fix CSV BaseModel import, enforce report permissions, and add frontend API docs.

    f10602a
  4. Fix payroll stats 422 by removing duplicate /stats endpoint and correcting route ordering.

    bb7143c
  5. Fix timesheets 404/403 by adding missing permissions and reordering routes to prevent path conflicts.

    9962ce3

  1. fix: correct User attribute from app_role to role in ticket assignment authorization check

    558f8d8
  2. fix: use historical ticket counts in timesheets to track daily workload regardless of completion status

    713fc8b
  3. fix: add 60s timeout to Cloudinary uploads with Supabase fallback for large images

    756bc21
  4. Trigger real-time timesheet updates on journey start and arrival actions

    c001b0a
  5. Update timesheets in real time when bulk approving expenses (including past dates)

    2caf3a4
  6. fix: add missing and_ import to fix timesheet expense aggregation crash

    104d481
  7. Fix ticket expense runtime errors by correcting Decimal aggregation and removing invalid currency references.

    4687303
  8. Fixed timesheet aggregation issues: corrected self-assignment counting, updated expense approval logic, and documented dropped vs cancelled ticket semantics.

    207b4a1
  9. Fix ticket re-pickup by ignoring closed assignments when determining available actions

    12f96fe
  10. Enhance stats endpoints with time-based breakdowns for richer dashboard analytics

    3a13ba4

  1. Fix syntax error in timesheets.py: correct duplicate request argument and missing comma

    d054ee0
  2. Fix runtime error: remove await from sync function, update AuditService calls to new API

    5d3b68c

  1. feat: updated the pm ticket detail endpoint to give back proper actions

    24bb10d

  1. Fix timezone-aware datetime comparisons and correct CORS config requiring explicit allowed origins

    938ea18
  2. Improve invoice generation by auto-deriving contractor/client from project and updating schemas, logic, and docs accordingly

    c651639
  3. Enhance available-tickets endpoint to auto-derive contractor from project and support contractor_id=auto

    5a1264e
  4. Fix contractor invoice list route by removing trailing slash to prevent 307 redirects and CORS failures

    337e2ae
  5. Fix contractor invoice route prefix conflict and update frontend docs to match corrected API paths

    717d701
  6. Fix invoice API import paths by switching get_db/get_current_user to app.api.deps for consistency with existing services

    34e4aad
  7. Fix notification filtering by switching list-based fields from == to .in_() to prevent PostgreSQL text=text[] errors

    15d1bcf
  8. Fix Tende Pay export notification: handle AMOUNT key and improve user guidance

    51e0775
  9. Fix Tende Pay export critical edge cases: only mark exported expenses as paid, skip invalid amounts/users, warn on mixed payment methods

    d566e9e
  10. Fix: Correct expense status logic and add real-time reconciliation for bulk approve/reject actions

    33127cf
  11. Fix: Correct date filtering, action logic, and check-in/out calculations in reconciliation query for accurate daily timesheet aggregation

    e832a39
  12. Fix: Serialize audit payloads to JSON before inserting into timesheet_updates for PostgreSQL compatibility

    d930817
  13. Fix: Use partial index name idx_timesheets_user_date_unique in ON CONFLICT to align with soft-delete unique constraint

    2e1b4ca
  14. Fix: Update ON CONFLICT to use (user_id, work_date) and align reconciliation logic with deployed migrations

    a9afcba
  15. Fix: Remove invalid enum values and rewrite reconciliation filters using valid AssignmentAction enums for reliable real-time updates

    de77159
  16. Fix: Replace ANY() array binding with explicit IN() params to resolve mixed parameter style errors in reconciliation SQL

    373feab
  17. Fix: Cast user_ids to UUID array in reconciliation SQL to resolve uuid=text ANY() errors

    6574f8d
  18. Fix: Correct expense relationship usage and add missing real-time reconciliation on ticket completion

    4ebdff0
  19. Fix: Standardize time tracking fields and add migration to rename clock_in/clock_out to check_in/check_out

    fec074b
  20. Made /stats accessible to field agents by removing restrictive permission decorator and cleaned up debug logging.

    caf8129
  21. Fixed /stats 422 error by moving the endpoint before /{timesheet_id} to correct FastAPI route ordering.

    bf6c74e
  22. Updated /me/timesheets default range to last 7 days plus all future dates so upcoming leave requests are included.

    fee9b9a
  23. Added deleted_at=None filtering across TimesheetService and converted deletes to soft-deletes to fix empty /me/timesheets results.

    cbadf7a
  24. Fixed /me/timesheets endpoint by adding missing project_id parameter and enabling proper project-based filtering.

    45da362
  25. Fixed leave application endpoint by removing .value access on string statuses and ensuring consistent enum value handling.

    2380d75
  26. Corrected Timesheet enum storage by configuring SQLAlchemy Enum to persist .value strings and preventing unwanted enum coercion.

    e9639af
  27. Forced enum serialization to lowercase DB values by explicitly converting TimesheetStatus to .value before model creation.

    9ac8532