User departments in create new service request

main_design2.0
zaid_daoud 2 years ago
parent ac38159b0a
commit 383c634c50

@ -113,45 +113,45 @@ class UserProvider extends ChangeNotifier {
/// return state code if request complete may be 200, 404 or 403
/// for more details about state codes check http state manager
/// lib\controllers\http_status_manger\http_status_manger.dart
Future<int> updateProfile({
@required String host,
@required User user,
}) async {
if (_loading == true) return -2;
_loading = true;
notifyListeners();
Response response;
Map<String, dynamic> jsonObject = {};
jsonObject["uid"] = user.id;
jsonObject["token"] = user.token;
if (user.departmentId != _user.departmentId) jsonObject["department"] = user.departmentId;
// if (user.whatsApp != _user.whatsApp) jsonObject["whatsapp"] = user.whatsApp;
if (user.phoneNumber != _user.phoneNumber) jsonObject["phone"] = user.phoneNumber;
try {
response = response = await ApiManager.instance.post(
URLs.login,
body: jsonObject,
);
} catch (error) {
_loading = false;
notifyListeners();
return -1;
}
_loading = false;
notifyListeners();
if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received
_user = User.fromJson(jsonDecode(utf8.decode(response.bodyBytes))[0]);
_user.clientId = user.clientId;
_user.clientName = user.clientName;
_user.departmentName = user.departmentName;
_user.departmentId = user.departmentId;
notifyListeners();
return response.statusCode;
}
return response.statusCode;
}
// Future<int> updateProfile({
// @required String host,
// @required User user,
// }) async {
// if (_loading == true) return -2;
// _loading = true;
// notifyListeners();
// Response response;
//
// Map<String, dynamic> jsonObject = {};
// jsonObject["uid"] = user.id;
// jsonObject["token"] = user.token;
// if (user.departmentId != _user.departmentId) jsonObject["department"] = user.departmentId;
// // if (user.whatsApp != _user.whatsApp) jsonObject["whatsapp"] = user.whatsApp;
// if (user.phoneNumber != _user.phoneNumber) jsonObject["phone"] = user.phoneNumber;
// try {
// response = response = await ApiManager.instance.post(
// URLs.login,
// body: jsonObject,
// );
// } catch (error) {
// _loading = false;
// notifyListeners();
// return -1;
// }
//
// _loading = false;
// notifyListeners();
//
// if (response.statusCode >= 200 && response.statusCode < 300) {
// // client's request was successfully received
// _user = User.fromJson(jsonDecode(utf8.decode(response.bodyBytes))[0]);
// _user.clientId = user.clientId;
// _user.clientName = user.clientName;
// _user.departmentName = user.departmentName;
// _user.departmentId = user.departmentId;
// notifyListeners();
// return response.statusCode;
// }
// return response.statusCode;
// }
}

@ -1,6 +1,5 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/api_routes/http_status_manger.dart';
import 'package:test_sa/controllers/localization/localization.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
@ -170,29 +169,29 @@ class _ProfilePageState extends State<ProfilePage> {
child: AButton(
text: _subtitle.update,
onPressed: () async {
if (!_formKey.currentState.validate()) return;
_formKey.currentState.save();
if (_user.departmentId == null) {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(_subtitle.unitRequired),
));
return;
}
int status = await _userProvider.updateProfile(
user: _user,
host: _settingProvider.host,
);
if (status >= 200 && status < 300) {
_settingProvider.setUser(_userProvider.user);
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(_subtitle.requestCompleteSuccessfully),
));
} else {
String errorMessage = HttpStatusManger.getStatusMessage(status: status, subtitle: _subtitle);
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(errorMessage),
));
}
// if (!_formKey.currentState.validate()) return;
// _formKey.currentState.save();
// if (_user.departmentId == null) {
// ScaffoldMessenger.of(context).showSnackBar(SnackBar(
// content: Text(_subtitle.unitRequired),
// ));
// return;
// }
// int status = await _userProvider.updateProfile(
// user: _user,
// host: _settingProvider.host,
// );
// if (status >= 200 && status < 300) {
// _settingProvider.setUser(_userProvider.user);
// ScaffoldMessenger.of(context).showSnackBar(SnackBar(
// content: Text(_subtitle.requestCompleteSuccessfully),
// ));
// } else {
// String errorMessage = HttpStatusManger.getStatusMessage(status: status, subtitle: _subtitle);
// ScaffoldMessenger.of(context).showSnackBar(SnackBar(
// content: Text(errorMessage),
// ));
// }
},
),
),

@ -33,6 +33,7 @@ import 'package:test_sa/views/widgets/titles/app_sub_title.dart';
import '../../../../controllers/providers/api/status_drop_down/service_reqest/service_request_through_provider.dart';
import '../../../../controllers/providers/api/status_drop_down/service_reqest/service_request_type_provider.dart';
import '../../../app_style/sizing.dart';
import '../../../widgets/date_and_time/date_picker.dart';
import '../../../widgets/status/service_request/service_request_first_action.dart';
import '../../../widgets/status/service_request/service_request_loan_availability.dart';
@ -138,14 +139,39 @@ class CreateRequestPageState extends State<CreateRequestPage> {
style: Theme.of(context).textTheme.subtitle1,
),
12.height,
_userProvider.user.departmentId == null
_userProvider.user.departmentId == null || (_userProvider.user?.departmentId?.isEmpty ?? false)
? const SizedBox.shrink()
: ATextFormField(
enable: false,
initialValue: _userProvider.user.departmentName ?? _subtitle.noUniteFound,
hintText: _subtitle.unite,
prefixIconData: FontAwesomeIcons.hospitalUser,
style: Theme.of(context).textTheme.subtitle1,
: Container(
padding: const EdgeInsets.all(12),
decoration: BoxDecoration(
color: const Color(0xfff5f5f5),
border: Border.all(
color: const Color(0xffefefef),
),
borderRadius: BorderRadius.circular(AppStyle.borderRadius * AppStyle.getScaleFactor(context)),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: _userProvider.user.departmentName
?.map(
(e) => Text(
e?.trim() ?? "",
style: Theme.of(context).textTheme.titleMedium.copyWith(color: AColors.black),
),
)
?.toList() ??
[],
),
Icon(
FontAwesomeIcons.hospitalUser,
size: 20 * AppStyle.getScaleFactor(context),
color: const Color(0xff2e303a),
),
],
),
),
12.height,
DeviceButton(

Loading…
Cancel
Save