diff --git a/apps/mobile/packages/features/client/create_order/lib/src/data/repositories_impl/client_create_order_repository_impl.dart b/apps/mobile/packages/features/client/create_order/lib/src/data/repositories_impl/client_create_order_repository_impl.dart index 0318b8b7..04dd8498 100644 --- a/apps/mobile/packages/features/client/create_order/lib/src/data/repositories_impl/client_create_order_repository_impl.dart +++ b/apps/mobile/packages/features/client/create_order/lib/src/data/repositories_impl/client_create_order_repository_impl.dart @@ -62,7 +62,12 @@ class ClientCreateOrderRepositoryImpl throw Exception('Vendor is missing.'); } - final fdc.Timestamp orderTimestamp = _toTimestamp(order.date); + final DateTime orderDateOnly = DateTime( + order.date.year, + order.date.month, + order.date.day, + ); + final fdc.Timestamp orderTimestamp = _toTimestamp(orderDateOnly); final fdc.OperationResult orderResult = await _dataConnect .createOrder(businessId: businessId, orderType: dc.OrderType.ONE_TIME) .vendorId(vendorId) @@ -109,6 +114,10 @@ class ClientCreateOrderRepositoryImpl final double rate = order.roleRates[position.role] ?? 0; final double totalValue = rate * hours * position.count; + print( + 'CreateOneTimeOrder shiftRole: start=${start.toIso8601String()} end=${normalizedEnd.toIso8601String()}', + ); + await _dataConnect .createShiftRole( shiftId: shiftId, @@ -182,7 +191,17 @@ class ClientCreateOrderRepositoryImpl } fdc.Timestamp _toTimestamp(DateTime dateTime) { - final DateTime utc = dateTime.toUtc(); + // Keep the selected local time as-is by treating it as UTC. + final DateTime utc = DateTime.utc( + dateTime.year, + dateTime.month, + dateTime.day, + dateTime.hour, + dateTime.minute, + dateTime.second, + dateTime.millisecond, + dateTime.microsecond, + ); final int seconds = utc.millisecondsSinceEpoch ~/ 1000; final int nanoseconds = (utc.microsecondsSinceEpoch % 1000000) * 1000; return fdc.Timestamp(nanoseconds, seconds);