orderCreation method

dynamic orderCreation(
  1. BuildContext context,
  2. String cartId,
  3. String paymentId,
  4. String transactionType, {
  5. required bool isBank,
  6. bool isCashOnDelivery = false,
})

Implementation

orderCreation(
  BuildContext context,
  String cartId,
  String paymentId,
  String transactionType, {
  required bool isBank,
  bool isCashOnDelivery = false,
}) async {
  WidgetsBinding.instance.addPostFrameCallback((_) {
    Helper.progressDialog(context, "Please wait..");
  });
  // printLogs(dio);
  var data_ = json.encode(
    {
      "partnerId": partnerId,
      "partnerType": storage.read("LEVEL_NAME"),
      "distributeId": partnerId,
      "distributeType": storage.read("DISTRIBUTER_LEVEL_ID"),
      "paymentTransactionId": paymentId,
      "billingOrShippingAddressId": "",
      "transactionRemarks": "",
      "purchaseOrderReferenceNumber": "",
      "branchId": "",
      "externalParentTransactionId": "",
      "relatedParty": [
        {"name": storage.read("USER_ID"), "role": "CreatedBy"},
        {"name": "Regional Distributor(RD)", "role": "DistributorType"},
        {"name": storage.read("USER_ID"), "role": "agentId"}
      ],
      "checkInId": checkinId,
    },
  );
  dio
      .post(
    '${ApiConstant.posBaseUrl}pos-purchase-order-service-svc/transaction/$transactionType/carts/$cartId',
    data: data_,
    options: Options(
      headers: {
        'X-User-Id': storage.read("XUSER_ID"),
        'X-User-Name': storage.read("XUSER_ID")
      },
    ),
  )
      .then((response) {
    Get.back();
    if (response.data != null) {
      print('orderCreation${response.data}');
      OrderCreationModel model = OrderCreationModel();
      Map<String, dynamic> creditData = response.data;
      model = OrderCreationModel.fromJson(creditData);
      if (model.status == 'POS200') {
        Get.to(
          () => OrderSuccessScreen(
            orderCreationModel: model,
            isBankPayment: isBank,
            isCashOnDelivery: isCashOnDelivery,
          ),
        );
      } else {
        Helper.messageDialog(
          Get.context!,
          model.errors?[0]?["errorItem"]["errorCode"] ?? "Try Again",
          model.errors?[0]?["errorItem"]["errorMessage"] ??
              "Something went wrong",
        );
      }
    }
  }, onError: (error) {
    print(error.toString());
    Get.back();
    Helper.messageDialog(Get.context!, "Try Again!!", error.toString());
  });
}