callRuPayTransactionLimitUpdate method

Future<void> callRuPayTransactionLimitUpdate(
  1. BuildContext context,
  2. String? mobNo,
  3. String rPIN,
  4. String perTransAmt,
  5. String perDayAmt,
  6. String perMonthAmt,
  7. String limitType,
)

Implementation

Future<void> callRuPayTransactionLimitUpdate(
    BuildContext context,
    String? mobNo,
    String rPIN,
    String perTransAmt,
    String perDayAmt,
    String perMonthAmt,
    String limitType) async {
  var PerTrxnLimit = double.parse(
          MySingleton().ruPayCardStatusSinglton.perTrxnLimit.toString())
      .toInt();
  var PerDayLimit = double.parse(
          MySingleton().ruPayCardStatusSinglton.perDayLimit.toString())
      .toInt();
  var PerMonthLimit = double.parse(
          MySingleton().ruPayCardStatusSinglton.perMonthLimit.toString())
      .toInt();
  var POSPerTransaction = double.parse(
          MySingleton().ruPayCardStatusSinglton.posPerTransaction.toString())
      .toInt();
  var POSPerday = double.parse(
          MySingleton().ruPayCardStatusSinglton.posLimitPerDay.toString())
      .toInt();
  var POSPerMonth = double.parse(
          MySingleton().ruPayCardStatusSinglton.posLimitPermonth.toString())
      .toInt();
  var NFCPerTransaction = double.parse(MySingleton()
          .ruPayCardStatusSinglton
          .nfcLimitPerTransaction
          .toString())
      .toInt();
  var NFCPOSPerday = double.parse(
          MySingleton().ruPayCardStatusSinglton.nfcLimitPerDay.toString())
      .toInt();
  var NFCPerMonth = double.parse(
          MySingleton().ruPayCardStatusSinglton.nfcLimitPermonth.toString())
      .toInt();
  var ATMPerTransaction = double.parse(MySingleton()
          .ruPayCardStatusSinglton
          .atmLimitPerTransaction
          .toString())
      .toInt();
  var ATMPOSPerday = double.parse(
          MySingleton().ruPayCardStatusSinglton.atmLimitPerDay.toString())
      .toInt();
  var ATMPerMonth = double.parse(
          MySingleton().ruPayCardStatusSinglton.atmLimitPermonth.toString())
      .toInt();
  if ('OnlineeCommerce'.tr == limitType) {
    PerTrxnLimit = double.parse(perTransAmt).toInt();
    PerDayLimit = double.parse(perDayAmt).toInt();
  } else if ('CardSwipe'.tr == limitType) {
    POSPerTransaction = double.parse(perTransAmt).toInt();
    POSPerday = double.parse(perDayAmt).toInt();
  } else if ('ContactlessNFC'.tr == limitType) {
    NFCPerTransaction = double.parse(perTransAmt).toInt();
    NFCPOSPerday = double.parse(perDayAmt).toInt();
  } else if ('ATM'.tr == limitType) {
    ATMPerTransaction = double.parse(perTransAmt).toInt();
    ATMPOSPerday = double.parse(perDayAmt).toInt();
    ATMPerMonth = double.parse(perMonthAmt).toInt();
  }

  Map<String, dynamic> requestBody = {
    'ReqType': AppUrl.TA_Oneapp_RuPayTransactionLimitUpdate,
    "ReferenceNumber": kglobal.shared.RupayRefNum,
    "PerTrxnLimit": PerTrxnLimit.toString(),
    "PerDayLimit": PerDayLimit.toString(),
    "PerMonthLimit": PerMonthLimit.toString(),
    "POSPerTransaction": POSPerTransaction.toString(),
    "POSPerday": POSPerday.toString(),
    "POSPerMonth": POSPerMonth.toString(),
    "NFCPOSPerday": NFCPOSPerday.toString(),
    "NFCPerTransaction": NFCPerTransaction.toString(),
    "NFCPerMonth": NFCPerMonth.toString(),
    "ATMPerTransaction": ATMPerTransaction.toString(),
    "ATMPOSPerday": ATMPOSPerday.toString(),
    "ATMPerMonth": ATMPerMonth.toString(),
    "Cardnumber": MySingleton().ruPayCardStatusSinglton.maskedCard,
    "R_PIN": rPIN,
    "Mobilenumber": mobNo,
    // "SessionID": sessionID,
    "Date": kglobal.shared.getCurrentDateTime(),
    "Platform": kglobal.shared.kPlatform,
    "ApplicationType": kglobal.shared.applcationType,
    "EntityID": kglobal.shared.EntityID,
    "MachineID": kglobal.shared.deviceID, "GeoLocation": kglobal.shared.geolocation,
  };
  print(requestBody);
  String bodyJson = jsonEncode(requestBody);
  auth.RuPayTransactionLimitUpdate(context, bodyJson).then((value2) {
    setRuPayTransactionLimitUpdateValue(value2);
    if (value2.responseCode == "99723") {
      kglobal.shared.showSnack(context,true, rupayEncryption3DESModel.value.message ?? "");
    } else if (ruPayTransactionLimitUpdateModel.value.responseCode?.length ==
        4) {
      //update in singlton
      var mdl = MySingleton().ruPayCardStatusSinglton;
      if ('OnlineeCommerce'.tr == limitType) {
        mdl.perTrxnLimit = PerTrxnLimit.toString();
        mdl.perDayLimit = PerDayLimit.toString();
      } else if ('CardSwipe'.tr == limitType) {
        mdl.posPerTransaction = POSPerTransaction.toString();
        mdl.posLimitPerDay = POSPerday.toString();
      } else if ('ContactlessNFC'.tr == limitType) {
        mdl.nfcLimitPerTransaction = NFCPerTransaction.toString();
        mdl.nfcLimitPerDay = NFCPOSPerday.toString();
      } else if ('ATM'.tr == limitType) {
        mdl.atmLimitPerTransaction = ATMPerTransaction.toString();
        mdl.atmLimitPerDay = ATMPOSPerday.toString();
        mdl.atmLimitPermonth = ATMPerMonth.toString();
      }
      MySingleton().ruPayCardStatusSinglton = mdl;

      kglobal.shared.showSnack(context,true, ruPayTransactionLimitUpdateModel.value.message ?? "");
      Navigator.of(context).pop();
      Navigator.of(context).pop();
    } else {
      // 05 nov

      kglobal.shared.showSnack(context,true, ruPayTransactionLimitUpdateModel.value.message ?? "");

    }
  });
}