finish2 function
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;
}