accountAction method

  1. @override
Parser accountAction()

Implementation

@override
Parser accountAction() => super.accountAction().map((each) {
      final e = each as List;
      final date = e.first as DateTime;
      final type = e.elementAt(1).toString().replaceAll('"', '');
      final account = e.elementAt(2) as Account;
      final currencies = (e.elementAt(3) as SeparatedList<dynamic, String>?)
              ?.elements
              .map((e) => e.toString())
              .toList() ??
          const [];
      final bookingMethod = e.elementAt(4)?.toString().replaceAll('"', '');
      final comment = e.elementAt(5) as String;
      final metadata = e.elementAt(6) as Map<String, MetaValue>;

      switch (type) {
        case 'open':
          return AccountAction.open(
            date: date,
            type: type,
            account: account,
            currencies: currencies,
            bookingMethod: bookingMethod,
            comment: comment,
            metadata: metadata,
          );
        case 'close':
        default:
          return AccountAction.close(
            date: date,
            type: type,
            account: account,
            comment: comment,
            metadata: metadata,
          );
      }
    });