94 lines
2.6 KiB
Dart
94 lines
2.6 KiB
Dart
|
|
|
|
import 'dart:convert';
|
|
|
|
import 'business.dart';
|
|
import 'cart_line_item.dart';
|
|
import 'extra_fee.dart';
|
|
|
|
class CartInfo {
|
|
int? id;
|
|
double? originPrice;
|
|
double? discountPrice;
|
|
double? totalPrice;
|
|
Business? businessInfo;
|
|
List<CartLineItem>? productList;
|
|
List<ExtraFee>? extraFeeList;
|
|
List<ExtraFee>? discountList;
|
|
int? deliveryMethod;
|
|
String? shippingMethod;
|
|
double? amountPaid;
|
|
String? extraData;
|
|
|
|
CartInfo.fromJson(Map<String, dynamic> json)
|
|
: id = json['id'],
|
|
originPrice = json['origin_price'] != null ? double.parse(json['origin_price'].toString()) : 0.0,
|
|
discountPrice = json['discount_price'] != null ? double.parse(json['discount_price'].toString()) : 0.0,
|
|
totalPrice = json['total_price'] != null ? double.parse(json['total_price'].toString()) : 0.0,
|
|
businessInfo = json['business_info'] != null ? Business.fromJson(json['business_info']) : null,
|
|
productList = (json['product_list'] as List).map((i) => CartLineItem.fromJson(i)).toList(),
|
|
extraFeeList = (json['extra_fee_list'] as List).map((i) => ExtraFee.fromJson(i)).toList(),
|
|
discountList = (json['discount_list'] as List).map((e) => ExtraFee.fromJson(e)).toList(),
|
|
deliveryMethod = json['delivery_method'],
|
|
shippingMethod = json['shipping_method'],
|
|
amountPaid = double.parse(json['amount_paid'].toString()),
|
|
extraData = json['extra_data'];
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
'id': id,
|
|
'origin_price': originPrice,
|
|
'discount_price': discountPrice,
|
|
'total_price': totalPrice,
|
|
'business_info': businessInfo,
|
|
'product_list': productList,
|
|
'extra_fee_list': extraFeeList,
|
|
'discount_list': discountList,
|
|
'delivery_method': deliveryMethod,
|
|
'shipping_method': shippingMethod,
|
|
'amount_paid': amountPaid,
|
|
'extra_data': extraData,
|
|
};
|
|
|
|
addToCart(CartLineItem item) {
|
|
if (productList == null) {
|
|
productList = [item];
|
|
} else {
|
|
productList!.add(item);
|
|
}
|
|
|
|
}
|
|
|
|
removeFromCart() {
|
|
|
|
}
|
|
|
|
@override
|
|
String toString() {
|
|
return json.encode(this);
|
|
}
|
|
|
|
CartInfo();
|
|
|
|
double getTotalPrice() {
|
|
double newTotal = 0.0;
|
|
originPrice = 0.0;
|
|
discountPrice = 0.0;
|
|
totalPrice = 0.0;
|
|
for (var i = 0; i < productList!.length; i++) {
|
|
newTotal += productList![i].getTotalPrice();
|
|
}
|
|
originPrice = newTotal;
|
|
totalPrice = newTotal;
|
|
return totalPrice!;
|
|
}
|
|
|
|
int getProductListTotalQuantity() {
|
|
int qty = 0;
|
|
if (productList != null && productList!.length > 0) {
|
|
for (var i = 0; i < productList!.length; i++) {
|
|
qty += productList![i].quantity!.round();
|
|
}
|
|
}
|
|
return qty;
|
|
}
|
|
} |