Untitled
unknown
dart
2 years ago
39 kB
4
Indexable
import 'dart:convert'; import 'dart:developer'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_paytabs_bridge/BaseBillingShippingInfo.dart'; import 'package:flutter_paytabs_bridge/IOSThemeConfiguration.dart'; import 'package:flutter_paytabs_bridge/PaymentSdkApms.dart'; import 'package:flutter_paytabs_bridge/PaymentSdkConfigurationDetails.dart'; import 'package:flutter_paytabs_bridge/PaymentSdkTokeniseType.dart'; import 'package:flutter_paytabs_bridge/flutter_paytabs_bridge.dart'; import 'package:foot_fit/common_class/md_extension.dart'; import 'package:foot_fit/view/home_view/our_services/order_submit_view.dart'; import 'package:foot_fit/view/home_view/our_services/use_point_view.dart'; // import 'package:paymob_flutter_lib/models/payment.dart'; // import 'package:paymob_flutter_lib/models/payment_result.dart'; // import 'package:paymob_flutter_lib/paymob_flutter_lib.dart'; import '../../../common_class/md_color_extension.dart'; import '../../../common_class/md_globs.dart'; import '../../../common_class/md_service_call.dart'; import '../../common_widget/popup_layout.dart'; import '../../common_widget/round_button.dart'; class CheckOutView extends StatefulWidget { final Map bObj; final Map sObj; const CheckOutView({super.key, required this.bObj, required this.sObj}); @override State<CheckOutView> createState() => _CheckOutViewState(); } class _CheckOutViewState extends State<CheckOutView> { //final _paymobFlutterLibPlugin = PaymobFlutterLib(); TextEditingController txtPromoCode = TextEditingController(); List<Map> periodArr = [ {"name": "1 Day", "value": "1 Day", "value_key": "one_date_"}, {"name": "1 Month", "value": "1 Month", "value_key": "one_month_"}, {"name": "3 Month", "value": "3 Month", "value_key": "three_month_"}, {"name": "6 Month", "value": "6 Month", "value_key": "six_month_"}, {"name": "1 Year", "value": "1 Year", "value_key": "year_month_"} ]; List<Map> weekArr = [ { "name": "2", "value": "2", "value_key": "session_two_price", "point_key": "session_two_point", }, { "name": "3", "value": "3", "value_key": "session_three_price", "point_key": "session_three_point", }, { "name": "4", "value": "4", "value_key": "session_four_price", "point_key": "session_four_point", }, { "name": "Unlimited", "value": "Unlimited", "value_key": "session_unlimited_price", "session_key": "unlimited_total_session", "point_key": "session_unlimited_point", } ]; Map? selectPeriod; Map? selectWeek; bool isApplyCode = false; Map promoDic = {}; @override void initState() { super.initState(); selectPeriod = periodArr.first; selectWeek = { "name": "1", "value": "1", "value_key": "session_price", "point_key": "session_point", }; MDServiceCall.fireEvent(Event.checkout); } @override Widget build(BuildContext context) { var media = MediaQuery.of(context).size; var rowSpace = media.width * 0.012; var price = double.tryParse( "${widget.sObj["${selectPeriod?["value_key"] ?? ""}${selectWeek?["value_key"] ?? ""}"] ?? "0.0"}") ?? 0.0; var disPrice = double.tryParse("${promoDic[KKey.amount]} ") ?? 0.0; //price var displayPrice = isApplyCode ? (price - disPrice) : price; List<dynamic> daysOpened = (widget.bObj[KKey.schedule] as List? ?? []) .where((element) => element[KKey.openClose] != 0) .toList(); return Scaffold( appBar: AppBar( titleSpacing: 0, elevation: 2, backgroundColor: Colors.white, leading: IconButton( onPressed: () { Navigator.pop(context); }, padding: EdgeInsets.zero, icon: const Icon( Icons.arrow_back, color: Colors.black, )), title: Text( 'Check Out'.tr(), style: const TextStyle( fontFamily: "Geogrotesque Cyr", fontWeight: FontWeight.bold, fontSize: 25, color: Colors.black), ), ), // AppBarView( // leftIcon: 'assets/img/back.png', // leftAction: () { // Navigator.of(context).pop(); // }, // leftIconWidth: 15, // title: Text( // "Check Out".tr(), // textAlign: TextAlign.center, // ), // ), backgroundColor: TColor.bg, body: SingleChildScrollView( child: Column(children: [ Container( padding: const EdgeInsets.symmetric(horizontal: 24), width: media.width, child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: const EdgeInsets.only(top: 28), child: Text( "Days".tr(), textAlign: isEN ? TextAlign.left : TextAlign.right, style: TextStyle( color: TColor.primaryText, fontSize: 20, fontWeight: FontWeight.w500), ), ), const SizedBox(height: 16), // ChipsChoice<int>.single( // value: 0, // wrapped: true, // padding: EdgeInsets.zero, // spacing: 4, // runSpacing: 0, // choiceStyle: // C2ChipStyle( // backgroundOpacity: 1, // backgroundColor: TColor.primary, // margin: EdgeInsets.zero, // elevation: 0, // foregroundStyle: const TextStyle(fontSize: 13), // borderRadius: BorderRadius.circular(20) // // elevation: 0, // ), // onChanged: (val) {}, // choiceItems: C2Choice.listFrom<int, dynamic>( // source: [{"name":"Monday", "id":1 }], // value: (i, v) => int.tryParse("${v[KKey.id] ?? "0"}") ?? 0, // label: (i, e) => "${e[KKey.name] ?? ""}".tr(), // ), // ), // Column( // children: (widget.bObj[KKey.schedule] as List? ?? []) // .map((obj) { // var isClose = (obj[KKey.openClose] as int? ?? 0) == 0; // // return Padding( // padding: EdgeInsets.symmetric(vertical: rowSpace), // child: Row( // mainAxisAlignment: MainAxisAlignment.spaceBetween, // children: [ // SizedBox( // width: 80, // child: Text( // obj[KKey.lName] as String? ?? "", // textAlign: // isEN ? TextAlign.left : TextAlign.right, // style: TextStyle( // fontFamily: "Geogrotesque Cyr", // fontWeight: FontWeight.bold, // fontSize: 14, // color: TColor.primaryText), // ), // ), // Expanded( // child: Text( // isClose // ? "Closed".tr() // : "${obj[KKey.startHour] as String? ?? ""} - ${obj[KKey.endHour] as String? ?? ""}", // maxLines: 1, // textAlign: TextAlign.center, // style: TextStyle( // color: TColor.primaryText, // fontSize: 13, // fontWeight: FontWeight.w500), // ), // ), // Expanded( // child: Text( // isClose // ? "" // : "${obj[KKey.startHourTwo] as String? ?? ""} - ${obj[KKey.endHourTwo] as String? ?? ""}", // maxLines: 1, // textAlign: TextAlign.center, // style: TextStyle( // color: TColor.primaryText, // fontSize: 13, // fontWeight: FontWeight.w500), // ), // ), // ], // ), // ); // }).toList(), // ), GridView.count( shrinkWrap: true, // Create a grid with 2 columns. If you change the scrollDirection to // horizontal, this produces 2 rows. crossAxisCount: 2, physics: const NeverScrollableScrollPhysics(), crossAxisSpacing: 20, childAspectRatio: (16 / 6), // Generate 100 widgets that display their index in the List. children: List.generate(daysOpened.length, (index) { log('messagesssdd ${daysOpened[index]}'); return Container( padding: const EdgeInsets.symmetric(horizontal: 16), decoration: BoxDecoration( color: const Color(0xff919191).withOpacity(0.2), borderRadius: BorderRadius.circular(4)), child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( daysOpened[index][KKey.lName] as String? ?? "", maxLines: 1, textAlign: TextAlign.center, style: TextStyle( color: TColor.primaryText, fontSize: 16, fontWeight: FontWeight.w500), ), Text( "${daysOpened[index][KKey.startHour] as String? ?? ""} - ${daysOpened[index][KKey.endHour] as String? ?? ""}", maxLines: 1, textAlign: TextAlign.center, style: TextStyle( color: TColor.primaryText, fontSize: 14, fontWeight: FontWeight.w500), ), ], ), ); }), ), const SizedBox(height: 28), Text( '${"Period".tr()} 🗓️', textAlign: isEN ? TextAlign.left : TextAlign.right, style: TextStyle( color: TColor.primaryText, fontSize: 20, fontWeight: FontWeight.w500), ), const SizedBox(height: 14), Row( // mainAxisAlignment: MainAxisAlignment.spaceEvenly, crossAxisAlignment: CrossAxisAlignment.start, children: periodArr.map((obj) { var isSelected = obj == selectPeriod; return Padding( padding: const EdgeInsets.symmetric(horizontal: 3.0), child: GestureDetector( onTap: () { setState(() { if (selectPeriod == periodArr.first && obj != periodArr.first) { selectWeek = null; } selectPeriod = obj; if (selectPeriod == periodArr.first) { selectWeek = { "name": "1", "value": "1", "value_key": "session_price", "point_key": "session_point", }; } selectWeek ??= weekArr.first; }); }, child: Container( width: media.width * 0.16, height: media.width * 0.16, alignment: Alignment.center, // padding: EdgeInsets.all(media.width * 0.01), decoration: BoxDecoration( color: isSelected ? TColor.primary : TColor.wTextColor, borderRadius: BorderRadius.circular(10), // boxShadow: const [ // BoxShadow( // blurRadius: 3, // spreadRadius: 1, // color: Colors.black26) // ], ), child: Text( (obj["name"] as String? ?? "").tr(), textAlign: TextAlign.center, style: TextStyle( color: isSelected ? TColor.primaryText : Colors.black, fontSize: 16, fontWeight: FontWeight.w500), ), ), ), ); }).toList(), ), const SizedBox(height: 28), Text( "Sessions / Week".tr(), textAlign: isEN ? TextAlign.left : TextAlign.right, style: TextStyle( color: TColor.primaryText, fontSize: 16, fontWeight: FontWeight.w500), ), Padding( padding: const EdgeInsets.only(top: 16), child: Row( mainAxisAlignment: MainAxisAlignment.start, children: weekArr.map((obj) { var isSelected = obj == selectWeek; var isDisable = selectPeriod == null || selectPeriod == periodArr.first; return Padding( padding: const EdgeInsets.symmetric(horizontal: 3), child: GestureDetector( onTap: () { if (isDisable) { return; } setState(() { selectWeek = obj; }); }, child: Container( width: media.width * 0.17, height: media.width * 0.17, alignment: Alignment.center, // padding: EdgeInsets.all(media.width * 0.01), decoration: BoxDecoration( color: isDisable ? const Color(0xff919191).withOpacity(0.2) : isSelected ? TColor.primary : Colors.white, borderRadius: BorderRadius.circular(10), ), child: Text( (obj["name"] as String? ?? "").tr(), textAlign: TextAlign.center, style: TextStyle( color: TColor.primaryText, fontSize: 14, fontWeight: FontWeight.w500), ), ), ), ); }).toList(), ), ), ], )), Container( width: media.width, padding: const EdgeInsets.only(left: 24, right: 24, top: 28), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( 'Subscription amount'.tr(), style: TextStyle( color: TColor.primaryText, fontSize: 20, fontWeight: FontWeight.w500), ), Text( "Final total includes Tax Or any other text (Optional)".tr(), textAlign: isEN ? TextAlign.left : TextAlign.right, style: TextStyle( color: TColor.primaryText, fontSize: 14, fontWeight: FontWeight.w500), ), promoCodeWidget(), // InnerTextField( // controller: txtPromoCode, // hintText: "Promo Code", // right: TextButton( // onPressed: () { // goPromoCode(); // }, // child: Text( // (isApplyCode ? "Remove" : "Apply").tr(), // style: const TextStyle( // fontSize: 18, fontWeight: FontWeight.bold), // ), // ), // ), const SizedBox(height: 24), Visibility( visible: isApplyCode, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( "Total".tr(), textAlign: isEN ? TextAlign.left : TextAlign.right, style: TextStyle( color: TColor.primaryText, fontSize: 16, fontWeight: FontWeight.w700), ), Text( "${price.toStringAsFixed(2)} ${widget.bObj[KKey.currency] ?? "USD"}", textAlign: isEN ? TextAlign.left : TextAlign.right, style: TextStyle( color: TColor.primaryText, fontSize: 16, fontWeight: FontWeight.w700), ), ], ), ), Visibility( visible: isApplyCode, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( "Promo Code Applied Price".tr(), textAlign: isEN ? TextAlign.left : TextAlign.right, style: TextStyle( color: TColor.primaryText, fontSize: 16, fontWeight: FontWeight.w700), ), Text( "-${disPrice.toStringAsFixed(2)} ${widget.bObj[KKey.currency] ?? "USD"}", textAlign: isEN ? TextAlign.left : TextAlign.right, style: TextStyle( color: TColor.primaryText, fontSize: 16, fontWeight: FontWeight.w700), ), ], ), ), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( "Payable Amount".tr(), textAlign: isEN ? TextAlign.left : TextAlign.right, style: TextStyle( color: TColor.primaryText, fontSize: 16, fontWeight: FontWeight.w700), ), Text( "${displayPrice.toStringAsFixed(2)} ${widget.bObj[KKey.currency] ?? "USD"}", textAlign: isEN ? TextAlign.left : TextAlign.right, style: TextStyle( color: TColor.primaryText, fontSize: 16, fontWeight: FontWeight.w700), ), ], ), // SizedBox( // height: media.width * 0.01, // ), // Text( // "Final total includes Tax Or any other text (Optional)".tr(), // textAlign: isEN ? TextAlign.left : TextAlign.right, // style: TextStyle( // color: TColor.primaryText, // fontSize: 14, // fontWeight: FontWeight.w500), // ), const SizedBox(height: 24), Row( children: [ Visibility( visible: "${widget.bObj[KKey.isPaymentPoint] ?? "0"}" == "1", child: Expanded( child: RoundButton( title: "Points", shapeBorder: RoundedRectangleBorder( borderRadius: BorderRadius.circular(16), ), type: RoundButtonType.primary, onPressed: () { goSubmitPoint(displayPrice); }, ), ), ), SizedBox( width: ("${widget.bObj[KKey.isPaymentPoint] ?? "0"}" == "1") && ("${widget.bObj[KKey.isPaymentCash] ?? "0"}" == "1") ? media.width * 0.03 : 0, ), Visibility( visible: "${widget.bObj[KKey.isPaymentCash] ?? "0"}" == "1", child: Expanded( child: RoundButton( title: "Cash", shapeBorder: RoundedRectangleBorder( borderRadius: BorderRadius.circular(16), ), type: RoundButtonType.primary, onPressed: () { goSubmit("cash"); }, ), ), ), ], ), SizedBox( height: ("${widget.bObj[KKey.isPaymentPoint] ?? "0"}" == "1") || ("${widget.bObj[KKey.isPaymentCash] ?? "0"}" == "1") ? media.width * 0.03 : 0, ), Visibility( visible: "${widget.bObj[KKey.isPaymentOnline] ?? "0"}" == "1", child: RoundButton( title: "Online Payment", shapeBorder: RoundedRectangleBorder( borderRadius: BorderRadius.circular(16), ), type: RoundButtonType.primary, onPressed: () { goSubmit("online"); }, )), const SizedBox(height: 24), ], ), ) ]), ), ); } Padding promoCodeWidget() { return Padding( padding: const EdgeInsets.only(top: 16), child: TextField( controller: txtPromoCode, decoration: InputDecoration( filled: true, //<-- SEE HERE fillColor: Colors.white, hintText: "Promo Code", hintStyle: const TextStyle(fontWeight: FontWeight.w500, fontSize: 16), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(16), borderSide: BorderSide( width: 1, color: const Color(0xff000000).withOpacity(0.5)), //<-- SEE HERE ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(16), borderSide: BorderSide( width: 1, color: const Color(0xff000000).withOpacity(0.5)), //<-- SEE HERE ), suffixIcon: InkWell( onTap: () { goPromoCode(); }, child: Container( width: 50, decoration: BoxDecoration( color: TColor.primary, borderRadius: BorderRadius.circular(8)), height: 50, margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 9), child: Center( child: Text( (isApplyCode ? "Remove" : "Apply").tr(), style: const TextStyle( color: Colors.white, fontSize: 16, fontWeight: FontWeight.w500), ), ), ), )), ), ); } void goPromoCode() { if (isApplyCode) { txtPromoCode.text = ""; isApplyCode = false; setState(() {}); return; } if (!isApplyCode && txtPromoCode.text.isEmpty) { mdShowAlert(MDGlobs.appName, MSG.enterPromocode, () {}); return; } serviceCallPromoCode({ "service_id": "${widget.sObj[KKey.id] ?? ""}", "promo_code": txtPromoCode.text }); } void goSubmitPoint(double amount) async { if (selectPeriod == null) { mdShowAlert(MDGlobs.appName, MSG.selectPeriod, () {}); return; } if (selectPeriod != periodArr.first && selectWeek == null) { mdShowAlert(MDGlobs.appName, MSG.selectWeek, () {}); return; } await Navigator.of(context).push(PopupLayout( child: UsePointView( obj: {KKey.totalPoint: widget.bObj[KKey.totalPoint], KKey.amount: amount}, didUse: () { goSubmit("point"); }, ))); } void goSubmit(String paymentType) { if (selectPeriod == null) { mdShowAlert(MDGlobs.appName, MSG.selectPeriod, () {}); return; } if (selectPeriod != periodArr.first && selectWeek == null) { mdShowAlert(MDGlobs.appName, MSG.selectWeek, () {}); return; } //TODO:payment if (paymentType == "cash") { serviceCallList({ "period": "${selectPeriod?["value"] ?? ""}", "session": "${selectWeek?["value"] ?? ""}", "payment_type": paymentType, "promo_code": txtPromoCode.text, "service_id": "${widget.sObj[KKey.id] ?? ""} " }, paymentType); } else {} var week = "${selectWeek?["value"] ?? ""}"; serviceCallList({ "period": "${selectPeriod?["value"] ?? ""}", "session": week, "payment_type": paymentType, "promo_code": txtPromoCode.text, "service_id": "${widget.sObj[KKey.id] ?? ""}", "price_key": "${selectPeriod?["value_key"] ?? ""}${selectWeek?["value_key"] ?? ""}", "point_key": "${selectPeriod?["value_key"] ?? ""}${selectWeek?["point_key"] ?? ""}", "session_key": week == "Unlimited" ? "${selectPeriod?["value_key"] ?? ""}${selectWeek?["session_key"] ?? ""}" : "", //session_key }, paymentType); } void goOnlinePayment() { // Navigator.of(context).push( // MaterialPageRoute(builder: (context) => const OnlinePaymentView())); } void goUserPoint() async { // Navigator.of(context) // .push(MaterialPageRoute(builder: (context) => const OurServiceView())); } //var billingDetails = BillingDetails("John Smith", "email@domain.com", // "+97311111111", "st. 12", "eg", "dubai", "dubai", "12345"); PaymentSdkConfigurationDetails generateConfig(Map pObj) { var billingDetails = kDebugMode ? BillingDetails( "${MDServiceCall.userObj[KKey.name] ?? ""}", "${MDServiceCall.userObj[KKey.email] ?? ""}", "${MDServiceCall.userObj[KKey.mobileCode] as String? ?? "+91"}${MDServiceCall.userObj[KKey.mobile] as String? ?? ""}", "st. 12", "eg", "dubai", "dubai", "12345") : BillingDetails( "${MDServiceCall.userObj[KKey.name] ?? ""}", "${MDServiceCall.userObj[KKey.email] ?? ""}", "${MDServiceCall.userObj[KKey.mobileCode] as String? ?? "+91"}${MDServiceCall.userObj[KKey.mobile] as String? ?? ""}", "", "", "", "", ""); List<PaymentSdkAPms> apms = []; apms.add(PaymentSdkAPms.AMAN); var configuration = PaymentSdkConfigurationDetails( profileId: "${pObj[KKey.profileId] ?? ""}", serverKey: "${pObj[KKey.serverKey] ?? ""}", clientKey: "${pObj[KKey.clientKey] ?? ""}", cartId: "${pObj[KKey.id] ?? ""}", cartDescription: "${pObj[KKey.cartDescription] ?? ""}", merchantName: "${pObj[KKey.merchantName] ?? ""}", screentTitle: "Pay with Card".tr(), amount: double.parse( "${pObj[KKey.amount] ?? ""}", ), showBillingInfo: true, forceShippingInfo: false, currencyCode: "${pObj[KKey.currencyCode] ?? ""}", merchantCountryCode: "${pObj[KKey.merchantCountryCode] ?? ""}", merchantApplePayIndentifier: "merchant.footfit.com", billingDetails: billingDetails, alternativePaymentMethods: apms, linkBillingNameWithCardHolderName: true); var theme = IOSThemeConfigurations(); theme.logoImage = "assets/app_icon.png"; theme.secondaryColor = "#333333"; theme.titleFontColor = "#ECC800"; theme.secondaryFontColor = "#333333"; theme.inputsCornerRadius = 15; theme.buttonColor = "#ECC800"; theme.buttonFontColor = "#333333"; configuration.iOSThemeConfigurations = theme; configuration.tokeniseType = PaymentSdkTokeniseType.MERCHANT_MANDATORY; return configuration; } // void paymobPressd(Map pObj) async { // try { // PaymentResult? result = // await _paymobFlutterLibPlugin.startPayActivityNoToken(Payment( // paymentKey: pObj[KKey.paymentKey] as String? ?? "", // saveCardDefault: false, // showSaveCard: false, // themeColor: const Color(0xFF002B36), // language: "en", // actionbar: true, // )); // if (!mounted) return; // print("transID : ${result?.id}"); // print(result); // serviceCallCheckoutPaymentCheck({ // "subscription_id": "${pObj[KKey.id] ?? ""}", // "transaction_id": result?.id ?? "", // "type": "paymob", // "data": jsonEncode(result?.payload ?? {}) // }); // // setState(() { // // _result = result?.dataMessage; // // _token = result?.token; // // _maskedPan = result?.maskedPan; // // }); // } on PlatformException catch (err) { // // Handle err // mdShowAlert(MDGlobs.appName, MSG.fail, () {}); // print("PlatformException 1"); // print(err); // setState(() { // // _error = '${err.message}'; // }); // } catch (e) { // print(e); // if (!mounted) return; // mdShowAlert(MDGlobs.appName, MSG.fail, () {}); // // setState(() { // // _error = '$e'; // // }); // } // } void payOnlinePressed(Map pObj) { FlutterPaytabsBridge.startCardPayment(generateConfig(pObj), (event) { setState(() { if (event["status"] == "success") { // Handle transaction details here. var transactionDetails = event["data"]; print(transactionDetails); if (transactionDetails["isSuccess"]) { print("successful transaction"); if (transactionDetails["isPending"]) { print("transaction pending"); } serviceCallCheckoutPaymentCheck({ "subscription_id": "${pObj[KKey.id] ?? ""}", "transaction_id": transactionDetails["transactionReference"] as String? ?? "", "data": jsonEncode(transactionDetails) }); } else { mdShowAlert(MDGlobs.appName, MSG.fail, () {}); print("failed transaction"); } // print(transactionDetails["isSuccess"]); } else if (event["status"] == "error") { mdShowAlert(MDGlobs.appName, MSG.fail, () {}); // Handle error here. } else if (event["status"] == "event") { mdShowAlert(MDGlobs.appName, MSG.fail, () {}); // Handle events here. } }); }); } //MARK: ServiceCall void serviceCallList(Map<String, String> parameter, String paymentType) { MDGlobs.showHUD(); MDServiceCall.serviceCallImageDicPost(parameter, SVKey.svCheckout, isToken: true, withSuccess: (responseObj) async { MDGlobs.hideHUD(); debugPrint(responseObj.toString()); if ((responseObj[KKey.status] as bool? ?? false)) { if (paymentType == "cash") { Navigator.of(context).push( MaterialPageRoute(builder: (context) => const OrderSubmitView())); } else if (paymentType == "online") { var payloadObj = responseObj[KKey.payload] as Map? ?? {}; if ((payloadObj[KKey.paymentOnlineType] as String? ?? "") == "paymob") { // paymobPressd(payloadObj); } else if ((payloadObj[KKey.paymentOnlineType] as String? ?? "") == "paytab") { payOnlinePressed(payloadObj); } // Navigator.of(context).push(MaterialPageRoute( // builder: (context) => const OnlinePaymentView())); } else { Navigator.of(context).push( MaterialPageRoute(builder: (context) => const OrderSubmitView())); } if (mounted) { setState(() {}); } } else { mdShowAlert(MDGlobs.appName, responseObj[KKey.message] as String? ?? MSG.fail, () {}); } // print(responseObj); }, failure: (err) async { MDGlobs.hideHUD(); mdShowAlert(MDGlobs.appName, err.toString(), () {}); // print(err); }); } void serviceCallCheckoutPaymentCheck(Map<String, String> parameter) { MDGlobs.showHUD(); MDServiceCall.serviceCallImageDicPost( parameter, SVKey.svCheckoutPaymentCheck, isToken: true, withSuccess: (responseObj) async { MDGlobs.hideHUD(); debugPrint(responseObj.toString()); if ((responseObj[KKey.status] as bool? ?? false)) { Navigator.of(context).push( MaterialPageRoute(builder: (context) => const OrderSubmitView())); } else { mdShowAlert(MDGlobs.appName, responseObj[KKey.message] as String? ?? MSG.fail, () {}); } // print(responseObj); }, failure: (err) async { MDGlobs.hideHUD(); mdShowAlert(MDGlobs.appName, err.toString(), () {}); // print(err); }); } void serviceCallPromoCode(Map<String, String> parameter) { MDGlobs.showHUD(); MDServiceCall.serviceCallImageDicPost(parameter, SVKey.svGetPromocode, isToken: true, withSuccess: (responseObj) async { MDGlobs.hideHUD(); debugPrint(responseObj.toString()); if ((responseObj[KKey.status] as bool? ?? false)) { promoDic = responseObj[KKey.payload] as Map? ?? {}; isApplyCode = true; if (mounted) { setState(() {}); } } else { isApplyCode = false; if (mounted) { setState(() {}); } mdShowAlert(MDGlobs.appName, responseObj[KKey.message] as String? ?? MSG.fail, () {}); } // print(responseObj); }, failure: (err) async { MDGlobs.hideHUD(); mdShowAlert(MDGlobs.appName, err.toString(), () {}); // print(err); }); } }
Editor is loading...