done ER service

er_location
jammal 5 years ago
parent 57f938aa09
commit bd2254491c

@ -27,7 +27,7 @@ apply plugin: 'com.google.gms.google-services'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
compileSdkVersion 28
compileSdkVersion 30
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
@ -41,19 +41,28 @@ android {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.cloud.diplomaticquarterapp"
minSdkVersion 21
targetSdkVersion 28
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
multiDexEnabled true
}
buildTypes {
debug {}
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
staging {
// Specifies a sorted list of fallback build types that the
// plugin should try to use when a dependency does not include a
// "staging" build type. You may specify as many fallbacks as you
// like, and the plugin selects the first build type that's
// available in the dependency.
matchingFallbacks = ['debug', 'qa', 'release']
}
}
}
@ -63,8 +72,15 @@ flutter {
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "com.google.firebase:firebase-messaging:20.1.0"
implementation 'pub.devrel:easypermissions:0.4.0'
implementation "com.google.firebase:firebase-messaging:20.3.0"
implementation 'pub.devrel:easypermissions:0.4.0'
implementation 'com.google.firebase:firebase-inappmessaging-display:17.2.0'
implementation 'com.google.guava:guava:27.0.1-android'
// Dependency on local binaries
implementation fileTree(dir: 'libs', include: ['*.jar'])
// Dependency on a remote binary
// implementation 'com.example.android:app-magic:12.3'
}

@ -73,7 +73,7 @@
android:value="2" />
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="AIzaSyCiD4YqVqLNYbt8-htvFy4Wp8XSph9E3wM"/>
android:value="AIzaSyDiXnCO00li4V7Ioa2YZ_M4ECxRsu_P9tA"/>
</application>

@ -1,5 +1,6 @@
import UIKit
import Flutter
import GoogleMaps
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
@ -7,6 +8,7 @@ import Flutter
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GMSServices.provideAPIKey("AIzaSyCiiJiHkocPbcziHt9O8rGWavDrxHRQys8")
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}

@ -6,7 +6,7 @@ import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart';
const MAX_SMALL_SCREEN = 660;
const BASE_URL = 'https://hmgwebservices.com/';
const BASE_URL = 'https://uat.hmgwebservices.com/';
const GET_PROJECT = 'Services/Lists.svc/REST/GetProject';
@ -60,6 +60,7 @@ const GET_NEAREST_HOSPITAL =
const GET_AMBULANCE_REQUEST = 'Services/Patients.svc/REST/PatientER_RRT_GetAllTransportationMethod';
const GET_PATIENT_ALL_PRES_ORDERS= 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders';
const GET_PICK_UP_REQUEST_BY_PRES_ORDER_ID= 'Services/Patients.svc/REST/PatientER_RRT_GetPickUpRequestByPresOrderID';
const UPDATE_PRESS_ORDER= 'Services/Patients.svc/REST/PatientER_UpdatePresOrder';
///FindUs
const GET_FINDUS_REQUEST = 'Services/Lists.svc/REST/Get_HMG_Locations';

@ -36,7 +36,7 @@ class PatientER {
int projectID;
int createdBy;
int lineItemNo;
int cost;
double cost;
double vAT;
double totalPrice;
String pickupLocationLattitude;

@ -18,7 +18,7 @@ class PickUpRequestPresOrder {
int pickupSpot;
dynamic dropoffLocationId;
int transportationMethodId;
int cost;
double cost;
double vAT;
double totalPrice;
int amountCollected;

@ -4,6 +4,7 @@ import 'package:diplomaticquarterapp/core/enum/OrderService.dart';
import 'package:diplomaticquarterapp/core/model/er/PatientAllPresOrders.dart';
import 'package:diplomaticquarterapp/core/model/er/PickUpRequestPresOrder.dart';
import 'package:diplomaticquarterapp/core/model/er/get_all_transportation_method_list_model.dart';
import 'package:flutter/cupertino.dart';
import '../base_service.dart';
class AmService extends BaseService {
@ -35,6 +36,7 @@ class AmService extends BaseService {
Future getPatientAllPresOrdersList() async {
hasError = false;
hasPendingOrder = false;
pickUpRequestPresOrder = null;
await baseAppClient.post(GET_PATIENT_ALL_PRES_ORDERS,
onSuccess: (dynamic response, int statusCode) {
patientAllPresOrdersList.clear();
@ -58,12 +60,11 @@ class AmService extends BaseService {
Future getOrderDetails() async {
hasError = false;
hasPendingOrder = false;
Map<String, dynamic> body = Map();
body['PresOrderID'] = pendingOrderID;
body['isDentalAllowedBackend'] = false;
await baseAppClient.post(GET_PICK_UP_REQUEST_BY_PRES_ORDER_ID,
onSuccess: (dynamic response, int statusCode) {
patientAllPresOrdersList.clear();
response['PatientER_RRT_GetPickUpRequestByPresOrderIDList']
.forEach((item) {
pickUpRequestPresOrder = PickUpRequestPresOrder.fromJson(item);
@ -71,6 +72,23 @@ class AmService extends BaseService {
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: Map());
}, body: body);
}
Future updatePressOrder({@required int presOrderID}) async {
hasError = false;
Map<String, dynamic> body = Map();
body['PresOrderID'] = presOrderID;
body['EditedBy'] = 3;
body['RejectionReason'] = '';
body['PresOrderStatus'] = OrderService.AMBULANCE.getIdOrderService();
body['isDentalAllowedBackend'] = false;
await baseAppClient.post(UPDATE_PRESS_ORDER,
onSuccess: (dynamic response, int statusCode) {
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: body);
}
}

@ -1,5 +1,6 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/er/PatientAllPresOrders.dart';
import 'package:diplomaticquarterapp/core/model/er/PickUpRequestPresOrder.dart';
import 'package:diplomaticquarterapp/core/model/er/get_all_transportation_method_list_model.dart';
import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart';
import 'package:diplomaticquarterapp/core/service/er/am_service.dart';
@ -7,6 +8,7 @@ import 'package:diplomaticquarterapp/core/service/hospital_service.dart';
import 'package:diplomaticquarterapp/core/service/medical/medical_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
import 'package:flutter/cupertino.dart';
import '../base_view_model.dart';
import '../../../locator.dart';
@ -28,6 +30,8 @@ class AmRequestViewModel extends BaseViewModel {
bool get hasPendingOrder =>_amService.hasPendingOrder;
PickUpRequestPresOrder get pickUpRequestPresOrder =>_amService.pickUpRequestPresOrder;
Future getAppointmentHistory() async {
setState(ViewState.BusyLocal);
await _medicalService.getAppointmentHistory(isActiveAppointment: true);
@ -79,4 +83,14 @@ class AmRequestViewModel extends BaseViewModel {
} else
setState(ViewState.Idle);
}
Future updatePressOrder({@required int presOrderID}) async {
setState(ViewState.Busy);
await _amService.updatePressOrder(presOrderID: presOrderID);
if (_hospitalService.hasError) {
error = _hospitalService.error;
setState(ViewState.Error);
} else
getPatientAllPresOrdersList();
}
}

@ -1,6 +1,6 @@
import 'dart:convert';
import 'package:barcode_scan/platform_wrapper.dart';
// import 'package:barcode_scan/platform_wrapper.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/qr/qr_parking_model.dart';
@ -14,25 +14,26 @@ class QrViewModel extends BaseViewModel {
QRParkingModel qrParkingModel;
readQr() async {
var result = await BarcodeScanner.scan();
var data = json.decode(result.rawContent);
var qRParkingID = data['QRParkingID'];
setState(ViewState.BusyLocal);
await _qrService.getQRParkingByID(qRParkingID);
if (_qrService.hasError) {
error = _qrService.error;
setState(ViewState.ErrorLocal);
} else {
if (_qrService.qRParkingList.length > 0) {
qrParkingModel = _qrService.qRParkingList[0];
await sharedPref.setObject(IS_GO_TO_PARKING, qrParkingModel);
isSavePark = true;
setState(ViewState.Idle);
} else {
error = "Invalid Qr Code";
setState(ViewState.ErrorLocal);
}
}
//TODO fix the barcode scan
// var result = await BarcodeScanner.scan();
// var data = json.decode(result.rawContent);
// var qRParkingID = data['QRParkingID'];
// setState(ViewState.BusyLocal);
// await _qrService.getQRParkingByID(qRParkingID);
// if (_qrService.hasError) {
// error = _qrService.error;
// setState(ViewState.ErrorLocal);
// } else {
// if (_qrService.qRParkingList.length > 0) {
// qrParkingModel = _qrService.qRParkingList[0];
// await sharedPref.setObject(IS_GO_TO_PARKING, qrParkingModel);
// isSavePark = true;
// setState(ViewState.Idle);
// } else {
// error = "Invalid Qr Code";
// setState(ViewState.ErrorLocal);
// }
// }
}
getIsSaveParking() async {

@ -3,6 +3,9 @@ import 'package:diplomaticquarterapp/core/viewModels/medical/prescriptions_view_
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_history_page.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_page.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/others/OrderLogItem.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'dart:ui';
@ -66,7 +69,7 @@ class _AmbulanceReqState extends State<AmbulanceReq>
child: Container(
height: 60.0,
margin: EdgeInsets.only(top: 10.0),
width: MediaQuery.of(context).size.width * 0.9,
width: MediaQuery.of(context).size.width * 0.93,
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
@ -114,9 +117,7 @@ class _AmbulanceReqState extends State<AmbulanceReq>
physics: BouncingScrollPhysics(),
controller: _tabController,
children: <Widget>[
model.hasPendingOrder
? Container()
: AmbulanceRequestIndexPage(
AmbulanceRequestIndexPage(
amRequestViewModel: model,
),
OrderLogPage(

@ -1,8 +1,13 @@
import 'package:diplomaticquarterapp/core/model/er/PatientER.dart';
import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart';
import 'package:diplomaticquarterapp/pages/ErService/widgets/StepsWidget.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/others/OrderLogItem.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'BillAmount.dart';
import 'PickupLocation.dart';
@ -40,7 +45,71 @@ class _AmbulanceRequestIndexPageState extends State<AmbulanceRequestIndexPage> {
@override
Widget build(BuildContext context) {
return AppScaffold(
body: Column(
body: widget.amRequestViewModel.pickUpRequestPresOrder!=null
? Column(
children: [
SizedBox(
height: 80,
),
Container(
margin: EdgeInsets.only(left: 18, right: 18),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(2),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
OrderLogItem(
title: 'Request ID',
value: widget.amRequestViewModel.pickUpRequestPresOrder.presOrderID.toString(),
),
OrderLogItem(
title: 'Status',
value: widget.amRequestViewModel.pickUpRequestPresOrder.ambulateDescription,
),
OrderLogItem(
title: 'Last edit time',
value: DateUtil.getDayMonthYearDateFormatted(
DateUtil.convertStringToDate(widget.amRequestViewModel.pickUpRequestPresOrder.lastEditDate)),
),
OrderLogItem(
title: 'Pickup Location',
value: widget.amRequestViewModel.pickUpRequestPresOrder.pickupLocationName,
),
OrderLogItem(
title: 'Drop off Location',
value: widget.amRequestViewModel.pickUpRequestPresOrder.dropoffLocationName,
),
OrderLogItem(
title: 'Trasfaer way',
value: widget.amRequestViewModel.pickUpRequestPresOrder.title,
),
Container(
padding: EdgeInsets.all(10),
width: double.maxFinite,
margin: EdgeInsets.only(bottom: 4,left: 4,right: 4),
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
bottomRight: Radius.circular(12),
bottomLeft: Radius.circular(12),
),
color: Colors.white
),
child: SecondaryButton(
color: Colors.red[900],
textColor: Colors.white,
label: TranslationBase.of(context).cancel,
onTap: () {
widget.amRequestViewModel.updatePressOrder(presOrderID:widget.amRequestViewModel.pickUpRequestPresOrder.presOrderID );
},
),
)
],
),
),
],
):Column(
children: [
SizedBox(
height: 80,

@ -73,7 +73,7 @@ class _PickupLocationState extends State<PickupLocation> {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
if (widget.patientER.direction == 1)
if (widget.patientER.direction == 0)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@ -310,7 +310,7 @@ class _PickupLocationState extends State<PickupLocation> {
context,
MaterialPageRoute(
builder: (context) => PlacePicker(
apiKey: 'AIzaSyCiD4YqVqLNYbt8-htvFy4Wp8XSph9E3wM',
apiKey: 'AIzaSyDiXnCO00li4V7Ioa2YZ_M4ECxRsu_P9tA',
// Put YOUR OWN KEY here.
onPlacePicked: (PickResult result) {
print(result.adrAddress);
@ -319,6 +319,29 @@ class _PickupLocationState extends State<PickupLocation> {
});
Navigator.of(context).pop();
},
selectedPlaceWidgetBuilder: (_, selectedPlace, state, isSearchBarFocused) {
print("state: $state, isSearchBarFocused: $isSearchBarFocused");
return isSearchBarFocused
? Container()
: FloatingCard(
bottomPosition: 0.0, // MediaQuery.of(context) will cause rebuild. See MediaQuery document for the information.
leftPosition: 0.0,
rightPosition: 0.0,
width: 500,
borderRadius: BorderRadius.circular(12.0),
child: state == SearchingState.Searching
? Center(child: CircularProgressIndicator())
: RaisedButton(
child: Text("Pick Here"),
onPressed: () {
// IMPORTANT: You MUST manage selectedPlace data yourself as using this build will not invoke onPlacePicker as
// this will override default 'Select here' Button.
print("do something with [selectedPlace] data");
Navigator.of(context).pop();
},
),
);
},
initialPosition: LatLng(_latitude, _longitude),
useCurrentLocation: true,
),

@ -294,7 +294,6 @@ class _SelectTransportationMethodState
widget.patientER.cost = _erTransportationMethod.price;
widget.patientER.vAT = _erTransportationMethod.vAT ?? 0;
widget.patientER.totalPrice = _erTransportationMethod.totalPrice;
widget.changeCurrentTab(1);
});
},

@ -1,6 +1,8 @@
import 'package:diplomaticquarterapp/core/model/er/PatientAllPresOrders.dart';
import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/OrderLogItem.dart';
import 'package:flutter/cupertino.dart';
@ -53,6 +55,28 @@ class OrderLogPage extends StatelessWidget {
value: amRequestViewModel
.patientAllPresOrdersList[index].dropoffLocationName,
),
if(amRequestViewModel.patientAllPresOrdersList[index].status==1)
Container(
padding: EdgeInsets.all(10),
width: double.maxFinite,
margin: EdgeInsets.only(bottom: 4,left: 4,right: 4),
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
bottomRight: Radius.circular(12),
bottomLeft: Radius.circular(12),
),
color: Colors.white
),
child: SecondaryButton(
color: Colors.red[900],
textColor: Colors.white,
label: TranslationBase.of(context).cancel,
onTap: () {
amRequestViewModel.updatePressOrder(presOrderID:amRequestViewModel.pickUpRequestPresOrder.presOrderID );
},
),
)
],
),
),

@ -75,8 +75,8 @@ dependencies:
# charts
charts_flutter: ^0.9.0
# Qr code Scanner
barcode_scan: ^3.0.1
# Qr code Scanner TODO fix it
#barcode_scan: ^3.0.1
# Rating Stars
rating_bar: ^0.2.0
@ -136,7 +136,7 @@ dependencies:
#google maps places
google_maps_place_picker: ^0.10.0
google_maps_place_picker: ^1.0.0
#Dependencies for video call implementation
native_device_orientation: ^0.3.0

Loading…
Cancel
Save