QuickbooksLine.fromMap constructor

QuickbooksLine.fromMap(
  1. Map<String, dynamic> map
)

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");
  }
}