fromEntityPlus static method
Implementation
static Future<OrderModel?> fromEntityPlus(
String documentID, OrderEntity? entity,
{String? appId}) async {
if (entity == null) return null;
MemberModel? customerHolder;
if (entity.customerId != null) {
try {
customerHolder =
await memberRepository(appId: appId)!.get(entity.customerId);
} on Exception catch (e) {
print('Error whilst trying to initialise customer');
print('Error whilst retrieving member with id ${entity.customerId}');
print('Exception: $e');
}
}
var counter = 0;
return OrderModel(
documentID: documentID,
appId: entity.appId ?? '',
customer: customerHolder,
name: entity.name,
email: entity.email,
shipStreet1: entity.shipStreet1,
shipStreet2: entity.shipStreet2,
shipCity: entity.shipCity,
shipState: entity.shipState,
postcode: entity.postcode,
country: entity.country,
invoiceSame: entity.invoiceSame,
invoiceStreet1: entity.invoiceStreet1,
invoiceStreet2: entity.invoiceStreet2,
invoiceCity: entity.invoiceCity,
invoiceState: entity.invoiceState,
invoicePostcode: entity.invoicePostcode,
invoiceCountry: entity.invoiceCountry,
products: entity.products == null
? null
: List<OrderItemModel>.from(
await Future.wait(entity.products!.map((item) {
counter++;
return OrderItemModel.fromEntityPlus(counter.toString(), item,
appId: appId);
}).toList())),
totalPrice: entity.totalPrice,
currency: entity.currency,
paymentReference: entity.paymentReference,
shipmentReference: entity.shipmentReference,
deliveryReference: entity.deliveryReference,
paymentNote: entity.paymentNote,
shipmentNote: entity.shipmentNote,
deliveryNote: entity.deliveryNote,
status: toOrderStatus(entity.status),
timeStamp: entity.timeStamp,
);
}