|
|
|
|
@ -53,75 +53,62 @@ class PaymentVM extends ChangeNotifier {
|
|
|
|
|
notifyListeners();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> onContinuePressed(BuildContext context,
|
|
|
|
|
{required PaymentTypes paymentType}) async {
|
|
|
|
|
Future<void> onContinuePressed(BuildContext context, {required PaymentTypes paymentType}) async {
|
|
|
|
|
switch (selectedPaymentMethod) {
|
|
|
|
|
case PaymentMethods.mada:
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
break;
|
|
|
|
|
case PaymentMethods.visa:
|
|
|
|
|
await onVisaCardSelected(context, paymentType);
|
|
|
|
|
break;
|
|
|
|
|
case PaymentMethods.applePay:
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
break;
|
|
|
|
|
case PaymentMethods.masterCard:
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
break;
|
|
|
|
|
case PaymentMethods.tamara:
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> onAdsPaymentSuccess(
|
|
|
|
|
{required BuildContext context,
|
|
|
|
|
required int currentAdId,
|
|
|
|
|
required int paymentTypeId}) async {
|
|
|
|
|
Future<void> onAdsPaymentSuccess({required BuildContext context, required int currentAdId, required int paymentTypeId}) async {
|
|
|
|
|
Utils.showLoading(context);
|
|
|
|
|
PayOrderDetailRespModel payOrderDetailRespModel = await paymentRepo
|
|
|
|
|
.getPayOrderDetails(paymentId: paymentTypeId, adId: currentAdId);
|
|
|
|
|
PayOrderDetailRespModel payOrderDetailRespModel = await paymentRepo.getPayOrderDetails(paymentId: paymentTypeId, adId: currentAdId);
|
|
|
|
|
await Future.delayed(const Duration(seconds: 2));
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
|
|
|
|
|
log("payOrderDetailRespModel: ${payOrderDetailRespModel.toString()}");
|
|
|
|
|
|
|
|
|
|
if (payOrderDetailRespModel.isPaid == null ||
|
|
|
|
|
!payOrderDetailRespModel.isPaid!) {
|
|
|
|
|
if (payOrderDetailRespModel.isPaid == null || !payOrderDetailRespModel.isPaid!) {
|
|
|
|
|
Utils.showToast(LocaleKeys.paymentFailed.tr());
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (payOrderDetailRespModel.isPaid != null &&
|
|
|
|
|
payOrderDetailRespModel.isPaid!) {
|
|
|
|
|
if (payOrderDetailRespModel.isPaid != null && payOrderDetailRespModel.isPaid!) {
|
|
|
|
|
Utils.showToast(LocaleKeys.paymentSuccessful.tr());
|
|
|
|
|
navigateReplaceWithNameUntilRoute(context, AppRoutes.dashboard);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> onAppointmentPaymentSuccess(
|
|
|
|
|
{required BuildContext context,
|
|
|
|
|
required int currentAdId,
|
|
|
|
|
required int paymentTypeId}) async {
|
|
|
|
|
Future<void> onAppointmentPaymentSuccess({required BuildContext context, required int currentAdId, required int paymentTypeId}) async {
|
|
|
|
|
Utils.showLoading(context);
|
|
|
|
|
//TODO: CONFIRM FROM ZAHOOR THAT WILL THIS METHOD WORK FOR APPOINTMENT
|
|
|
|
|
PayOrderDetailRespModel payOrderDetailRespModel = await paymentRepo
|
|
|
|
|
.getPayOrderDetails(paymentId: paymentTypeId, adId: currentAdId);
|
|
|
|
|
PayOrderDetailRespModel payOrderDetailRespModel = await paymentRepo.getPayOrderDetails(paymentId: paymentTypeId, adId: currentAdId);
|
|
|
|
|
await Future.delayed(const Duration(seconds: 2));
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
|
|
|
|
|
log("payOrderDetailRespModel: ${payOrderDetailRespModel.toString()}");
|
|
|
|
|
|
|
|
|
|
if (payOrderDetailRespModel.isPaid == null ||
|
|
|
|
|
!payOrderDetailRespModel.isPaid!) {
|
|
|
|
|
if (payOrderDetailRespModel.isPaid == null || !payOrderDetailRespModel.isPaid!) {
|
|
|
|
|
Utils.showToast(LocaleKeys.paymentFailed.tr());
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (payOrderDetailRespModel.isPaid != null &&
|
|
|
|
|
payOrderDetailRespModel.isPaid!) {
|
|
|
|
|
if (payOrderDetailRespModel.isPaid != null && payOrderDetailRespModel.isPaid!) {
|
|
|
|
|
Utils.showToast(LocaleKeys.paymentSuccessful.tr());
|
|
|
|
|
navigateReplaceWithNameUntilRoute(context, AppRoutes.dashboard);
|
|
|
|
|
}
|
|
|
|
|
@ -143,9 +130,7 @@ class PaymentVM extends ChangeNotifier {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> placeThePayment(
|
|
|
|
|
{required PaymentTypes paymentTypeEnum,
|
|
|
|
|
required BuildContext context}) async {
|
|
|
|
|
Future<void> placeThePayment({required PaymentTypes paymentTypeEnum, required BuildContext context}) async {
|
|
|
|
|
await paymentService.placePayment(
|
|
|
|
|
// This will be request ID for request payment || ad ID for Ad Related Payment || OrderProviderSubscriptionID for SubscriptionPayment
|
|
|
|
|
id: getIdTypeByPaymentType(paymentTypeEnum),
|
|
|
|
|
@ -155,23 +140,23 @@ class PaymentVM extends ChangeNotifier {
|
|
|
|
|
Utils.showToast(LocaleKeys.paymentFailed.tr());
|
|
|
|
|
switch (paymentTypeEnum) {
|
|
|
|
|
case PaymentTypes.subscription:
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
break;
|
|
|
|
|
case PaymentTypes.appointment:
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
log("Appointment Payment has been Failed!!");
|
|
|
|
|
break;
|
|
|
|
|
case PaymentTypes.adReserve:
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
break;
|
|
|
|
|
case PaymentTypes.ads:
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
break;
|
|
|
|
|
case PaymentTypes.request:
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
break;
|
|
|
|
|
case PaymentTypes.extendAds:
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
break;
|
|
|
|
|
case PaymentTypes.partialAppointment:
|
|
|
|
|
log("Partial Appointment Payment has been Failed!!");
|
|
|
|
|
@ -193,10 +178,7 @@ class PaymentVM extends ChangeNotifier {
|
|
|
|
|
case PaymentTypes.adReserve:
|
|
|
|
|
case PaymentTypes.ads:
|
|
|
|
|
case PaymentTypes.extendAds:
|
|
|
|
|
await onAdsPaymentSuccess(
|
|
|
|
|
context: context,
|
|
|
|
|
paymentTypeId: paymentTypeEnum.getIdFromPaymentTypesEnum(),
|
|
|
|
|
currentAdId: currentAdId);
|
|
|
|
|
await onAdsPaymentSuccess(context: context, paymentTypeId: paymentTypeEnum.getIdFromPaymentTypesEnum(), currentAdId: currentAdId);
|
|
|
|
|
break;
|
|
|
|
|
case PaymentTypes.partialAppointment:
|
|
|
|
|
log("Partial Appointment Payment has been Succeeded");
|
|
|
|
|
@ -207,15 +189,19 @@ class PaymentVM extends ChangeNotifier {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onSubscriptionSuccess(BuildContext context) {
|
|
|
|
|
pop(context);
|
|
|
|
|
pop(context);
|
|
|
|
|
pop(context);
|
|
|
|
|
context.read<SubscriptionsVM>().getMySubscriptions(
|
|
|
|
|
AppState().getUser.data?.userInfo?.providerId.toString() ?? "");
|
|
|
|
|
// pop(context);
|
|
|
|
|
// pop(context);
|
|
|
|
|
// pop(context);
|
|
|
|
|
|
|
|
|
|
// context.read<SubscriptionsVM>().getMySubscriptions(AppState().getUser.data?.userInfo?.providerId.toString() ?? "");
|
|
|
|
|
context
|
|
|
|
|
.read<SubscriptionsVM>()
|
|
|
|
|
.mySubscriptionsBySp = [];
|
|
|
|
|
context.read<SubscriptionsVM>().getMySubscriptionsBySP(AppState().getUser.data?.userInfo?.providerId.toString() ?? "");
|
|
|
|
|
navigateReplaceWithNameUntilRoute(context, AppRoutes.mySubscriptionsPage);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> onVisaCardSelected(
|
|
|
|
|
BuildContext context, PaymentTypes paymentType) async {
|
|
|
|
|
Future<void> onVisaCardSelected(BuildContext context, PaymentTypes paymentType) async {
|
|
|
|
|
currentPaymentType = paymentType;
|
|
|
|
|
switch (currentPaymentType) {
|
|
|
|
|
case PaymentTypes.appointment:
|
|
|
|
|
@ -224,7 +210,7 @@ class PaymentVM extends ChangeNotifier {
|
|
|
|
|
await placeThePayment(context: context, paymentTypeEnum: paymentType);
|
|
|
|
|
break;
|
|
|
|
|
case PaymentTypes.request:
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
// TODO: Handle this case.
|
|
|
|
|
break;
|
|
|
|
|
case PaymentTypes.subscription:
|
|
|
|
|
await placeThePayment(context: context, paymentTypeEnum: paymentType);
|
|
|
|
|
|