Payment issues resolved

merge-update-with-lab-changes
haroon amjad 5 years ago
parent 05ad8f8db5
commit 506e32e8c8

@ -175,6 +175,8 @@ const CHECK_PAYMENT_STATUS =
//URL create advance payment
const CREATE_ADVANCE_PAYMENT = "Services/Doctors.svc/REST/CreateAdvancePayment";
const HIS_CREATE_ADVANCE_PAYMENT = "Services/Patients.svc/REST/HIS_CreateAdvancePayment";
const ADD_ADVANCE_NUMBER_REQUEST =
'Services/PayFort_Serv.svc/REST/AddAdvancedNumberRequest';
@ -235,6 +237,7 @@ const SESSION_ID = 'TMRhVmkGhOsvamErw';
const IS_DENTAL_ALLOWED_BACKEND = false;
const PATIENT_TYPE = 1;
const PATIENT_TYPE_ID = 1;
var DEVICE_TOKEN = "";
var DeviceTypeID = Platform.isIOS ? 1 : 2;
const LANGUAGE_ID = 2;
const GET_PHARMCY_ITEMS = "Services/Lists.svc/REST/GetPharmcyItems_Region";

@ -6,7 +6,9 @@ import 'package:diplomaticquarterapp/core/model/my_balance/AdvanceModel.dart';
import 'package:diplomaticquarterapp/core/model/my_balance/patient_advance_balance_amount.dart';
import 'package:diplomaticquarterapp/core/model/my_balance/patient_info.dart';
import 'package:diplomaticquarterapp/core/model/my_balance/patient_info_and_mobile_number.dart';
import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart';
import 'package:diplomaticquarterapp/core/service/base_service.dart';
import 'package:diplomaticquarterapp/locator.dart';
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordsByStatusReq.dart';
import 'package:diplomaticquarterapp/services/family_files/family_files_provider.dart';
@ -22,6 +24,8 @@ class MyBalanceService extends BaseService {
String logInTokenID;
String verificationCode;
AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObject>();
getPatientAdvanceBalanceAmount() async {
hasError = false;
super.error = "";
@ -62,8 +66,8 @@ class MyBalanceService extends BaseService {
super.error = "";
Map<String, dynamic> body = Map();
body['isDentalAllowedBackend'] = false;
body['MobileNo'] = user.mobileNumber;
body['ProjectID'] = user.projectID;
body['MobileNo'] = authenticatedUserObject.user.mobileNumber;
body['ProjectID'] = authenticatedUserObject.user.projectID;
await baseAppClient.post(GET_PATIENT_INFO_BY_ID_AND_MOBILE_NUMBER,
onSuccess: (response, statusCode) async {

@ -269,7 +269,7 @@ class ConfirmPaymentPage extends StatelessWidget {
DoctorsListService service = new DoctorsListService();
String paymentReference = res['Fort_id'].toString();
service
.createAdvancePayment(appo, res['Amount'], res['Fort_id'],
.createAdvancePayment(appo, appo.projectID.toString(), res['Amount'], res['Fort_id'],
res['PaymentMethod'], AppGlobal.context)
.then((res) {
print(res['OnlineCheckInAppointments'][0]['AdvanceNumber']);

@ -652,7 +652,7 @@ class _BookSuccessState extends State<BookSuccess> {
String paymentReference = res['Fort_id'].toString();
service
.createAdvancePayment(
appo, res['Amount'], res['Fort_id'], res['PaymentMethod'], context)
appo, appo.projectID.toString(), res['Amount'], res['Fort_id'], res['PaymentMethod'], context)
.then((res) {
print(res['OnlineCheckInAppointments'][0]['AdvanceNumber']);
addAdvancedNumberRequest(

@ -664,7 +664,7 @@ class _ToDoState extends State<ToDo> {
String paymentReference = res['Fort_id'].toString();
service
.createAdvancePayment(
appo, res['Amount'], res['Fort_id'], res['PaymentMethod'], context)
appo, appo.projectID.toString(), res['Amount'], res['Fort_id'], res['PaymentMethod'], context)
.then((res) {
GifLoaderDialogUtils.hideDialog(context);
print(res['OnlineCheckInAppointments'][0]['AdvanceNumber']);

@ -138,6 +138,7 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
_firebaseMessaging.getToken().then((String token) {
sharedPref.setString(PUSH_TOKEN, token);
if (token != null) {
DEVICE_TOKEN = token;
checkUserStatus(token);
}
requestPermissions();

@ -10,6 +10,7 @@ import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
@ -55,7 +56,7 @@ class ConfirmPaymentPage extends StatelessWidget {
new AppoitmentAllHistoryResultList();
appo.projectID = patientInfoAndMobileNumber.projectID;
openPayment(selectedPaymentMethod, authenticatedUser,
double.parse(advanceModel.amount), appo);
double.parse(advanceModel.amount), null);
}
});
}
@ -207,18 +208,17 @@ class ConfirmPaymentPage extends StatelessWidget {
onLoadStartCallback: onBrowserLoadStart);
transID = Utils.getAdvancePaymentTransID(
advanceModel.projectID, int.parse(advanceModel.fileNumber));
advanceModel.hospitalsModel.iD, int.parse(advanceModel.fileNumber));
browser.openPaymentBrowser(
amount,
"Advance Payment",
transID,
advanceModel.projectID.toString(),
advanceModel.hospitalsModel.iD.toString(),
advanceModel.email,
paymentMethod,
authenticatedUser,
browser,
advanceModel);
browser);
}
onBrowserLoadStart(String url) {
@ -248,6 +248,7 @@ class ConfirmPaymentPage extends StatelessWidget {
}
checkPaymentStatus(AppoitmentAllHistoryResultList appo) {
GifLoaderDialogUtils.showMyDialog(AppGlobal.context);
DoctorsListService service = new DoctorsListService();
service.checkPaymentStatus(transID, AppGlobal.context).then((res) {
print("Printing Payment Status Reponse!!!!");
@ -256,46 +257,55 @@ class ConfirmPaymentPage extends StatelessWidget {
if (paymentInfo == 'Success') {
createAdvancePayment(res, appo);
} else {
GifLoaderDialogUtils.hideDialog(AppGlobal.context);
AppToast.showErrorToast(message: res['Response_Message']);
}
}).catchError((err) {
GifLoaderDialogUtils.hideDialog(AppGlobal.context);
AppToast.showErrorToast(message: err);
print(err);
}).showProgressBar(
text: "Loading", backgroundColor: Colors.blue.withOpacity(0.6));
});
}
createAdvancePayment(res, AppoitmentAllHistoryResultList appo) {
DoctorsListService service = new DoctorsListService();
String paymentReference = res['Fort_id'].toString();
service
.createAdvancePayment(appo, res['Amount'], res['Fort_id'],
res['PaymentMethod'], AppGlobal.context)
service.HIS_createAdvancePayment(
appo,
advanceModel.hospitalsModel.iD.toString(),
res['Amount'],
res['Fort_id'],
res['PaymentMethod'],
AppGlobal.context)
.then((res) {
print(res['OnlineCheckInAppointments'][0]['AdvanceNumber']);
addAdvancedNumberRequest(
res['OnlineCheckInAppointments'][0]['AdvanceNumber'].toString(),
paymentReference,
appo.appointmentNo.toString(),
0,
appo);
}).catchError((err) {
GifLoaderDialogUtils.hideDialog(AppGlobal.context);
AppToast.showErrorToast(message: err);
print(err);
}).showProgressBar(
text: "Loading", backgroundColor: Colors.blue.withOpacity(0.6));
});
}
addAdvancedNumberRequest(String advanceNumber, String paymentReference,
String appointmentID, AppoitmentAllHistoryResultList appo) {
dynamic appointmentID, AppoitmentAllHistoryResultList appo) {
DoctorsListService service = new DoctorsListService();
service
.addAdvancedNumberRequest(
advanceNumber, paymentReference, appointmentID, AppGlobal.context)
.then((res) {
print(res);
GifLoaderDialogUtils.hideDialog(AppGlobal.context);
navigateToHome(AppGlobal.context);
}).catchError((err) {
GifLoaderDialogUtils.hideDialog(AppGlobal.context);
AppToast.showErrorToast(message: err);
print(err);
}).showProgressBar(
text: "Loading", backgroundColor: Colors.blue.withOpacity(0.6));
});
}
Future navigateToHome(context) async {

@ -7,12 +7,12 @@ 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/viewModels/medical/my_balance_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.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:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:smart_progress_bar/smart_progress_bar.dart';
class ConfirmSMSDialog extends StatefulWidget {
final String phoneNumber;
@ -332,12 +332,11 @@ class _ConfirmSMSDialogState extends State<ConfirmSMSDialog> {
if (verifyAccountForm.currentState.validate()) {
final activationCode =
digit1.text + digit2.text + digit3.text + digit4.text;
GifLoaderDialogUtils.showMyDialog(AppGlobal.context);
model
.checkActivationCodeForAdvancePayment(activationCode: activationCode)
.then((value) {})
.showProgressBar(
text: "Loading", backgroundColor: Colors.blue.withOpacity(0.6))
.then((value) {
GifLoaderDialogUtils.hideDialog(AppGlobal.context);
Navigator.pop(context, true);
});
}

@ -6,7 +6,6 @@ import 'package:diplomaticquarterapp/core/service/base_service.dart';
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
import 'package:diplomaticquarterapp/models/Appointments/PatientShareResposne.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/models/LiveCare/insertVIDARequest.dart';
import 'package:diplomaticquarterapp/models/Request.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
@ -813,7 +812,7 @@ class DoctorsListService extends BaseService {
Future<Map> addAdvancedNumberRequest(
String advanceNumber,
String paymentReference,
String appointmentID,
dynamic appointmentID,
BuildContext context) async {
Map<String, dynamic> request;
if (await this.sharedPref.getObject(USER_PROFILE) != null) {
@ -1109,6 +1108,7 @@ class DoctorsListService extends BaseService {
Future<Map> createAdvancePayment(
AppoitmentAllHistoryResultList appo,
String projectID,
double payedAmount,
String paymentReference,
String paymentMethodName,
@ -1122,9 +1122,9 @@ class DoctorsListService extends BaseService {
var languageID = await sharedPref.getString(APP_LANGUAGE);
Request req = appGlobal.getPublicRequest();
request = {
"ProjectID": appo.projectID.toString(),
"ProjectID": projectID,
"OnlineCheckInAppointment": {
"AppointmentNo": appo.appointmentNo.toString(),
"AppointmentNo": appo != null ? appo.appointmentNo.toString() : "0",
"PaymentMethodName": paymentMethodName,
"PaymentAmount": payedAmount == 0 ? "0" : payedAmount.toString(),
"PaymentDate": payedAmount == 0
@ -1133,9 +1133,9 @@ class DoctorsListService extends BaseService {
DateTime.now().millisecondsSinceEpoch.toString() +
")/",
"PaymentReferenceNumber": payedAmount == 0 ? "" : paymentReference,
"ProjectID": appo.projectID.toString(),
"ProjectID": appo != null ? appo.projectID.toString() : projectID,
"PatientID": authUser.patientID,
"ClinicID": appo.clinicID,
"ClinicID": appo != null ? appo.clinicID : "0",
"UserID": authUser.patientID,
"Status": authUser.patientType
},
@ -1161,4 +1161,56 @@ class DoctorsListService extends BaseService {
}, body: request);
return Future.value(localRes);
}
Future<Map> HIS_createAdvancePayment(
AppoitmentAllHistoryResultList appo,
String projectID,
double payedAmount,
String paymentReference,
String paymentMethodName,
BuildContext context) async {
Map<String, dynamic> request;
if (await this.sharedPref.getObject(USER_PROFILE) != null) {
var data = AuthenticatedUser.fromJson(
await this.sharedPref.getObject(USER_PROFILE));
authUser = data;
}
var languageID = await sharedPref.getString(APP_LANGUAGE);
Request req = appGlobal.getPublicRequest();
request = {
"CustName": authUser.firstName + " " + authUser.lastName,
"CustID": authUser.patientID,
"SetupID": "010266",
"ProjectID": projectID,
"PatientID": authUser.patientID,
"AccountID": authUser.patientID,
"PaymentAmount": payedAmount,
"NationalityID": null,
"DepositorName": authUser.firstName + " " + authUser.lastName,
"CreatedBy": 3,
"PaymentMethodName": paymentMethodName,
"PaymentReference": paymentReference,
"PaymentMethod": paymentMethodName,
"VersionID": req.VersionID,
"Channel": req.Channel,
"LanguageID": languageID == 'ar' ? 1 : 2,
"IPAdress": req.IPAdress,
"generalid": req.generalid,
"PatientOutSA": authUser.outSA,
"SessionID": "YckwoXhUmWBsnHKEKig",
"isDentalAllowedBackend": false,
"TokenID": "@dm!n",
"PatientTypeID": authUser.patientType,
"PatientType": authUser.patientType
};
dynamic localRes;
await baseAppClient.post(HIS_CREATE_ADVANCE_PAYMENT,
onSuccess: (response, statusCode) async {
localRes = response;
}, onFailure: (String error, int statusCode) {
throw error;
}, body: request);
return Future.value(localRes);
}
}

@ -1,5 +1,6 @@
import 'dart:convert';
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/model/my_balance/AdvanceModel.dart';
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
@ -39,6 +40,8 @@ class MyInAppBrowser extends InAppBrowser {
AuthenticatedUser authUser;
AppoitmentAllHistoryResultList appo;
String deviceToken;
static bool isPaymentDone = false;
MyInAppBrowser({this.onExitCallback, this.appo, this.onLoadStartCallback});
@ -84,9 +87,9 @@ class MyInAppBrowser extends InAppBrowser {
return await sharedPref.getString(APP_LANGUAGE);
}
Future<String> getDeviceToken() async {
getDeviceToken() async {
String deviceToken = await sharedPref.getString(PUSH_TOKEN);
return deviceToken;
this.deviceToken = deviceToken;
}
getPatientData() async {
@ -105,12 +108,12 @@ class MyInAppBrowser extends InAppBrowser {
String emailId,
String paymentMethod,
AuthenticatedUser authenticatedUser,
InAppBrowser browser,
[AdvanceModel advanceModel]) {
InAppBrowser browser) {
getDeviceToken();
this.browser = browser;
this.browser.openUrl(
url: generateURL(amount, orderDesc, transactionID, projId, emailId,
paymentMethod, authenticatedUser, [advanceModel, null, null]));
paymentMethod, authenticatedUser));
}
openBrowser(String url) {
@ -132,12 +135,6 @@ class MyInAppBrowser extends InAppBrowser {
getPatientData();
String currentLanguageID = getLanguageID() == 'ar' ? 'AR' : 'EN';
String form = getForm();
String deviceToken;
getDeviceToken().then((value) {
print(value);
deviceToken = value;
});
if (authUser != null) {
form = form.replaceFirst("EMAIL_VALUE", authUser.emailAddress);
@ -154,20 +151,13 @@ class MyInAppBrowser extends InAppBrowser {
form = form.replaceFirst('LANG_VALUE', currentLanguageID);
form = form.replaceFirst('PATIENT_OUT_SA',
authUser.outSA == 0 ? false.toString() : true.toString());
form = form.replaceFirst(
'PATIENT_TYPE_ID',
patientData == null
? authUser.patientType.toString()
: "1");
form = form.replaceFirst('PATIENT_TYPE_ID',
patientData == null ? authUser.patientType.toString() : "1");
// form = form.replaceFirst('DEVICE_TOKEN', this.cs.sharedService.getSharedData(AuthenticationService.DEVICE_TOKEN, false) + "," + this.cs.sharedService.getSharedData(AuthenticationService.APNS_TOKEN, false));
// form = form.replaceFirst('LATITUDE_VALUE', this.cs.sharedService.getSharedData('userLat', false));
// form = form.replaceFirst('LONGITUDE_VALUE', this.cs.sharedService.getSharedData('userLong', false));
form = form.replaceFirst('LATITUDE_VALUE', "24.708488");
form = form.replaceFirst('LONGITUDE_VALUE', "46.665925");
form = form.replaceFirst('DEVICE_TOKEN', deviceToken);
if (servID == "4")
form = form.replaceFirst(
'SERVICE_URL_VALUE', MyInAppBrowser.PREAUTH_SERVICE_URL);
@ -190,6 +180,10 @@ class MyInAppBrowser extends InAppBrowser {
form = form.replaceFirst('CUSTID_VALUE', patientData.fileNumber);
}
form = form.replaceFirst('LATITUDE_VALUE', "24.708488");
form = form.replaceFirst('LONGITUDE_VALUE', "46.665925");
form = form.replaceFirst('DEVICE_TOKEN', DEVICE_TOKEN);
var bytes = utf8.encode(form);
var base64Str = base64.encode(bytes);
print(form);

Loading…
Cancel
Save