Merge branch 'development' into fix-pharmacy

# Conflicts:
#	lib/core/service/client/base_app_client.dart
merge-requests/269/head
mosazaid 4 years ago
commit d02b74142a

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

@ -77,9 +77,9 @@ class CustomerAddressesService extends BaseService {
class CustomerInfo { class CustomerInfo {
bool isRegistered; bool isRegistered;
String userName; String userName;
Null password; dynamic password;
String email; String email;
Null errorMessage; dynamic errorMessage;
String mobileNumber; String mobileNumber;
int customerId; int customerId;
@ -121,19 +121,19 @@ class AddressInfo {
String firstName; String firstName;
String lastName; String lastName;
String email; String email;
Null company; dynamic company;
int countryId; int countryId;
String country; String country;
Null stateProvinceId; dynamic stateProvinceId;
String city; String city;
String address1; String address1;
String address2; String address2;
String zipPostalCode; String zipPostalCode;
String phoneNumber; String phoneNumber;
Null faxNumber; dynamic faxNumber;
String customerAttributes; String customerAttributes;
String createdOnUtc; String createdOnUtc;
Null province; dynamic province;
String latLong; String latLong;
AddressInfo( AddressInfo(

@ -44,11 +44,16 @@ class BaseAppClient {
} }
try { try {
//Map profile = await sharedPref.getObj(DOCTOR_PROFILE); //Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
var pharmacyToken = await sharedPref.getString(PHARMACY_AUTORZIE_TOKEN);
var user = await sharedPref.getObject(USER_PROFILE);
Map<String,String> headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
};
if (!isExternal) { if (!isExternal) {
String token = await sharedPref.getString(TOKEN); String token = await sharedPref.getString(TOKEN);
var languageID = var languageID =
await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar'); await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
var user = await sharedPref.getObject(USER_PROFILE);
if (body.containsKey('SetupID')) { if (body.containsKey('SetupID')) {
body['SetupID'] = body.containsKey('SetupID') body['SetupID'] = body.containsKey('SetupID')
? body['SetupID'] != null ? body['SetupID'] != null
@ -102,22 +107,26 @@ class BaseAppClient {
? body['PatientID'] ? body['PatientID']
: user['PatientID']; : user['PatientID'];
body['PatientOutSA'] = user['OutSA']; body['PatientOutSA'] = user['OutSA'];
body['SessionID'] = SESSION_ID; //getSessionId(token); body['SessionID'] = SESSION_ID; //getSe
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': pharmacyToken,
'Mobilenumber': user['MobileNumber'].toString(),
'Statictoken': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9',
'Username': user['PatientID'].toString(),
};
} }
} }
} }
print("URL : $url"); print("URL : $url");
print("Body : ${json.encode(body)}"); print("Body : ${json.encode(body)}");
var ss = json.encode(body);
if (await Utils.checkConnection()) { if (await Utils.checkConnection()) {
final response = await http.post(url.trim(), final response = await http.post(url.trim(),
body: json.encode(body), body: json.encode(body),
headers: { headers: headers);
'Content-Type': 'application/json',
'Accept': 'application/json'
});
final int statusCode = response.statusCode; final int statusCode = response.statusCode;
print("statusCode :$statusCode"); print("statusCode :$statusCode");
if (statusCode < 200 || statusCode >= 400 || json == null) { if (statusCode < 200 || statusCode >= 400 || json == null) {
@ -268,15 +277,6 @@ class BaseAppClient {
var token = await sharedPref.getString(PHARMACY_AUTORZIE_TOKEN); var token = await sharedPref.getString(PHARMACY_AUTORZIE_TOKEN);
var user = await sharedPref.getObject(USER_PROFILE); var user = await sharedPref.getObject(USER_PROFILE);
// Map test = {
// 'Content-Type': 'application/json',
// 'Accept': 'application/json',
// 'Authorization': token ?? "",
// 'Mobilenumber': user['MobileNumber'].toString(),
// 'Statictoken': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9',
// 'Username': user['PatientID'].toString(),
// };
if (await Utils.checkConnection()) { if (await Utils.checkConnection()) {
final response = await http.get(url.trim(), headers: { final response = await http.get(url.trim(), headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',

@ -0,0 +1,26 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/customer_addresses_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import '../../locator.dart';
class PrescriptionDeliveryViewModel extends BaseViewModel{
CustomerAddressesService _customerAddressesService = locator<CustomerAddressesService>();
List<AddressInfo> get addressesList => _customerAddressesService.addressesList;
Future getCustomerAddresses() async {
setState(ViewState.Busy);
await _customerAddressesService.getCustomerAddresses(
);
if (_customerAddressesService.hasError) {
error = _customerAddressesService.error;
setState(ViewState.ErrorLocal);
} else {
setState(ViewState.Idle);
}
}
}

@ -69,6 +69,7 @@ import 'core/service/parmacyModule/parmacy_module_service.dart';
import 'core/service/offers_service.dart'; import 'core/service/offers_service.dart';
import 'core/service/pharmacy_categorise_service.dart'; import 'core/service/pharmacy_categorise_service.dart';
import 'core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart'; import 'core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart';
import 'core/viewModels/PrescriptionDeliveryViewModel.dart';
import 'core/viewModels/TermsConditionsViewModel.dart'; import 'core/viewModels/TermsConditionsViewModel.dart';
import 'core/viewModels/all_habib_medical_services/e_referral_view_model.dart'; import 'core/viewModels/all_habib_medical_services/e_referral_view_model.dart';
import 'core/viewModels/appointment_rate_view_model.dart'; import 'core/viewModels/appointment_rate_view_model.dart';
@ -255,6 +256,7 @@ void setupLocator() {
locator.registerFactory(() => EyeViewModel()); locator.registerFactory(() => EyeViewModel());
locator.registerFactory(() => ActiveMedicationsViewModel()); locator.registerFactory(() => ActiveMedicationsViewModel());
locator.registerFactory(() => AskDoctorViewModel()); locator.registerFactory(() => AskDoctorViewModel());
locator.registerFactory(() => PrescriptionDeliveryViewModel());
locator.registerFactory(() => AllergiesViewModel()); locator.registerFactory(() => AllergiesViewModel());
locator.registerFactory(() => HomeHealthCareViewModel()); locator.registerFactory(() => HomeHealthCareViewModel());

@ -121,7 +121,7 @@ class _MedicalProfilePageState extends State<MedicalProfilePage> {
childAspectRatio: MediaQuery.of(context) childAspectRatio: MediaQuery.of(context)
.size .size
.width / .width /
(MediaQuery.of(context).size.height / 2.40), (MediaQuery.of(context).size.height / 2.20),
), ),
itemCount: myMedicalList.length, itemCount: myMedicalList.length,
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {

@ -0,0 +1,99 @@
import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:diplomaticquarterapp/core/model/prescriptions/Prescriptions.dart';
class PrescriptionDeliveryAddressPage extends StatelessWidget {
final Prescriptions prescriptions;
const PrescriptionDeliveryAddressPage({Key key, this.prescriptions})
: super(key: key);
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return AppScaffold(
isShowAppBar: true,
appBarTitle: 'Delivery Address',
body: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
height: 15,
),
InkWell(
onTap: () {},
child: Container(
margin: EdgeInsets.only(left: 10, right: 10, top: 15),
height: 50,
decoration: BoxDecoration(
border: Border.all(color: Colors.grey),
borderRadius: BorderRadius.circular(7),
color: Colors.white,
shape: BoxShape.rectangle,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Container(
child: Texts(
'Selected Address',
variant: 'bodyText',
),
margin: EdgeInsets.only(left: 10, right: 10),
),
Icon(
Icons.arrow_drop_down,
size: 22,
color: Colors.grey,
)
],
),
),
),
SizedBox(
height: 15,
),
Container(
child: Image.asset(projectViewModel.isArabic
? 'assets/images/pharmacy/shipping_image_ar.png'
: 'assets/images/pharmacy/shipping_image.png',height: 300,),
)
],
),
),
bottomSheet: Container(
width: double.infinity,
height: MediaQuery.of(context).size.height * 0.25,
color: Colors.grey[100],
child: Column(
children: <Widget>[
Divider(),
Container(
width: MediaQuery.of(context).size.width * 0.8,
child: Button(
label: 'Add New Address'.toUpperCase(),
onTap: () {},
),
),
Container(
width: MediaQuery.of(context).size.width * 0.8,
child: Button(
label: 'Continue'.toUpperCase(),
backgroundColor: Colors.green[200],
onTap: () {},
))
],
),
));
}
}

@ -7,6 +7,7 @@ import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescription_details_page.dart'; import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescription_details_page.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
@ -14,12 +15,13 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../../widgets/dialogs/confirm_send_email_dialog.dart'; import '../../../widgets/dialogs/confirm_send_email_dialog.dart';
import 'PrescriptionIDeliveryAddressPage.dart';
class PrescriptionItemsPage extends StatelessWidget { class PrescriptionItemsPage extends StatelessWidget {
final Prescriptions prescriptions; final Prescriptions prescriptions;
PrescriptionItemsPage({Key key, this.prescriptions}); PrescriptionItemsPage({Key key, this.prescriptions});
//TODO
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context); ProjectViewModel projectViewModel = Provider.of(context);
@ -181,7 +183,7 @@ class PrescriptionItemsPage extends StatelessWidget {
), ),
bottomSheet: Container( bottomSheet: Container(
width: double.infinity, width: double.infinity,
height: MediaQuery.of(context).size.height * 0.14, height: MediaQuery.of(context).size.height * 0.25,
color: Colors.grey[100], color: Colors.grey[100],
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
@ -197,12 +199,22 @@ class PrescriptionItemsPage extends StatelessWidget {
loading: model.state == ViewState.BusyLocal, loading: model.state == ViewState.BusyLocal,
), ),
), ),
if (false)
Container( Container(
width: MediaQuery.of(context).size.width * 0.8, width: MediaQuery.of(context).size.width * 0.8,
child: Button( child: SecondaryButton(
label: TranslationBase.of(context).resendOrder, label: TranslationBase.of(context).resendOrder,
backgroundColor: Colors.green[200], color: Colors.green[200],
onTap: (){
var asd="";
Navigator.push(
context,
FadePage(
page: PrescriptionDeliveryAddressPage(
prescriptions: prescriptions,
),
),
);
},
)) ))
], ],
), ),

@ -206,33 +206,30 @@ class Utils {
); );
}, },
child: isLogin child: isLogin
? Container( ? Stack(children: [
height: 120, MedicalProfileItem(
child: Stack(children: [ title: TranslationBase.of(context).myAppointments,
MedicalProfileItem( imagePath: 'my_appointment_icon.png',
title: TranslationBase.of(context).myAppointments, subTitle: TranslationBase.of(context).myAppointmentsList,
imagePath: 'my_appointment_icon.png', hasBadge: true,
subTitle: TranslationBase.of(context).myAppointmentsList, ),
hasBadge: true, Positioned(
), right: 0.0,
Positioned( child: Badge(
right: 0.0, toAnimate: false,
child: Badge( position: BadgePosition.topEnd(),
toAnimate: false, shape: BadgeShape.circle,
position: BadgePosition.topEnd(), badgeColor: secondaryColor.withOpacity(1.0),
shape: BadgeShape.circle, borderRadius: BorderRadius.circular(8),
badgeColor: secondaryColor.withOpacity(1.0), badgeContent: Container(
borderRadius: BorderRadius.circular(8), padding: EdgeInsets.all(2.0),
badgeContent: Container( child: Text(count.toString(),
padding: EdgeInsets.all(2.0), style:
child: Text(count.toString(), TextStyle(color: Colors.white, fontSize: 16.0)),
style:
TextStyle(color: Colors.white, fontSize: 16.0)),
),
), ),
), ),
]), ),
) ])
: MedicalProfileItem( : MedicalProfileItem(
title: TranslationBase.of(context).myAppointments, title: TranslationBase.of(context).myAppointments,
imagePath: 'my_appointment_icon.png', imagePath: 'my_appointment_icon.png',

@ -22,31 +22,32 @@ class MedicalProfileItem extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context); ProjectViewModel projectViewModel = Provider.of(context);
return RoundedContainer( return Container(
showBorder: true, height: 180,
borderWidth: 0, margin: EdgeInsets.all(5),
margin: 4, decoration: BoxDecoration(
child: Container( borderRadius: BorderRadius.circular(10),
padding: EdgeInsets.all(10), color: Colors.white
child: Column( ),
mainAxisAlignment: MainAxisAlignment.spaceBetween, padding: EdgeInsets.all(10),
crossAxisAlignment: CrossAxisAlignment.start, child: Column(
children: <Widget>[ mainAxisAlignment: MainAxisAlignment.spaceBetween,
Texts(title, crossAxisAlignment: CrossAxisAlignment.start,
fontSize: 1.5 * SizeConfig.textMultiplier, children: <Widget>[
color: secondaryColor, Texts(title,
fontWeight: FontWeight.bold), fontSize: 1.5 * SizeConfig.textMultiplier,
Texts(subTitle,fontSize: 1.4 * SizeConfig.textMultiplier,), color: secondaryColor,
Align( fontWeight: FontWeight.bold),
alignment:projectViewModel.isArabic ? Alignment.bottomLeft : Alignment.bottomRight, Texts(subTitle,fontSize: 1.4 * SizeConfig.textMultiplier,),
child: Image.asset( Align(
"assets/images/medical/$imagePath", alignment:projectViewModel.isArabic ? Alignment.bottomLeft : Alignment.bottomRight,
height: SizeConfig.heightMultiplier * 5, child: Image.asset(
width: SizeConfig.heightMultiplier * 5, "assets/images/medical/$imagePath",
), height: SizeConfig.heightMultiplier * 5,
) width: SizeConfig.heightMultiplier * 5,
], ),
), )
],
), ),
); );
} }

@ -49,6 +49,7 @@ dependencies:
shared_preferences: ^0.5.8 shared_preferences: ^0.5.8
flutter_flexible_toast: ^0.1.4 flutter_flexible_toast: ^0.1.4
firebase_messaging: ^7.0.3 firebase_messaging: ^7.0.3
cloud_firestore: ^0.14.3
android_intent: ^0.3.7+7 android_intent: ^0.3.7+7
# Progress bar # Progress bar
progress_hud_v2: ^2.0.0 progress_hud_v2: ^2.0.0

Loading…
Cancel
Save