Commit 185e0896 authored by Sai Srinivas's avatar Sai Srinivas
Browse files

changes by mohit

parent ee5b7a8e
...@@ -57,31 +57,48 @@ class _AllpaymentrequesitionlistsbymodesState ...@@ -57,31 +57,48 @@ class _AllpaymentrequesitionlistsbymodesState
bool shouldShowButtons = false; bool shouldShowButtons = false;
final numberFormat = NumberFormat.decimalPattern(); final numberFormat = NumberFormat.decimalPattern();
final ScrollController _scrollController = ScrollController();
@override @override
void initState() { void initState() {
// TODO: implement initState
super.initState(); super.initState();
_connectivity.initialise(); _connectivity.initialise();
_connectivity.myStream.listen((source) { _connectivity.myStream.listen((source) {
setState(() => _source = source); setState(() => _source = source);
}); });
WidgetsBinding.instance.addPostFrameCallback((timeStamp) { WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
cf = Commondaterangefilter(); cf = Commondaterangefilter();
var provider = Provider.of<Requestionlistprovider>( var provider = Provider.of<Requestionlistprovider>(
context, context,
listen: false, listen: false,
); );
final now = DateTime.now();
final range = DateTimeRange(
start: DateTime(now.year, now.month, now.day),
end: DateTime(now.year, now.month, now.day),
);
final dateRange = cf.getFormattedDateRange(range);
// print(dateRange);
provider.paymentRequestionListsAPIFunction(context, widget.mode, "", ""); provider.paymentRequestionListsAPIFunction(context, widget.mode, "", "");
_scrollController.addListener(() {
if (_scrollController.position.pixels >=
_scrollController.position.maxScrollExtent - 200 &&
!provider.isLoadingMore &&
provider.hasMoreData) {
provider.paymentRequestionListsAPIFunction(
context,
widget.mode,
"",
"",
append: true,
);
}
});
}); });
} }
@override
void dispose() {
_scrollController.dispose();
_connectivity.disposeStream();
super.dispose();
}
//'Requested', //'Requested',
// 'Level 1 Approved', // 'Level 1 Approved',
// 'Level 2 Approved', // 'Level 2 Approved',
...@@ -174,12 +191,12 @@ class _AllpaymentrequesitionlistsbymodesState ...@@ -174,12 +191,12 @@ class _AllpaymentrequesitionlistsbymodesState
return 18.0; return 18.0;
} }
@override // @override
void dispose() { // void dispose() {
// TODO: implement dispose // // TODO: implement dispose
super.dispose(); // super.dispose();
_connectivity.disposeStream(); // _connectivity.disposeStream();
} // }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
...@@ -320,30 +337,48 @@ class _AllpaymentrequesitionlistsbymodesState ...@@ -320,30 +337,48 @@ class _AllpaymentrequesitionlistsbymodesState
0xFFFFFFFF, 0xFFFFFFFF,
), ),
backgroundColor: AppColors.scaffold_bg_color, backgroundColor: AppColors.scaffold_bg_color,
body: body: provider.isLoading && requestLists.isEmpty
provider.isLoading
? Center( ? Center(
child: CircularProgressIndicator.adaptive( child: CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation<Color>( valueColor: AlwaysStoppedAnimation<Color>(AppColors.app_blue),
AppColors.app_blue,
),
), ),
) )
: requestLists.isNotEmpty : requestLists.isNotEmpty
? SizedBox( ? RefreshIndicator(
onRefresh: () async {
provider.resetPagination();
await provider.paymentRequestionListsAPIFunction(
context,
widget.mode,
"",
"",
);
},
child: Scrollbar( child: Scrollbar(
controller: _scrollController, // attach here
thumbVisibility: false, thumbVisibility: false,
child: ListView.builder( child: ListView.builder(
itemCount: requestLists.length, controller: _scrollController,
shrinkWrap: true, physics: const AlwaysScrollableScrollPhysics(),
physics: AlwaysScrollableScrollPhysics(), itemCount:
requestLists.length + (provider.hasMoreData ? 1 : 0),
itemBuilder: (context, index) { itemBuilder: (context, index) {
shouldShowSwipeButtons(requestLists[index].status); // loader row for pagination
if (requestLists.isEmpty) { if (index == requestLists.length) {
return SizedBox( return provider.isLoadingMore
child: Center(child: Text("No Data Available")), ? const Padding(
); padding: EdgeInsets.all(16),
child: Center(
child: CircularProgressIndicator(),
),
)
: const SizedBox.shrink();
} }
// Your swipe logic untouched
final request = requestLists[index];
shouldShowSwipeButtons(request.status);
return InkResponse( return InkResponse(
onTap: () async { onTap: () async {
HapticFeedback.selectionClick(); HapticFeedback.selectionClick();
...@@ -604,102 +639,13 @@ class _AllpaymentrequesitionlistsbymodesState ...@@ -604,102 +639,13 @@ class _AllpaymentrequesitionlistsbymodesState
), ),
) )
: Emptywidget(context), : Emptywidget(context),
); );
}, },
); );
} }
Future<void> _showOptionsSheet(BuildContext context) {
return showModalBottomSheet(
useSafeArea: true,
isDismissible: true,
isScrollControlled: true,
showDragHandle: true,
backgroundColor: Colors.white,
enableDrag: true,
context: context,
builder: (context) {
return StatefulBuilder(
builder: (context, setState) {
return SafeArea(
child: Consumer<Requestionlistprovider>(
builder: (context, provider, child) {
return Container(
margin: EdgeInsets.only(
bottom: 15,
left: 15,
right: 15,
top: 10,
),
padding: EdgeInsets.only(
bottom: MediaQuery.of(context).viewInsets.bottom,
),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
SizedBox(height: 15),
...List.generate(5, (index) {
final assetnames = [
"se_locate_customer",
"se_locate_customer",
"se_update_complaint",
"se_payment_details",
"se_payment_details",
];
final Headingnames = [
"Copy to Clipboard",
"Download CSV",
"Download XLSX",
"Download PDF",
"Print Data",
];
return ListTile(
onTap: () {
HapticFeedback.selectionClick();
switch (index) {
case 0:
provider.copyToClipboard(context);
break;
case 1:
provider.downloadCSV(context);
break;
case 2:
provider.downloadXLS(context);
break;
case 3:
provider.downloadPDF(context);
break;
case 4:
provider.printData(context);
break;
}
},
leading: SvgPicture.asset(
"assets/svg/${assetnames[index]}.svg",
),
title: Text(
Headingnames[index],
style: TextStyle(fontFamily: "JakartaMedium"),
),
trailing: SvgPicture.asset(
"assets/svg/arrow_right_new.svg",
),
);
}),
],
),
),
);
},
),
);
},
);
},
);
}
Future<void> _showLevelApprovalSheet(BuildContext context, paymentID) { Future<void> _showLevelApprovalSheet(BuildContext context, paymentID) {
return showModalBottomSheet( return showModalBottomSheet(
......
...@@ -28,41 +28,45 @@ class Paymentlistpaymentrequisition extends StatefulWidget { ...@@ -28,41 +28,45 @@ class Paymentlistpaymentrequisition extends StatefulWidget {
class _PaymentlistpaymentrequisitionState class _PaymentlistpaymentrequisitionState
extends State<Paymentlistpaymentrequisition> { extends State<Paymentlistpaymentrequisition> {
late Commondaterangefilter cf; late Commondaterangefilter cf;
final ScrollController _scrollController = ScrollController();
Map _source = {ConnectivityResult.mobile: true}; Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance; final MyConnectivity _connectivity = MyConnectivity.instance;
@override @override
void initState() { void initState() {
// TODO: implement initState
super.initState(); super.initState();
_connectivity.initialise(); _connectivity.initialise();
_connectivity.myStream.listen((source) { _connectivity.myStream.listen((source) {
setState(() => _source = source); setState(() => _source = source);
}); });
WidgetsBinding.instance.addPostFrameCallback((timeStamp) { WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
cf = Commondaterangefilter(); cf = Commondaterangefilter();
var provider = Provider.of<Paymentrequisitionpaymentslistprovider>( var provider = Provider.of<Paymentrequisitionpaymentslistprovider>(
context, context,
listen: false, listen: false,
); );
final now = DateTime.now(); provider.resetPagination();
final range = DateTimeRange(
start: DateTime(now.year, now.month, now.day),
end: DateTime(now.year, now.month, now.day),
);
final dateRange = cf.getFormattedDateRange(range);
provider.paymentsListAPI(context, '', ''); provider.paymentsListAPI(context, '', '');
_scrollController.addListener(() {
if (_scrollController.position.pixels >=
_scrollController.position.maxScrollExtent - 200) {
provider.loadMore(context, '', '');
}
});
}); });
} }
@override @override
void dispose() { void dispose() {
// TODO: implement dispose _scrollController.dispose();
super.dispose();
_connectivity.disposeStream(); _connectivity.disposeStream();
super.dispose();
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
switch (_source.keys.toList()[0]) { switch (_source.keys.toList()[0]) {
...@@ -145,8 +149,7 @@ class _PaymentlistpaymentrequisitionState ...@@ -145,8 +149,7 @@ class _PaymentlistpaymentrequisitionState
0xFFFFFFFF 0xFFFFFFFF
), ),
backgroundColor: AppColors.scaffold_bg_color, backgroundColor: AppColors.scaffold_bg_color,
body: body: provider.isLoading
provider.isLoading
? Center( ? Center(
child: CircularProgressIndicator.adaptive( child: CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation<Color>( valueColor: AlwaysStoppedAnimation<Color>(
...@@ -155,15 +158,25 @@ class _PaymentlistpaymentrequisitionState ...@@ -155,15 +158,25 @@ class _PaymentlistpaymentrequisitionState
), ),
) )
: requestLists.isNotEmpty : requestLists.isNotEmpty
? SizedBox( ? Scrollbar(
child: Scrollbar( controller: _scrollController,
thumbVisibility: false, thumbVisibility: false,
child: ListView.builder( child: ListView.builder(
itemCount: requestLists.length, controller: _scrollController,
shrinkWrap: true, itemCount: requestLists.length +
physics: AlwaysScrollableScrollPhysics(), (provider.hasMoreData ? 1 : 0),
itemBuilder: (context, index) { itemBuilder: (context, index) {
if (index == requestLists.length) {
return provider.isLoadingMore
? const Padding(
padding: EdgeInsets.all(16),
child: Center(
child: CircularProgressIndicator()),
)
: const SizedBox.shrink();
}
final payment = requestLists[index];
return InkResponse( return InkResponse(
onTap: () async { onTap: () async {
HapticFeedback.selectionClick(); HapticFeedback.selectionClick();
...@@ -280,7 +293,6 @@ class _PaymentlistpaymentrequisitionState ...@@ -280,7 +293,6 @@ class _PaymentlistpaymentrequisitionState
); );
}, },
), ),
),
) )
: Emptywidget(context), : Emptywidget(context),
); );
......
...@@ -29,24 +29,41 @@ class Paymentreceiptlist extends StatefulWidget { ...@@ -29,24 +29,41 @@ class Paymentreceiptlist extends StatefulWidget {
class _PaymentreceiptlistState extends State<Paymentreceiptlist> { class _PaymentreceiptlistState extends State<Paymentreceiptlist> {
Map _source = {ConnectivityResult.mobile: true}; Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance; final MyConnectivity _connectivity = MyConnectivity.instance;
final ScrollController _scrollController = ScrollController();
@override @override
void initState() { void initState() {
// TODO: implement initState
super.initState(); super.initState();
_connectivity.initialise(); _connectivity.initialise();
_connectivity.myStream.listen((source) { _connectivity.myStream.listen((source) {
setState(() => _source = source); setState(() => _source = source);
}); });
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
WidgetsBinding.instance.addPostFrameCallback((_) {
var provider = Provider.of<Paymentreceiptsprovider>( var provider = Provider.of<Paymentreceiptsprovider>(
context, context,
listen: false, listen: false,
); );
provider.resetPagination();
provider.paymentsListAPI(context, '', ''); provider.paymentsListAPI(context, '', '');
_scrollController.addListener(() {
if (_scrollController.position.pixels >=
_scrollController.position.maxScrollExtent - 200) {
provider.loadMore(context, '', '');
}
}); });
});
}
@override
void dispose() {
_scrollController.dispose();
_connectivity.disposeStream();
super.dispose();
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
switch (_source.keys.toList()[0]) { switch (_source.keys.toList()[0]) {
...@@ -77,6 +94,7 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> { ...@@ -77,6 +94,7 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> {
Widget _scaffold(BuildContext context) { Widget _scaffold(BuildContext context) {
return Consumer<Paymentreceiptsprovider>( return Consumer<Paymentreceiptsprovider>(
builder: (context, provider, child) { builder: (context, provider, child) {
final receipts = provider.receiptsList;
final requestLists = provider.receiptsList; final requestLists = provider.receiptsList;
return Scaffold( return Scaffold(
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
...@@ -129,8 +147,7 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> { ...@@ -129,8 +147,7 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> {
0xFFFFFFFF, 0xFFFFFFFF,
), ),
backgroundColor: AppColors.scaffold_bg_color, backgroundColor: AppColors.scaffold_bg_color,
body: body: provider.isLoading
provider.isLoading
? Center( ? Center(
child: CircularProgressIndicator.adaptive( child: CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation<Color>( valueColor: AlwaysStoppedAnimation<Color>(
...@@ -138,14 +155,25 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> { ...@@ -138,14 +155,25 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> {
), ),
), ),
) )
: requestLists.isNotEmpty : receipts.isNotEmpty
? SizedBox( ? Scrollbar(
child: Scrollbar( controller: _scrollController,
child: ListView.builder( child: ListView.builder(
itemCount: requestLists.length, controller: _scrollController,
shrinkWrap: true, itemCount:
physics: AlwaysScrollableScrollPhysics(), receipts.length + (provider.hasMoreData ? 1 : 0),
itemBuilder: (context, index) { itemBuilder: (context, index) {
if (index == receipts.length) {
return provider.isLoadingMore
? const Padding(
padding: EdgeInsets.all(16),
child: Center(
child: CircularProgressIndicator()),
)
: const SizedBox.shrink();
}
final receipt = receipts[index];
return InkResponse( return InkResponse(
onTap: () async { onTap: () async {
HapticFeedback.selectionClick(); HapticFeedback.selectionClick();
...@@ -257,7 +285,6 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> { ...@@ -257,7 +285,6 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> {
); );
}, },
), ),
),
) )
: Emptywidget(context), : Emptywidget(context),
); );
......
...@@ -66,7 +66,7 @@ class _HrmdashboardScreenState extends State<HrmdashboardScreen> { ...@@ -66,7 +66,7 @@ class _HrmdashboardScreenState extends State<HrmdashboardScreen> {
], ],
), ),
), ),
backgroundColor: const Color(0xffF6F6F8), backgroundColor: AppColors.scaffold_bg_color,
body: SingleChildScrollView( body: SingleChildScrollView(
child: Column( child: Column(
children: [ children: [
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -27,31 +27,38 @@ class _TpcagentissuelistState extends State<Tpcagentissuelist> { ...@@ -27,31 +27,38 @@ class _TpcagentissuelistState extends State<Tpcagentissuelist> {
Map _source = {ConnectivityResult.mobile: true}; Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance; final MyConnectivity _connectivity = MyConnectivity.instance;
final ScrollController _scrollController = ScrollController();
@override @override
void initState() { void initState() {
// TODO: implement initState
super.initState(); super.initState();
_connectivity.initialise(); _connectivity.initialise();
_connectivity.myStream.listen((source) { _connectivity.myStream.listen((source) {
setState(() => _source = source); setState(() => _source = source);
}); });
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Tpcagentsprovider>(
context,
listen: false,
);
WidgetsBinding.instance.addPostFrameCallback((_) {
final provider = Provider.of<Tpcagentsprovider>(context, listen: false);
provider.resetPagination(); // clear before first load
provider.TPCAgentsIssueListAPIFunction(context); provider.TPCAgentsIssueListAPIFunction(context);
}); });
_scrollController.addListener(() {
if (_scrollController.position.pixels >=
_scrollController.position.maxScrollExtent - 200) {
final provider = Provider.of<Tpcagentsprovider>(context, listen: false);
provider.loadMoreIssues(context);
}
});
} }
@override @override
void dispose() { void dispose() {
// TODO: implement dispose _scrollController.dispose();
super.dispose();
_connectivity.disposeStream(); _connectivity.disposeStream();
super.dispose();
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
switch (_source.keys.toList()[0]) { switch (_source.keys.toList()[0]) {
...@@ -108,27 +115,35 @@ class _TpcagentissuelistState extends State<Tpcagentissuelist> { ...@@ -108,27 +115,35 @@ class _TpcagentissuelistState extends State<Tpcagentissuelist> {
0xFFFFFFFF 0xFFFFFFFF
), ),
backgroundColor: AppColors.scaffold_bg_color, backgroundColor: AppColors.scaffold_bg_color,
body: body: provider.isLoading && tpcAgentsIssueList.isEmpty
provider.isLoading ? Center(
? Center(child: CircularProgressIndicator.adaptive( child: CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation<Color>( valueColor:
AppColors.app_blue) AlwaysStoppedAnimation<Color>(AppColors.app_blue),
)) ),
: tpcAgentsIssueList.isNotEmpty ? SingleChildScrollView( )
child: Column( : tpcAgentsIssueList.isNotEmpty
children: [ ? RefreshIndicator(
ListView.builder( onRefresh: () async {
itemCount: tpcAgentsIssueList.length, provider.resetPagination();
shrinkWrap: true, await provider.TPCAgentsIssueListAPIFunction(context);
physics: NeverScrollableScrollPhysics(), },
child: ListView.builder(
controller: _scrollController,
itemCount: tpcAgentsIssueList.length +
(provider.hasMoreData ? 1 : 0),
itemBuilder: (context, index) { itemBuilder: (context, index) {
if (tpcAgentsIssueList.isEmpty) { if (index == tpcAgentsIssueList.length) {
return SizedBox( return provider.isLoadingMore
? const Padding(
padding: EdgeInsets.all(16),
child: Center( child: Center(
child: Text("No Data Available"), child: CircularProgressIndicator()),
), )
); : const SizedBox.shrink();
} }
final issue = tpcAgentsIssueList[index];
return InkResponse( return InkResponse(
onTap: () async { onTap: () async {
Navigator.push( Navigator.push(
...@@ -233,9 +248,8 @@ class _TpcagentissuelistState extends State<Tpcagentissuelist> { ...@@ -233,9 +248,8 @@ class _TpcagentissuelistState extends State<Tpcagentissuelist> {
); );
}, },
), ),
], )
), : Emptywidget(context),
) : Emptywidget(context),
); );
}, },
); );
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev ...@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts # In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix. # of the product and file versions while build-number is used as the build suffix.
version: 1.0.103+111 version: 1.0.104+112
environment: environment:
sdk: ^3.7.2 sdk: ^3.7.2
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment