initCart function
dynamic
initCart()
Implementation
initCart() async {
var user = FirebaseAuth.instance.currentUser;
if (user == null)
return;
if (_init)
return;
_init = true;
for (var item in userAccountData.cartData) {
if (item.thisIsArticle){
var ret = await articleGetItemToEdit(ProductDataCache.createEmpty(item.id));
if (ret == null){
var newItem = ProductData.clone(currentArticle);
if (currentArticle.group.isNotEmpty) {
List<GroupData> _group = [];
for (var g in currentArticle.group)
_group.add(GroupData.clone(g));
// потом смотрим в item (то что ложили в cart)
_notEqual = false;
isGroupEqual(_group, item.group);
newItem.group = _group;
}
newItem.countProduct = item.count;
if (!_notEqual)
cart.add(newItem);
}
}else{
ProductData product = getProduct(item.id);
if (product.id.isNotEmpty){
var newItem = ProductData.clone(product);
// service
newItem.countProduct = item.count;
for (var p in newItem.price)
p.selected = false;
for (var p in newItem.price)
if (p.price == item.selectedPrice.price && p.discPrice == item.selectedPrice.discPrice) {
p.selected = true;
break;
}
for (var a in newItem.addon)
a.selected = false;
for (var h in item.addons)
for (var a in newItem.addon)
if (getTextByLocale(a.name, locale) == getTextByLocale(h.name, locale)) {
a.selected = true;
a.needCount = h.needCount;
}
cart.add(newItem);
}
}
}
}