Aidra Connect 10.0.2+16
Aidra Connect Mobile Application
Loading...
Searching...
No Matches
transaction_summary_view.dart
Go to the documentation of this file.
1import 'package:connect/core/localization/app_localizations.dart';
2
3import '/core/ui/widgets/custom_card.dart';
4import '/core/utils/collections_utils.dart';
5import '/features/collections/domain/entities/collection_entity.dart';
6import '/features/collections/presentation/screens/transaction_history_screen/views/competed_transactions_view/views/transactions_summary_view/widgets/transaction_card.dart';
7import '/features/collections/presentation/screens/transaction_history_screen/views/competed_transactions_view/views/transactions_summary_view/widgets/transactions_summary_card.dart';
8import 'package:flutter/material.dart';
9import 'package:flutter_screenutil/flutter_screenutil.dart';
10
13 super.key,
14 required this.collections,
15 required this.title,
16 });
17
18 final List<CollectionEntity> collections;
19 final String title;
20
21 @override
22 State<TransactionSummaryView> createState() => _TransactionSummaryViewState();
23}
24
25class _TransactionSummaryViewState extends State<TransactionSummaryView> {
26 @override
27 Widget build(BuildContext context) {
28 return ListView(
29 padding: EdgeInsets.symmetric(horizontal: 15.sp, vertical: 15.sp),
30 children: [
31 TransactionsSummaryCard(
32 title: widget.title,
33 totalVolume: calculateCollectionsTotalQuantity(widget.collections),
34 totalCollections: widget.collections.length,
35 ),
36 SizedBox(height: 15.sp),
38 padding: EdgeInsets.zero,
39 child: ListView.separated(
40 padding: EdgeInsets.zero,
41 physics: const NeverScrollableScrollPhysics(),
42 shrinkWrap: true,
43 itemCount: widget.collections.length,
44 separatorBuilder: (context, index) => Divider(
45 height: 0.sp,
46 indent: 10,
47 endIndent: 10,
48 ),
49 itemBuilder: (context, index) => TransactionCard(
50 collection: widget.collections[index],
51 ),
52 ),
53 ),
54 ],
55 );
56 }
57}
58
59class WeeklyView extends StatefulWidget {
60 const WeeklyView({
61 super.key,
62 required this.collections,
63 required this.title,
64 });
65
66 final List<CollectionEntity> collections;
67 final String title;
68
69 @override
70 State<WeeklyView> createState() => _WeeklyViewState();
71}
72
73class _WeeklyViewState extends State<WeeklyView> {
74 @override
75 Widget build(BuildContext context) {
76 return ListView(
77 padding: EdgeInsets.symmetric(horizontal: 15.sp, vertical: 15.sp),
78 children: [
79 TransactionsSummaryCard(
80 title: 'COMPLETED THIS WEEK',
81 totalVolume: calculateCollectionsTotalQuantity(widget.collections),
82 totalCollections: widget.collections.length,
83 ),
84 SizedBox(height: 15.sp),
86 padding: EdgeInsets.zero,
87 child: ListView.separated(
88 padding: EdgeInsets.zero,
89 physics: const NeverScrollableScrollPhysics(),
90 shrinkWrap: true,
91 itemCount: widget.collections.length,
92 separatorBuilder: (context, index) => Divider(
93 height: 0.sp,
94 indent: 10,
95 endIndent: 10,
96 ),
97 itemBuilder: (context, index) => TransactionCard(
98 collection: widget.collections[index],
99 ),
100 ),
101 ),
102 ],
103 );
104 }
105}
106
107class MonthlyView extends StatefulWidget {
109 super.key,
110 required this.collections,
111 required this.title,
112 });
113
114 final List<CollectionEntity> collections;
115 final String title;
116
117 @override
118 State<MonthlyView> createState() => _MonthlyViewState();
119}
120
121class _MonthlyViewState extends State<MonthlyView> {
122 @override
123 Widget build(BuildContext context) {
124 return ListView(
125 padding: EdgeInsets.symmetric(horizontal: 15.sp, vertical: 15.sp),
126 children: [
127 TransactionsSummaryCard(
128 title: AppLocalizations.of(context).translate('COMPLETED THIS MONTH'),
129 totalVolume: calculateCollectionsTotalQuantity(widget.collections),
130 totalCollections: widget.collections.length,
131 ),
132 SizedBox(height: 15.sp),
134 padding: EdgeInsets.zero,
135 child: ListView.separated(
136 padding: EdgeInsets.zero,
137 physics: const NeverScrollableScrollPhysics(),
138 shrinkWrap: true,
139 itemCount: widget.collections.length,
140 separatorBuilder: (context, index) => Divider(
141 height: 0.sp,
142 indent: 10,
143 endIndent: 10,
144 ),
145 itemBuilder: (context, index) => TransactionCard(
146 collection: widget.collections[index],
147 ),
148 ),
149 ),
150 ],
151 );
152 }
153}
class CalenderTransactionsSummaryVeiw extends StatefulWidget collection
String translate(String key)
static AppLocalizations of(BuildContext context)
override State< MonthlyView > createState()
override State< TransactionSummaryView > createState()
const TransactionSummaryView({ super.key, required this.collections, required this.title, })
const MonthlyView({ super.key, required this.collections, required this.title, })
final List< CollectionEntity > collections
override State< WeeklyView > createState()
const WeeklyView({ super.key, required this.collections, required this.title, })
num calculateCollectionsTotalQuantity(List< CollectionEntity > collections)
const CustomCard({ super.key, required this.child, this.padding, this.bgColor, })
final Widget child
final EdgeInsets padding
override Widget build(BuildContext context)
final List< CollectionEntity > collections
const TransactionSummaryView({ super.key, required this.collections, required this.title, })
const WeeklyView({ super.key, required this.collections, required this.title, })
const MonthlyView({ super.key, required this.collections, required this.title, })
final String title