diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json index 1294326..2e1aff2 100644 --- a/assets/langs/ar-SA.json +++ b/assets/langs/ar-SA.json @@ -796,6 +796,6 @@ "ok": "نعم", "continueAsGuest": "الاستمرار كضيف", "loginToViewAppointments": "الرجاء تسجيل الدخول لعرض المواعيد", - "itemType": "غرض" - + "itemType": "غرض", + "upgradeSubscription": "قم بترقية اشتراكك" } \ No newline at end of file diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json index 6371e61..6e51b39 100644 --- a/assets/langs/en-US.json +++ b/assets/langs/en-US.json @@ -690,6 +690,7 @@ "expiresOn": "Expires On", "expired": "Expired", "upgradeBranches": "Upgrade your subscription to add more Branches.", + "upgradeSubscription": "Upgrade your subscription", "upgradeAds": "Upgrade your subscription to add more Ads.", "upgradeSubUsers": "Upgrade your subscription to add more Sub Users.", "explore": "Explore", diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart index ff4b5ee..9c841ed 100644 --- a/lib/generated/codegen_loader.g.dart +++ b/lib/generated/codegen_loader.g.dart @@ -812,7 +812,8 @@ class CodegenLoader extends AssetLoader{ "ok": "نعم", "continueAsGuest": "الاستمرار كضيف", "loginToViewAppointments": "الرجاء تسجيل الدخول لعرض المواعيد", - "itemType": "غرض" + "itemType": "غرض", + "upgradeSubscription": "قم بترقية اشتراكك" }; static const Map en_US = { "firstTimeLogIn": "First Time Log In", @@ -1506,6 +1507,7 @@ static const Map en_US = { "expiresOn": "Expires On", "expired": "Expired", "upgradeBranches": "Upgrade your subscription to add more Branches.", + "upgradeSubscription": "Upgrade your subscription", "upgradeAds": "Upgrade your subscription to add more Ads.", "upgradeSubUsers": "Upgrade your subscription to add more Sub Users.", "explore": "Explore", diff --git a/lib/generated/locale_keys.g.dart b/lib/generated/locale_keys.g.dart index 9a6424b..6255669 100644 --- a/lib/generated/locale_keys.g.dart +++ b/lib/generated/locale_keys.g.dart @@ -776,5 +776,6 @@ abstract class LocaleKeys { static const continueAsGuest = 'continueAsGuest'; static const loginToViewAppointments = 'loginToViewAppointments'; static const itemType = 'itemType'; + static const upgradeSubscription = 'upgradeSubscription'; } diff --git a/lib/repositories/ads_repo.dart b/lib/repositories/ads_repo.dart index 40d292c..87832a3 100644 --- a/lib/repositories/ads_repo.dart +++ b/lib/repositories/ads_repo.dart @@ -493,14 +493,14 @@ class AdsRepoImp implements AdsRepo { required int photoOfficeSlotID, required int adsSpecialServiceID, }) async { - int customerId = AppState().getUser.data!.userInfo!.customerId ?? 0; + String? userId = AppState().getUser.data!.userInfo!.userId ?? ""; var postParams = { "adsID": adId, "photoOfficeID": photoOfficeID, "photoOfficeSlotID": photoOfficeSlotID, "adsSpecialServiceID": adsSpecialServiceID, - "customerID": customerId, + "UserID": userId, }; String token = appState.getUser.data!.accessToken ?? ""; diff --git a/lib/utils/enums.dart b/lib/utils/enums.dart index ac49de5..c8d0732 100644 --- a/lib/utils/enums.dart +++ b/lib/utils/enums.dart @@ -223,8 +223,10 @@ enum SubscriptionActionTypeEnum { ads, users, branches, + subscription } + enum ShippingRequestStatusEnum { allRequests, pending, diff --git a/lib/view_models/dashboard_view_model_provider.dart b/lib/view_models/dashboard_view_model_provider.dart index 38b3210..6f9c38a 100644 --- a/lib/view_models/dashboard_view_model_provider.dart +++ b/lib/view_models/dashboard_view_model_provider.dart @@ -109,6 +109,9 @@ class DashboardVMProvider extends BaseVM { case SubscriptionActionTypeEnum.branches: performCheckOnBranches(context); break; + case SubscriptionActionTypeEnum.subscription: + performCheckSubscription(context, callback); + break; } } @@ -120,6 +123,14 @@ class DashboardVMProvider extends BaseVM { } } + void performCheckSubscription(BuildContext context, Function() callBack) async { + if (AppState().getproviderSubscription.isNotEmpty && !AppState().getproviderSubscription.first.isExpired!) { + callBack(); + } else { + Utils.showToast(LocaleKeys.upgradeSubscription.tr()); + } + } + void performCheckOnAds(BuildContext context) async { if (AppState().getproviderSubscription.isNotEmpty && AppState().getproviderSubscription.first.adsRemaining! > 0) { await navigateWithName(context, AppRoutes.defineBranch); diff --git a/lib/views/requests/request_detail_page.dart b/lib/views/requests/request_detail_page.dart index c9c7841..eaa4d7e 100644 --- a/lib/views/requests/request_detail_page.dart +++ b/lib/views/requests/request_detail_page.dart @@ -10,6 +10,7 @@ import 'package:mc_common_app/utils/navigator.dart'; import 'package:mc_common_app/utils/utils.dart'; import 'package:mc_common_app/view_models/appointments_view_model.dart'; import 'package:mc_common_app/view_models/chat_view_model.dart'; +import 'package:mc_common_app/view_models/dashboard_view_model_provider.dart'; import 'package:mc_common_app/view_models/requests_view_model.dart'; import 'package:mc_common_app/views/advertisement/components/ads_images_corousel_widget.dart'; import 'package:mc_common_app/views/chat/widgets/chat_bottom_sheets.dart'; @@ -48,7 +49,6 @@ class RequestDetailPage extends StatelessWidget { if (requestTypeEnum == RequestsTypeEnum.serviceRequest) { return Utils.buildStatusContainer(LocaleKeys.awaitingPaymentFromCustomer.tr()); } else { - return Utils.buildStatusContainer(LocaleKeys.awaitingResponseFromCustomer.tr()); } @@ -187,12 +187,11 @@ class RequestDetailPage extends StatelessWidget { title: LocaleKeys.provideOffer.tr(), isBold: false, fontSize: 18, - onPressed: () => buildSendOfferBottomSheet( - context: context, - requestDetailPageArguments: requestDetailPageArguments, - isFromChatScreen: false, - offerId: null, // null means creating new offer - ), + onPressed: () { + context.read().checkUserSubscription(SubscriptionActionTypeEnum.subscription, context, callback: () { + buildSendOfferBottomSheet(context: context, requestDetailPageArguments: requestDetailPageArguments, isFromChatScreen: false, offerId: null); + }); + }, ), ] else ...[ buildRequestDetailActionFooter(