Commit History

fix: convert Decimals to float in invoice generation additional_metadata for JSON serialization
8d20770

kamau1 commited on

fix: convert Decimal to float in invoice pricing rules for JSON serialization
8f5c70d

kamau1 commited on

feat: add flexible invoice pricing system with tiered, flat rate, time-based, and custom pricing models
f18d2f1

kamau1 commited on

feat: add smart validation for activation requirements with 6 new field types and auto-generated validation rules
dddd6c6

kamau1 commited on

feat: add custom reports with aggregations and export parity
367d57f

kamau1 commited on

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

kamau1 commited on

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

kamau1 commited on

Trigger real-time timesheet updates on journey start and arrival actions
c001b0a

kamau1 commited on

Update timesheets in real time when bulk approving expenses (including past dates)
2caf3a4

kamau1 commited on

fix: add missing and_ import to fix timesheet expense aggregation crash
104d481

kamau1 commited on

Fix ticket expense runtime errors by correcting Decimal aggregation and removing invalid currency references.
4687303

kamau1 commited on

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

kamau1 commited on

Fix notification role handling to support both enum and string role values
bb7aae2

kamau1 commited on

Fix ticket re-pickup by ignoring closed assignments when determining available actions
12f96fe

kamau1 commited on

Enhance stats endpoints with time-based breakdowns for richer dashboard analytics
3a13ba4

kamau1 commited on

feat: reporting with advanced filtering, pagination, and performance optimizations.
34b4d1d

kamau1 commited on

Update timesheet service: allow past timesheet updates, keep future date safety check, add manual trigger API
ad5b0b2

kamau1 commited on

feat: unified sync notification system, realtime timesheets and payroll, simplified project role compensation
95005e1

kamau1 commited on

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

kamau1 commited on

implement CSV bulk invitations using in-memory analysis and metadata field
01f85fe

kamau1 commited on

Implement automatic clearing of irrelevant compensation fields when compensation_type changes, including validation updates and helper logic in project_service
6be93fb

kamau1 commited on

Add missing status-history creation for all ticket status transitions including cancel, reopen, reassign, and all reactivation paths
4e26259

kamau1 commited on

Implement reopen and reassign ticket endpoints and service logic for manager actions
34bdd74

kamau1 commited on

Add missing organization name fields to InvoiceViewResponse and add debug logs to trace deployment issues
ff92c12

kamau1 commited on

fix: add missing AppRole import in projects API and enable eager loading in invoice viewing service
04b997c

kamau1 commited on

fix: correct ProjectRegion import path in projects API module
cb9c038

kamau1 commited on

fix: correct ProjectRegion import path in invoice viewing service
8d499f1

kamau1 commited on

feat: enrich invoice viewing response with region info, status history, and sales order details
94e37bb

kamau1 commited on

feat: updated the pm ticket detail endpoint to give back proper actions
24bb10d

kamau1 commited on

Fix timezone-aware datetime comparisons and correct CORS config requiring explicit allowed origins
938ea18

kamau1 commited on

feat; public invoice download
2d229d1

kamau1 commited on

Implement full end-to-end invoice generation & public viewing system (migrations, models, schemas, services, routes)
93efe54

kamau1 commited on

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

kamau1 commited on

Fix Tende Pay export notification: handle AMOUNT key and improve user guidance
51e0775

kamau1 commited on

Improve Tende Pay export UX: fallback to valid financial account phone and show actionable error messages
4756596

kamau1 commited on

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

kamau1 commited on

Feature: Implement Tende Pay CSV export for ticket expenses with formatter, endpoints, and tests
1dedcdf

kamau1 commited on

Fix: Correct expense status logic and add real-time reconciliation for bulk approve/reject actions
33127cf

kamau1 commited on

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

kamau1 commited on

Fix: Serialize audit payloads to JSON before inserting into timesheet_updates for PostgreSQL compatibility
d930817

kamau1 commited on

Fix: Use partial index name idx_timesheets_user_date_unique in ON CONFLICT to align with soft-delete unique constraint
2e1b4ca

kamau1 commited on

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

kamau1 commited on

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

kamau1 commited on

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

kamau1 commited on

Fix: Cast user_ids to UUID array in reconciliation SQL to resolve uuid=text ANY() errors
6574f8d

kamau1 commited on

Fix: Standardize time tracking fields and add migration to rename clock_in/clock_out to check_in/check_out
fec074b

kamau1 commited on

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

kamau1 commited on

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

kamau1 commited on

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

kamau1 commited on

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

kamau1 commited on