diff --git a/lib/data/models/client_model.dart b/lib/data/models/client_model.dart index 5d0d91f58..78ae70d4a 100644 --- a/lib/data/models/client_model.dart +++ b/lib/data/models/client_model.dart @@ -564,6 +564,7 @@ abstract class ContactEntity extends Object updatedAt: 0, archivedAt: 0, isDeleted: false, + lastLogin: 0, ); } @@ -603,6 +604,7 @@ abstract class ContactEntity extends Object @BuiltValueField(wireName: 'custom_value4') String get customValue4; + @nullable @BuiltValueField(wireName: 'last_login') int get lastLogin; diff --git a/lib/data/models/client_model.g.dart b/lib/data/models/client_model.g.dart index adb8e7a50..066c58fce 100644 --- a/lib/data/models/client_model.g.dart +++ b/lib/data/models/client_model.g.dart @@ -526,9 +526,6 @@ class _$ContactEntitySerializer implements StructuredSerializer { 'custom_value4', serializers.serialize(object.customValue4, specifiedType: const FullType(String)), - 'last_login', - serializers.serialize(object.lastLogin, - specifiedType: const FullType(int)), ]; if (object.password != null) { result @@ -536,6 +533,12 @@ class _$ContactEntitySerializer implements StructuredSerializer { ..add(serializers.serialize(object.password, specifiedType: const FullType(String))); } + if (object.lastLogin != null) { + result + ..add('last_login') + ..add(serializers.serialize(object.lastLogin, + specifiedType: const FullType(int))); + } if (object.isChanged != null) { result ..add('isChanged') @@ -1663,9 +1666,6 @@ class _$ContactEntity extends ContactEntity { if (customValue4 == null) { throw new BuiltValueNullFieldError('ContactEntity', 'customValue4'); } - if (lastLogin == null) { - throw new BuiltValueNullFieldError('ContactEntity', 'lastLogin'); - } } @override diff --git a/lib/ui/reports/client_report.dart b/lib/ui/reports/client_report.dart index 6e5b2b7d7..3ebd7e03a 100644 --- a/lib/ui/reports/client_report.dart +++ b/lib/ui/reports/client_report.dart @@ -3,6 +3,8 @@ import 'package:invoiceninja_flutter/constants.dart'; import 'package:invoiceninja_flutter/data/models/client_model.dart'; import 'package:invoiceninja_flutter/data/models/company_model.dart'; import 'package:invoiceninja_flutter/data/models/dashboard_model.dart'; +import 'package:invoiceninja_flutter/data/models/static/industry_model.dart'; +import 'package:invoiceninja_flutter/data/models/static/size_model.dart'; import 'package:invoiceninja_flutter/redux/reports/reports_state.dart'; import 'package:invoiceninja_flutter/ui/reports/reports_screen.dart'; import 'package:invoiceninja_flutter/utils/dates.dart'; @@ -53,13 +55,22 @@ class ClientReportFields { static const String contactLastLogin = 'contact_last_login'; } -var memoizedClientReport = memo3((UserCompanyEntity userCompany, - ReportsUIState reportsUIState, - BuiltMap clientMap) => - clientReport(userCompany, reportsUIState, clientMap)); +var memoizedClientReport = memo5(( + UserCompanyEntity userCompany, + ReportsUIState reportsUIState, + BuiltMap clientMap, + BuiltMap industryMap, + BuiltMap sizeMap, +) => + clientReport(userCompany, reportsUIState, clientMap, industryMap, sizeMap)); -ReportResult clientReport(UserCompanyEntity userCompany, - ReportsUIState reportsUIState, BuiltMap clientMap) { +ReportResult clientReport( + UserCompanyEntity userCompany, + ReportsUIState reportsUIState, + BuiltMap clientMap, + BuiltMap industryMap, + BuiltMap sizeMap, +) { final List> data = []; BuiltList columns; @@ -105,15 +116,36 @@ ReportResult clientReport(UserCompanyEntity userCompany, case ClientReportFields.publicNotes: value = client.publicNotes; break; + case ClientReportFields.industry: + value = industryMap[client.industryId].listDisplayName; + break; + case ClientReportFields.size: + value = sizeMap[client.sizeId].listDisplayName; + break; + case ClientReportFields.address1: + value = client.address1; + break; + case ClientReportFields.address2: + value = client.address2; + break; + case ClientReportFields.city: + value = client.city; + break; + case ClientReportFields.state: + value = client.state; + break; + case ClientReportFields.postCode: + value = client.postalCode; + break; + case ClientReportFields.phone: + value = client.phone; + break; case ClientReportFields.idNumber: value = client.idNumber; break; case ClientReportFields.vatNumber: value = client.vatNumber; break; - case ClientReportFields.state: - value = client.state; - break; case ClientReportFields.createdAt: value = convertTimestampToDateString(client.createdAt); break; diff --git a/lib/ui/reports/reports_screen_vm.dart b/lib/ui/reports/reports_screen_vm.dart index 85ca4a2f3..cce17c026 100644 --- a/lib/ui/reports/reports_screen_vm.dart +++ b/lib/ui/reports/reports_screen_vm.dart @@ -64,6 +64,8 @@ class ReportsScreenVM { state.userCompany, state.uiState.reportsUIState, state.clientState.map, + state.staticState.industryMap, + state.staticState.sizeMap, ); break; }