This commit is contained in:
Hillel Coren 2020-10-28 12:39:48 +02:00
parent 70c6388461
commit b19eca38ea
7 changed files with 31 additions and 13 deletions

View File

@ -394,6 +394,12 @@ const String kExpenseStatusLogged = '1';
const String kExpenseStatusPending = '2';
const String kExpenseStatusInvoiced = '3';
const kExpenseStatuses = {
kExpenseStatusLogged: 'logged',
kExpenseStatusPending: 'pending',
kExpenseStatusInvoiced: 'invoiced',
};
const String kDefaultCurrencyId = '1';
const String kDefaultDateFormat = '5';
const String kDefaultAccentColor = '#0091EA';

View File

@ -138,6 +138,11 @@ class EntityType extends EnumClass {
return [
EntityType.vendor,
EntityType.project,
EntityType.expenseCategory,
];
case EntityType.expenseCategory:
return [
EntityType.expense,
];
default:
return [];

View File

@ -228,7 +228,6 @@ abstract class AppState implements Built<AppState, AppStateBuilder> {
// STARTER: states switch map - do not remove comment
case EntityType.expenseCategory:
return expenseCategoryState.map;
case EntityType.recurringInvoice:
return recurringInvoiceState.map;
case EntityType.webhook:

View File

@ -22,13 +22,7 @@ class ErrorDialog extends StatelessWidget {
return AlertDialog(
title: Text(localization.error),
content: error != null
? ConstrainedBox(
child: Text(error.toString()),
constraints: BoxConstraints(
maxWidth: 600,
maxHeight: 400,
),
)
? Text(error.toString())
: SizedBox(),
actions: [
if (clearErrorOnDismiss && !Config.DEMO_MODE)

View File

@ -50,6 +50,11 @@ class EntityStatusChip extends StatelessWidget {
label = kCreditStatuses[credit.statusId];
color = CreditStatusColors.colors[credit.statusId];
break;
case EntityType.expense:
final expense = entity as ExpenseEntity;
label = kExpenseStatuses[expense.statusId];
color = ExpenseStatusColors.colors[expense.statusId];
break;
default:
print(
'ERROR: unhandled entityType ${entity.entityType} in entity_status_chip.dart');

View File

@ -640,6 +640,11 @@ class EntityScreens extends StatelessWidget {
? RecurringInvoiceEditScreen()
: RecurringInvoiceViewScreen(isFilter: true);
break;
case EntityType.expenseCategory:
leftFilterChild = editingFIlterEntity
? ExpenseCategoryEditScreen()
: ExpenseCategoryViewScreen(isFilter: true);
break;
default:
print(
'Error: filter view not implemented for ${uiState.filterEntityType}');

View File

@ -7,6 +7,7 @@ import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/ui/app/actions_menu_button.dart';
import 'package:invoiceninja_flutter/ui/app/dismissible_entity.dart';
import 'package:invoiceninja_flutter/ui/app/entities/entity_status_chip.dart';
import 'package:invoiceninja_flutter/ui/app/entity_state_label.dart';
import 'package:invoiceninja_flutter/utils/formatting.dart';
import 'package:invoiceninja_flutter/utils/platforms.dart';
@ -131,6 +132,7 @@ class ExpenseListItem extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(expense.number),
if (!expense.isActive) EntityStateLabel(expense)
],
),
@ -142,11 +144,11 @@ class ExpenseListItem extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
(expense.number ?? '') +
(expense.documents.isNotEmpty
? ' 📎'
: ''),
style: textStyle),
(expense.publicNotes ?? '') +
(expense.documents.isNotEmpty ? ' 📎' : ''),
style: textStyle,
maxLines: 1,
),
Text(subtitle ?? filterMatch,
maxLines: 3,
overflow: TextOverflow.ellipsis,
@ -167,6 +169,8 @@ class ExpenseListItem extends StatelessWidget {
style: textStyle,
textAlign: TextAlign.end,
),
SizedBox(width: 25),
EntityStatusChip(entity: expense),
],
),
),