|
|
|
@ -1,5 +1,8 @@
|
|
|
|
|
|
|
|
import 'dart:developer';
|
|
|
|
|
|
|
|
|
|
|
|
import 'package:diplomaticquarterapp/config/config.dart';
|
|
|
|
import 'package:diplomaticquarterapp/config/config.dart';
|
|
|
|
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
|
|
|
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
|
|
|
|
|
|
|
import 'package:diplomaticquarterapp/core/enum/PayfortEnums.dart';
|
|
|
|
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
|
|
|
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
|
|
|
import 'package:diplomaticquarterapp/core/model/my_balance/AdvanceModel.dart';
|
|
|
|
import 'package:diplomaticquarterapp/core/model/my_balance/AdvanceModel.dart';
|
|
|
|
import 'package:diplomaticquarterapp/core/model/my_balance/patient_info_and_mobile_number.dart';
|
|
|
|
import 'package:diplomaticquarterapp/core/model/my_balance/patient_info_and_mobile_number.dart';
|
|
|
|
@ -7,11 +10,14 @@ import 'package:diplomaticquarterapp/core/viewModels/medical/my_balance_view_mod
|
|
|
|
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
|
|
|
|
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
|
|
|
|
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
|
|
|
|
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
|
|
|
|
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
|
|
|
|
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
|
|
|
|
|
|
|
|
import 'package:diplomaticquarterapp/models/LiveCare/ApplePayInsertRequest.dart';
|
|
|
|
import 'package:diplomaticquarterapp/models/apple_pay_request.dart';
|
|
|
|
import 'package:diplomaticquarterapp/models/apple_pay_request.dart';
|
|
|
|
import 'package:diplomaticquarterapp/models/apple_pay_response.dart';
|
|
|
|
import 'package:diplomaticquarterapp/models/apple_pay_response.dart';
|
|
|
|
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
|
|
|
|
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
|
|
|
|
import 'package:diplomaticquarterapp/routes.dart';
|
|
|
|
import 'package:diplomaticquarterapp/routes.dart';
|
|
|
|
import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
|
|
|
|
import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
|
|
|
|
|
|
|
|
import 'package:diplomaticquarterapp/services/livecare_services/livecare_provider.dart';
|
|
|
|
|
|
|
|
import 'package:diplomaticquarterapp/services/payfort_services/payfort_view_model.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/app_toast.dart';
|
|
|
|
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
|
|
|
|
@ -24,12 +30,10 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
|
|
|
import 'package:diplomaticquarterapp/widgets/otp/sms-popup.dart';
|
|
|
|
import 'package:diplomaticquarterapp/widgets/otp/sms-popup.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:flutter_svg/flutter_svg.dart';
|
|
|
|
import 'package:flutter_svg/flutter_svg.dart';
|
|
|
|
|
|
|
|
|
|
|
|
// import 'package:pay/pay.dart';
|
|
|
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
|
|
|
|
|
|
|
import 'new_text_Field.dart';
|
|
|
|
import 'new_text_Field.dart';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ConfirmPaymentPage extends StatefulWidget {
|
|
|
|
class ConfirmPaymentPage extends StatefulWidget {
|
|
|
|
final AdvanceModel advanceModel;
|
|
|
|
final AdvanceModel advanceModel;
|
|
|
|
final PatientInfoAndMobileNumber patientInfoAndMobileNumber;
|
|
|
|
final PatientInfoAndMobileNumber patientInfoAndMobileNumber;
|
|
|
|
@ -214,9 +218,73 @@ class _ConfirmPaymentPageState extends State<ConfirmPaymentPage> {
|
|
|
|
padding: EdgeInsets.all(20),
|
|
|
|
padding: EdgeInsets.all(20),
|
|
|
|
child: DefaultButton(
|
|
|
|
child: DefaultButton(
|
|
|
|
TranslationBase.of(context).confirm.toUpperCase(),
|
|
|
|
TranslationBase.of(context).confirm.toUpperCase(),
|
|
|
|
() {
|
|
|
|
() async {
|
|
|
|
if (widget.advanceModel.fileNumber == projectViewModel.user.patientID.toString()) {
|
|
|
|
if (widget.advanceModel.fileNumber == projectViewModel.user.patientID.toString()) {
|
|
|
|
openPayment(widget.selectedPaymentMethod, widget.authenticatedUser, double.parse(widget.advanceModel.amount), null);
|
|
|
|
if (widget.selectedPaymentMethod == "ApplePay") {
|
|
|
|
|
|
|
|
transID = Utils.getAdvancePaymentTransID(widget.advanceModel.hospitalsModel.iD, int.parse(widget.advanceModel.fileNumber));
|
|
|
|
|
|
|
|
print("TransactionID: $transID");
|
|
|
|
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LiveCareService service = new LiveCareService();
|
|
|
|
|
|
|
|
ApplePayInsertRequest applePayInsertRequest = new ApplePayInsertRequest();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
applePayInsertRequest.clientRequestID = transID;
|
|
|
|
|
|
|
|
applePayInsertRequest.clinicID = 0;
|
|
|
|
|
|
|
|
applePayInsertRequest.currency = projectViewModel.authenticatedUserObject.user.outSA == 1 ? "AED" : "SAR";
|
|
|
|
|
|
|
|
applePayInsertRequest.customerEmail = projectViewModel.authenticatedUserObject.user.emailAddress;
|
|
|
|
|
|
|
|
applePayInsertRequest.customerID = projectViewModel.authenticatedUserObject.user.patientID;
|
|
|
|
|
|
|
|
applePayInsertRequest.customerName = projectViewModel.authenticatedUserObject.user.firstName + " " + projectViewModel.authenticatedUserObject.user.lastName;
|
|
|
|
|
|
|
|
applePayInsertRequest.deviceToken = await AppSharedPreferences().getString(PUSH_TOKEN);
|
|
|
|
|
|
|
|
applePayInsertRequest.voipToken = await AppSharedPreferences().getString(ONESIGNAL_APNS_TOKEN);
|
|
|
|
|
|
|
|
applePayInsertRequest.doctorID = 0;
|
|
|
|
|
|
|
|
applePayInsertRequest.projectID = widget.advanceModel.hospitalsModel.iD.toString();
|
|
|
|
|
|
|
|
applePayInsertRequest.serviceID = ServiceTypeEnum.advancePayment.getIdFromServiceEnum().toString();
|
|
|
|
|
|
|
|
applePayInsertRequest.channelID = 3;
|
|
|
|
|
|
|
|
applePayInsertRequest.patientID = projectViewModel.authenticatedUserObject.user.patientID;
|
|
|
|
|
|
|
|
applePayInsertRequest.patientTypeID = projectViewModel.authenticatedUserObject.user.patientType;
|
|
|
|
|
|
|
|
applePayInsertRequest.patientOutSA = projectViewModel.authenticatedUserObject.user.outSA;
|
|
|
|
|
|
|
|
applePayInsertRequest.appointmentDate = null;
|
|
|
|
|
|
|
|
applePayInsertRequest.appointmentNo = 0;
|
|
|
|
|
|
|
|
applePayInsertRequest.orderDescription = "Advance Payment";
|
|
|
|
|
|
|
|
applePayInsertRequest.liveServiceID = "0";
|
|
|
|
|
|
|
|
applePayInsertRequest.latitude = "0.0";
|
|
|
|
|
|
|
|
applePayInsertRequest.longitude = "0.0";
|
|
|
|
|
|
|
|
applePayInsertRequest.amount = widget.advanceModel.amount.toString();
|
|
|
|
|
|
|
|
applePayInsertRequest.isSchedule = "0";
|
|
|
|
|
|
|
|
applePayInsertRequest.language = projectViewModel.isArabic ? 'ar' : 'en';
|
|
|
|
|
|
|
|
applePayInsertRequest.userName = projectViewModel.authenticatedUserObject.user.patientID;
|
|
|
|
|
|
|
|
applePayInsertRequest.responseContinueURL = "http://hmg.com/Documents/success.html";
|
|
|
|
|
|
|
|
applePayInsertRequest.backClickUrl = "http://hmg.com/Documents/success.html";
|
|
|
|
|
|
|
|
applePayInsertRequest.paymentOption = "ApplePay";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
service.applePayInsertRequest(applePayInsertRequest, context).then((res) async {
|
|
|
|
|
|
|
|
GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
|
|
|
|
await context.read<PayfortViewModel>().initiateApplePayWithPayfort(
|
|
|
|
|
|
|
|
customerName: projectViewModel.authenticatedUserObject.user.firstName + " " + projectViewModel.authenticatedUserObject.user.lastName,
|
|
|
|
|
|
|
|
customerEmail: projectViewModel.authenticatedUserObject.user.emailAddress,
|
|
|
|
|
|
|
|
orderDescription: "Advance Payment",
|
|
|
|
|
|
|
|
orderAmount: double.parse(widget.advanceModel.amount),
|
|
|
|
|
|
|
|
merchantReference: transID,
|
|
|
|
|
|
|
|
onFailed: (failureResult) {
|
|
|
|
|
|
|
|
log("failureResult: ${failureResult.toString()}");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
onSuccess: (successResult) {
|
|
|
|
|
|
|
|
log("Payfort: ${successResult.responseMessage}");
|
|
|
|
|
|
|
|
checkPaymentStatus(AppoitmentAllHistoryResultList());
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
projectId: widget.advanceModel.hospitalsModel.iD,
|
|
|
|
|
|
|
|
// projectId: 95,
|
|
|
|
|
|
|
|
serviceTypeEnum: ServiceTypeEnum.advancePayment,
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
}).catchError((err) {
|
|
|
|
|
|
|
|
print(err);
|
|
|
|
|
|
|
|
if (context = null) GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
|
|
|
|
AppToast.showErrorToast(message: err);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
openPayment(widget.selectedPaymentMethod, widget.authenticatedUser, double.parse(widget.advanceModel.amount), AppoitmentAllHistoryResultList());
|
|
|
|
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
model.sendActivationCodeForAdvancePayment(patientID: int.parse(widget.advanceModel.fileNumber), projectID: widget.advanceModel.hospitalsModel.iD).then((value) {
|
|
|
|
model.sendActivationCodeForAdvancePayment(patientID: int.parse(widget.advanceModel.fileNumber), projectID: widget.advanceModel.hospitalsModel.iD).then((value) {
|
|
|
|
@ -231,7 +299,7 @@ class _ConfirmPaymentPageState extends State<ConfirmPaymentPage> {
|
|
|
|
// GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
// GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
// model.sendActivationCodeForAdvancePayment(patientID: int.parse(widget.advanceModel.fileNumber), projectID: widget.advanceModel.hospitalsModel.iD).then((value) {
|
|
|
|
// model.sendActivationCodeForAdvancePayment(patientID: int.parse(widget.advanceModel.fileNumber), projectID: widget.advanceModel.hospitalsModel.iD).then((value) {
|
|
|
|
// GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
// GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
// if (model.state != ViewState.ErrorLocal && model.state != ViewState.Error) showSMSDialog(model);
|
|
|
|
// if (model.state = ViewState.ErrorLocal && model.state = ViewState.Error) showSMSDialog(model);
|
|
|
|
// });
|
|
|
|
// });
|
|
|
|
},
|
|
|
|
},
|
|
|
|
),
|
|
|
|
),
|
|
|
|
@ -410,7 +478,7 @@ class _ConfirmPaymentPageState extends State<ConfirmPaymentPage> {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
onBrowserExit(AppoitmentAllHistoryResultList appo, bool isPaymentMade) {
|
|
|
|
onBrowserExit(AppoitmentAllHistoryResultList appo, bool isPaymentMade) {
|
|
|
|
print("onBrowserExit Called!!!!");
|
|
|
|
print("onBrowserExit Called");
|
|
|
|
if (widget.selectedPaymentMethod == "TAMARA" && tamaraPaymentStatus != null && tamaraPaymentStatus == "approved") {
|
|
|
|
if (widget.selectedPaymentMethod == "TAMARA" && tamaraPaymentStatus != null && tamaraPaymentStatus == "approved") {
|
|
|
|
var res = {
|
|
|
|
var res = {
|
|
|
|
"Amount": double.parse(widget.advanceModel.amount),
|
|
|
|
"Amount": double.parse(widget.advanceModel.amount),
|
|
|
|
|