From f86ea1c29a3a0fecadf6f5f238b8251840a7cf18 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Thu, 18 Jun 2020 23:17:41 +0300 Subject: [PATCH] Client ledger --- lib/data/models/client_model.dart | 3 + lib/data/models/client_model.g.dart | 49 +++- lib/data/models/entities.dart | 31 +++ lib/data/models/entities.g.dart | 237 +++++++++++++++++++ lib/data/models/serializers.g.dart | 4 + lib/data/repositories/client_repository.dart | 2 +- 6 files changed, 314 insertions(+), 12 deletions(-) diff --git a/lib/data/models/client_model.dart b/lib/data/models/client_model.dart index b92254bc1..605c9474f 100644 --- a/lib/data/models/client_model.dart +++ b/lib/data/models/client_model.dart @@ -122,6 +122,7 @@ abstract class ClientEntity extends Object [ContactEntity().rebuild((b) => b..isPrimary = true)], ), activities: BuiltList(), + ledger: BuiltList(), gatewayTokens: BuiltList(), lastUpdatedActivities: 0, updatedAt: 0, @@ -253,6 +254,8 @@ abstract class ClientEntity extends Object BuiltList get activities; + BuiltList get ledger; + @BuiltValueField(wireName: 'gateway_tokens') BuiltList get gatewayTokens; diff --git a/lib/data/models/client_model.g.dart b/lib/data/models/client_model.g.dart index 0354812e8..81ba9b3ea 100644 --- a/lib/data/models/client_model.g.dart +++ b/lib/data/models/client_model.g.dart @@ -211,6 +211,10 @@ class _$ClientEntitySerializer implements StructuredSerializer { serializers.serialize(object.activities, specifiedType: const FullType( BuiltList, const [const FullType(ActivityEntity)])), + 'ledger', + serializers.serialize(object.ledger, + specifiedType: + const FullType(BuiltList, const [const FullType(LedgerEntity)])), 'gateway_tokens', serializers.serialize(object.gatewayTokens, specifiedType: const FullType( @@ -420,6 +424,12 @@ class _$ClientEntitySerializer implements StructuredSerializer { BuiltList, const [const FullType(ActivityEntity)])) as BuiltList); break; + case 'ledger': + result.ledger.replace(serializers.deserialize(value, + specifiedType: const FullType( + BuiltList, const [const FullType(LedgerEntity)])) + as BuiltList); + break; case 'gateway_tokens': result.gatewayTokens.replace(serializers.deserialize(value, specifiedType: const FullType( @@ -929,6 +939,8 @@ class _$ClientEntity extends ClientEntity { @override final BuiltList activities; @override + final BuiltList ledger; + @override final BuiltList gatewayTokens; @override final bool isChanged; @@ -985,6 +997,7 @@ class _$ClientEntity extends ClientEntity { this.customValue4, this.contacts, this.activities, + this.ledger, this.gatewayTokens, this.isChanged, this.createdAt, @@ -1094,6 +1107,9 @@ class _$ClientEntity extends ClientEntity { if (activities == null) { throw new BuiltValueNullFieldError('ClientEntity', 'activities'); } + if (ledger == null) { + throw new BuiltValueNullFieldError('ClientEntity', 'ledger'); + } if (gatewayTokens == null) { throw new BuiltValueNullFieldError('ClientEntity', 'gatewayTokens'); } @@ -1147,6 +1163,7 @@ class _$ClientEntity extends ClientEntity { customValue4 == other.customValue4 && contacts == other.contacts && activities == other.activities && + ledger == other.ledger && gatewayTokens == other.gatewayTokens && isChanged == other.isChanged && createdAt == other.createdAt && @@ -1179,17 +1196,17 @@ class _$ClientEntity extends ClientEntity { $jc( $jc( $jc( - $jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc(0, groupId.hashCode), lastUpdatedActivities.hashCode), name.hashCode), displayName.hashCode), balance.hashCode), creditBalance.hashCode), paidToDate.hashCode), address1.hashCode), address2.hashCode), city.hashCode), state.hashCode), postalCode.hashCode), countryId.hashCode), phone.hashCode), privateNotes.hashCode), publicNotes.hashCode), website.hashCode), industryId.hashCode), sizeId.hashCode), vatNumber.hashCode), idNumber.hashCode), shippingAddress1.hashCode), shippingAddress2.hashCode), shippingCity.hashCode), - shippingState.hashCode), - shippingPostalCode.hashCode), - shippingCountryId.hashCode), - settings.hashCode), - customValue1.hashCode), - customValue2.hashCode), - customValue3.hashCode), - customValue4.hashCode), - contacts.hashCode), - activities.hashCode), + $jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc(0, groupId.hashCode), lastUpdatedActivities.hashCode), name.hashCode), displayName.hashCode), balance.hashCode), creditBalance.hashCode), paidToDate.hashCode), address1.hashCode), address2.hashCode), city.hashCode), state.hashCode), postalCode.hashCode), countryId.hashCode), phone.hashCode), privateNotes.hashCode), publicNotes.hashCode), website.hashCode), industryId.hashCode), sizeId.hashCode), vatNumber.hashCode), idNumber.hashCode), shippingAddress1.hashCode), shippingAddress2.hashCode), shippingCity.hashCode), shippingState.hashCode), + shippingPostalCode.hashCode), + shippingCountryId.hashCode), + settings.hashCode), + customValue1.hashCode), + customValue2.hashCode), + customValue3.hashCode), + customValue4.hashCode), + contacts.hashCode), + activities.hashCode), + ledger.hashCode), gatewayTokens.hashCode), isChanged.hashCode), createdAt.hashCode), @@ -1238,6 +1255,7 @@ class _$ClientEntity extends ClientEntity { ..add('customValue4', customValue4) ..add('contacts', contacts) ..add('activities', activities) + ..add('ledger', ledger) ..add('gatewayTokens', gatewayTokens) ..add('isChanged', isChanged) ..add('createdAt', createdAt) @@ -1403,6 +1421,11 @@ class ClientEntityBuilder set activities(ListBuilder activities) => _$this._activities = activities; + ListBuilder _ledger; + ListBuilder get ledger => + _$this._ledger ??= new ListBuilder(); + set ledger(ListBuilder ledger) => _$this._ledger = ledger; + ListBuilder _gatewayTokens; ListBuilder get gatewayTokens => _$this._gatewayTokens ??= new ListBuilder(); @@ -1481,6 +1504,7 @@ class ClientEntityBuilder _customValue4 = _$v.customValue4; _contacts = _$v.contacts?.toBuilder(); _activities = _$v.activities?.toBuilder(); + _ledger = _$v.ledger?.toBuilder(); _gatewayTokens = _$v.gatewayTokens?.toBuilder(); _isChanged = _$v.isChanged; _createdAt = _$v.createdAt; @@ -1548,6 +1572,7 @@ class ClientEntityBuilder customValue4: customValue4, contacts: contacts.build(), activities: activities.build(), + ledger: ledger.build(), gatewayTokens: gatewayTokens.build(), isChanged: isChanged, createdAt: createdAt, @@ -1567,6 +1592,8 @@ class ClientEntityBuilder contacts.build(); _$failedField = 'activities'; activities.build(); + _$failedField = 'ledger'; + ledger.build(); _$failedField = 'gatewayTokens'; gatewayTokens.build(); } catch (e) { diff --git a/lib/data/models/entities.dart b/lib/data/models/entities.dart index 2b1eb12c1..18b3b2c5a 100644 --- a/lib/data/models/entities.dart +++ b/lib/data/models/entities.dart @@ -588,3 +588,34 @@ abstract class ActivityEntity static Serializer get serializer => _$activityEntitySerializer; } + +abstract class LedgerEntity + implements Built { + factory LedgerEntity([void updates(LedgerEntityBuilder b)]) = _$LedgerEntity; + + LedgerEntity._(); + + @override + @memoized + int get hashCode; + + String get notes; + + double get balance; + + double get adjustment; + + @nullable + @BuiltValueField(wireName: 'invoice_id') + String get invoiceId; + + @nullable + @BuiltValueField(wireName: 'credit_id') + String get creditId; + + @nullable + @BuiltValueField(wireName: 'payment_id') + String get paymentId; + + static Serializer get serializer => _$ledgerEntitySerializer; +} diff --git a/lib/data/models/entities.g.dart b/lib/data/models/entities.g.dart index 5c763b519..5efd93b5a 100644 --- a/lib/data/models/entities.g.dart +++ b/lib/data/models/entities.g.dart @@ -296,6 +296,8 @@ Serializer _$loginResponseSerializer = new _$LoginResponseSerializer(); Serializer _$activityEntitySerializer = new _$ActivityEntitySerializer(); +Serializer _$ledgerEntitySerializer = + new _$LedgerEntitySerializer(); class _$EntityTypeSerializer implements PrimitiveSerializer { @override @@ -626,6 +628,89 @@ class _$ActivityEntitySerializer } } +class _$LedgerEntitySerializer implements StructuredSerializer { + @override + final Iterable types = const [LedgerEntity, _$LedgerEntity]; + @override + final String wireName = 'LedgerEntity'; + + @override + Iterable serialize(Serializers serializers, LedgerEntity object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'notes', + serializers.serialize(object.notes, + specifiedType: const FullType(String)), + 'balance', + serializers.serialize(object.balance, + specifiedType: const FullType(double)), + 'adjustment', + serializers.serialize(object.adjustment, + specifiedType: const FullType(double)), + ]; + if (object.invoiceId != null) { + result + ..add('invoice_id') + ..add(serializers.serialize(object.invoiceId, + specifiedType: const FullType(String))); + } + if (object.creditId != null) { + result + ..add('credit_id') + ..add(serializers.serialize(object.creditId, + specifiedType: const FullType(String))); + } + if (object.paymentId != null) { + result + ..add('payment_id') + ..add(serializers.serialize(object.paymentId, + specifiedType: const FullType(String))); + } + return result; + } + + @override + LedgerEntity deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new LedgerEntityBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'notes': + result.notes = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'balance': + result.balance = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'adjustment': + result.adjustment = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'invoice_id': + result.invoiceId = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'credit_id': + result.creditId = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'payment_id': + result.paymentId = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + } + } + + return result.build(); + } +} + class _$ErrorMessage extends ErrorMessage { @override final String message; @@ -1100,4 +1185,156 @@ class ActivityEntityBuilder } } +class _$LedgerEntity extends LedgerEntity { + @override + final String notes; + @override + final double balance; + @override + final double adjustment; + @override + final String invoiceId; + @override + final String creditId; + @override + final String paymentId; + + factory _$LedgerEntity([void Function(LedgerEntityBuilder) updates]) => + (new LedgerEntityBuilder()..update(updates)).build(); + + _$LedgerEntity._( + {this.notes, + this.balance, + this.adjustment, + this.invoiceId, + this.creditId, + this.paymentId}) + : super._() { + if (notes == null) { + throw new BuiltValueNullFieldError('LedgerEntity', 'notes'); + } + if (balance == null) { + throw new BuiltValueNullFieldError('LedgerEntity', 'balance'); + } + if (adjustment == null) { + throw new BuiltValueNullFieldError('LedgerEntity', 'adjustment'); + } + } + + @override + LedgerEntity rebuild(void Function(LedgerEntityBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + LedgerEntityBuilder toBuilder() => new LedgerEntityBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is LedgerEntity && + notes == other.notes && + balance == other.balance && + adjustment == other.adjustment && + invoiceId == other.invoiceId && + creditId == other.creditId && + paymentId == other.paymentId; + } + + int __hashCode; + @override + int get hashCode { + return __hashCode ??= $jf($jc( + $jc( + $jc( + $jc($jc($jc(0, notes.hashCode), balance.hashCode), + adjustment.hashCode), + invoiceId.hashCode), + creditId.hashCode), + paymentId.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('LedgerEntity') + ..add('notes', notes) + ..add('balance', balance) + ..add('adjustment', adjustment) + ..add('invoiceId', invoiceId) + ..add('creditId', creditId) + ..add('paymentId', paymentId)) + .toString(); + } +} + +class LedgerEntityBuilder + implements Builder { + _$LedgerEntity _$v; + + String _notes; + String get notes => _$this._notes; + set notes(String notes) => _$this._notes = notes; + + double _balance; + double get balance => _$this._balance; + set balance(double balance) => _$this._balance = balance; + + double _adjustment; + double get adjustment => _$this._adjustment; + set adjustment(double adjustment) => _$this._adjustment = adjustment; + + String _invoiceId; + String get invoiceId => _$this._invoiceId; + set invoiceId(String invoiceId) => _$this._invoiceId = invoiceId; + + String _creditId; + String get creditId => _$this._creditId; + set creditId(String creditId) => _$this._creditId = creditId; + + String _paymentId; + String get paymentId => _$this._paymentId; + set paymentId(String paymentId) => _$this._paymentId = paymentId; + + LedgerEntityBuilder(); + + LedgerEntityBuilder get _$this { + if (_$v != null) { + _notes = _$v.notes; + _balance = _$v.balance; + _adjustment = _$v.adjustment; + _invoiceId = _$v.invoiceId; + _creditId = _$v.creditId; + _paymentId = _$v.paymentId; + _$v = null; + } + return this; + } + + @override + void replace(LedgerEntity other) { + if (other == null) { + throw new ArgumentError.notNull('other'); + } + _$v = other as _$LedgerEntity; + } + + @override + void update(void Function(LedgerEntityBuilder) updates) { + if (updates != null) updates(this); + } + + @override + _$LedgerEntity build() { + final _$result = _$v ?? + new _$LedgerEntity._( + notes: notes, + balance: balance, + adjustment: adjustment, + invoiceId: invoiceId, + creditId: creditId, + paymentId: paymentId); + replace(_$result); + return _$result; + } +} + // ignore_for_file: always_put_control_body_on_new_line,always_specify_types,annotate_overrides,avoid_annotating_with_dynamic,avoid_as,avoid_catches_without_on_clauses,avoid_returning_this,lines_longer_than_80_chars,omit_local_variable_types,prefer_expression_function_bodies,sort_constructors_first,test_types_in_equals,unnecessary_const,unnecessary_new diff --git a/lib/data/models/serializers.g.dart b/lib/data/models/serializers.g.dart index 80e32b6fb..53ef83bc2 100644 --- a/lib/data/models/serializers.g.dart +++ b/lib/data/models/serializers.g.dart @@ -92,6 +92,7 @@ Serializers _$serializers = (new Serializers().toBuilder() ..add(LanguageEntity.serializer) ..add(LanguageItemResponse.serializer) ..add(LanguageListResponse.serializer) + ..add(LedgerEntity.serializer) ..add(ListUIState.serializer) ..add(LoginResponse.serializer) ..add(ModuleLayout.serializer) @@ -180,6 +181,9 @@ Serializers _$serializers = (new Serializers().toBuilder() ..addBuilderFactory( const FullType(BuiltList, const [const FullType(ActivityEntity)]), () => new ListBuilder()) + ..addBuilderFactory( + const FullType(BuiltList, const [const FullType(LedgerEntity)]), + () => new ListBuilder()) ..addBuilderFactory( const FullType(BuiltList, const [const FullType(GatewayTokenEntity)]), () => new ListBuilder()) diff --git a/lib/data/repositories/client_repository.dart b/lib/data/repositories/client_repository.dart index 99badbe71..2d3a6ebc3 100644 --- a/lib/data/repositories/client_repository.dart +++ b/lib/data/repositories/client_repository.dart @@ -18,7 +18,7 @@ class ClientRepository { Future loadItem( Credentials credentials, String entityId) async { final String url = - '${credentials.url}/clients/$entityId?include=gateway_tokens,activities'; + '${credentials.url}/clients/$entityId?include=gateway_tokens,activities,ledger'; final dynamic response = await webClient.get(url, credentials.token);