callCreateOrderApi method

Future<void> callCreateOrderApi()

Implementation

Future<void> callCreateOrderApi() async {
  BuildContext context = Get.context!;
  Helper.progressDialog(context, "Please wait..");
  try {
    String requestTime = "";
    String responseTime = "";
    final Map<String, dynamic> orderData = {
      "cartId": cart_id.value,
      "orderType": "SELLOUT",
      "remarks": "",
      "payment": {
        "totalAmountPaid": {"amount": totalAmount.value},
        "paymentModes": mode.toJson(),

        //  [
        //   {
        //     "paymentModeId": 1,
        //     "amountPaid": {"amount": 114.053500},
        //     "attributes": [
        //       {"attributeName": "fieldName", "attributeValue": "value"}
        //     ],
        //   }
        // ]
      }
    };

    await ApiClient(
      baseUrl: ApiConstant.posBaseUrl,
      onFetchRequestTime: (time) {
        requestTime = time;
      },
      onFetchResponseTime: (time) {
        responseTime = time;
      },
      screenName: "productListScreen",
    )
        .createPosSaleOrder(
      body: jsonEncode(orderData),
      xUserId: SecureStorageService.readSecureData(
            SecureStorageService.xUserId,
          ) ??
          "",
    )
        .then((response) {
      Helper.logEvent(
        "RESPONSE_EVENT",
        success: true,
        endPoint: Api.producttypeList,
        responseDate: responseTime,
        screenName: "droListingScreen",
        requestDate: requestTime,
      );
      CreateOrderResponseModel model = response;
      Helper.close();
      isLoadingMore.value = false;
      if (model != null) {
        if (model.status == "POS200") {
          orderId.value = model.data?.orderId ?? "";
          orderDateAndTime.value = model.timeStamp ?? "";
          invoiceReceiptId.value = model.data?.invoiceReceiptId ?? "";
          totalAmount.value = model.data?.totalAmount ?? 0.0;
          Get.to(() => const PosSaleSuccessScreen());
        } else {
          Helper.messageDialog(
            Get.context!,
            model.errors![0].code ?? localization.translate("tryAgain"),
            model.errors![0].localeMessage ??
                localization.translate("somethingWentWrong"),
          );
        }

        //productTypeList.value = model.data?.list ?? [];
      }
    }).catchError((error) {
      ConditionalLogs().customLog("$error");
      Helper.close();
      MainController mainController = Get.put(MainController());
      mainController.showErrorPopup();
    });
  } catch (e) {
    Helper.close();
  }
}