Initial commit
This commit is contained in:
77
lib/controllers/deliver_order_controller.dart
Normal file
77
lib/controllers/deliver_order_controller.dart
Normal file
@@ -0,0 +1,77 @@
|
||||
import 'package:cloud_firestore/cloud_firestore.dart';
|
||||
import 'package:driver/constant/constant.dart';
|
||||
import 'package:driver/constant/send_notification.dart';
|
||||
import 'package:driver/constant/show_toast_dialog.dart';
|
||||
import 'package:driver/models/order_model.dart';
|
||||
import 'package:driver/models/wallet_transaction_model.dart';
|
||||
import 'package:driver/services/audio_player_service.dart';
|
||||
import 'package:driver/utils/fire_store_utils.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class DeliverOrderController extends GetxController {
|
||||
RxBool isLoading = true.obs;
|
||||
RxBool conformPickup = false.obs;
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
// TODO: implement onInit
|
||||
getArgument();
|
||||
super.onInit();
|
||||
}
|
||||
|
||||
Rx<OrderModel> orderModel = OrderModel().obs;
|
||||
|
||||
RxInt totalQuantity = 0.obs;
|
||||
|
||||
void getArgument() {
|
||||
dynamic argumentData = Get.arguments;
|
||||
if (argumentData != null) {
|
||||
orderModel.value = argumentData['orderModel'];
|
||||
for (var element in orderModel.value.products!) {
|
||||
totalQuantity.value += (element.quantity ?? 0);
|
||||
}
|
||||
}
|
||||
isLoading.value = false;
|
||||
}
|
||||
|
||||
Future<void> completedOrder() async {
|
||||
ShowToastDialog.showLoader("Please wait".tr);
|
||||
await AudioPlayerService.playSound(false);
|
||||
orderModel.value.status = Constant.orderCompleted;
|
||||
await FireStoreUtils.updateWallateAmount(orderModel.value);
|
||||
if (orderModel.value.cashback?.cashbackValue != null && orderModel.value.cashback?.id != null) {
|
||||
WalletTransactionModel transactionModel = WalletTransactionModel(
|
||||
id: Constant.getUuid(),
|
||||
amount: double.parse("${orderModel.value.cashback?.cashbackValue ?? 0.0}"),
|
||||
date: Timestamp.now(),
|
||||
paymentMethod: "Cashback Amount",
|
||||
transactionUser: "user",
|
||||
userId: orderModel.value.author?.id,
|
||||
isTopup: true,
|
||||
orderId: orderModel.value.id,
|
||||
note: "Cashback Amount",
|
||||
paymentStatus: "success");
|
||||
await FireStoreUtils.setWalletTransaction(transactionModel).then((value) async {
|
||||
if (value == true) {
|
||||
await FireStoreUtils.updateUserWallet(
|
||||
amount: double.parse("${orderModel.value.cashback?.cashbackValue ?? 0.0}").toString(), userId: orderModel.value.author!.id.toString());
|
||||
}
|
||||
});
|
||||
}
|
||||
await FireStoreUtils.setOrder(orderModel.value);
|
||||
if (Constant.userModel?.vendorID?.isNotEmpty == true) {
|
||||
Constant.userModel?.orderRequestData?.remove(orderModel.value.id);
|
||||
Constant.userModel?.inProgressOrderID?.remove(orderModel.value.id);
|
||||
await FireStoreUtils.updateUser(Constant.userModel!);
|
||||
}
|
||||
await FireStoreUtils.getFirestOrderOrNOt(orderModel.value).then((value) async {
|
||||
if (value == true) {
|
||||
await FireStoreUtils.updateReferralAmount(orderModel.value);
|
||||
}
|
||||
});
|
||||
|
||||
await SendNotification.sendFcmMessage(Constant.driverCompleted, orderModel.value.author!.fcmToken.toString(), {});
|
||||
ShowToastDialog.closeLoader();
|
||||
Get.back(result: true);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user