finish2 function

Future<String?> finish2(
  1. bool payPalSuccess,
  2. String payPalPaymentId,
  3. bool flutterwave,
  4. bool mercadoPagoSuccess,
  5. String mercadoPagoTransactionId,
)

Implementation

Future<String?> finish2(
    bool payPalSuccess, String payPalPaymentId,
    bool flutterwave,
    bool mercadoPagoSuccess, String mercadoPagoTransactionId
    ) async{
  if (cartLastAddedId.isNotEmpty){
    try{
      var _lastBooking = cartLastAddedId;
      cartLastAddedIdToUser = cartLastAddedId;
      cartLastAddedId = "";

      var _count = 0;
      do {
        await Future.delayed(Duration(seconds: 2));
        dprint("finish2 wait 1 seconds");
        _count++;
        if (_count == 10)
          break;
      }while (appSettings.statuses.isEmpty);

      var _status = "";
      if (appSettings.statuses.isNotEmpty)
        _status = appSettings.statuses[0].id;

      saveInCacheStatus(_lastBooking, _status);

      // await FirebaseFirestore.instance.collection("settings").doc("main")
      //     .set({"booking_count": FieldValue.increment(1)}, SetOptions(merge:true));
      // await FirebaseFirestore.instance.collection("settings").doc("main")
      //     .set({"booking_count_unread": FieldValue.increment(1)}, SetOptions(merge:true));

      await dbSetDocumentInTable("booking", _lastBooking, {
        'status': _status,
        'viewByAdmin': false,
        'viewByProvider': false,
        "timeModify": DateTime.now().toUtc(),
      });

      // await FirebaseFirestore.instance.collection("booking").doc(_lastBooking).set({
      //   'status': _status,
      //   'viewByAdmin': false,
      //   'viewByProvider': false,
      //   "timeModify": DateTime.now().toUtc(),
      // }, SetOptions(merge:true));

      if (payPalSuccess)
        await dbSetDocumentInTable("booking", _lastBooking, {
          'paymentMethod': "PayPal $payPalPaymentId",
          "timeModify": DateTime.now().toUtc(),
        });

        // await FirebaseFirestore.instance.collection("booking").doc(_lastBooking).set({
        //   'paymentMethod': "PayPal $payPalPaymentId",
        //   "timeModify": DateTime.now().toUtc(),
        // }, SetOptions(merge:true));

      if (flutterwave) {
        await dbSetDocumentInTable("booking", _lastBooking, {
          'paymentMethod': "Flutterwave $cartLastAddedId",
          "timeModify": DateTime.now().toUtc(),
        });
        // await FirebaseFirestore.instance.collection("booking").doc(_lastBooking).set({
        //   'paymentMethod': "Flutterwave $cartLastAddedId",
        //   "timeModify": DateTime.now().toUtc(),
        // }, SetOptions(merge:true));
      }

      if (mercadoPagoSuccess)
        await dbSetDocumentInTable("booking", _lastBooking, {
          'paymentMethod': "MercadoPago $mercadoPagoTransactionId",
          "timeModify": DateTime.now().toUtc(),
        });
        // await FirebaseFirestore.instance.collection("booking").doc(_lastBooking).set({
        //   'paymentMethod': "MercadoPago $mercadoPagoTransactionId",
        //   "timeModify": DateTime.now().toUtc(),
        // }, SetOptions(merge:true));

    }catch(ex) {
      return "finish2 " + ex.toString();
    }
  }
  return null;
}