Updates & fixes

merge-update-with-lab-changes
haroon amjad 4 years ago
parent 7f5f3ababe
commit a6c6651363

@ -377,7 +377,7 @@ const UPDATE_COVID_QUESTIONNAIRE = 'Services/Doctors.svc/REST/COVID19_Questionna
const CHANNEL = 3; const CHANNEL = 3;
const GENERAL_ID = 'Cs2020@2016\$2958'; const GENERAL_ID = 'Cs2020@2016\$2958';
const IP_ADDRESS = '10.20.10.20'; const IP_ADDRESS = '10.20.10.20';
const VERSION_ID = 7.2; const VERSION_ID = 7.3;
const SETUP_ID = '91877'; const SETUP_ID = '91877';
const LANGUAGE = 2; const LANGUAGE = 2;
const PATIENT_OUT_SA = 0; const PATIENT_OUT_SA = 0;

@ -11,11 +11,11 @@ class CustomerAddressesService extends BaseService {
CustomerInfo customerInfo = new CustomerInfo(); CustomerInfo customerInfo = new CustomerInfo();
Future addAddressInfo({AddNewAddressRequestModel addNewAddressRequestModel}) async { Future addAddressInfo({AddNewAddressRequestModel addNewAddressRequestModel}) async {
addNewAddressRequestModel.customer.email = customerInfo.email; var customerId = await sharedPref.getString(PHARMACY_CUSTOMER_ID);
addNewAddressRequestModel.customer.id = customerInfo.customerId; addNewAddressRequestModel.customer.email = addNewAddressRequestModel.customer.addresses[0].email;
addNewAddressRequestModel.customer.id = customerId;
addNewAddressRequestModel.customer.roleIds = [3]; addNewAddressRequestModel.customer.roleIds = [3];
addNewAddressRequestModel.customer.addresses[0].email = customerInfo.email; addNewAddressRequestModel.customer.addresses[0].phoneNumber = addNewAddressRequestModel.customer.addresses[0].phoneNumber;
addNewAddressRequestModel.customer.addresses[0].phoneNumber = customerInfo.mobileNumber;
addNewAddressRequestModel.customer.addresses[0].firstName = authenticatedUserObject.user.firstName; addNewAddressRequestModel.customer.addresses[0].firstName = authenticatedUserObject.user.firstName;
addNewAddressRequestModel.customer.addresses[0].lastName = authenticatedUserObject.user.lastName; addNewAddressRequestModel.customer.addresses[0].lastName = authenticatedUserObject.user.lastName;
addNewAddressRequestModel.customer.addresses[0].countryId = 69; addNewAddressRequestModel.customer.addresses[0].countryId = 69;
@ -30,8 +30,8 @@ class CustomerAddressesService extends BaseService {
addressesList.add(AddressInfo.fromJson(data)); addressesList.add(AddressInfo.fromJson(data));
}); });
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
hasError = true; hasError = false;
super.error = error; // super.error = error;
}, body: addNewAddressRequestModel.toJson(), isAllowAny: true); }, body: addNewAddressRequestModel.toJson(), isAllowAny: true);
} }

@ -20,7 +20,7 @@ class AddNewAddressRequestModel {
class Customer { class Customer {
List<Addresses> addresses; List<Addresses> addresses;
int id; String id;
String email; String email;
List<int> roleIds; List<int> roleIds;
@ -51,7 +51,7 @@ class Customer {
} }
class Addresses { class Addresses {
int id; String id;
String firstName; String firstName;
String lastName; String lastName;
String email; String email;
@ -67,7 +67,7 @@ class Addresses {
dynamic faxNumber; dynamic faxNumber;
String customerAttributes; String customerAttributes;
String createdOnUtc; String createdOnUtc;
Null province; dynamic province;
String latLong; String latLong;
Addresses( Addresses(

@ -1,3 +1,4 @@
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/enum/OrderService.dart'; import 'package:diplomaticquarterapp/core/enum/OrderService.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/GetCMCAllOrdersResponseModel.dart'; import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/GetCMCAllOrdersResponseModel.dart';

@ -4,6 +4,7 @@ import 'package:diplomaticquarterapp/core/model/pharmacies/Country.dart';
import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/customer_addresses_service.dart'; import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/customer_addresses_service.dart';
import 'package:diplomaticquarterapp/services/pharmacy_services/pharmacyAddress_service.dart'; import 'package:diplomaticquarterapp/services/pharmacy_services/pharmacyAddress_service.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:geocoding/geocoding.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart'; import 'package:google_maps_place_picker/google_maps_place_picker.dart';
import '../../../locator.dart'; import '../../../locator.dart';
@ -33,7 +34,8 @@ class PharmacyAddressesViewModel extends BaseViewModel {
} }
} }
Future addEditAddress(PickResult value, AddressInfo editedAddress) async { // Future addEditAddress(PickResult value, AddressInfo editedAddress) async {
Future addEditAddress(Placemark selectedPlace, AddressInfo editedAddress, {String latLong}) async {
setState(ViewState.Busy); setState(ViewState.Busy);
AddressInfo sendingAddress; AddressInfo sendingAddress;
@ -48,27 +50,34 @@ class PharmacyAddressesViewModel extends BaseViewModel {
} else { } else {
sendingAddress = editedAddress; sendingAddress = editedAddress;
} }
value.addressComponents.forEach((element) {
if (element.types.contains("country")) { sendingAddress.country = selectedPlace.country;
sendingAddress.country = element.longName; sendingAddress.city = selectedPlace.locality;
} sendingAddress.zipPostalCode = selectedPlace.postalCode;
if (element.types.contains("administrative_area_level_1")) { sendingAddress.province = selectedPlace.locality;
sendingAddress.city = element.longName; sendingAddress.latLong = latLong;
}
if (element.types.contains("postal_code")) { // value.addressComponents.forEach((element) {
sendingAddress.zipPostalCode = element.longName; // if (element.types.contains("country")) {
} // sendingAddress.country = element.longName;
if (element.types.contains("administrative_area_level_2")) { // }
sendingAddress.province = element.longName; // if (element.types.contains("administrative_area_level_1")) {
} // sendingAddress.city = element.longName;
}); // }
sendingAddress.latLong = value.geometry.location.toString(); // if (element.types.contains("postal_code")) {
// sendingAddress.zipPostalCode = element.longName;
// }
// if (element.types.contains("administrative_area_level_2")) {
// sendingAddress.province = element.longName;
// }
// });
// sendingAddress.latLong = value.geometry.location.toString();
await _pharmacyAddressService.getCountries(sendingAddress.country); await _pharmacyAddressService.getCountries(sendingAddress.country);
sendingAddress.countryId = country.id; sendingAddress.countryId = country.id;
sendingAddress.stateProvinceId = null; sendingAddress.stateProvinceId = null;
sendingAddress.address1 = value.formattedAddress; sendingAddress.address1 = selectedPlace.name;
sendingAddress.address2 = ""; sendingAddress.address2 = selectedPlace.street;
sendingAddress.phoneNumber = user.mobileNumber; sendingAddress.phoneNumber = user.mobileNumber;
sendingAddress.faxNumber = user.faxNumber; sendingAddress.faxNumber = user.faxNumber;
sendingAddress.customerAttributes = ""; sendingAddress.customerAttributes = "";
@ -76,8 +85,7 @@ class PharmacyAddressesViewModel extends BaseViewModel {
if (editedAddress == null) { if (editedAddress == null) {
await _pharmacyAddressService.addCustomerAddress(sendingAddress); await _pharmacyAddressService.addCustomerAddress(sendingAddress);
} else { } else {
await _pharmacyAddressService.editCustomerAddress(sendingAddress).then((value) async { await _pharmacyAddressService.editCustomerAddress(sendingAddress).then((value) async {});
});
} }
if (_pharmacyAddressService.hasError) { if (_pharmacyAddressService.hasError) {

@ -108,7 +108,7 @@ class _CMCLocationPageState extends State<CMCLocationPage> {
customerAttributes: "", customerAttributes: "",
city: "", city: "",
createdOnUtc: "", createdOnUtc: "",
id: 0, id: "0",
latLong: selectedPlace.geometry.location.lat.toString() + "," + selectedPlace.geometry.location.lng.toString(), latLong: selectedPlace.geometry.location.lat.toString() + "," + selectedPlace.geometry.location.lng.toString(),
email: "", email: "",
) )

@ -1,16 +1,21 @@
import 'dart:async';
import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/add_new_address_Request_Model.dart'; import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/add_new_address_Request_Model.dart';
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.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/app_map/google_huawei_map.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:geocoding/geocoding.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart'; import 'package:google_maps_place_picker/google_maps_place_picker.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -32,6 +37,16 @@ class _LocationPageState extends State<LocationPage> {
double longitude = 0; double longitude = 0;
bool showCurrentLocation = false; bool showCurrentLocation = false;
AppMap appMap;
AppSharedPreferences sharedPref = AppSharedPreferences();
static CameraPosition _kGooglePlex = CameraPosition(
target: LatLng(37.42796133580664, -122.085749655962),
zoom: 14.4746,
);
LatLng currentPostion;
Completer<GoogleMapController> mapController = Completer();
Placemark selectedPlace;
@override @override
void initState() { void initState() {
latitude = widget.latitude; latitude = widget.latitude;
@ -39,6 +54,23 @@ class _LocationPageState extends State<LocationPage> {
if (latitude == 0.0 && longitude == 0.0) { if (latitude == 0.0 && longitude == 0.0) {
showCurrentLocation = true; showCurrentLocation = true;
} }
appMap = AppMap(
_kGooglePlex.toMap(),
onCameraMove: (camera) {
_updatePosition(camera);
},
onMapCreated: () {
currentPostion = LatLng(widget.latitude, widget.longitude);
latitude = widget.latitude;
longitude = widget.longitude;
setMap();
setState(() {});
},
onCameraIdle: () async {
List<Placemark> placemarks = await placemarkFromCoordinates(latitude, longitude);
selectedPlace = placemarks[0];
},
);
super.initState(); super.initState();
} }
@ -54,7 +86,60 @@ class _LocationPageState extends State<LocationPage> {
baseViewModel: model, baseViewModel: model,
showNewAppBarTitle: true, showNewAppBarTitle: true,
showNewAppBar: true, showNewAppBar: true,
body: PlacePicker( body:
// Column(
// children: [
// Expanded(
// child: Stack(
// alignment: Alignment.center,
// children: [
// if (appMap != null) appMap,
// Container(
// margin: EdgeInsets.only(bottom: 50.0),
// child: Icon(
// Icons.place,
// color: CustomColors.accentColor,
// size: 50,
// ),
// ),
// ],
// ),
// ),
// Container(
// padding: const EdgeInsets.only(left: 20, right: 20, top: 14, bottom: 14),
// child: DefaultButton(TranslationBase.of(context).addNewAddress, () async {
// AddNewAddressRequestModel addNewAddressRequestModel = new AddNewAddressRequestModel(
// customer: Customer(addresses: [
// Addresses(
// address1: selectedPlace.name,
// address2: selectedPlace.street,
// customerAttributes: "",
// city: selectedPlace.locality,
// createdOnUtc: "",
// id: "0",
// faxNumber: "",
// phoneNumber: projectViewModel.user.mobileNumber,
// province: selectedPlace.locality,
// countryId: 69,
// latLong: "$latitude,$longitude",
// country: selectedPlace.country,
// zipPostalCode: selectedPlace.postalCode,
// email: projectViewModel.user.emailAddress)
// ]),
// );
// await model.addAddressInfo(addNewAddressRequestModel: addNewAddressRequestModel);
// if (model.state == ViewState.ErrorLocal) {
// Utils.showErrorToast(model.error);
// } else {
// AppToast.showSuccessToast(message: "Address Added Successfully");
// }
// Navigator.of(context).pop(addNewAddressRequestModel);
// }),
// ),
// ],
// ),
PlacePicker(
apiKey: GOOGLE_API_KEY, apiKey: GOOGLE_API_KEY,
enableMyLocationButton: true, enableMyLocationButton: true,
automaticallyImplyAppBarLeading: false, automaticallyImplyAppBarLeading: false,
@ -76,7 +161,7 @@ class _LocationPageState extends State<LocationPage> {
width: 500, width: 500,
borderRadius: BorderRadius.circular(0.0), borderRadius: BorderRadius.circular(0.0),
child: state == SearchingState.Searching child: state == SearchingState.Searching
? SizedBox(height: 43,child: Center(child: CircularProgressIndicator())).insideContainer ? SizedBox(height: 43, child: Center(child: CircularProgressIndicator())).insideContainer
: DefaultButton(TranslationBase.of(context).addNewAddress, () async { : DefaultButton(TranslationBase.of(context).addNewAddress, () async {
AddNewAddressRequestModel addNewAddressRequestModel = new AddNewAddressRequestModel( AddNewAddressRequestModel addNewAddressRequestModel = new AddNewAddressRequestModel(
customer: Customer(addresses: [ customer: Customer(addresses: [
@ -84,11 +169,22 @@ class _LocationPageState extends State<LocationPage> {
address1: selectedPlace.formattedAddress, address1: selectedPlace.formattedAddress,
address2: selectedPlace.formattedAddress, address2: selectedPlace.formattedAddress,
customerAttributes: "", customerAttributes: "",
city: "",
createdOnUtc: "", createdOnUtc: "",
id: 0, id: "0",
latLong: "${selectedPlace.geometry.location}", faxNumber: "",
email: "") phoneNumber: projectViewModel.user.mobileNumber,
countryId: 69,
latLong: "$latitude,$longitude",
email: projectViewModel.user.emailAddress)
// Addresses(
// address1: selectedPlace.formattedAddress,
// address2: selectedPlace.formattedAddress,
// customerAttributes: "",
// city: "",
// createdOnUtc: "",
// id: "0",
// latLong: "${selectedPlace.geometry.location}",
// email: "")
]), ]),
); );
@ -111,8 +207,7 @@ class _LocationPageState extends State<LocationPage> {
AppToast.showSuccessToast(message: "Address Added Successfully"); AppToast.showSuccessToast(message: "Address Added Successfully");
} }
Navigator.of(context).pop(addNewAddressRequestModel); Navigator.of(context).pop(addNewAddressRequestModel);
}).insideContainer }).insideContainer);
);
}, },
initialPosition: LatLng(latitude, longitude), initialPosition: LatLng(latitude, longitude),
useCurrentLocation: showCurrentLocation, useCurrentLocation: showCurrentLocation,
@ -120,4 +215,19 @@ class _LocationPageState extends State<LocationPage> {
), ),
); );
} }
setMap() {
setState(() {
_kGooglePlex = CameraPosition(
target: currentPostion,
zoom: 14.4746,
);
appMap.moveTo(cameraPostion: _kGooglePlex);
});
}
void _updatePosition(CameraPosition _position) {
latitude = _position.target.latitude;
longitude = _position.target.longitude;
}
} }

@ -4,26 +4,25 @@ import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart'; import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart';
import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/customer_addresses_service.dart'; import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/customer_addresses_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_three_page.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/NewHomeHealthCare/new_Home_health_care_step_three_page.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/reminder_dialog.dart'; import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/reminder_dialog.dart';
import 'package:diplomaticquarterapp/theme/colors.dart'; import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart'; import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/app_map/google_huawei_map.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/select_location_dialog.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/select_location_dialog.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';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart'; import 'package:google_maps_place_picker/google_maps_place_picker.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import 'package:provider/provider.dart';
import 'package:diplomaticquarterapp/widgets/app_map/google_huawei_map.dart';
import 'location_page.dart'; import 'location_page.dart';
import 'package:geolocator/geolocator.dart';
class NewHomeHealthCareStepTowPage extends StatefulWidget { class NewHomeHealthCareStepTowPage extends StatefulWidget {
final Function(PickResult) onPick; final Function(PickResult) onPick;
@ -53,6 +52,7 @@ class _NewHomeHealthCareStepTowPageState extends State<NewHomeHealthCareStepTowP
); );
LatLng currentPostion; LatLng currentPostion;
Completer<GoogleMapController> mapController = Completer(); Completer<GoogleMapController> mapController = Completer();
@override @override
void initState() { void initState() {
appMap = AppMap( appMap = AppMap(
@ -86,7 +86,7 @@ class _NewHomeHealthCareStepTowPageState extends State<NewHomeHealthCareStepTowP
setMap(); setMap();
} else { } else {
requestPermissions().then( requestPermissions().then(
(value) async { (value) async {
if (value[Permission.location].isGranted) { if (value[Permission.location].isGranted) {
var position = await GeolocatorPlatform.instance.getCurrentPosition(desiredAccuracy: LocationAccuracy.low); var position = await GeolocatorPlatform.instance.getCurrentPosition(desiredAccuracy: LocationAccuracy.low);
currentPostion = LatLng(position.latitude, position.longitude); currentPostion = LatLng(position.latitude, position.longitude);
@ -236,20 +236,22 @@ class _NewHomeHealthCareStepTowPageState extends State<NewHomeHealthCareStepTowP
alignment: Alignment.center, alignment: Alignment.center,
children: [ children: [
if (appMap != null) appMap, if (appMap != null) appMap,
Icon( Container(
Icons.place, margin: EdgeInsets.only(bottom: 50.0),
color: CustomColors.accentColor, child: Icon(
size: 50, Icons.place,
color: CustomColors.accentColor,
size: 50,
),
), ),
], ],
), ),
), ),
Padding( Padding(
padding: const EdgeInsets.only(left: 20, right: 20, top: 14, bottom: 14), padding: const EdgeInsets.only(left: 20, right: 20, top: 14, bottom: 14),
child: SecondaryButton( child: DefaultButton(
color: Colors.red[800], TranslationBase.of(context).continues,
textColor: Colors.white, () {
onTap: () {
setState(() { setState(() {
widget.patientERInsertPresOrderRequestModel.latitude = latitude; widget.patientERInsertPresOrderRequestModel.latitude = latitude;
widget.patientERInsertPresOrderRequestModel.longitude = longitude; widget.patientERInsertPresOrderRequestModel.longitude = longitude;
@ -263,7 +265,6 @@ class _NewHomeHealthCareStepTowPageState extends State<NewHomeHealthCareStepTowP
), ),
); );
}, },
label: TranslationBase.of(context).continues,
), ),
), ),
], ],

@ -130,90 +130,6 @@ class _RegisterInfo extends State<RegisterInfo> {
SizedBox(height: 20), SizedBox(height: 20),
], ],
) )
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// mainAxisAlignment: MainAxisAlignment.spaceEvenly,
// children: <Widget>[
// AppText(TranslationBase.of(context).nationalID),
// Container(
// margin: EdgeInsets.only(bottom: 10),
// child: TextFields(
// hintText: registerInfo.idNumber,
// prefixIcon: Icon(Icons.chrome_reader_mode, color: Colors.red),
// padding: EdgeInsets.only(top: 20, bottom: 20, left: 10, right: 10),
// readOnly: true,
// )),
// AppText(TranslationBase.of(context).firstName),
// Container(
// margin: EdgeInsets.only(bottom: 10),
// child: TextFields(
// hintText: registerInfo.firstNameEn == '-' ? registerInfo.firstNameAr : registerInfo.firstNameEn,
// padding: EdgeInsets.only(top: 20, bottom: 20, left: 10, right: 10),
// readOnly: true,
// )),
// AppText(TranslationBase.of(context).middleName),
// Container(
// margin: EdgeInsets.only(bottom: 10),
// child: TextFields(
// hintText: registerInfo.secondNameEn == '-' ? registerInfo.secondNameAr : registerInfo.secondNameEn,
// padding: EdgeInsets.only(top: 20, bottom: 20, left: 10, right: 10),
// readOnly: true,
// )),
// AppText(TranslationBase.of(context).lastName),
// Container(
// margin: EdgeInsets.only(bottom: 10),
// child: TextFields(
// hintText: registerInfo.lastNameEn == '-' ? registerInfo.lastNameAr : registerInfo.lastNameEn,
// padding: EdgeInsets.only(top: 20, bottom: 20, left: 10, right: 10),
// readOnly: true,
// )),
// AppText(TranslationBase.of(context).gender),
// Container(
// margin: EdgeInsets.only(bottom: 10),
// child: TextFields(
// hintText: registerInfo.maritalStatusCode == 'U'
// ? 'Unknown'
// : registerInfo.maritalStatusCode == 'M'
// ? 'Male'
// : 'Female',
// padding: EdgeInsets.only(top: 20, bottom: 20, left: 10, right: 10),
// readOnly: true,
// )),
// AppText(TranslationBase.of(context).maritalStatus),
// Container(
// margin: EdgeInsets.only(bottom: 10),
// child: TextFields(
// hintText: registerInfo.maritalStatus,
// padding: EdgeInsets.only(top: 20, bottom: 20, left: 10, right: 10),
// readOnly: true,
// )),
// AppText(TranslationBase.of(context).nationality),
// Container(
// margin: EdgeInsets.only(bottom: 10),
// child: TextFields(
// hintText: registerInfo.nationalityCode,
// padding: EdgeInsets.only(top: 20, bottom: 20, left: 10, right: 10),
// readOnly: true,
// )),
// AppText(TranslationBase.of(context).mobileNumber),
// Container(
// margin: EdgeInsets.only(bottom: 10),
// child: TextFields(
// hintText: registerd_data.patientMobileNumber.toString(),
// padding: EdgeInsets.only(top: 20, bottom: 20, left: 10, right: 10),
// readOnly: true,
// )),
// AppText(TranslationBase.of(context).dob),
// Container(
// margin: EdgeInsets.only(bottom: 10),
// child: TextFields(
// hintText: registerInfo.dateOfBirth,
// padding: EdgeInsets.only(top: 20, bottom: 20, left: 10, right: 10),
// readOnly: true,
// )),
// ],
// )
: registerInfo != null && widget.page == 2 : registerInfo != null && widget.page == 2
? Column( ? Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,

@ -1,17 +1,27 @@
import 'package:diplomaticquarterapp/core/model/pharmacies/Addresses.dart'; import 'dart:async';
import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/customer_addresses_service.dart'; import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/customer_addresses_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/add_new_address_Request_Model.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/PharmacyAddressesViewModel.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/PharmacyAddressesViewModel.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/app_map/google_huawei_map.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/pickupLocation/PickupLocationFromMap.dart'; import 'package:diplomaticquarterapp/widgets/pickupLocation/PickupLocationFromMap.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:geocoding/geocoding.dart';
import 'package:geolocator/geolocator.dart'; import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart'; import 'package:google_maps_place_picker/google_maps_place_picker.dart';
import 'package:provider/provider.dart';
class AddAddressPage extends StatefulWidget { class AddAddressPage extends StatefulWidget {
final AddressInfo editedAddress; final AddressInfo editedAddress;
final Function(PickResult) onPick; final Function(Placemark, String) onPick;
AddAddressPage(this.editedAddress, this.onPick); AddAddressPage(this.editedAddress, this.onPick);
@ -22,10 +32,21 @@ class AddAddressPage extends StatefulWidget {
class _AddAddressPageState extends State<AddAddressPage> { class _AddAddressPageState extends State<AddAddressPage> {
double _latitude; double _latitude;
double _longitude; double _longitude;
AppMap appMap;
AppSharedPreferences sharedPref = AppSharedPreferences();
LatLng currentPostion;
Completer<GoogleMapController> mapController = Completer();
Placemark selectedPlace;
static CameraPosition _kGooglePlex = CameraPosition(
target: LatLng(37.42796133580664, -122.085749655962),
zoom: 14.4746,
);
@override @override
void initState() { void initState() {
super.initState(); super.initState();
if (widget.editedAddress != null && widget.editedAddress.latLong != null && widget.editedAddress.latLong != "") { if (widget.editedAddress != null && widget.editedAddress.latLong != null && widget.editedAddress.latLong != "") {
List<String> latLng = widget.editedAddress.latLong.split(","); List<String> latLng = widget.editedAddress.latLong.split(",");
_latitude = double.parse(latLng[0]); _latitude = double.parse(latLng[0]);
@ -33,13 +54,43 @@ class _AddAddressPageState extends State<AddAddressPage> {
} else { } else {
_getCurrentLocation(); _getCurrentLocation();
} }
// setState(() {});
appMap = AppMap(
_kGooglePlex.toMap(),
onCameraMove: (camera) {
_updatePosition(camera);
},
onMapCreated: () {
currentPostion = LatLng(_latitude, _longitude);
// latitude = widget.latitude;
// longitude = widget.longitude;
setMap();
setState(() {});
},
onCameraIdle: () async {
List<Placemark> placemarks = await placemarkFromCoordinates(_latitude, _longitude);
selectedPlace = placemarks[0];
print(selectedPlace);
},
);
}
setMap() {
setState(() { setState(() {
_kGooglePlex = CameraPosition(
target: currentPostion,
zoom: 14.4746,
);
appMap.moveTo(cameraPostion: _kGooglePlex);
}); });
} }
void _updatePosition(CameraPosition _position) {
_latitude = _position.target.latitude;
_longitude = _position.target.longitude;
print(_position);
}
_getCurrentLocation() async { _getCurrentLocation() async {
await Geolocator.getLastKnownPosition().then((value) { await Geolocator.getLastKnownPosition().then((value) {
@ -48,37 +99,93 @@ class _AddAddressPageState extends State<AddAddressPage> {
}).catchError((e) { }).catchError((e) {
_longitude = 0; _longitude = 0;
_latitude = 0; _latitude = 0;
}); });
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final mediaQuery = MediaQuery.of(context); final mediaQuery = MediaQuery.of(context);
final height = mediaQuery.size.height - 60 - mediaQuery.padding.top; final height = mediaQuery.size.height - 60 - mediaQuery.padding.top;
ProjectViewModel projectViewModel = Provider.of(context);
return BaseView<PharmacyAddressesViewModel>( return BaseView<PharmacyAddressesViewModel>(
builder: (_, model, wi) => AppScaffold( builder: (_, model, wi) => AppScaffold(
appBarTitle: TranslationBase.of(context).changeAddress, appBarTitle: TranslationBase.of(context).changeAddress,
isShowAppBar: false, isShowAppBar: true,
isPharmacy: true, isPharmacy: true,
backgroundColor: Colors.white, backgroundColor: Colors.white,
body: Container( showNewAppBarTitle: true,
height: height * 1, showNewAppBar: true,
child: PickupLocationFromMap( body: Column(
latitude: _latitude??0, children: [
longitude: _longitude??0, Expanded(
isWithAppBar: false, child: Stack(
buttonColor: Color(0xFF5AB145), alignment: Alignment.center,
buttonLabel: TranslationBase.of(context).save, children: [
onPick: (value) { if (appMap != null) appMap,
widget.onPick(value); Container(
}, margin: EdgeInsets.only(bottom: 50.0),
), child: Icon(
Icons.place,
color: CustomColors.accentColor,
size: 50,
),
),
],
),
),
Container(
padding: const EdgeInsets.only(left: 20, right: 20, top: 14, bottom: 14),
child: DefaultButton(TranslationBase.of(context).addNewAddress, () async {
// AddNewAddressRequestModel addNewAddressRequestModel = new AddNewAddressRequestModel(
// customer: Customer(addresses: [
// Addresses(
// address1: selectedPlace.name,
// address2: selectedPlace.street,
// customerAttributes: "",
// city: selectedPlace.locality,
// createdOnUtc: "",
// id: "0",
// faxNumber: "",
// phoneNumber: projectViewModel.user.mobileNumber,
// province: selectedPlace.locality,
// countryId: 69,
// latLong: "$_latitude,$_longitude",
// country: selectedPlace.country,
// zipPostalCode: selectedPlace.postalCode,
// email: projectViewModel.user.emailAddress)
// ]),
// );
widget.onPick(selectedPlace, "$_latitude,$_longitude");
Navigator.of(context).pop();
// await model.addAddressInfo(addNewAddressRequestModel: addNewAddressRequestModel);
// if (model.state == ViewState.ErrorLocal) {
// Utils.showErrorToast(model.error);
// } else {
// AppToast.showSuccessToast(message: "Address Added Successfully");
// }
// Navigator.of(context).pop(addNewAddressRequestModel);
}),
),
],
), ),
),
); // Container(
// height: height * 1,
// child: PickupLocationFromMap(
// latitude: _latitude ?? 0,
// longitude: _longitude ?? 0,
// isWithAppBar: false,
// buttonColor: Color(0xFF5AB145),
// buttonLabel: TranslationBase.of(context).save,
// onPick: (value) {
// widget.onPick(value);
// },
// ),
),
);
// );
} }
} }

@ -39,8 +39,8 @@ class _PharmacyAddressesState extends State<PharmacyAddressesPage> {
FadePage( FadePage(
page: AddAddressPage( page: AddAddressPage(
address, address,
(pickResult) async { (pickResult, latLong) async {
await model.addEditAddress(pickResult, address); await model.addEditAddress(pickResult, address, latLong: latLong);
}, },
), ),
), ),

@ -1,5 +1,6 @@
import 'dart:async'; import 'dart:async';
import 'package:diplomaticquarterapp/services/pharmacy_services/writeReview_service.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_hms_gms_availability/flutter_hms_gms_availability.dart'; import 'package:flutter_hms_gms_availability/flutter_hms_gms_availability.dart';
@ -12,8 +13,9 @@ class AppMap extends StatefulWidget {
AppMapState _state; AppMapState _state;
Function onMapCreated; Function onMapCreated;
Function onCameraIdle;
AppMap(this.initialCamera, {this.onCameraMove, this.onMapCreated}); AppMap(this.initialCamera, {this.onCameraMove, this.onMapCreated, this.onCameraIdle});
@override @override
State<StatefulWidget> createState() => _state = AppMapState(); State<StatefulWidget> createState() => _state = AppMapState();
@ -69,6 +71,7 @@ class AppMapState extends State<AppMap> {
_googleMapControllerComp.complete(controller); _googleMapControllerComp.complete(controller);
widget.onMapCreated(); widget.onMapCreated();
}, },
onCameraIdle: widget.onCameraIdle,
); );
} }

Loading…
Cancel
Save