feat(reports): add daily rate to report tables and exports
This commit is contained in:
@@ -108,6 +108,48 @@ def test_admin_can_request_combined_table_report(api_client, admin, workspace, t
|
||||
assert response.status_code == 200
|
||||
assert response.data["summary"]["total_duration"] == "03:00:00"
|
||||
assert len(response.data["days"]) == 2
|
||||
assert response.data["days"][0]["latest_hourly_rate"] is None
|
||||
assert response.data["days"][1]["latest_hourly_rate"] is None
|
||||
|
||||
|
||||
def test_daily_rate_uses_latest_billable_entry_snapshot(api_client, owner, workspace, project):
|
||||
api_client.force_authenticate(user=owner)
|
||||
|
||||
TimeEntry.objects.create(
|
||||
workspace=workspace,
|
||||
user=owner,
|
||||
project=project,
|
||||
description="Morning work",
|
||||
start_time="2026-04-15T08:00:00+03:30",
|
||||
end_time="2026-04-15T09:00:00+03:30",
|
||||
duration=timedelta(hours=1),
|
||||
is_billable=True,
|
||||
hourly_rate=Decimal("20.00"),
|
||||
currency="USD",
|
||||
)
|
||||
TimeEntry.objects.create(
|
||||
workspace=workspace,
|
||||
user=owner,
|
||||
project=project,
|
||||
description="Later work",
|
||||
start_time="2026-04-15T13:00:00+03:30",
|
||||
end_time="2026-04-15T15:00:00+03:30",
|
||||
duration=timedelta(hours=2),
|
||||
is_billable=True,
|
||||
hourly_rate=Decimal("35.00"),
|
||||
currency="USD",
|
||||
)
|
||||
|
||||
response = api_client.get(
|
||||
"/api/reports/table/",
|
||||
{"workspace": str(workspace.id), "period": "this_month", "user": str(owner.id)},
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
assert response.data["days"][0]["latest_hourly_rate"] == {
|
||||
"amount": "35.00",
|
||||
"currency": "USD",
|
||||
}
|
||||
|
||||
|
||||
def test_custom_period_longer_than_31_days_is_rejected(api_client, owner, workspace):
|
||||
|
||||
Reference in New Issue
Block a user