updateSellThruOrder method

Future<void> updateSellThruOrder(
  1. CartResponseModel model
)

Implementation

Future<void> updateSellThruOrder(CartResponseModel model) async {
  // deliveryList.value = model.data?.shippingMethodTypes ?? [];
  // for (var del in deliveryList) {
  //   if (del.type == deliveryShippingSelected.value) {
  //     selectedDeliveryPrice.value =
  //         double.parse(del.value?.amount ?? "0.0") ?? 0.0;
  //     break; // Exit loop once the condition is met
  //   }
  // }
  var totalAmount = model.data!.totalInvoiceAmount!.amount ?? 0; // subTotal
  var totalNetAmount =
      model.data?.totalInvoiceAmount?.amount ?? 0; // strike through
  double totalTax = model.data?.totalVatAmount?.amount ?? 0; //
  double ctw = model.data?.totalExciseAmount?.amount ?? 0; // - value
  //discountAmount.value = model.data?.totalDiscount ?? "";
  var salesTax = "";
  var ctwNegativeTax = ""; // red color
  var localCurrency =
      "2"; //model.data!.grandTotalInLocalCurrency!.price!.currency;
  var currency = model.data!.totalInvoiceAmount?.currency ?? "USD";
  var localGrandTotal =
      "2"; // model.data!.grandTotalInLocalCurrency!.price!.amount;

  // model.data?.taxes?.forEach((tax) {
  //   if (tax.name == "SalesTax") {
  //     salesTax = tax.name!;
  //     totalTax = double.parse(tax.totalPrice!);
  //   }
  //   if (tax.name!.toLowerCase() == "ctw") {
  //     ctwNegativeTax = tax.name!;
  //     ctw = double.parse(tax.totalPrice!);
  //   }
  // });
  var totalDiscount = 0.0;
  var netCommission = 0.0;
  int overallSaleTaxPercentage = 0; //
  // overallSaleTaxPercentage = model.data?.overallSaleTaxPercentage ?? 0.0;
  // List<SaleTaxes>? saleTaxes = model.data?.taxes;
  // overallSaleTaxPercentage = saleTaxes?.firstOrNull?.taxPercentageValue ?? 0;
  // totalTax = double.parse(saleTaxes?.firstOrNull?.totalPrice ?? "0.0");
  double? ctwPercentage = 0.0;
  selectedProduct.clear();
  var totalAmountPaid =
      model.data!.totalInvoiceAmount!.amount.toString() ?? "0.0";
  var products = model.data!.lineItems;
  ConditionalLogs().customLog('products${products}');
  RxList<ProductContentModel> temp = <ProductContentModel>[].obs;
  var totalQuantity = 0;
  for (var product in products!) {
    totalQuantity = totalQuantity + product.quantity!;
    if (product.quantity! != 0) {
      ConditionalLogs().customLog('product  :: ==> ${product.name}');
      ProductContentModel productModel = ProductContentModel();
      productModel.id = int.parse(product.id!);
      productModel.categoryId = product.pogId;
      productModel.productId = product.id;
      productModel.productName = product.name;
      productModel.productCode = product.description;
      productModel.productImage = product.productImage;
      productModel.totalOrderedQuantity = 0;
      productModel.itemAmount = 0.0; //double.parse(product.unitPrice!);
      productModel.itemTax = 0.0; //double.parse(product.unitTax!);
      productModel.unitDiscount = 0.0; //double.parse(product.unitDiscount!);
      productModel.sellingPrice =
          double.parse(product.totalInvoiceAmountExclTax!.amount.toString());
      productModel.unitSellingPrice =
          double.parse(product.basePricePerUnit!.amount.toString());
      productModel.scannedQty = product.quantity!;
      temp.add(productModel);
    }
  }
  ConditionalLogs().customLog('temp-->$temp');
  selectedProduct.value = [...temp]; // assigning product list

  sellThruOrder.value = sellThruOrder.value.copyWith(
    currency: currency,
    localCurrency: localCurrency,
    localCurrencyGrandTotal: double.parse(localGrandTotal!),
    ctwNegativeTax: ctwNegativeTax,
    ctw: ctw,
    salesTax: salesTax,
    content: selectedProduct,
    totalAmount: double.parse(totalAmount.toString()),
    totalNetAmount: totalNetAmount,
    totalTax: totalTax,
    taxPercentage: ctwPercentage.toString(),
    overallSaleTaxPercentage: overallSaleTaxPercentage.toDouble(),
    stockOrderOverallSaleTaxPercentage: totalQuantity,
    totalDiscount: totalDiscount,
    totalAmountPaid: double.parse(totalAmountPaid),
    netCommission: netCommission,
  );

  // BuildContext context = Get.context!;
  // if (selectedProduct.isEmpty) {
  //   clean(context);
  // }
}