updateSellThruOrder method

Future<void> updateSellThruOrder(
  1. CartModel model
)

Implementation

Future<void> updateSellThruOrder(CartModel model) async {
  var totalAmount = model.data!.totalRetailPrice; // subTotal
  var totalNetAmount = model.data!.totalNetPrice; // strike through
  double totalTax = model.data!.overallSaleTax ?? 0.0; //
  double ctw = model.data!.totalWHT ?? 0.0; // - value
  discountAmount.value = model.data?.totalDiscount ?? "";
  var salesTax = "";
  var ctwNegativeTax = ""; // red color
  var localCurrency = model.data!.grandTotalInLocalCurrency!.price!.currency;
  var currency = model.data!.currency;
  var localGrandTotal = 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!);
    }
  });
  double overallSaleTaxPercentage = 0.0; //
  overallSaleTaxPercentage = model.data?.overallSaleTaxPercentage ?? 0.0;
  double? ctwPercentage;
  var totalDiscount = 0.0;
  if (model.data?.taxes != null) {
    // total discount
    model.data?.taxes?.forEach((element) {
      if (element.name! == "COMMISSION") {
        totalDiscount = element.totalPrice != null
            ? double.parse(element.totalPrice!)
            : 0.0;
      }
      if (element.name! == "CTW") {
        ctwPercentage = element.percentage;
        ctw = element.totalPrice != null
            ? double.parse(element.totalPrice!)
            : 0.0;
      }
    });
  }
  var totalAmountPaid = model.data!.grandTotal;
  var products = model.data!.products;
  print('products${products}');
  RxList<ProductContentModel> temp = <ProductContentModel>[].obs;
  for (var product in products!) {
    print('product  :: ==> ${product.name}');
    ProductContentModel productModel = ProductContentModel();
    productModel.id = int.parse(product.productId!);
    productModel.productName = product.name;
    productModel.productCode = product.productCode;
    productModel.productImage = product.productImage;
    productModel.totalOrderedQuantity = 0;
    productModel.itemAmount = double.parse(product.unitPrice!);
    productModel.itemTax = double.parse(product.unitTax!);
    productModel.unitDiscount = double.parse(product.unitDiscount!);
    productModel.sellingPrice = double.parse(product.sellingPrice!);
    productModel.unitSellingPrice = double.parse(product.sellingUnitPrice!);
    productModel.scannedQty = product.quantity!;
    temp.add(productModel);
    // if (temp.isNotEmpty) {
    //   for (int i = 0; i < temp.length; i++) {
    //     print('temp product  :: ==> ${temp[i].toJson()}');
    //     if (product.name == temp[i].productName) {
    //       ProductContentModel productModel = ProductContentModel();
    //       productModel = temp[i].copyWith(
    //         id: int.parse(product.productId!),
    //         productName: product.name,
    //         productCode: product.productCode,
    //         productImage: product.productImage,
    //         scannedQty: product.quantity!,
    //         itemAmount: double.parse(product.unitPrice!),
    //         itemTax: double.parse(product.unitTax!),
    //       );
    //       temp[i] = productModel; // updating existing product on temp
    //     }
    //     // else {
    //     //   // new product
    //     //   ProductContentModel productModel = ProductContentModel();
    //     //   productModel.id = int.parse(product.productId!);
    //     //   productModel.productName = product.name;
    //     //   productModel.productCode = product.productCode;
    //     //   productModel.productImage = product.productImage;
    //     //   productModel.totalOrderedQuantity = 0;
    //     //   productModel.itemAmount = double.parse(product.unitPrice!);
    //     //   productModel.itemTax = double.parse(product.unitTax!);
    //     //   productModel.scannedQty = product.quantity!;
    //     //   temp.add(productModel); // adding new product on temp
    //     // }
    //   }
    // } else {
    //   // new product
    //   ProductContentModel productModel = ProductContentModel();
    //   productModel.id = int.parse(product.productId!);
    //   productModel.productName = product.name;
    //   productModel.productCode = product.productCode;
    //   productModel.productImage = product.productImage;
    //   productModel.totalOrderedQuantity = 0;
    //   productModel.itemAmount = double.parse(product.unitPrice!);
    //   productModel.itemTax = double.parse(product.unitTax!);
    //   productModel.scannedQty = product.quantity!;
    //   temp.add(productModel); // adding new product on temp
    // }
  }
  print('temp-->$temp');
  selectedProduct.value = [...temp]; // assigning product list

  sellThruOrder = sellThruOrder.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,
    totalDiscount: totalDiscount,
    totalAmountPaid: totalAmountPaid,
  );
}