family file changes

merge-update-with-lab-changes
Sultan Khan 5 years ago
parent fdef34a394
commit 91be66ecdd

@ -137,6 +137,7 @@ const Map localizedValues = {
"ar": "رقم الهوية" "ar": "رقم الهوية"
}, },
"fileNo": {"en": "File Number", "ar": "رقم الملف"}, "fileNo": {"en": "File Number", "ar": "رقم الملف"},
"fileno": {"en": "File No", "ar": "رقم الملف"},
"forgotFileNo": {"en": "Forgot file Number?", "ar": "نسيت رقم الملف الطبي؟"}, "forgotFileNo": {"en": "Forgot file Number?", "ar": "نسيت رقم الملف الطبي؟"},
"forgotFileNoTitle": { "forgotFileNoTitle": {
"en": "Forgot medical file Number", "en": "Forgot medical file Number",

@ -17,4 +17,5 @@ const IS_GO_TO_PARKING = 'IS_GO_TO_PARKING';
const IS_SEARCH_APPO = 'is-search-appo'; const IS_SEARCH_APPO = 'is-search-appo';
const IS_LIVECARE_APPOINTMENT = 'is_livecare_appointment'; const IS_LIVECARE_APPOINTMENT = 'is_livecare_appointment';
const IS_VIBRATION = 'is_vibration'; const IS_VIBRATION = 'is_vibration';
const THEME_VALUE = 'is_vibration'; const THEME_VALUE = 'is_vibration';
const MAIN_USER = 'main-user';

@ -60,6 +60,7 @@ class AuthenticatedUser {
dynamic strDateofBirth; dynamic strDateofBirth;
dynamic tempAddress; dynamic tempAddress;
dynamic zipCode; dynamic zipCode;
dynamic isFamily;
// dynamic patientPayType; // dynamic patientPayType;
// dynamic patientType; // dynamic patientType;
// dynamic status; // dynamic status;
@ -123,6 +124,7 @@ class AuthenticatedUser {
this.strDateofBirth, this.strDateofBirth,
this.tempAddress, this.tempAddress,
this.zipCode, this.zipCode,
this.isFamily
}); });
AuthenticatedUser.fromJson(Map<String, dynamic> json) { AuthenticatedUser.fromJson(Map<String, dynamic> json) {
@ -190,6 +192,7 @@ class AuthenticatedUser {
strDateofBirth = json['StrDateofBirth']; strDateofBirth = json['StrDateofBirth'];
tempAddress = json['TempAddress']; tempAddress = json['TempAddress'];
zipCode = json['ZipCode']; zipCode = json['ZipCode'];
isFamily = json['IsFamily'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -255,7 +258,7 @@ class AuthenticatedUser {
data['StrDateofBirth'] = this.strDateofBirth; data['StrDateofBirth'] = this.strDateofBirth;
data['TempAddress'] = this.tempAddress; data['TempAddress'] = this.tempAddress;
data['ZipCode'] = this.zipCode; data['ZipCode'] = this.zipCode;
data['IsFamily'] = this.isFamily;
return data; return data;
} }
} }

@ -4,6 +4,7 @@ import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStat
import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/BranchView.dart'; import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/BranchView.dart';
import 'package:diplomaticquarterapp/services/family_files/family_files_provider.dart'; import 'package:diplomaticquarterapp/services/family_files/family_files_provider.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart'; import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart';
@ -512,17 +513,19 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
} }
switchUser(user, context) { switchUser(user, context) {
Utils.showProgressDialog(context); GifLoaderDialogUtils.showMyDialog(context);
this this
.familyFileProvider .familyFileProvider
.silentLoggin(user) .silentLoggin(user)
.then((value) => loginAfter(value, context)); .then((value) => loginAfter(value, context));
} }
loginAfter(result, context) { loginAfter(result, context) async{
Utils.hideProgressDialog(); GifLoaderDialogUtils.hideDialog(context);
var familyFile = await sharedPref.getObject(FAMILY_FILE);
result = CheckActivationCode.fromJson(result); result = CheckActivationCode.fromJson(result);
this.sharedPref.clear(); this.sharedPref.clear();
this.sharedPref.setObject(FAMILY_FILE, familyFile);
this.sharedPref.setObject(USER_PROFILE, result.list); this.sharedPref.setObject(USER_PROFILE, result.list);
this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID); this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID);
this.sharedPref.setString(TOKEN, result.authenticationTokenID); this.sharedPref.setString(TOKEN, result.authenticationTokenID);

@ -511,8 +511,9 @@ class _ConfirmLogin extends State<ConfirmLogin> {
} }
else else
{ {
result.list.isFamily = false,
userData = result.list, userData = result.list,
//AuthenticatedUser.fromJson(result['List'][0]), sharedPref.setObject(MAIN_USER, result.list),
sharedPref.setObject(USER_PROFILE, result.list), sharedPref.setObject(USER_PROFILE, result.list),
loginTokenID = result.logInTokenID, loginTokenID = result.logInTokenID,
sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID), sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID),

@ -242,7 +242,9 @@ class _Login extends State<Login> {
// request.isRegister = false; // request.isRegister = false;
this.authService.checkActivationCode(request, code).then((result) => { this.authService.checkActivationCode(request, code).then((result) => {
result = CheckActivationCode.fromJson(result), result = CheckActivationCode.fromJson(result),
this.sharedPref.setObject(USER_PROFILE, result.list), result.list.isFamily =false,
this.sharedPref.setObject(USER_PROFILE, result.list),
this.sharedPref.setObject(MAIN_USER, result.list),
this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID), this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID),
this.sharedPref.setString(TOKEN, result.authenticationTokenID), this.sharedPref.setString(TOKEN, result.authenticationTokenID),
authenticatedUserObject.getUser(), authenticatedUserObject.getUser(),

@ -296,8 +296,9 @@ class _RegisterInfo extends State<RegisterInfo> {
}else }else
{ {
result.list.isFamily = false,
sharedPref.setObject(USER_PROFILE, result.list), sharedPref.setObject(USER_PROFILE, result.list),
this.sharedPref.setObject(MAIN_USER, result.list),
sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID), sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID),
sharedPref.setString(TOKEN, result.authenticationTokenID), sharedPref.setString(TOKEN, result.authenticationTokenID),
Navigator.of(context).pushNamed(HOME) Navigator.of(context).pushNamed(HOME)

@ -55,6 +55,7 @@ class FamilyFilesProvider with ChangeNotifier {
AppToast.showErrorToast(message: error); AppToast.showErrorToast(message: error);
throw error; throw error;
}, body: request.toJson()); }, body: request.toJson());
sharedPref.setObject(FAMILY_FILE, localRes); sharedPref.setObject(FAMILY_FILE, localRes);
return Future.value( return Future.value(
GetAllSharedRecordsByStatusResponse.fromJson(localRes)); GetAllSharedRecordsByStatusResponse.fromJson(localRes));
@ -246,29 +247,42 @@ class FamilyFilesProvider with ChangeNotifier {
} }
Future<dynamic> silentLoggin(GetAllSharedRecordsByStatusList switchUser, Future<dynamic> silentLoggin(GetAllSharedRecordsByStatusList switchUser,
{onSuccess}) async { {onSuccess, mainUser}) async {
//var currentUser = this.authService.getAuthenticatedUser();
var currentUser =
AuthenticatedUser.fromJson(await sharedPref.getObject(USER_PROFILE));
//const request = new SwitchUserRequest();
Map<String, dynamic> request = {}; Map<String, dynamic> request = {};
request['LogInTokenID'] = ''; if(mainUser ==true){
request['PatientOutSA'] = currentUser.outSA; //? 1 : 0; var currentUser =
request['PatientMobileNumber'] = AuthenticatedUser.fromJson(await sharedPref.getObject(MAIN_USER));
switchUser.mobileNumber; //['MobileNumber']; //const request = new SwitchUserRequest();
request['SearchType'] = 2; request['LogInTokenID'] = '';
request['SuperUser'] = currentUser.patientID; //currentUser.PatientID; request['PatientOutSA'] = currentUser.outSA; //? 1 : 0;
request['PatientIdentificationID'] = ''; request['PatientMobileNumber'] =
request['IsSilentLogin'] = true; currentUser.mobileNumber; //['MobileNumber'];
if (switchUser.mobileNumber != null && request['SearchType'] = 2;
switchUser.patientID != currentUser.patientID) { request['SuperUser'] = currentUser.patientID; //currentUser.PatientID;
request['PatientID'] = switchUser.patientID; //['PatientID']; request['PatientIdentificationID'] = '';
} else { request['IsSilentLogin'] = true;
request['PatientID'] = switchUser.responseID; //['ResponseID']; request['PatientID'] = currentUser.patientID; //['PatientID'];
request['ZipCode'] = currentUser.outSA == 1 ? "971" : "966";
request['activationCode'] = '0000';
request['isRegister'] = false;
}else {
var currentUser =
AuthenticatedUser.fromJson(await sharedPref.getObject(USER_PROFILE));
//const request = new SwitchUserRequest();
request['LogInTokenID'] = '';
request['PatientOutSA'] = currentUser.outSA; //? 1 : 0;
request['PatientMobileNumber'] =
switchUser.mobileNumber; //['MobileNumber'];
request['SearchType'] = 2;
request['SuperUser'] = switchUser.patientID; //currentUser.PatientID;
request['PatientIdentificationID'] = '';
request['IsSilentLogin'] = true;
request['PatientID'] = switchUser.responseID; //['PatientID'];
request['ZipCode'] = currentUser.outSA == 1 ? "971" : "966";
request['activationCode'] = '0000';
request['isRegister'] = false;
} }
request['ZipCode'] = currentUser.outSA == 1 ? "971" : "966";
request['activationCode'] = '0000';
request['isRegister'] = false;
try { try {
dynamic localRes; dynamic localRes;

@ -148,7 +148,7 @@ class TranslationBase {
String get idNo => localizedValues['national-id'][locale.languageCode]; String get idNo => localizedValues['national-id'][locale.languageCode];
String get fileNo => localizedValues['fileNo'][locale.languageCode]; String get fileNo => localizedValues['fileNo'][locale.languageCode];
String get fileno => localizedValues['fileno'][locale.languageCode];
String get forgotPassword => String get forgotPassword =>
localizedValues['forgotFileNo'][locale.languageCode]; localizedValues['forgotFileNo'][locale.languageCode];

@ -36,6 +36,7 @@ class _AppDrawerState extends State<AppDrawer> {
var sharedPref = new AppSharedPreferences(); var sharedPref = new AppSharedPreferences();
var familyFileProvider = FamilyFilesProvider(); var familyFileProvider = FamilyFilesProvider();
AuthenticatedUser user; AuthenticatedUser user;
AuthenticatedUser mainUser;
AuthenticatedUserObject authenticatedUserObject = AuthenticatedUserObject authenticatedUserObject =
locator<AuthenticatedUserObject>(); locator<AuthenticatedUserObject>();
@ -97,7 +98,7 @@ class _AppDrawerState extends State<AppDrawer> {
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
AppText( AppText(
'File No:' + TranslationBase.of(context).fileno +": " +
user.patientID user.patientID
.toString(), .toString(),
color: color:
@ -188,49 +189,84 @@ class _AppDrawerState extends State<AppDrawer> {
width: 1.0, width: 1.0,
), ),
)), )),
child: Column( child: Column(children: [
user.isFamily == true ? Container(
padding: EdgeInsets
.only(
bottom:
5),
child: InkWell(
onTap: () {
switchUser(
mainUser,
context);
},
child: Row(
crossAxisAlignment:
CrossAxisAlignment
.start,
children: <
Widget>[
Expanded(
child: Icon(
Icons.person),
),
Expanded(
flex:
7,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(mainUser.firstName +' '+mainUser.lastName),
AppText(TranslationBase.of(context).fileno +": " + mainUser.patientID.toString()),
])),
],
))) : SizedBox(),
Column(
mainAxisAlignment: mainAxisAlignment:
MainAxisAlignment.start, MainAxisAlignment.start,
mainAxisSize: mainAxisSize:
MainAxisSize.min, MainAxisSize.min,
children: snapshot.data children: snapshot.data
.getAllSharedRecordsByStatusList .getAllSharedRecordsByStatusList
.map<Widget>((result) { .map<Widget>((result) {
return result.status == 3 return result.status == 3
? Padding( ? Container(
padding: EdgeInsets
.only( padding: EdgeInsets
bottom: .only(
5), bottom:
child: InkWell( 5),
onTap: () { child: InkWell(
switchUser( onTap: () {
result, switchUser(
context); result,
}, context);
child: Row( },
crossAxisAlignment: child: Row(
CrossAxisAlignment crossAxisAlignment:
.start, CrossAxisAlignment
children: < .start,
Widget>[ children: <
Expanded( Widget>[
child: Icon( Expanded(
Icons.person), child: Icon(
), Icons.person, color:result.responseID ==user.patientID ? Color(0xFF40ACC9): Colors.black),
Expanded( ),
flex: Expanded(
7, flex:
child: Column( 7,
crossAxisAlignment: CrossAxisAlignment.start, child: Column(
children: <Widget>[ crossAxisAlignment: CrossAxisAlignment.start,
Text(result.patientName), children: <Widget>[
Text('File No:' + result.iD.toString()), AppText(result.patientName, color:result.responseID ==user.patientID ? Color(0xFF40ACC9): Colors.black),
])), AppText(TranslationBase.of(context).fileno +": " + result.iD.toString(), color:result.responseID ==user.patientID ? Color(0xFF40ACC9): Colors.black),
], ])),
))) ],
)))
: SizedBox(); : SizedBox();
}).toList())); }).toList())],));
} }
}, },
), ),
@ -343,8 +379,13 @@ class _AppDrawerState extends State<AppDrawer> {
if (await this.sharedPref.getObject(USER_PROFILE) != null) { if (await this.sharedPref.getObject(USER_PROFILE) != null) {
var data = AuthenticatedUser.fromJson( var data = AuthenticatedUser.fromJson(
await this.sharedPref.getObject(USER_PROFILE)); await this.sharedPref.getObject(USER_PROFILE));
var data2 = AuthenticatedUser.fromJson(
await this.sharedPref.getObject(MAIN_USER));
print(data2);
setState(() { setState(() {
this.user = data; this.user = data;
this.mainUser = data2;
}); });
} }
} }
@ -371,6 +412,7 @@ class _AppDrawerState extends State<AppDrawer> {
} }
Future<GetAllSharedRecordsByStatusResponse> getFamilyFiles() async { Future<GetAllSharedRecordsByStatusResponse> getFamilyFiles() async {
if(user !=null){
if (await sharedPref.getObject(FAMILY_FILE) != null) { if (await sharedPref.getObject(FAMILY_FILE) != null) {
// print(await sharedPref.getObject(FAMILY_FILE)); // print(await sharedPref.getObject(FAMILY_FILE));
return Future.value(GetAllSharedRecordsByStatusResponse.fromJson( return Future.value(GetAllSharedRecordsByStatusResponse.fromJson(
@ -378,13 +420,14 @@ class _AppDrawerState extends State<AppDrawer> {
} else { } else {
return familyFileProvider.getSharedRecordByStatus(); return familyFileProvider.getSharedRecordByStatus();
} }
}
} }
switchUser(user, context) { switchUser(user, context) {
Utils.showProgressDialog(context); Utils.showProgressDialog(context);
this this
.familyFileProvider .familyFileProvider
.silentLoggin(user) .silentLoggin(user is AuthenticatedUser ? null : user, mainUser: user is AuthenticatedUser)
.then((value) => loginAfter(value, context)) .then((value) => loginAfter(value, context))
.catchError((err) { .catchError((err) {
print(err); print(err);
@ -392,14 +435,20 @@ class _AppDrawerState extends State<AppDrawer> {
Navigator.of(context).pop(); Navigator.of(context).pop();
}).showProgressBar( }).showProgressBar(
text: "Loading", backgroundColor: Colors.blue.withOpacity(0.6)); text: "Loading", backgroundColor: Colors.blue.withOpacity(0.6));
;
} }
loginAfter(result, context) { loginAfter(result, context) async {
Utils.hideProgressDialog(); Utils.hideProgressDialog();
result = CheckActivationCode.fromJson(result); result = CheckActivationCode.fromJson(result);
var familyFile = await sharedPref.getObject(FAMILY_FILE);
var mainUser = await sharedPref.getObject(MAIN_USER);
this.sharedPref.clear(); this.sharedPref.clear();
if(mainUser["PatientID"] != result.list.patientID) {
result.list.isFamily = true;
}
this.sharedPref.setObject(MAIN_USER,mainUser);
this.sharedPref.setObject(USER_PROFILE, result.list); this.sharedPref.setObject(USER_PROFILE, result.list);
this.sharedPref.setObject(FAMILY_FILE, familyFile);
this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID); this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID);
this.sharedPref.setString(TOKEN, result.authenticationTokenID); this.sharedPref.setString(TOKEN, result.authenticationTokenID);
//this.checkIfUserAgreedBefore(result), //this.checkIfUserAgreedBefore(result),

Loading…
Cancel
Save