Enhancements

pull/1/head
zaid_daoud 2 years ago
parent 8e8cdb6bfe
commit 53c1f83bac

@ -1,5 +1,6 @@
import 'dart:typed_data';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/models/device/device.dart';
import 'package:test_sa/models/engineer.dart';
@ -150,13 +151,16 @@ class ServiceReport {
return _map;
}
bool validate() {
Future<bool> validate() async {
print("visitDate:$visitDate");
print("equipmentStatus:$equipmentStatus");
print("callLastSituation:${callLastSituation.toMap()}");
print("equipmentStatus:${equipmentStatus?.toMap()}");
print("callLastSituation:${callLastSituation?.toMap()}");
print("parts:$parts");
print("reason:${reason.toMap()}");
if (visitDate == null) return false;
print("reason:${reason?.toMap()}");
if (visitDate == null) {
await Fluttertoast.showToast(msg: "Visit Date Required");
return false;
}
//if(serviceType == null) return false;
if (equipmentStatus == null) return false;
//if (type == null && assetType == null) return false;

@ -605,6 +605,12 @@ class _CreateServiceReportState extends State<CreateServiceReport> with TickerPr
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ASubTitle(_subtitle.reasons),
_validate && _serviceReport.reason?.id == null
? ASubTitle(
_subtitle.requiredWord,
color: Colors.red,
)
: const SizedBox.shrink(),
const SizedBox(height: 4),
ServiceReportReasonsMenu(
initialValue: _serviceReport.reason,
@ -904,7 +910,10 @@ class _CreateServiceReportState extends State<CreateServiceReport> with TickerPr
// setState(() {});
// return;
// }
if (!_serviceReport.validate()) return;
if (!(await _serviceReport.validate())) {
setState(() {});
return;
}
_formKey.currentState.save();
_isLoading = true;

@ -73,81 +73,83 @@ class _SingleDevicePickerState extends State<SingleDevicePicker> {
_subtitle = AppLocalization.of(context).subtitle;
return Scaffold(
resizeToAvoidBottomInset: false,
body: LoadingManager(
isLoading: _devicesProvider.isLoading,
stateCode: _devicesProvider.stateCode,
isFailedLoading: _devicesProvider.devices == null,
onRefresh: () async {
_devicesProvider.reset();
await _devicesProvider.getEquipment(user: _userProvider.user, host: _settingProvider.host, hospitalId: _userProvider.user.clientId);
},
child: Column(
children: [
const SizedBox(height: 48),
Padding(
padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 16),
child: Column(
children: [
ATextFormField(
hintText: _subtitle.searchBySn,
controller: snController,
style: Theme.of(context).textTheme.subtitle1,
suffixIcon: const Icon(Icons.search_rounded),
textInputAction: TextInputAction.search,
onAction: () async {
_devicesProvider.reset();
await _devicesProvider.getEquipment(
user: _userProvider.user, host: _settingProvider.host, hospitalId: _userProvider.user.clientId, serialNumber: snController.text, number: numberController.text);
_searchableList.clear();
_searchableList.addAll(_devicesProvider.devices);
},
),
const SizedBox(
height: 8,
),
ATextFormField(
hintText: "Search by Number",
controller: numberController,
style: Theme.of(context).textTheme.subtitle1,
suffixIcon: const Icon(Icons.search_rounded),
textInputAction: TextInputAction.search,
onAction: () async {
_devicesProvider.reset();
await _devicesProvider.getEquipment(
user: _userProvider.user, host: _settingProvider.host, hospitalId: _userProvider.user.clientId, serialNumber: snController.text, number: numberController.text);
_searchableList.clear();
_searchableList.addAll(_devicesProvider.devices);
},
),
],
body: SafeArea(
child: LoadingManager(
isLoading: _devicesProvider.isLoading,
stateCode: _devicesProvider.stateCode,
isFailedLoading: _devicesProvider.devices == null,
onRefresh: () async {
_devicesProvider.reset();
await _devicesProvider.getEquipment(user: _userProvider.user, host: _settingProvider.host, hospitalId: _userProvider.user.clientId);
},
child: Column(
children: [
const SizedBox(height: 16),
Padding(
padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 16),
child: Column(
children: [
ATextFormField(
hintText: _subtitle.searchBySn,
controller: snController,
style: Theme.of(context).textTheme.subtitle1,
suffixIcon: const Icon(Icons.search_rounded),
textInputAction: TextInputAction.search,
onAction: () async {
_devicesProvider.reset();
await _devicesProvider.getEquipment(
user: _userProvider.user, host: _settingProvider.host, hospitalId: _userProvider.user.clientId, serialNumber: snController.text, number: numberController.text);
_searchableList.clear();
_searchableList.addAll(_devicesProvider.devices);
},
),
const SizedBox(
height: 8,
),
ATextFormField(
hintText: "Search by Number",
controller: numberController,
style: Theme.of(context).textTheme.subtitle1,
suffixIcon: const Icon(Icons.search_rounded),
textInputAction: TextInputAction.search,
onAction: () async {
_devicesProvider.reset();
await _devicesProvider.getEquipment(
user: _userProvider.user, host: _settingProvider.host, hospitalId: _userProvider.user.clientId, serialNumber: snController.text, number: numberController.text);
_searchableList.clear();
_searchableList.addAll(_devicesProvider.devices);
},
),
],
),
),
),
Expanded(
child: _searchableList.isEmpty
? NoItemFound(
message: _subtitle.noDeviceFound,
)
: LazyLoading(
nextPage: _devicesProvider.nextPage,
onLazyLoad: () async {
await _devicesProvider.getDevicesList(
user: _userProvider.user, host: _settingProvider.host, hospitalId: _userProvider.user.clientId, serialNumber: snController.text, number: numberController.text);
},
child: ListView.builder(
padding: EdgeInsets.zero,
shrinkWrap: true,
itemCount: _searchableList.length,
itemBuilder: (listContext, itemIndex) {
return DeviceItem(
device: _searchableList[itemIndex],
onPressed: (device) {
Navigator.of(context).pop(device);
},
);
Expanded(
child: _searchableList.isEmpty
? NoItemFound(
message: _subtitle.noDeviceFound,
)
: LazyLoading(
nextPage: _devicesProvider.nextPage,
onLazyLoad: () async {
await _devicesProvider.getDevicesList(
user: _userProvider.user, host: _settingProvider.host, hospitalId: _userProvider.user.clientId, serialNumber: snController.text, number: numberController.text);
},
),
)),
],
child: ListView.builder(
padding: EdgeInsets.zero,
shrinkWrap: true,
itemCount: _searchableList.length,
itemBuilder: (listContext, itemIndex) {
return DeviceItem(
device: _searchableList[itemIndex],
onPressed: (device) {
Navigator.of(context).pop(device);
},
);
},
),
)),
],
),
),
),
floatingActionButton: FloatingActionButton(

Loading…
Cancel
Save