Users
This commit is contained in:
parent
17a901ec4a
commit
051fd0f34f
|
|
@ -334,6 +334,8 @@ abstract class VendorEntity extends Object
|
|||
|
||||
bool get hasCurrency => currencyId != null && currencyId.isNotEmpty;
|
||||
|
||||
bool get hasUser => assignedUserId != null && assignedUserId.isNotEmpty;
|
||||
|
||||
static Serializer<VendorEntity> get serializer => _$vendorEntitySerializer;
|
||||
|
||||
bool get hasNameSet {
|
||||
|
|
|
|||
|
|
@ -67,7 +67,10 @@ class _ExpenseViewState extends State<ExpenseView>
|
|||
children: <Widget>[
|
||||
RefreshIndicator(
|
||||
onRefresh: () => viewModel.onRefreshed(context),
|
||||
child: ExpenseOverview(viewModel: viewModel),
|
||||
child: ExpenseOverview(
|
||||
viewModel: viewModel,
|
||||
isFilter: widget.isFilter,
|
||||
),
|
||||
),
|
||||
RefreshIndicator(
|
||||
onRefresh: () => viewModel.onRefreshed(context),
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import 'package:invoiceninja_flutter/constants.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/FieldGrid.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/entities/entity_list_tile.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/entities/entity_state_title.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/entity_header.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/lists/list_divider.dart';
|
||||
|
|
@ -15,9 +16,11 @@ class ExpenseOverview extends StatelessWidget {
|
|||
const ExpenseOverview({
|
||||
Key key,
|
||||
@required this.viewModel,
|
||||
@required this.isFilter,
|
||||
}) : super(key: key);
|
||||
|
||||
final ExpenseViewVM viewModel;
|
||||
final bool isFilter;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
@ -29,6 +32,7 @@ class ExpenseOverview extends StatelessWidget {
|
|||
final client = state.clientState.map[expense.clientId];
|
||||
final invoice = state.invoiceState.map[expense.invoiceId];
|
||||
final category = company.expenseCategoryMap[expense.categoryId];
|
||||
final user = state.userState.get(expense.assignedUserId);
|
||||
|
||||
final fields = <String, String>{
|
||||
localization.category: category?.name,
|
||||
|
|
@ -119,62 +123,10 @@ class ExpenseOverview extends StatelessWidget {
|
|||
],
|
||||
FieldGrid(fields),
|
||||
ListDivider(),
|
||||
vendor == null
|
||||
? SizedBox()
|
||||
: Material(
|
||||
color: Theme.of(context).canvasColor,
|
||||
child: ListTile(
|
||||
title: EntityStateTitle(entity: vendor),
|
||||
leading: Icon(getEntityIcon(EntityType.vendor), size: 18),
|
||||
trailing: Icon(Icons.navigate_next),
|
||||
onTap: () =>
|
||||
viewModel.onEntityPressed(context, EntityType.vendor),
|
||||
onLongPress: () => viewModel.onEntityPressed(
|
||||
context, EntityType.vendor, true),
|
||||
),
|
||||
),
|
||||
vendor == null
|
||||
? SizedBox()
|
||||
: Container(
|
||||
color: Theme.of(context).backgroundColor,
|
||||
height: 12.0,
|
||||
),
|
||||
client == null
|
||||
? SizedBox()
|
||||
: Material(
|
||||
color: Theme.of(context).canvasColor,
|
||||
child: ListTile(
|
||||
title: EntityStateTitle(entity: client),
|
||||
leading: Icon(getEntityIcon(EntityType.client), size: 18),
|
||||
trailing: Icon(Icons.navigate_next),
|
||||
onTap: () =>
|
||||
viewModel.onEntityPressed(context, EntityType.client),
|
||||
onLongPress: () => viewModel.onEntityPressed(
|
||||
context, EntityType.client, true),
|
||||
),
|
||||
),
|
||||
client == null
|
||||
? SizedBox()
|
||||
: Container(
|
||||
color: Theme.of(context).backgroundColor,
|
||||
height: 12.0,
|
||||
),
|
||||
invoice == null
|
||||
? SizedBox()
|
||||
: Material(
|
||||
color: Theme.of(context).canvasColor,
|
||||
child: ListTile(
|
||||
title: EntityStateTitle(
|
||||
entity: invoice,
|
||||
),
|
||||
leading: Icon(getEntityIcon(EntityType.invoice), size: 18),
|
||||
trailing: Icon(Icons.navigate_next),
|
||||
onTap: () =>
|
||||
viewModel.onEntityPressed(context, EntityType.invoice),
|
||||
onLongPress: () => viewModel.onEntityPressed(
|
||||
context, EntityType.invoice, true),
|
||||
),
|
||||
),
|
||||
EntityListTile(entity: vendor, isFilter: isFilter),
|
||||
EntityListTile(entity: client, isFilter: isFilter),
|
||||
EntityListTile(entity: invoice, isFilter: isFilter),
|
||||
EntityListTile(entity: user, isFilter: isFilter),
|
||||
..._buildDetailsList(),
|
||||
if ((expense.publicNotes ?? '').isNotEmpty) ...[
|
||||
IconMessage(expense.publicNotes),
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ class VendorOverview extends StatelessWidget {
|
|||
final state = StoreProvider.of<AppState>(context).state;
|
||||
final statics = state.staticState;
|
||||
final fields = <String, String>{};
|
||||
final user =
|
||||
vendor.hasUser ? state.userState.get(vendor.assignedUserId) : null;
|
||||
|
||||
if (vendor.hasCurrency && vendor.currencyId != company.currencyId) {
|
||||
fields[VendorFields.currencyId] =
|
||||
|
|
@ -70,6 +72,11 @@ class VendorOverview extends StatelessWidget {
|
|||
IconMessage(vendor.privateNotes, iconData: Icons.lock),
|
||||
ListDivider()
|
||||
],
|
||||
if (vendor.hasUser)
|
||||
EntityListTile(
|
||||
entity: user,
|
||||
isFilter: isFilter,
|
||||
),
|
||||
FieldGrid(fields),
|
||||
ListDivider(),
|
||||
EntitiesListTile(
|
||||
|
|
|
|||
Loading…
Reference in New Issue