This commit is contained in:
Hillel Coren 2019-10-30 18:21:51 +02:00
parent f493a43b5b
commit 80942709d4
23 changed files with 109 additions and 32 deletions

View File

@ -169,7 +169,7 @@ abstract class InvoiceEntity extends Object
String get terms;
@BuiltValueField(wireName: 'invoice_footer')
@BuiltValueField(wireName: 'footer')
String get footer;
@nullable
@ -314,7 +314,7 @@ abstract class InvoiceEntity extends Object
}
if (response == 0) {
return invoiceA.invoiceNumber.compareTo(invoiceB.invoiceNumber);
return (invoiceA.invoiceNumber ?? '').compareTo(invoiceB.invoiceNumber ?? '');
} else {
return response;
}
@ -447,7 +447,7 @@ abstract class InvoiceEntity extends Object
@override
String get listDisplayName {
return invoiceNumber;
return invoiceNumber ?? id;
}
@override

View File

@ -152,7 +152,7 @@ class _$InvoiceEntitySerializer implements StructuredSerializer<InvoiceEntity> {
'terms',
serializers.serialize(object.terms,
specifiedType: const FullType(String)),
'invoice_footer',
'footer',
serializers.serialize(object.footer,
specifiedType: const FullType(String)),
'tax_name1',
@ -380,7 +380,7 @@ class _$InvoiceEntitySerializer implements StructuredSerializer<InvoiceEntity> {
result.terms = serializers.deserialize(value,
specifiedType: const FullType(String)) as String;
break;
case 'invoice_footer':
case 'footer':
result.footer = serializers.deserialize(value,
specifiedType: const FullType(String)) as String;
break;

View File

@ -80,6 +80,9 @@ abstract class QuoteEntity extends Object
dueDate: '',
publicNotes: '',
privateNotes: '',
terms: '',
footer: '',
designId: '1',
taxName1: company?.settings?.defaultTaxName1 ?? '',
taxRate1: company?.settings?.defaultTaxRate1 ?? 0.0,
taxName2: company?.settings?.defaultTaxName2 ?? '',
@ -159,6 +162,15 @@ abstract class QuoteEntity extends Object
@BuiltValueField(wireName: 'private_notes')
String get privateNotes;
String get terms;
@BuiltValueField(wireName: 'footer')
String get footer;
@nullable
@BuiltValueField(wireName: 'design_id')
String get designId;
/*
@BuiltValueField(wireName: 'frequency_id')
int get frequencyId;

View File

@ -141,6 +141,12 @@ class _$QuoteEntitySerializer implements StructuredSerializer<QuoteEntity> {
'private_notes',
serializers.serialize(object.privateNotes,
specifiedType: const FullType(String)),
'terms',
serializers.serialize(object.terms,
specifiedType: const FullType(String)),
'footer',
serializers.serialize(object.footer,
specifiedType: const FullType(String)),
'tax_name1',
serializers.serialize(object.taxName1,
specifiedType: const FullType(String)),
@ -231,6 +237,12 @@ class _$QuoteEntitySerializer implements StructuredSerializer<QuoteEntity> {
..add(serializers.serialize(object.invoiceNumber,
specifiedType: const FullType(String)));
}
if (object.designId != null) {
result
..add('design_id')
..add(serializers.serialize(object.designId,
specifiedType: const FullType(String)));
}
if (object.isChanged != null) {
result
..add('isChanged')
@ -331,6 +343,18 @@ class _$QuoteEntitySerializer implements StructuredSerializer<QuoteEntity> {
result.privateNotes = serializers.deserialize(value,
specifiedType: const FullType(String)) as String;
break;
case 'terms':
result.terms = serializers.deserialize(value,
specifiedType: const FullType(String)) as String;
break;
case 'footer':
result.footer = serializers.deserialize(value,
specifiedType: const FullType(String)) as String;
break;
case 'design_id':
result.designId = serializers.deserialize(value,
specifiedType: const FullType(String)) as String;
break;
case 'tax_name1':
result.taxName1 = serializers.deserialize(value,
specifiedType: const FullType(String)) as String;
@ -817,6 +841,12 @@ class _$QuoteEntity extends QuoteEntity {
@override
final String privateNotes;
@override
final String terms;
@override
final String footer;
@override
final String designId;
@override
final String taxName1;
@override
final double taxRate1;
@ -900,6 +930,9 @@ class _$QuoteEntity extends QuoteEntity {
this.dueDate,
this.publicNotes,
this.privateNotes,
this.terms,
this.footer,
this.designId,
this.taxName1,
this.taxRate1,
this.taxName2,
@ -965,6 +998,12 @@ class _$QuoteEntity extends QuoteEntity {
if (privateNotes == null) {
throw new BuiltValueNullFieldError('QuoteEntity', 'privateNotes');
}
if (terms == null) {
throw new BuiltValueNullFieldError('QuoteEntity', 'terms');
}
if (footer == null) {
throw new BuiltValueNullFieldError('QuoteEntity', 'footer');
}
if (taxName1 == null) {
throw new BuiltValueNullFieldError('QuoteEntity', 'taxName1');
}
@ -1070,6 +1109,9 @@ class _$QuoteEntity extends QuoteEntity {
dueDate == other.dueDate &&
publicNotes == other.publicNotes &&
privateNotes == other.privateNotes &&
terms == other.terms &&
footer == other.footer &&
designId == other.designId &&
taxName1 == other.taxName1 &&
taxRate1 == other.taxRate1 &&
taxName2 == other.taxName2 &&
@ -1126,7 +1168,7 @@ class _$QuoteEntity extends QuoteEntity {
$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), invoiceNumber.hashCode), discount.hashCode), poNumber.hashCode), invoiceDate.hashCode), dueDate.hashCode), publicNotes.hashCode), privateNotes.hashCode), taxName1.hashCode), taxRate1.hashCode), taxName2.hashCode), taxRate2.hashCode), isAmountDiscount.hashCode), partial.hashCode), partialDueDate.hashCode), hasTasks.hashCode), autoBill.hashCode), customValue1.hashCode), customValue2.hashCode), customValue3.hashCode), customValue4.hashCode), customSurcharge1.hashCode), customSurcharge2.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(0, amount.hashCode), balance.hashCode), clientId.hashCode), statusId.hashCode), invoiceNumber.hashCode), discount.hashCode), poNumber.hashCode), invoiceDate.hashCode), dueDate.hashCode), publicNotes.hashCode), privateNotes.hashCode), terms.hashCode), footer.hashCode), designId.hashCode), taxName1.hashCode), taxRate1.hashCode), taxName2.hashCode), taxRate2.hashCode), isAmountDiscount.hashCode), partial.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),
@ -1162,6 +1204,9 @@ class _$QuoteEntity extends QuoteEntity {
..add('dueDate', dueDate)
..add('publicNotes', publicNotes)
..add('privateNotes', privateNotes)
..add('terms', terms)
..add('footer', footer)
..add('designId', designId)
..add('taxName1', taxName1)
..add('taxRate1', taxRate1)
..add('taxName2', taxName2)
@ -1248,6 +1293,18 @@ class QuoteEntityBuilder implements Builder<QuoteEntity, QuoteEntityBuilder> {
String get privateNotes => _$this._privateNotes;
set privateNotes(String privateNotes) => _$this._privateNotes = privateNotes;
String _terms;
String get terms => _$this._terms;
set terms(String terms) => _$this._terms = terms;
String _footer;
String get footer => _$this._footer;
set footer(String footer) => _$this._footer = footer;
String _designId;
String get designId => _$this._designId;
set designId(String designId) => _$this._designId = designId;
String _taxName1;
String get taxName1 => _$this._taxName1;
set taxName1(String taxName1) => _$this._taxName1 = taxName1;
@ -1411,6 +1468,9 @@ class QuoteEntityBuilder implements Builder<QuoteEntity, QuoteEntityBuilder> {
_dueDate = _$v.dueDate;
_publicNotes = _$v.publicNotes;
_privateNotes = _$v.privateNotes;
_terms = _$v.terms;
_footer = _$v.footer;
_designId = _$v.designId;
_taxName1 = _$v.taxName1;
_taxRate1 = _$v.taxRate1;
_taxName2 = _$v.taxName2;
@ -1480,6 +1540,9 @@ class QuoteEntityBuilder implements Builder<QuoteEntity, QuoteEntityBuilder> {
dueDate: dueDate,
publicNotes: publicNotes,
privateNotes: privateNotes,
terms: terms,
footer: footer,
designId: designId,
taxName1: taxName1,
taxRate1: taxRate1,
taxName2: taxName2,

View File

@ -181,7 +181,7 @@ ListUIState _removeFromListMultiselect(
ListUIState _clearListMultiselect(
ListUIState clientListState, ClearClientMultiselect action) {
return clientListState.rebuild((b) => b..selectedIds = null);
return clientListState.rebuild((b) => b..selectedIds = ListBuilder());
}
final clientsReducer = combineReducers<ClientState>([

View File

@ -148,7 +148,7 @@ ListUIState _removeFromListMultiselect(
ListUIState _clearListMultiselect(
ListUIState productListState, ClearCompanyGatewayMultiselect action) {
return productListState.rebuild((b) => b..selectedIds = null);
return productListState.rebuild((b) => b..selectedIds = ListBuilder());
}
final companyGatewaysReducer = combineReducers<CompanyGatewayState>([

View File

@ -130,7 +130,7 @@ ListUIState _removeFromListMultiselect(
ListUIState _clearListMultiselect(
ListUIState documentListState, ClearDocumentMultiselect action) {
return documentListState.rebuild((b) => b..selectedIds = null);
return documentListState.rebuild((b) => b..selectedIds = ListBuilder());
}
final documentsReducer = combineReducers<DocumentState>([

View File

@ -140,7 +140,7 @@ ListUIState _removeFromListMultiselect(
ListUIState _clearListMultiselect(
ListUIState expenseListState, ClearExpenseMultiselect action) {
return expenseListState.rebuild((b) => b..selectedIds = null);
return expenseListState.rebuild((b) => b..selectedIds = ListBuilder());
}
final expensesReducer = combineReducers<ExpenseState>([

View File

@ -127,7 +127,7 @@ ListUIState _removeFromListMultiselect(
ListUIState _clearListMultiselect(
ListUIState groupListState, ClearGroupMultiselect action) {
return groupListState.rebuild((b) => b..selectedIds = null);
return groupListState.rebuild((b) => b..selectedIds = ListBuilder());
}
final groupsReducer = combineReducers<GroupState>([

View File

@ -199,7 +199,7 @@ ListUIState _removeFromListMultiselect(
ListUIState _clearListMultiselect(
ListUIState invoiceListState, ClearInvoiceMultiselect action) {
return invoiceListState.rebuild((b) => b..selectedIds = null);
return invoiceListState.rebuild((b) => b..selectedIds = ListBuilder());
}
final invoicesReducer = combineReducers<InvoiceState>([

View File

@ -129,7 +129,7 @@ ListUIState _removeFromListMultiselect(
ListUIState _clearListMultiselect(
ListUIState paymentListState, ClearPaymentMultiselect action) {
return paymentListState.rebuild((b) => b..selectedIds = null);
return paymentListState.rebuild((b) => b..selectedIds = ListBuilder());
}
final paymentsReducer = combineReducers<PaymentState>([

View File

@ -128,7 +128,7 @@ ListUIState _removeFromListMultiselect(
ListUIState _clearListMultiselect(
ListUIState productListState, ClearProductMultiselect action) {
return productListState.rebuild((b) => b..selectedIds = null);
return productListState.rebuild((b) => b..selectedIds = ListBuilder());
}
final productsReducer = combineReducers<ProductState>([

View File

@ -145,7 +145,7 @@ ListUIState _removeFromListMultiselect(
ListUIState _clearListMultiselect(
ListUIState projectListState, ClearProjectMultiselect action) {
return projectListState.rebuild((b) => b..selectedIds = null);
return projectListState.rebuild((b) => b..selectedIds = ListBuilder());
}
final projectsReducer = combineReducers<ProjectState>([

View File

@ -185,7 +185,7 @@ ListUIState _removeFromListMultiselect(
ListUIState _clearListMultiselect(
ListUIState quoteListState, ClearQuoteMultiselect action) {
return quoteListState.rebuild((b) => b..selectedIds = null);
return quoteListState.rebuild((b) => b..selectedIds = ListBuilder());
}
final quotesReducer = combineReducers<QuoteState>([

View File

@ -158,7 +158,7 @@ ListUIState _removeFromListMultiselect(
ListUIState _clearListMultiselect(
ListUIState taskListState, ClearTaskMultiselect action) {
return taskListState.rebuild((b) => b..selectedIds = null);
return taskListState.rebuild((b) => b..selectedIds = ListBuilder());
}
final tasksReducer = combineReducers<TaskState>([

View File

@ -130,7 +130,7 @@ ListUIState _removeFromListMultiselect(
ListUIState _clearListMultiselect(
ListUIState taxRateListState, ClearTaxRateMultiselect action) {
return taxRateListState.rebuild((b) => b..selectedIds = null);
return taxRateListState.rebuild((b) => b..selectedIds = ListBuilder());
}
final taxRatesReducer = combineReducers<TaxRateState>([

View File

@ -126,7 +126,7 @@ ListUIState _removeFromListMultiselect(
ListUIState _clearListMultiselect(
ListUIState productListState, ClearUserMultiselect action) {
return productListState.rebuild((b) => b..selectedIds = null);
return productListState.rebuild((b) => b..selectedIds = ListBuilder());
}
final usersReducer = combineReducers<UserState>([

View File

@ -171,7 +171,7 @@ ListUIState _removeFromListMultiselect(
ListUIState _clearListMultiselect(
ListUIState vendorListState, ClearVendorMultiselect action) {
return vendorListState.rebuild((b) => b..selectedIds = null);
return vendorListState.rebuild((b) => b..selectedIds = ListBuilder());
}
final vendorsReducer = combineReducers<VendorState>([

View File

@ -125,7 +125,7 @@ class _InvoiceEditState extends State<InvoiceEdit>
child: Padding(
padding: const EdgeInsets.all(14.0),
child: Text(
'${localization.total}: ${formatNumber(invoice.calculateTotal(viewModel.company.settings.enableInclusiveTaxes), context, clientId: viewModel.invoice.clientId)}',
'${localization.total}: ${formatNumber(invoice.calculateTotal(viewModel.company.settings.enableInclusiveTaxes ?? false), context, clientId: viewModel.invoice.clientId)}',
style: TextStyle(
//color: Theme.of(context).selectedRowColor,
color: Colors.white,

View File

@ -275,7 +275,7 @@ class InvoiceEditDetailsState extends State<InvoiceEditDetails> {
TextInputType.numberWithOptions(decimal: true),
)
: Container(),
company.settings.enableInvoiceTaxes
(company.settings.enableInvoiceTaxes ?? false)
? TaxRateDropdown(
taxRates: company.taxRates,
onSelected: (taxRate) =>
@ -285,7 +285,7 @@ class InvoiceEditDetailsState extends State<InvoiceEditDetails> {
initialTaxRate: invoice.taxRate1,
)
: Container(),
company.settings.enableInvoiceTaxes &&
(company.settings.enableInvoiceTaxes ?? false) &&
company.settings.enableSecondTaxRate
? TaxRateDropdown(
taxRates: company.taxRates,

View File

@ -124,7 +124,7 @@ class _QuoteEditState extends State<QuoteEdit>
child: Padding(
padding: const EdgeInsets.all(14.0),
child: Text(
'${localization.total}: ${formatNumber(invoice.calculateTotal(viewModel.company.settings.enableInclusiveTaxes), context, clientId: viewModel.invoice.clientId)}',
'${localization.total}: ${formatNumber(invoice.calculateTotal(viewModel.company.settings.enableInclusiveTaxes ?? false), context, clientId: viewModel.invoice.clientId)}',
style: TextStyle(
//color: Theme.of(context).selectedRowColor,
color: Colors.white,

View File

@ -97,13 +97,15 @@ class _DeviceSettingsState extends State<DeviceSettings> {
),
FormCard(
children: <Widget>[
ListTile(
Builder(builder: (BuildContext context) {
return ListTile(
leading: Icon(FontAwesomeIcons.syncAlt),
title: Text(AppLocalization.of(context).refreshData),
onTap: () {
widget.viewModel.onRefreshTap(context);
},
),
);
}),
ListTile(
leading: Icon(FontAwesomeIcons.powerOff),
title: Text(AppLocalization.of(context).logout),

View File

@ -129,7 +129,7 @@ ListUIState _removeFromListMultiselect(
ListUIState _clearListMultiselect(
ListUIState productListState, ClearStubMultiselect action) {
return productListState.rebuild((b) => b..selectedIds = null);
return productListState.rebuild((b) => b..selectedIds = ListBuilder());
}
final stubsReducer = combineReducers<StubState>([