updateSpotSellThruOrder method

Future<void> updateSpotSellThruOrder(
  1. CartModel data
)

Implementation

Future<void> updateSpotSellThruOrder(cart.CartModel data) async {
  var products = data.data!.products ?? [];
  RxList<ProductContentModel> temp = <ProductContentModel>[].obs;
  var tempIccids = <String>[].obs;
  if (products.isNotEmpty) {
    var totalAmount = data.data!.totalRetailPrice ?? 0.0; // subTotal
    var totalNetAmount = data.data!.totalNetPrice ?? 0.0; // strike through
    var totalDiscount = data.data!.totalDiscount != null
        ? double.parse(data.data!.totalDiscount!)
        : 0.0; // total discount
    double totalTax = 0.0; //
    double overallSaleTaxPercentage = 0.0; //
    double ctw = 0.0; // - value
    var salesTax = "Vat";
    var ctwNegativeTax = "CTW"; // red color
    var localCurrency = data.data!.grandTotalInLocalCurrency!.price!.currency;
    var currency = data.data!.currency;
    var localGrandTotal = data.data!.grandTotalInLocalCurrency!.price!.amount;
    totalTax = data.data!.overallSaleTax ?? 0.0;
    overallSaleTaxPercentage = data.data!.overallSaleTaxPercentage ?? 0.0;
    ctw = data.data!.totalWHT ?? 0.0;
    // data.data!.taxes!.forEach((tax) {
    //   if (tax.name == "SalesTax") {
    //     salesTax = "Vat";
    //     totalTax = double.parse(tax.totalPrice!);
    //   }
    //   if (tax.name!.toLowerCase() == "ctw") {
    //     ctwNegativeTax = tax.name!;
    //     ctw = double.parse(tax.totalPrice!);
    //   }
    // });
    var totalAmountPaid = data.data!.grandTotal;
    products.forEach((product) {
      ProductContentModel productModel = ProductContentModel();
      productModel.productCode = product.productCode;
      productModel.productImage = product.productImage ?? "";
      productModel.productName = product.name ?? "";
      productModel.totalOrderedQuantity = 0;
      productModel.itemAmount =
          product.unitPrice != null ? double.parse(product.unitPrice!) : 0;
      productModel.unitSellingPrice = product.sellingUnitPrice != null
          ? double.parse(product.sellingUnitPrice!)
          : 0;
      productModel.sellingPrice = product.sellingPrice != null
          ? double.parse(product.sellingPrice!)
          : 0;
      productModel.itemTax =
          product.unitTax != null ? double.parse(product.unitTax!) : 0;
      productModel.scannedQty = product.quantity!;

      // tempIccids.addAll(product.assetList!);
      List<SingleScannedModel> iccidList = [];
      product.assetList!.forEach((element) {
        iccidList.add(SingleScannedModel(iccid: element.id));
        tempIccids.add(element.id!);
      });
      productModel.iccidList = iccidList;
      productModel.rangeList = [];
      temp.add(productModel);
    });

    sellThruOrder.value = SellThruProductDataModel(
        currency: currency,
        localCurrency: localCurrency,
        localCurrencyGrandTotal: double.parse(localGrandTotal!),
        ctwNegativeTax: ctwNegativeTax,
        ctw: ctw,
        salesTax: salesTax,
        paymentStatus: "PENDING",
        content: productDataScannedList,
        totalAmount: double.parse(totalAmount.toString()),
        totalNetAmount: totalNetAmount,
        totalTax: totalTax,
        overallSaleTaxPercentage: overallSaleTaxPercentage,
        totalDiscount: totalDiscount,
        totalAmountPaid: totalAmountPaid);
  }
  scannedIccidList = tempIccids; // assigning all the scanned iccids;
  productDataScannedList.value = [...temp]; // assigning product list
}