QuickbooksLine.fromMap constructor
Converts a map into a line by the line type. Throws an error if the line type is not supported.
Currently supported lines are:
- SalesItemLineDetail
- GroupLineDetail
- DescriptionOnlyLineDetail
- DiscountLineDetail
- SubTotalLineDetail
- TaxLineDetail
Implementation
factory QuickbooksLine.fromMap(Map<String, dynamic> map) {
var type =
QuickbooksLineDetailTypeExtension.fromJsonString(map['DetailType']);
switch (type) {
case QuickbooksLineDetailType.salesItemLineDetail:
return QuickbooksSalesItemLine.fromMap(map);
case QuickbooksLineDetailType.groupLineDetail:
return QuickbooksGroupLine.fromMap(map);
case QuickbooksLineDetailType.descriptionOnlyLineDetail:
return QuickbooksDescriptionOnlyLine.fromMap(map);
case QuickbooksLineDetailType.discountLineDetail:
return QuickbooksDiscountLine.fromMap(map);
case QuickbooksLineDetailType.subTotalLineDetail:
return QuickbooksSubtotalLine.fromMap(map);
case QuickbooksLineDetailType.taxLineDetail:
return QuickbooksTaxLine.fromMap(map);
case QuickbooksLineDetailType.itemBasedExpenseLineDetail:
return QuickbooksItemBasedExpenseLine.fromMap(map);
case QuickbooksLineDetailType.accountBasedExpenseLineDetail:
return QuickbooksAccountBasedExpenseLine.fromMap(map);
default:
throw UnimplementedError(
"No entity implemented for the line type $type");
}
}