Transactions

This commit is contained in:
Hillel Coren 2022-10-24 17:11:57 +03:00
parent f2cbcf408d
commit 2f480bb0b0
2 changed files with 27 additions and 18 deletions

View File

@ -26,6 +26,7 @@ class ViewScaffold extends StatelessWidget {
this.appBarBottom, this.appBarBottom,
this.isFilter = false, this.isFilter = false,
this.onBackPressed, this.onBackPressed,
this.title,
}); });
final bool isFilter; final bool isFilter;
@ -34,6 +35,7 @@ class ViewScaffold extends StatelessWidget {
final Function onBackPressed; final Function onBackPressed;
final Widget floatingActionButton; final Widget floatingActionButton;
final Widget appBarBottom; final Widget appBarBottom;
final String title;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -43,12 +45,14 @@ class ViewScaffold extends StatelessWidget {
final userCompany = state.userCompany; final userCompany = state.userCompany;
final isSettings = entity.entityType.isSetting; final isSettings = entity.entityType.isSetting;
String title; String appBarTitle;
if (entity.isNew) { if (title != null) {
title = ''; appBarTitle = title;
} else if (entity.isNew) {
appBarTitle = '';
} else { } else {
final presenter = EntityPresenter().initialize(entity, context); final presenter = EntityPresenter().initialize(entity, context);
title = presenter.title(isNarrow: isMobile(context)); appBarTitle = presenter.title(isNarrow: isMobile(context));
} }
Widget leading; Widget leading;
@ -97,8 +101,8 @@ class ViewScaffold extends StatelessWidget {
leading: leading, leading: leading,
automaticallyImplyLeading: isMobile(context), automaticallyImplyLeading: isMobile(context),
title: CopyToClipboard( title: CopyToClipboard(
value: title, value: appBarTitle,
child: Text(title), child: Text(appBarTitle),
), ),
bottom: appBarBottom, bottom: appBarBottom,
actions: entity.isNew actions: entity.isNew

View File

@ -37,27 +37,32 @@ class _TransactionViewState extends State<TransactionView> {
final viewModel = widget.viewModel; final viewModel = widget.viewModel;
final transactions = viewModel.transactions; final transactions = viewModel.transactions;
final transaction = final transaction =
transactions.isNotEmpty ? transactions.first : TransactionEntity(); transactions.isEmpty ? TransactionEntity() : transactions.first;
final localization = AppLocalization.of(context); final localization = AppLocalization.of(context);
final state = viewModel.state; final state = viewModel.state;
return ViewScaffold( return ViewScaffold(
isFilter: widget.isFilter, isFilter: widget.isFilter,
entity: transaction, entity: transaction,
title: transactions.length > 1
? '${transactions.length} ${localization.selected}'
: null,
body: Column( body: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
EntityHeader( if (transactions.length == 1) ...[
entity: transaction, EntityHeader(
label: transaction.isDeposit entity: transaction,
? localization.deposit label: transaction.isDeposit
: localization.withdrawal, ? localization.deposit
value: formatNumber(transaction.amount, context, : localization.withdrawal,
currencyId: transaction.currencyId), value: formatNumber(transaction.amount, context,
secondLabel: localization.date, currencyId: transaction.currencyId),
secondValue: formatDate(transaction.date, context), secondLabel: localization.date,
), secondValue: formatDate(transaction.date, context),
ListDivider(), ),
ListDivider(),
],
if (transaction.isConverted) ...[ if (transaction.isConverted) ...[
if (transaction.isDeposit) if (transaction.isDeposit)
...transaction.invoiceIds ...transaction.invoiceIds