Enhancements

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

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

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

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

Loading…
Cancel
Save