fix: sync multi-day work hours accounting
Aggregate task work-hour rows into travel-cost calculations and monthly servicer reporting, and keep the frontend calendar aligned with the task work-hours source.
This commit is contained in:
@@ -91,6 +91,7 @@ class TaskSerializer(serializers.ModelSerializer):
|
||||
vehicle_owner_name = serializers.SerializerMethodField()
|
||||
vehicle_asset_type = serializers.SerializerMethodField()
|
||||
crane_serial_number = serializers.SerializerMethodField()
|
||||
work_hours_table = serializers.SerializerMethodField()
|
||||
template_id = serializers.UUIDField(write_only=True, required=False, allow_null=True)
|
||||
auto_close_work_order = serializers.BooleanField(write_only=True, required=False)
|
||||
|
||||
@@ -100,7 +101,7 @@ class TaskSerializer(serializers.ModelSerializer):
|
||||
'id', 'title', 'description', 'status',
|
||||
'assigned_to', 'assigned_to_name',
|
||||
'vehicle', 'vehicle_registration', 'vehicle_make', 'vehicle_model',
|
||||
'vehicle_owner_name', 'vehicle_asset_type', 'crane_serial_number',
|
||||
'vehicle_owner_name', 'vehicle_asset_type', 'crane_serial_number', 'work_hours_table',
|
||||
'work_order', 'work_order_label',
|
||||
'scheduled_date',
|
||||
'service_report_note',
|
||||
@@ -212,3 +213,9 @@ class TaskSerializer(serializers.ModelSerializer):
|
||||
if not obj.vehicle_id:
|
||||
return None
|
||||
return obj.vehicle.crane_serial_number or None
|
||||
|
||||
def get_work_hours_table(self, obj):
|
||||
table = getattr(obj, 'work_hours_table', None)
|
||||
if not table:
|
||||
return None
|
||||
return TaskWorkHoursTableSerializer(table).data
|
||||
|
||||
Reference in New Issue
Block a user