Merge branch 'develop'
This commit is contained in:
commit
a0fcc6b5b6
|
|
@ -86,7 +86,7 @@ jobs:
|
||||||
draft: false
|
draft: false
|
||||||
prerelease: false
|
prerelease: false
|
||||||
title: "Latest Release"
|
title: "Latest Release"
|
||||||
automatic_release_tag: "v5.0.147"
|
automatic_release_tag: "v5.0.148"
|
||||||
files: |
|
files: |
|
||||||
${{ github.workspace }}/artifacts/Invoice-Ninja-Archive
|
${{ github.workspace }}/artifacts/Invoice-Ninja-Archive
|
||||||
${{ github.workspace }}/artifacts/Invoice-Ninja-Hash
|
${{ github.workspace }}/artifacts/Invoice-Ninja-Hash
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,7 @@
|
||||||
</screenshots>
|
</screenshots>
|
||||||
<content_rating type="oars-1.1"/>
|
<content_rating type="oars-1.1"/>
|
||||||
<releases>
|
<releases>
|
||||||
|
<release version="5.0.148" date="2024-01-08"/>
|
||||||
<release version="5.0.147" date="2024-01-02"/>
|
<release version="5.0.147" date="2024-01-02"/>
|
||||||
<release version="5.0.146" date="2023-12-20"/>
|
<release version="5.0.146" date="2023-12-20"/>
|
||||||
<release version="5.0.145" date="2023-12-03"/>
|
<release version="5.0.145" date="2023-12-03"/>
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ class Constants {
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO remove version once #46609 is fixed
|
// TODO remove version once #46609 is fixed
|
||||||
const String kClientVersion = '5.0.147';
|
const String kClientVersion = '5.0.148';
|
||||||
const String kMinServerVersion = '5.0.4';
|
const String kMinServerVersion = '5.0.4';
|
||||||
|
|
||||||
const String kAppName = 'Invoice Ninja';
|
const String kAppName = 'Invoice Ninja';
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,9 @@ class BankAccountScreen extends StatelessWidget {
|
||||||
void connectAccounts(BuildContext context) {
|
void connectAccounts(BuildContext context) {
|
||||||
final localization = AppLocalization.of(context)!;
|
final localization = AppLocalization.of(context)!;
|
||||||
|
|
||||||
if (isSelfHosted(context)) {
|
if (!supportsLatestFeatures('5.8.0')) {
|
||||||
|
_connectAccounts(context, BankAccountEntity.INTEGRATION_TYPE_YODLEE);
|
||||||
|
} else if (isSelfHosted(context)) {
|
||||||
_connectAccounts(context, BankAccountEntity.INTEGRATION_TYPE_NORDIGEN);
|
_connectAccounts(context, BankAccountEntity.INTEGRATION_TYPE_NORDIGEN);
|
||||||
} else {
|
} else {
|
||||||
showDialog(
|
showDialog(
|
||||||
|
|
|
||||||
|
|
@ -821,6 +821,19 @@ class _InvoiceEditItemsDesktopState extends State<InvoiceEditItemsDesktop> {
|
||||||
EntityAutocompleteListTile(
|
EntityAutocompleteListTile(
|
||||||
onTap: (entity) => onSelected(
|
onTap: (entity) => onSelected(
|
||||||
entity as ProductEntity),
|
entity as ProductEntity),
|
||||||
|
overrideSuggestedLabel:
|
||||||
|
(entity) {
|
||||||
|
var label =
|
||||||
|
entity.listDisplayName;
|
||||||
|
if (state.company
|
||||||
|
.trackInventory) {
|
||||||
|
final product = entity
|
||||||
|
as ProductEntity;
|
||||||
|
label +=
|
||||||
|
' [${product.stockQuantity}]';
|
||||||
|
}
|
||||||
|
return label;
|
||||||
|
},
|
||||||
overrideSuggestedAmount:
|
overrideSuggestedAmount:
|
||||||
(entity) {
|
(entity) {
|
||||||
final product =
|
final product =
|
||||||
|
|
|
||||||
|
|
@ -268,11 +268,6 @@ class InvoiceOverview extends StatelessWidget {
|
||||||
widgets.add(EntityListTile(entity: project, isFilter: isFilter));
|
widgets.add(EntityListTile(entity: project, isFilter: isFilter));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((invoice.invoiceId ?? '').isNotEmpty) {
|
|
||||||
final linkedInvoice = state.invoiceState.get(invoice.invoiceId!);
|
|
||||||
widgets.add(EntityListTile(entity: linkedInvoice, isFilter: isFilter));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (invoice.expenseId.isNotEmpty) {
|
if (invoice.expenseId.isNotEmpty) {
|
||||||
final expense = state.vendorState.get(invoice.expenseId);
|
final expense = state.vendorState.get(invoice.expenseId);
|
||||||
widgets.add(EntityListTile(entity: expense, isFilter: isFilter));
|
widgets.add(EntityListTile(entity: expense, isFilter: isFilter));
|
||||||
|
|
@ -303,16 +298,16 @@ class InvoiceOverview extends StatelessWidget {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (invoice.isQuote || invoice.isCredit) {
|
final relatedInvoice = state.invoiceState.map[invoice.invoiceId] ??
|
||||||
final relatedInvoice = state.invoiceState.map[invoice.invoiceId] ??
|
InvoiceEntity(id: invoice.invoiceId);
|
||||||
InvoiceEntity(id: invoice.invoiceId);
|
if ((invoice.invoiceId ?? '').isNotEmpty) {
|
||||||
if ((invoice.invoiceId ?? '').isNotEmpty) {
|
widgets.add(EntityListTile(
|
||||||
widgets.add(EntityListTile(
|
isFilter: isFilter,
|
||||||
isFilter: isFilter,
|
entity: relatedInvoice,
|
||||||
entity: relatedInvoice,
|
));
|
||||||
));
|
}
|
||||||
}
|
|
||||||
} else {
|
if (invoice.isInvoice) {
|
||||||
final relatedQuote =
|
final relatedQuote =
|
||||||
memoizedInvoiceQuoteSelector(invoice, state.quoteState.map);
|
memoizedInvoiceQuoteSelector(invoice, state.quoteState.map);
|
||||||
if (relatedQuote != null) {
|
if (relatedQuote != null) {
|
||||||
|
|
|
||||||
|
|
@ -57,9 +57,11 @@ bool supportsLatestFeatures(String version) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
if (state.isSelfHosted) {
|
if (state.isSelfHosted) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
if (version.isEmpty) {
|
if (version.isEmpty) {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
name: invoiceninja_flutter
|
name: invoiceninja_flutter
|
||||||
description: Client for Invoice Ninja
|
description: Client for Invoice Ninja
|
||||||
version: 5.0.147+147
|
version: 5.0.148+148
|
||||||
homepage: https://invoiceninja.com
|
homepage: https://invoiceninja.com
|
||||||
documentation: https://invoiceninja.github.io
|
documentation: https://invoiceninja.github.io
|
||||||
publish_to: none
|
publish_to: none
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
name: invoiceninja_flutter
|
name: invoiceninja_flutter
|
||||||
description: Client for Invoice Ninja
|
description: Client for Invoice Ninja
|
||||||
version: 5.0.147+147
|
version: 5.0.148+148
|
||||||
homepage: https://invoiceninja.com
|
homepage: https://invoiceninja.com
|
||||||
documentation: https://invoiceninja.github.io
|
documentation: https://invoiceninja.github.io
|
||||||
publish_to: none
|
publish_to: none
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
name: invoiceninja
|
name: invoiceninja
|
||||||
version: '5.0.147'
|
version: '5.0.148'
|
||||||
summary: Create invoices, accept payments, track expenses & time tasks
|
summary: Create invoices, accept payments, track expenses & time tasks
|
||||||
description: "### Note: if the app fails to run using `snap run invoiceninja` it may help to run `/snap/invoiceninja/current/bin/invoiceninja` instead
|
description: "### Note: if the app fails to run using `snap run invoiceninja` it may help to run `/snap/invoiceninja/current/bin/invoiceninja` instead
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue