|
|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
import 'package:test_sa/controllers/providers/api/user_provider.dart';
|
|
|
|
|
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
|
|
|
|
|
import 'package:test_sa/extensions/context_extension.dart';
|
|
|
|
|
import 'package:test_sa/extensions/int_extensions.dart';
|
|
|
|
|
import 'package:test_sa/extensions/string_extensions.dart';
|
|
|
|
|
@ -8,7 +9,6 @@ import 'package:test_sa/extensions/text_extensions.dart';
|
|
|
|
|
import 'package:test_sa/extensions/widget_extensions.dart';
|
|
|
|
|
import 'package:test_sa/models/device/asset.dart';
|
|
|
|
|
import 'package:test_sa/models/service_request/service_request.dart';
|
|
|
|
|
import 'package:test_sa/views/widgets/equipment/pick_asset.dart';
|
|
|
|
|
|
|
|
|
|
import '../../../../controllers/providers/api/service_requests_provider.dart';
|
|
|
|
|
import '../../../../models/lookup.dart';
|
|
|
|
|
@ -83,8 +83,8 @@ class _FirstActionBottomSheetState extends State<FirstActionBottomSheet> {
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
if (firstAction?.value == 2) 8.height,
|
|
|
|
|
if (firstAction?.value == 2)
|
|
|
|
|
if (firstAction?.value == 2) ...[
|
|
|
|
|
8.height,
|
|
|
|
|
ADatePicker(
|
|
|
|
|
label: context.translation.visitDate,
|
|
|
|
|
date: DateTime.tryParse(_serviceRequest.visitDate ?? ""),
|
|
|
|
|
@ -119,6 +119,76 @@ class _FirstActionBottomSheetState extends State<FirstActionBottomSheet> {
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
if (firstAction?.id == 404 && Provider.of<SettingProvider>(context, listen: false).assetGroup.id == 1) ...[
|
|
|
|
|
8.height,
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
ADatePicker(
|
|
|
|
|
label: context.translation.startDate,
|
|
|
|
|
date: DateTime.tryParse(_serviceRequest.startDate ?? ""),
|
|
|
|
|
formatDateWithTime: true,
|
|
|
|
|
onDatePicker: (selectedDate) {
|
|
|
|
|
if (selectedDate != null) {
|
|
|
|
|
showTimePicker(
|
|
|
|
|
context: context,
|
|
|
|
|
initialTime: TimeOfDay.now(),
|
|
|
|
|
).then((selectedTime) {
|
|
|
|
|
// Handle the selected date and time here.
|
|
|
|
|
if (selectedTime != null) {
|
|
|
|
|
DateTime selectedDateTime = DateTime(
|
|
|
|
|
selectedDate.year,
|
|
|
|
|
selectedDate.month,
|
|
|
|
|
selectedDate.day,
|
|
|
|
|
selectedTime.hour,
|
|
|
|
|
selectedTime.minute,
|
|
|
|
|
);
|
|
|
|
|
if (selectedDateTime != null) {
|
|
|
|
|
setState(() {
|
|
|
|
|
_serviceRequest.startDate = selectedDateTime?.toIso8601String();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
).expanded,
|
|
|
|
|
8.width,
|
|
|
|
|
ADatePicker(
|
|
|
|
|
label: context.translation.endDate,
|
|
|
|
|
date: DateTime.tryParse(_serviceRequest.endDate ?? ""),
|
|
|
|
|
formatDateWithTime: true,
|
|
|
|
|
onDatePicker: (selectedDate) {
|
|
|
|
|
if (selectedDate != null) {
|
|
|
|
|
showTimePicker(
|
|
|
|
|
context: context,
|
|
|
|
|
initialTime: TimeOfDay.now(),
|
|
|
|
|
).then((selectedTime) {
|
|
|
|
|
// Handle the selected date and time here.
|
|
|
|
|
if (selectedTime != null) {
|
|
|
|
|
DateTime selectedDateTime = DateTime(
|
|
|
|
|
selectedDate.year,
|
|
|
|
|
selectedDate.month,
|
|
|
|
|
selectedDate.day,
|
|
|
|
|
selectedTime.hour,
|
|
|
|
|
selectedTime.minute,
|
|
|
|
|
);
|
|
|
|
|
if (selectedDateTime != null) {
|
|
|
|
|
setState(() {
|
|
|
|
|
_serviceRequest.endDate = selectedDateTime?.toIso8601String();
|
|
|
|
|
_serviceRequest.workingHours =
|
|
|
|
|
(((DateTime.parse(_serviceRequest.endDate).difference(DateTime.parse(_serviceRequest.startDate)).inSeconds ?? 0) / 60) / 60).toStringAsFixed(2);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
).expanded,
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
/// Loan availability not required
|
|
|
|
|
// 8.height,
|
|
|
|
|
|