Recurring invoices
This commit is contained in:
parent
4451dcb3f3
commit
baf6d5c5fb
|
|
@ -129,6 +129,7 @@ abstract class InvoiceEntity extends Object
|
||||||
partialDueDate: '',
|
partialDueDate: '',
|
||||||
hasTasks: false,
|
hasTasks: false,
|
||||||
autoBill: CompanyGatewayEntity.TOKEN_BILLING_ALWAYS,
|
autoBill: CompanyGatewayEntity.TOKEN_BILLING_ALWAYS,
|
||||||
|
autoBillEnabled: false,
|
||||||
customValue1: '',
|
customValue1: '',
|
||||||
customValue2: '',
|
customValue2: '',
|
||||||
customValue3: '',
|
customValue3: '',
|
||||||
|
|
@ -288,10 +289,12 @@ abstract class InvoiceEntity extends Object
|
||||||
@BuiltValueField(wireName: 'has_tasks')
|
@BuiltValueField(wireName: 'has_tasks')
|
||||||
bool get hasTasks;
|
bool get hasTasks;
|
||||||
|
|
||||||
@nullable
|
|
||||||
@BuiltValueField(wireName: 'auto_bill')
|
@BuiltValueField(wireName: 'auto_bill')
|
||||||
String get autoBill;
|
String get autoBill;
|
||||||
|
|
||||||
|
@BuiltValueField(wireName: 'auto_bill_enabled')
|
||||||
|
bool get autoBillEnabled;
|
||||||
|
|
||||||
@BuiltValueField(wireName: 'custom_value1')
|
@BuiltValueField(wireName: 'custom_value1')
|
||||||
String get customValue1;
|
String get customValue1;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -201,6 +201,12 @@ class _$InvoiceEntitySerializer implements StructuredSerializer<InvoiceEntity> {
|
||||||
'has_tasks',
|
'has_tasks',
|
||||||
serializers.serialize(object.hasTasks,
|
serializers.serialize(object.hasTasks,
|
||||||
specifiedType: const FullType(bool)),
|
specifiedType: const FullType(bool)),
|
||||||
|
'auto_bill',
|
||||||
|
serializers.serialize(object.autoBill,
|
||||||
|
specifiedType: const FullType(String)),
|
||||||
|
'auto_bill_enabled',
|
||||||
|
serializers.serialize(object.autoBillEnabled,
|
||||||
|
specifiedType: const FullType(bool)),
|
||||||
'custom_value1',
|
'custom_value1',
|
||||||
serializers.serialize(object.customValue1,
|
serializers.serialize(object.customValue1,
|
||||||
specifiedType: const FullType(String)),
|
specifiedType: const FullType(String)),
|
||||||
|
|
@ -261,12 +267,6 @@ class _$InvoiceEntitySerializer implements StructuredSerializer<InvoiceEntity> {
|
||||||
'id',
|
'id',
|
||||||
serializers.serialize(object.id, specifiedType: const FullType(String)),
|
serializers.serialize(object.id, specifiedType: const FullType(String)),
|
||||||
];
|
];
|
||||||
if (object.autoBill != null) {
|
|
||||||
result
|
|
||||||
..add('auto_bill')
|
|
||||||
..add(serializers.serialize(object.autoBill,
|
|
||||||
specifiedType: const FullType(String)));
|
|
||||||
}
|
|
||||||
if (object.customTaxes1 != null) {
|
if (object.customTaxes1 != null) {
|
||||||
result
|
result
|
||||||
..add('custom_taxes1')
|
..add('custom_taxes1')
|
||||||
|
|
@ -511,6 +511,10 @@ class _$InvoiceEntitySerializer implements StructuredSerializer<InvoiceEntity> {
|
||||||
result.autoBill = serializers.deserialize(value,
|
result.autoBill = serializers.deserialize(value,
|
||||||
specifiedType: const FullType(String)) as String;
|
specifiedType: const FullType(String)) as String;
|
||||||
break;
|
break;
|
||||||
|
case 'auto_bill_enabled':
|
||||||
|
result.autoBillEnabled = serializers.deserialize(value,
|
||||||
|
specifiedType: const FullType(bool)) as bool;
|
||||||
|
break;
|
||||||
case 'custom_value1':
|
case 'custom_value1':
|
||||||
result.customValue1 = serializers.deserialize(value,
|
result.customValue1 = serializers.deserialize(value,
|
||||||
specifiedType: const FullType(String)) as String;
|
specifiedType: const FullType(String)) as String;
|
||||||
|
|
@ -1338,6 +1342,8 @@ class _$InvoiceEntity extends InvoiceEntity {
|
||||||
@override
|
@override
|
||||||
final String autoBill;
|
final String autoBill;
|
||||||
@override
|
@override
|
||||||
|
final bool autoBillEnabled;
|
||||||
|
@override
|
||||||
final String customValue1;
|
final String customValue1;
|
||||||
@override
|
@override
|
||||||
final String customValue2;
|
final String customValue2;
|
||||||
|
|
@ -1447,6 +1453,7 @@ class _$InvoiceEntity extends InvoiceEntity {
|
||||||
this.partialDueDate,
|
this.partialDueDate,
|
||||||
this.hasTasks,
|
this.hasTasks,
|
||||||
this.autoBill,
|
this.autoBill,
|
||||||
|
this.autoBillEnabled,
|
||||||
this.customValue1,
|
this.customValue1,
|
||||||
this.customValue2,
|
this.customValue2,
|
||||||
this.customValue3,
|
this.customValue3,
|
||||||
|
|
@ -1565,6 +1572,12 @@ class _$InvoiceEntity extends InvoiceEntity {
|
||||||
if (hasTasks == null) {
|
if (hasTasks == null) {
|
||||||
throw new BuiltValueNullFieldError('InvoiceEntity', 'hasTasks');
|
throw new BuiltValueNullFieldError('InvoiceEntity', 'hasTasks');
|
||||||
}
|
}
|
||||||
|
if (autoBill == null) {
|
||||||
|
throw new BuiltValueNullFieldError('InvoiceEntity', 'autoBill');
|
||||||
|
}
|
||||||
|
if (autoBillEnabled == null) {
|
||||||
|
throw new BuiltValueNullFieldError('InvoiceEntity', 'autoBillEnabled');
|
||||||
|
}
|
||||||
if (customValue1 == null) {
|
if (customValue1 == null) {
|
||||||
throw new BuiltValueNullFieldError('InvoiceEntity', 'customValue1');
|
throw new BuiltValueNullFieldError('InvoiceEntity', 'customValue1');
|
||||||
}
|
}
|
||||||
|
|
@ -1662,6 +1675,7 @@ class _$InvoiceEntity extends InvoiceEntity {
|
||||||
partialDueDate == other.partialDueDate &&
|
partialDueDate == other.partialDueDate &&
|
||||||
hasTasks == other.hasTasks &&
|
hasTasks == other.hasTasks &&
|
||||||
autoBill == other.autoBill &&
|
autoBill == other.autoBill &&
|
||||||
|
autoBillEnabled == other.autoBillEnabled &&
|
||||||
customValue1 == other.customValue1 &&
|
customValue1 == other.customValue1 &&
|
||||||
customValue2 == other.customValue2 &&
|
customValue2 == other.customValue2 &&
|
||||||
customValue3 == other.customValue3 &&
|
customValue3 == other.customValue3 &&
|
||||||
|
|
@ -1724,7 +1738,7 @@ class _$InvoiceEntity extends InvoiceEntity {
|
||||||
$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($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, amount.hashCode), balance.hashCode), clientId.hashCode), statusId.hashCode), number.hashCode), discount.hashCode), poNumber.hashCode), date.hashCode), dueDate.hashCode), publicNotes.hashCode), privateNotes.hashCode), terms.hashCode), footer.hashCode), designId.hashCode), usesInclusiveTaxes.hashCode), taxName1.hashCode), taxRate1.hashCode), taxName2.hashCode), taxRate2.hashCode), taxName3.hashCode), taxRate3.hashCode), isAmountDiscount.hashCode), partial.hashCode), taxAmount.hashCode), partialDueDate.hashCode), hasTasks.hashCode), autoBill.hashCode), customValue1.hashCode), customValue2.hashCode), customValue3.hashCode), customValue4.hashCode), customSurcharge1.hashCode), customSurcharge2.hashCode), customSurcharge3.hashCode), customSurcharge4.hashCode), customTaxes1.hashCode), customTaxes2.hashCode), customTaxes3.hashCode), customTaxes4.hashCode), hasExpenses.hashCode), exchangeRate.hashCode), reminder1Sent.hashCode), reminder2Sent.hashCode), reminder3Sent.hashCode), reminderLastSent.hashCode), frequencyId.hashCode), lastSentDate.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($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc(0, amount.hashCode), balance.hashCode), clientId.hashCode), statusId.hashCode), number.hashCode), discount.hashCode), poNumber.hashCode), date.hashCode), dueDate.hashCode), publicNotes.hashCode), privateNotes.hashCode), terms.hashCode), footer.hashCode), designId.hashCode), usesInclusiveTaxes.hashCode), taxName1.hashCode), taxRate1.hashCode), taxName2.hashCode), taxRate2.hashCode), taxName3.hashCode), taxRate3.hashCode), isAmountDiscount.hashCode), partial.hashCode), taxAmount.hashCode), partialDueDate.hashCode), hasTasks.hashCode), autoBill.hashCode), autoBillEnabled.hashCode), customValue1.hashCode), customValue2.hashCode), customValue3.hashCode), customValue4.hashCode), customSurcharge1.hashCode), customSurcharge2.hashCode), customSurcharge3.hashCode), customSurcharge4.hashCode), customTaxes1.hashCode), customTaxes2.hashCode), customTaxes3.hashCode), customTaxes4.hashCode), hasExpenses.hashCode), exchangeRate.hashCode), reminder1Sent.hashCode), reminder2Sent.hashCode), reminder3Sent.hashCode), reminderLastSent.hashCode), frequencyId.hashCode), lastSentDate.hashCode),
|
||||||
nextSendDate.hashCode),
|
nextSendDate.hashCode),
|
||||||
remainingCycles.hashCode),
|
remainingCycles.hashCode),
|
||||||
dueDateDays.hashCode),
|
dueDateDays.hashCode),
|
||||||
|
|
@ -1776,6 +1790,7 @@ class _$InvoiceEntity extends InvoiceEntity {
|
||||||
..add('partialDueDate', partialDueDate)
|
..add('partialDueDate', partialDueDate)
|
||||||
..add('hasTasks', hasTasks)
|
..add('hasTasks', hasTasks)
|
||||||
..add('autoBill', autoBill)
|
..add('autoBill', autoBill)
|
||||||
|
..add('autoBillEnabled', autoBillEnabled)
|
||||||
..add('customValue1', customValue1)
|
..add('customValue1', customValue1)
|
||||||
..add('customValue2', customValue2)
|
..add('customValue2', customValue2)
|
||||||
..add('customValue3', customValue3)
|
..add('customValue3', customValue3)
|
||||||
|
|
@ -1934,6 +1949,11 @@ class InvoiceEntityBuilder
|
||||||
String get autoBill => _$this._autoBill;
|
String get autoBill => _$this._autoBill;
|
||||||
set autoBill(String autoBill) => _$this._autoBill = autoBill;
|
set autoBill(String autoBill) => _$this._autoBill = autoBill;
|
||||||
|
|
||||||
|
bool _autoBillEnabled;
|
||||||
|
bool get autoBillEnabled => _$this._autoBillEnabled;
|
||||||
|
set autoBillEnabled(bool autoBillEnabled) =>
|
||||||
|
_$this._autoBillEnabled = autoBillEnabled;
|
||||||
|
|
||||||
String _customValue1;
|
String _customValue1;
|
||||||
String get customValue1 => _$this._customValue1;
|
String get customValue1 => _$this._customValue1;
|
||||||
set customValue1(String customValue1) => _$this._customValue1 = customValue1;
|
set customValue1(String customValue1) => _$this._customValue1 = customValue1;
|
||||||
|
|
@ -2140,6 +2160,7 @@ class InvoiceEntityBuilder
|
||||||
_partialDueDate = _$v.partialDueDate;
|
_partialDueDate = _$v.partialDueDate;
|
||||||
_hasTasks = _$v.hasTasks;
|
_hasTasks = _$v.hasTasks;
|
||||||
_autoBill = _$v.autoBill;
|
_autoBill = _$v.autoBill;
|
||||||
|
_autoBillEnabled = _$v.autoBillEnabled;
|
||||||
_customValue1 = _$v.customValue1;
|
_customValue1 = _$v.customValue1;
|
||||||
_customValue2 = _$v.customValue2;
|
_customValue2 = _$v.customValue2;
|
||||||
_customValue3 = _$v.customValue3;
|
_customValue3 = _$v.customValue3;
|
||||||
|
|
@ -2230,6 +2251,7 @@ class InvoiceEntityBuilder
|
||||||
partialDueDate: partialDueDate,
|
partialDueDate: partialDueDate,
|
||||||
hasTasks: hasTasks,
|
hasTasks: hasTasks,
|
||||||
autoBill: autoBill,
|
autoBill: autoBill,
|
||||||
|
autoBillEnabled: autoBillEnabled,
|
||||||
customValue1: customValue1,
|
customValue1: customValue1,
|
||||||
customValue2: customValue2,
|
customValue2: customValue2,
|
||||||
customValue3: customValue3,
|
customValue3: customValue3,
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import 'package:flutter_redux/flutter_redux.dart';
|
import 'package:flutter_redux/flutter_redux.dart';
|
||||||
import 'package:invoiceninja_flutter/constants.dart';
|
import 'package:invoiceninja_flutter/constants.dart';
|
||||||
|
import 'package:invoiceninja_flutter/data/models/company_gateway_model.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/quote_model.dart';
|
import 'package:invoiceninja_flutter/data/models/quote_model.dart';
|
||||||
|
|
@ -121,6 +122,16 @@ class InvoiceOverview extends StatelessWidget {
|
||||||
RecurringInvoiceFields.remainingCycles: invoice.remainingCycles == -1
|
RecurringInvoiceFields.remainingCycles: invoice.remainingCycles == -1
|
||||||
? localization.endless
|
? localization.endless
|
||||||
: '${invoice.remainingCycles}',
|
: '${invoice.remainingCycles}',
|
||||||
|
RecurringInvoiceFields.autoBill: localization.lookup(invoice.autoBill) +
|
||||||
|
([
|
||||||
|
CompanyGatewayEntity.TOKEN_BILLING_OPT_IN,
|
||||||
|
CompanyGatewayEntity.TOKEN_BILLING_OPT_OUT
|
||||||
|
].contains(invoice.autoBill)
|
||||||
|
? (' - ' +
|
||||||
|
(invoice.autoBillEnabled
|
||||||
|
? localization.yes
|
||||||
|
: localization.no))
|
||||||
|
: ''),
|
||||||
InvoiceFields.dueDate: invoice.dueDateDays == 'terms'
|
InvoiceFields.dueDate: invoice.dueDateDays == 'terms'
|
||||||
? localization.paymentTerm
|
? localization.paymentTerm
|
||||||
: invoice.dueDateDays == '1'
|
: invoice.dueDateDays == '1'
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue