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

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

    93e3d85
  2. Fix payroll stats 422 by removing duplicate /stats endpoint and correcting route ordering.

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

    9962ce3

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

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

    756bc21
  3. Fix ticket re-pickup by ignoring closed assignments when determining available actions

    12f96fe

  1. refactor: remove reconciliation system and all related code, tasks, and docs

    d12a170

  1. fix(auth): properly update user password and use valid audit enum values

    d9b6bad
  2. Implement reopen and reassign ticket endpoints and service logic for manager actions

    34bdd74
  3. Add missing organization name fields to InvoiceViewResponse and add debug logs to trace deployment issues

    ff92c12
  4. fix: correct ProjectRegion import path in projects API module

    cb9c038
  5. feat: enrich invoice viewing response with region info, status history, and sales order details

    94e37bb
  6. feat: updated the pm ticket detail endpoint to give back proper actions

    24bb10d

  1. feat: add completion data to the ticket detail endpoint

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

    938ea18
  3. Enrich contractor invoice response with contractor/client/project names and public viewing link

    0d63fec
  4. Improve invoice generation by auto-deriving contractor/client from project and updating schemas, logic, and docs accordingly

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

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

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

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

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

    a9afcba
  10. Corrected Timesheet enum storage by configuring SQLAlchemy Enum to persist .value strings and preventing unwanted enum coercion.

    e9639af
  11. Fixed enum-case mismatch by allowing string-based status values and passing lowercase status directly to DB.

    3071dc4
  12. Fixed enum mismatch by updating schema and endpoints to use lowercase TimesheetStatus string values aligning with DB enum

    3f304b5

  1. Enhance profile endpoint with full project team details including roles, regions, and subcontractor info

    3ad3c84
  2. Fix 403 error by updating user view permissions for project managers, sales managers, and dispatchers

    d078030
  3. reconcilliation endpoints

    940d3bc
  4. fix: Moved /stats and /stats/summary routes BEFORE the /{expense_id} route

    87f3e2f
  5. Fix dashboard expense stats to filter by incurred_by_user_id instead of assignment-based query

    0c7f12f
  6. Fix expense approval notifications by replacing asyncio.create_task with FastAPI BackgroundTasks

    e44955a
  7. Use TicketCommentService._to_response() in ticket detail endpoint to include comment attachments

    f003bca

  1. fix(bulk-export): add missing imports, improve error handling, and add logging

    6226e01
  2. fix(notifications): update service to use correct filter fields (from_date/to_date) to prevent AttributeError

    66d100e
  3. fix(filters): replace Pydantic Depends with custom Query-based parsers to correctly handle multi-value API filters

    2fb09d0
  4. fix(filters): correctly parse comma-separated query params into lists for multi-value filters

    d95ce07
  5. feat(filtering): implement complete end-to-end server-side filtering infrastructure and migrate tickets/projects to new system

    7b90d84

  1. Fix ProjectSubcontractor import scope in dashboard_service.py

    b0f8513
  2. fix: add missing ProjectTeam import in dashboard_service to resolve endpoint error

    b463025
  3. Reorder document routes so /users/me endpoints take precedence over generic entity routes

    9f54fd9
  4. Add dedicated /users/me document and profile photo endpoints to avoid UUID parsing errors

    3e9b945
  5. Make account_name optional and auto-populate it for mobile money and bank accounts

    a37b051
  6. Fix backend permissions to allow field agents to update full basic profile info

    b6832d2

  1. Fix invalid Ticket attribute usage by replacing nonexistent ticket_reference/title with correct id and ticket_name in ticket expense API

    be87f92
  2. Fix incorrect relationship reference by replacing ticket_assignment with assignment across service and API layers

    428eb7e
  3. fix: replace utcnow() with timezone-aware datetime.now(timezone.utc) in days_issued to prevent offset-naive/aware errors

    33d9190