Commit cdad3e17 authored by Sai Srinivas's avatar Sai Srinivas
Browse files

09-06-2025 By Sai Srinivas

issues and Alignments and modifications
parent 60c0bef0
...@@ -9,10 +9,8 @@ import 'package:flutter/material.dart'; ...@@ -9,10 +9,8 @@ import 'package:flutter/material.dart';
import 'package:flutter_download_manager/flutter_download_manager.dart'; import 'package:flutter_download_manager/flutter_download_manager.dart';
import 'package:flutter_downloader/flutter_downloader.dart'; import 'package:flutter_downloader/flutter_downloader.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart'; import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Utils/app_colors.dart'; import 'package:generp/Utils/app_colors.dart';
import 'package:generp/Utils/commonWidgets.dart'; import 'package:generp/Utils/commonWidgets.dart';
import 'package:generp/services/api_calling.dart';
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import 'dart:math'; import 'dart:math';
...@@ -20,9 +18,9 @@ import 'dart:math'; ...@@ -20,9 +18,9 @@ import 'dart:math';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
const MAX_PROGRESS = 100; // const MAX_PROGRESS = 100;
Future main() async { Future runErpScreenApp() async {
await FlutterDownloader.initialize( await FlutterDownloader.initialize(
debug: true, // optional: set false to disable printing logs to console debug: true, // optional: set false to disable printing logs to console
); );
...@@ -161,6 +159,11 @@ class _WebErpScreenState extends State<WebErpScreen> { ...@@ -161,6 +159,11 @@ class _WebErpScreenState extends State<WebErpScreen> {
thirdPartyCookiesEnabled: true, thirdPartyCookiesEnabled: true,
blockNetworkImage: false, blockNetworkImage: false,
supportMultipleWindows: true, supportMultipleWindows: true,
blockNetworkLoads: false,
networkAvailable: true,
useShouldInterceptRequest:true,
hardwareAcceleration: true
// Enable camera access // Enable camera access
), ),
...@@ -255,8 +258,28 @@ class _WebErpScreenState extends State<WebErpScreen> { ...@@ -255,8 +258,28 @@ class _WebErpScreenState extends State<WebErpScreen> {
allowsLinkPreview: true, allowsLinkPreview: true,
databaseEnabled: true, // Enables the WebView database databaseEnabled: true, // Enables the WebView database
clearSessionCache: true, clearSessionCache: true,
mediaType: "image/*", mediaType: "image/*,application/pdf",
useShouldInterceptRequest:true,
hardwareAcceleration: true
), ),
shouldInterceptRequest: (controller, request) async {
final url = request.url.toString();
print('Intercepting request: $url, Headers: ${request.headers}');
if (url.endsWith('.pdf')) {
final response = await http.get(Uri.parse(url), headers: {
'Accept': 'application/pdf',
});
if (response.statusCode == 200 && response.headers['content-type']?.contains('application/pdf') == true) {
return WebResourceResponse(
contentType: 'application/pdf',
data: response.bodyBytes,
);
} else {
print('Failed to load PDF: Status ${response.statusCode}, Content-Type: ${response.headers['content-type']}');
}
}
return null;
},
shouldOverrideUrlLoading: ( shouldOverrideUrlLoading: (
controller, controller,
navigationAction, navigationAction,
...@@ -265,6 +288,14 @@ class _WebErpScreenState extends State<WebErpScreen> { ...@@ -265,6 +288,14 @@ class _WebErpScreenState extends State<WebErpScreen> {
print("urib scgefes"); print("urib scgefes");
print(uri); print(uri);
print(uri.scheme); print(uri.scheme);
if (uri.toString().contains('file_viewer_n ame.php') && uri.toString().contains('.pdf')) {
final pdfPath = Uri.parse(uri.toString()).queryParameters['file_path'];
if (pdfPath != null) {
final pdfUrl = 'https://erp.gengroup.in/$pdfPath';
await controller.loadUrl(urlRequest: URLRequest(url: WebUri(pdfUrl)));
return NavigationActionPolicy.CANCEL;
}
}
if (uri.scheme == "tel") { if (uri.scheme == "tel") {
// Launch the phone dialer app with the specified phone number // Launch the phone dialer app with the specified phone number
if (await canLaunch(uri.toString())) { if (await canLaunch(uri.toString())) {
...@@ -297,7 +328,37 @@ class _WebErpScreenState extends State<WebErpScreen> { ...@@ -297,7 +328,37 @@ class _WebErpScreenState extends State<WebErpScreen> {
return NavigationActionPolicy.ALLOW; return NavigationActionPolicy.ALLOW;
}, },
onLoadStop: (controller, url) { onLoadStop: (controller, url) async {
if (url.toString().contains('file_viewer_name.php') && url.toString().contains('.pdf')) {
final uri = Uri.parse(url.toString());
final pdfPath = uri.queryParameters['file_path'];
if (pdfPath != null) {
final pdfUrl = 'https://erp.gengroup.in/$pdfPath';
await controller.evaluateJavascript(source: '''
var pdfjsLib = window.pdfjsLib || document.createElement('script');
pdfjsLib.src = 'https://mozilla.github.io/pdf.js/build/pdf.js';
document.head.appendChild(pdfjsLib);
pdfjsLib.onload = function() {
pdfjsLib.getDocument('$pdfUrl').promise.then(function(pdf) {
pdf.getPage(1).then(function(page) {
var canvas = document.createElement('canvas');
document.body.appendChild(canvas);
var context = canvas.getContext('2d');
var viewport = page.getViewport({ scale: 1.0 });
canvas.height = viewport.height;
canvas.width = viewport.width;
page.render({
canvasContext: context,
viewport: viewport
});
});
}).catch(function(error) {
console.error('PDF.js error: ' + error);
});
};
''');
}
}
pullToRefreshController?.endRefreshing(); pullToRefreshController?.endRefreshing();
return setState(() { return setState(() {
isLoading = false; isLoading = false;
......
...@@ -11,9 +11,9 @@ import 'package:permission_handler/permission_handler.dart'; ...@@ -11,9 +11,9 @@ import 'package:permission_handler/permission_handler.dart';
import 'WebERPScreen.dart'; import 'WebERPScreen.dart';
const MAX_PROGRESS = 100; // const MAX_PROGRESS = 100;
Future main() async { Future runErpScreenApp2() async {
await FlutterDownloader.initialize( await FlutterDownloader.initialize(
debug: true // optional: set false to disable printing logs to console debug: true // optional: set false to disable printing logs to console
); );
......
...@@ -194,230 +194,235 @@ class _AccountledgerState extends State<Accountledger> { ...@@ -194,230 +194,235 @@ class _AccountledgerState extends State<Accountledger> {
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Text("${provider.selectedAcVal??""}" +" "+ "Account Ledger List"), child: Text("${provider.selectedAcVal??""}" +" "+ "Account Ledger List"),
), ),
ListView.builder( if(provider.ledgerList.isEmpty)...[
physics: NeverScrollableScrollPhysics(), Emptywidget(context),
shrinkWrap: true, ]else...[
itemCount: groupedData.keys.length, ListView.builder(
itemBuilder: (context, index) { physics: NeverScrollableScrollPhysics(),
String date = groupedData.keys.elementAt(index); shrinkWrap: true,
List<LedgerList> items = groupedData[date]!; itemCount: groupedData.keys.length,
if (provider.ledgerList.isEmpty) { itemBuilder: (context, index) {
return Center(child: Text("No Data Available")); String date = groupedData.keys.elementAt(index);
} List<LedgerList> items = groupedData[date]!;
return Container( if (provider.ledgerList.isEmpty) {
padding: EdgeInsets.symmetric(vertical: 5), return Center(child: Text("No Data Available"));
margin: EdgeInsets.symmetric(horizontal: 10), }
child: Column( return Container(
crossAxisAlignment: CrossAxisAlignment.start, padding: EdgeInsets.symmetric(vertical: 5),
children: [ margin: EdgeInsets.symmetric(horizontal: 10),
Container( child: Column(
padding: EdgeInsets.only(bottom: 5), crossAxisAlignment: CrossAxisAlignment.start,
child: Text( children: [
date, Container(
style: TextStyle( padding: EdgeInsets.only(bottom: 5),
fontSize: 14, child: Text(
fontFamily: "JakartaMedium", date,
color: Color(0xFF818181), style: TextStyle(
fontSize: 14,
fontFamily: "JakartaMedium",
color: Color(0xFF818181),
),
), ),
), ),
), ...items.map((item) {
...items.map((item) {
double running_balance = 0; double running_balance = 0;
int currentIndex = provider.ledgerList.indexOf( int currentIndex = provider.ledgerList.indexOf(
item, item,
); );
for (var i = 0; i <= currentIndex; i++) { for (var i = 0; i <= currentIndex; i++) {
var ledgerItem = provider.ledgerList[i]; var ledgerItem = provider.ledgerList[i];
double credit = double credit =
double.tryParse( double.tryParse(
ledgerItem.creditAmount.toString(), ledgerItem.creditAmount.toString(),
) ?? ) ??
0; 0;
double debit = double debit =
double.tryParse( double.tryParse(
ledgerItem.debitAmount.toString(), ledgerItem.debitAmount.toString(),
) ?? ) ??
0; 0;
running_balance += (debit - credit); running_balance += (debit - credit);
} }
return Container( return Container(
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(
horizontal: 10, horizontal: 10,
vertical: 10, vertical: 10,
), ),
margin: EdgeInsets.symmetric(vertical: 5), margin: EdgeInsets.symmetric(vertical: 5),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(16), borderRadius: BorderRadius.circular(16),
), ),
child: Column( child: Column(
children: [ children: [
Row( Row(
mainAxisAlignment: mainAxisAlignment:
MainAxisAlignment.start, MainAxisAlignment.start,
children: [ children: [
Expanded( Expanded(
flex: 1, flex: 1,
child: SizedBox( child: SizedBox(
child: child:
item.type == "Credit" item.type == "Credit"
? Image.asset( ? Image.asset(
"assets/images/trans_debit.png", "assets/images/trans_debit.png",
height: 45, height: 45,
width: 45, width: 45,
fit: BoxFit.contain, fit: BoxFit.contain,
) )
: Image.asset( : Image.asset(
"assets/images/trans_credit.png", "assets/images/trans_credit.png",
height: 45, height: 45,
width: 45, width: 45,
fit: BoxFit.contain, fit: BoxFit.contain,
), ),
),
),
SizedBox(width: 10),
Expanded(
flex: 5,
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
item.description ?? "-",
maxLines: 2,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 12,
),
),
],
), ),
), ),
), SizedBox(width: 10),
Spacer(), Expanded(
Expanded( flex: 5,
flex: 3, child: SizedBox(
child: SizedBox( child: Column(
child: RichText( crossAxisAlignment:
textAlign: TextAlign.right, CrossAxisAlignment.start,
maxLines: 1,
overflow: TextOverflow.ellipsis,
text: TextSpan(
children: [ children: [
TextSpan( Text(
text: item.description ?? "-",
item.type == "Credit" maxLines: 2,
? "-" overflow: TextOverflow.ellipsis,
: "+",
style: TextStyle(
color: Color(
0xFF2D2D2D,
),
fontSize: 13,
fontFamily:
"JakartaRegular",
),
),
TextSpan(
text:
"₹${item.type == "Credit" ? "${item.creditAmount}" : "${item.debitAmount}"}",
style: TextStyle( style: TextStyle(
color: Color(
0xFF2D2D2D,
),
fontSize: 13,
fontFamily: fontFamily:
"JakartaMedium", "JakartaMedium",
fontSize: 12,
), ),
), ),
], ],
), ),
), ),
), ),
), Spacer(),
], Expanded(
), flex: 3,
Divider( child: SizedBox(
thickness: 0.5, child: RichText(
color: Color(0xFFd7d7d7), textAlign: TextAlign.right,
), maxLines: 1,
Row( overflow: TextOverflow.ellipsis,
children: [ text: TextSpan(
Expanded( children: [
child: Text( TextSpan(
"Balance", text:
style: TextStyle( item.type == "Credit"
fontSize: 13, ? "-"
color: Color(0xFF2d2d2d), : "+",
), style: TextStyle(
), color: Color(
), 0xFF2D2D2D,
Expanded( ),
child: Text( fontSize: 13,
textAlign: TextAlign.right, fontFamily:
"${running_balance.toString()}" ?? "JakartaRegular",
"-", ),
style: TextStyle( ),
color: Color(0xFF818181), TextSpan(
fontSize: 13, text:
"₹${item.type == "Credit" ? "${item.creditAmount}" : "${item.debitAmount}"}",
style: TextStyle(
color: Color(
0xFF2D2D2D,
),
fontSize: 13,
fontFamily:
"JakartaMedium",
),
),
],
),
),
), ),
), ),
), ],
], ),
), Divider(
InkResponse( thickness: 0.5,
onTap: () async { color: Color(0xFFd7d7d7),
Navigator.push( ),
context, Row(
MaterialPageRoute( children: [
builder: Expanded(
(context) => Transactiondetails( child: Text(
paymentID: item.refId, "Balance",
type: item.type, style: TextStyle(
fontSize: 13,
color: Color(0xFF2d2d2d),
),
), ),
), ),
); Expanded(
}, child: Text(
child: Container( textAlign: TextAlign.right,
padding: EdgeInsets.symmetric( "${running_balance.toString()}" ??
vertical: 5, "-",
),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.start,
children: [
Text(
"View Details",
style: TextStyle( style: TextStyle(
fontFamily: "JakartaMedium", color: Color(0xFF818181),
fontSize: 14, fontSize: 13,
color: AppColors.app_blue,
), ),
), ),
SizedBox(width: 5), ),
SvgPicture.asset( ],
"assets/svg/next_button.svg", ),
InkResponse(
onTap: () async {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) => Transactiondetails(
paymentID: item.refId,
type: item.type,
),
), ),
], );
},
child: Container(
padding: EdgeInsets.symmetric(
vertical: 5,
),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.start,
children: [
Text(
"View Details",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.app_blue,
),
),
SizedBox(width: 5),
SvgPicture.asset(
"assets/svg/next_button.svg",
),
],
),
), ),
), ),
), ],
], ),
), );
); }).toList(),
}).toList(), ],
], ),
), );
); },
}, ),
), ],
], ],
), ),
), ),
...@@ -540,8 +545,8 @@ class _AccountledgerState extends State<Accountledger> { ...@@ -540,8 +545,8 @@ class _AccountledgerState extends State<Accountledger> {
color: AppColors.text_field_color, color: AppColors.text_field_color,
), ),
), ),
iconStyleData: const IconStyleData( iconStyleData: IconStyleData(
icon: Icon(Icons.keyboard_arrow_down), icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12, iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D), iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey, iconDisabledColor: Colors.grey,
......
...@@ -52,7 +52,7 @@ class _AccountslistState extends State<Accountslist> { ...@@ -52,7 +52,7 @@ class _AccountslistState extends State<Accountslist> {
), ),
),), ),),
backgroundColor: AppColors.scaffold_bg_color, backgroundColor: AppColors.scaffold_bg_color,
body: Container( body:accountList.isNotEmpty? Container(
child: SingleChildScrollView( child: SingleChildScrollView(
controller: scrollController, controller: scrollController,
child: Column( child: Column(
...@@ -231,7 +231,7 @@ class _AccountslistState extends State<Accountslist> { ...@@ -231,7 +231,7 @@ class _AccountslistState extends State<Accountslist> {
], ],
), ),
), ),
), ):Emptywidget(context),
), ),
onWillPop: () { onWillPop: () {
provider.pageNum = 1; provider.pageNum = 1;
......
import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/commonProvider/accountsListProvider.dart'; import 'package:generp/Notifiers/commonProvider/accountsListProvider.dart';
import 'package:generp/Utils/app_colors.dart'; import 'package:generp/Utils/app_colors.dart';
import 'package:generp/Utils/commonWidgets.dart'; import 'package:generp/Utils/commonWidgets.dart';
...@@ -109,8 +110,8 @@ class _AddcommonpaymentState extends State<Addcommonpayment> { ...@@ -109,8 +110,8 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
color: AppColors.text_field_color, color: AppColors.text_field_color,
), ),
), ),
iconStyleData: const IconStyleData( iconStyleData: IconStyleData(
icon: Icon(Icons.keyboard_arrow_down_sharp), icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 14, iconSize: 14,
iconEnabledColor: Color(0xFF2D2D2D), iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey, iconDisabledColor: Colors.grey,
...@@ -227,8 +228,8 @@ class _AddcommonpaymentState extends State<Addcommonpayment> { ...@@ -227,8 +228,8 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
color: AppColors.text_field_color, color: AppColors.text_field_color,
), ),
), ),
iconStyleData: const IconStyleData( iconStyleData: IconStyleData(
icon: Icon(Icons.keyboard_arrow_down), icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12, iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D), iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey, iconDisabledColor: Colors.grey,
...@@ -318,8 +319,8 @@ class _AddcommonpaymentState extends State<Addcommonpayment> { ...@@ -318,8 +319,8 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
color: AppColors.text_field_color, color: AppColors.text_field_color,
), ),
), ),
iconStyleData: const IconStyleData( iconStyleData: IconStyleData(
icon: Icon(Icons.keyboard_arrow_down), icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12, iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D), iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey, iconDisabledColor: Colors.grey,
...@@ -405,8 +406,8 @@ class _AddcommonpaymentState extends State<Addcommonpayment> { ...@@ -405,8 +406,8 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
color: AppColors.text_field_color, color: AppColors.text_field_color,
), ),
), ),
iconStyleData: const IconStyleData( iconStyleData: IconStyleData(
icon: Icon(Icons.keyboard_arrow_down), icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12, iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D), iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey, iconDisabledColor: Colors.grey,
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/commonProvider/commonPagesProvider.dart'; import 'package:generp/Notifiers/commonProvider/commonPagesProvider.dart';
import 'package:generp/screens/commom/accountLedger.dart'; import 'package:generp/screens/screensExports.dart';
import 'package:generp/screens/commom/accountsList.dart';
import 'package:generp/screens/commom/addCommonPayment.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../Utils/app_colors.dart'; import '../../Utils/app_colors.dart';
......
import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
...@@ -101,7 +100,6 @@ class Commondaterangefilter { ...@@ -101,7 +100,6 @@ class Commondaterangefilter {
day, day,
style: TextStyle( style: TextStyle(
fontSize: 14, fontSize: 14,
fontWeight: FontWeight.w600,
color: Colors.grey[700], color: Colors.grey[700],
), ),
), ),
...@@ -155,7 +153,7 @@ class Commondaterangefilter { ...@@ -155,7 +153,7 @@ class Commondaterangefilter {
}); });
}, },
child: Container( child: Container(
margin: EdgeInsets.all(2), margin: EdgeInsets.all(1),
decoration: BoxDecoration( decoration: BoxDecoration(
color: isSelected color: isSelected
? Colors.blue[600] ? Colors.blue[600]
...@@ -241,7 +239,7 @@ class Commondaterangefilter { ...@@ -241,7 +239,7 @@ class Commondaterangefilter {
height: 280, height: 280,
child: GridView.count( child: GridView.count(
crossAxisCount: 7, crossAxisCount: 7,
childAspectRatio: 1, childAspectRatio: 1.2,
children: dayWidgets, children: dayWidgets,
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
), ),
...@@ -435,7 +433,7 @@ class MyWidget extends StatelessWidget { ...@@ -435,7 +433,7 @@ class MyWidget extends StatelessWidget {
print("Bottom sheet closed without selection"); print("Bottom sheet closed without selection");
} }
}, },
child: Icon(CupertinoIcons.color_filter), child: SvgPicture.asset("assets/svg/filter_ic.svg", height: 25),
), ),
), ),
); );
......
...@@ -107,258 +107,257 @@ class _AllpaymentrequesitionlistsbymodesState ...@@ -107,258 +107,257 @@ class _AllpaymentrequesitionlistsbymodesState
valueColor: AlwaysStoppedAnimation<Color>( valueColor: AlwaysStoppedAnimation<Color>(
AppColors.app_blue) AppColors.app_blue)
)) ))
: Container( : requestLists.isNotEmpty?SingleChildScrollView(
child: SingleChildScrollView( child: Column(
child: Column( children: [
children: [ ListView.builder(
ListView.builder( itemCount: requestLists.length,
itemCount: requestLists.length, shrinkWrap: true,
shrinkWrap: true, physics: NeverScrollableScrollPhysics(),
physics: NeverScrollableScrollPhysics(), itemBuilder: (context, index) {
itemBuilder: (context, index) { if (requestLists.isEmpty) {
if (requestLists.isEmpty) { return SizedBox(
return SizedBox( child: Center(
child: Center( child: Text("No Data Available"),
child: Text("No Data Available"),
),
);
}
return Container(
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
margin: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
), ),
child: Column( );
children: [ }
Row( return Container(
children: [ padding: EdgeInsets.symmetric(
Expanded( horizontal: 10,
flex: 1, vertical: 10,
child: Container( ),
height: 50, margin: EdgeInsets.symmetric(
width: 35, horizontal: 10,
padding: EdgeInsets.all(8.0), vertical: 10,
decoration: BoxDecoration( ),
color: Color(0xFFFFF3CE), decoration: BoxDecoration(
borderRadius: color: Colors.white,
BorderRadius.circular(8), borderRadius: BorderRadius.circular(16),
), ),
child: SvgPicture.asset( child: Column(
"assets/svg/fin_ic.svg", children: [
), Row(
children: [
Expanded(
flex: 1,
child: Container(
height: 50,
width: 35,
padding: EdgeInsets.all(8.0),
decoration: BoxDecoration(
color: Color(0xFFFFF3CE),
borderRadius:
BorderRadius.circular(8),
), ),
), child: SvgPicture.asset(
SizedBox(width: 10), "assets/svg/fin_ic.svg",
Expanded(
flex: 4,
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
requestLists[index]
.accountName!,
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color:
AppColors.semi_black,
),
),
Text(
"₹"
"${requestLists[index].amount}",
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color: AppColors.app_blue,
),
),
],
),
), ),
), ),
Expanded( ),
flex: 2, SizedBox(width: 10),
child: Container( Expanded(
padding: EdgeInsets.symmetric( flex: 4,
horizontal: 5, child: SizedBox(
vertical: 10, child: Column(
), crossAxisAlignment:
decoration: BoxDecoration( CrossAxisAlignment.start,
borderRadius: children: [
BorderRadius.circular(8), Text(
color: Color(0xFFE3FFE0), requestLists[index]
), .accountName!,
child: Center(
child: Text(
requestLists[index].status!,
style: TextStyle( style: TextStyle(
fontFamily: "JakartaMedium", fontFamily:
"JakartaMedium",
fontSize: 14, fontSize: 14,
color: Color(0xFF0D9C00), color:
AppColors.semi_black,
), ),
), ),
), Text(
), "₹"
), "${requestLists[index].amount}",
],
),
Divider(
thickness: 0.5,
color: Color(0xFFD7D7D7),
),
...List.generate(4, (j) {
final headings = [
"Requesting Propose",
"Attachment",
"Requested Date",
"Note",
];
final subHeadings = [
requestLists[index].requestingPurpose,
"View",
// requestLists[index].attachmentDirFilePath
requestLists[index].date,
requestLists[index].description,
];
return Container(
padding: EdgeInsets.symmetric(
vertical: 5,
),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
child: Text(
headings[j],
style: TextStyle( style: TextStyle(
fontFamily: "JakartaMedium", fontFamily:
"JakartaMedium",
fontSize: 14, fontSize: 14,
color: AppColors.semi_black, color: AppColors.app_blue,
), ),
), ),
), ],
Expanded( ),
child: InkResponse( ),
onTap: ),
j != 1 Expanded(
? null flex: 2,
: () { child: Container(
Navigator.push( padding: EdgeInsets.symmetric(
context, horizontal: 5,
MaterialPageRoute( vertical: 10,
builder: ),
( decoration: BoxDecoration(
context, borderRadius:
) => Fileviewer( BorderRadius.circular(8),
fileName: color: Color(0xFFE3FFE0),
requestLists[index] ),
.attachmentViewFileName!, child: Center(
fileUrl: child: Text(
requestLists[index] requestLists[index].status!,
.attachmentDirFilePath!, textAlign: TextAlign.center,
), style: TextStyle(
), fontFamily: "JakartaMedium",
); fontSize: 14,
}, color: Color(0xFF0D9C00),
child: Text(
subHeadings[j]!,
style: TextStyle(
fontSize: 14,
color:
j == 1
? AppColors
.app_blue
: Color(
0xFF818181,
),
decoration:
j == 1
? TextDecoration
.underline
: TextDecoration
.none,
decorationColor:
j == 1
? AppColors
.app_blue
: AppColors.white,
),
),
), ),
), ),
],
),
);
}),
InkResponse(
onTap: () async {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) =>
Paymentrequestionlistdetails(
pageName:
widget
.pageTitleName,
mode: widget.mode,
paymentRequestId:
requestLists[index]
.id,
),
), ),
);
},
child: Container(
padding: EdgeInsets.symmetric(
vertical: 5,
), ),
child: Row( ),
crossAxisAlignment: ],
CrossAxisAlignment.center, ),
mainAxisAlignment: Divider(
MainAxisAlignment.start, thickness: 0.5,
children: [ color: Color(0xFFD7D7D7),
Text( ),
"View Details", ...List.generate(4, (j) {
final headings = [
"Requesting Propose",
"Attachment",
"Requested Date",
"Note",
];
final subHeadings = [
requestLists[index].requestingPurpose,
"View",
// requestLists[index].attachmentDirFilePath
requestLists[index].date,
requestLists[index].description,
];
return Container(
padding: EdgeInsets.symmetric(
vertical: 5,
),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
child: Text(
headings[j],
style: TextStyle( style: TextStyle(
fontFamily: "JakartaMedium", fontFamily: "JakartaMedium",
fontSize: 14, fontSize: 14,
color: AppColors.app_blue, color: AppColors.semi_black,
), ),
), ),
SizedBox(width: 5), ),
SvgPicture.asset( Expanded(
"assets/svg/next_button.svg", child: InkResponse(
onTap:
j != 1
? null
: () {
Navigator.push(
context,
MaterialPageRoute(
builder:
(
context,
) => Fileviewer(
fileName:
requestLists[index]
.attachmentViewFileName!,
fileUrl:
requestLists[index]
.attachmentDirFilePath!,
),
),
);
},
child: Text(
subHeadings[j]!,
style: TextStyle(
fontSize: 14,
color:
j == 1
? AppColors
.app_blue
: Color(
0xFF818181,
),
decoration:
j == 1
? TextDecoration
.underline
: TextDecoration
.none,
decorationColor:
j == 1
? AppColors
.app_blue
: AppColors.white,
),
),
), ),
], ),
],
),
);
}),
InkResponse(
onTap: () async {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) =>
Paymentrequestionlistdetails(
pageName:
widget
.pageTitleName,
mode: widget.mode,
paymentRequestId:
requestLists[index]
.id,
),
), ),
);
},
child: Container(
padding: EdgeInsets.symmetric(
vertical: 5,
),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.start,
children: [
Text(
"View Details",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.app_blue,
),
),
SizedBox(width: 5),
SvgPicture.asset(
"assets/svg/next_button.svg",
),
],
), ),
), ),
], ),
), ],
); ),
}, );
), },
], ),
), ],
), ),
), ):Emptywidget(context),
), ),
); );
}, },
......
...@@ -5,6 +5,7 @@ import 'package:generp/Notifiers/financeProvider/RequesitionLidtDetailsProvider. ...@@ -5,6 +5,7 @@ import 'package:generp/Notifiers/financeProvider/RequesitionLidtDetailsProvider.
import 'package:generp/Notifiers/financeProvider/approveRejectPaymentRequestResponse.dart'; import 'package:generp/Notifiers/financeProvider/approveRejectPaymentRequestResponse.dart';
import 'package:generp/Utils/app_colors.dart'; import 'package:generp/Utils/app_colors.dart';
import 'package:generp/Utils/commonWidgets.dart'; import 'package:generp/Utils/commonWidgets.dart';
import 'package:generp/screens/commom/accountsListDetails.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'FileViewer.dart'; import 'FileViewer.dart';
...@@ -28,14 +29,11 @@ class Paymentrequestionlistdetails extends StatefulWidget { ...@@ -28,14 +29,11 @@ class Paymentrequestionlistdetails extends StatefulWidget {
class _PaymentrequestionlistdetailsState class _PaymentrequestionlistdetailsState
extends State<Paymentrequestionlistdetails> { extends State<Paymentrequestionlistdetails> {
TextEditingController approvedAmount = TextEditingController(); TextEditingController approvedAmount = TextEditingController();
TextEditingController remarks = TextEditingController(); TextEditingController remarks = TextEditingController();
TextEditingController paymentReferenceNumber = TextEditingController(); TextEditingController paymentReferenceNumber = TextEditingController();
FocusNode requestNode = FocusNode(); FocusNode requestNode = FocusNode();
FocusNode approveNode = FocusNode(); FocusNode approveNode = FocusNode();
FocusNode remarkNode = FocusNode(); FocusNode remarkNode = FocusNode();
...@@ -86,8 +84,7 @@ class _PaymentrequestionlistdetailsState ...@@ -86,8 +84,7 @@ class _PaymentrequestionlistdetailsState
req_det.createdDatetime ?? "-", req_det.createdDatetime ?? "-",
req_det.updatedDatetime ?? "-", req_det.updatedDatetime ?? "-",
]; ];
});
},);
return WillPopScope( return WillPopScope(
child: Scaffold( child: Scaffold(
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
...@@ -159,7 +156,7 @@ class _PaymentrequestionlistdetailsState ...@@ -159,7 +156,7 @@ class _PaymentrequestionlistdetailsState
), ),
child: Center( child: Center(
child: Text( child: Text(
req_det.status??"-", req_det.status ?? "-",
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontFamily: "JakartaMedium", fontFamily: "JakartaMedium",
...@@ -207,24 +204,47 @@ class _PaymentrequestionlistdetailsState ...@@ -207,24 +204,47 @@ class _PaymentrequestionlistdetailsState
), ),
), ),
); );
} else if (provider.Headings[j] ==
"Requested Account") {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) => Accountslistdetails(
accountID:
provider.requestsDetails.accountId,
),
),
);
} }
}, },
child: Text( child: Text(
provider.Headings[j] == "Attachment" [
"Attachment",
].contains(provider.Headings[j])
? "View" ? "View"
: "${provider.subHeadings[j]}", : "${provider.subHeadings[j]}",
style: TextStyle( style: TextStyle(
fontSize: 14, fontSize: 14,
color: color:
provider.Headings[j] == "Attachment" [
"Attachment",
"Requested Account",
].contains(provider.Headings[j])
? AppColors.app_blue ? AppColors.app_blue
: Color(0xFF818181), : Color(0xFF818181),
decoration: decoration:
provider.Headings[j] == "Attachment" [
"Attachment",
"Requested Account",
].contains(provider.Headings[j])
? TextDecoration.underline ? TextDecoration.underline
: TextDecoration.none, : TextDecoration.none,
decorationColor: decorationColor:
provider.Headings[j] == "Attachment" [
"Attachment",
"Requested Account",
].contains(provider.Headings[j])
? AppColors.app_blue ? AppColors.app_blue
: AppColors.white, : AppColors.white,
), ),
...@@ -374,7 +394,6 @@ class _PaymentrequestionlistdetailsState ...@@ -374,7 +394,6 @@ class _PaymentrequestionlistdetailsState
return SafeArea( return SafeArea(
child: Consumer<Requesitionlidtdetailsprovider>( child: Consumer<Requesitionlidtdetailsprovider>(
builder: (context, provider, child) { builder: (context, provider, child) {
return Container( return Container(
margin: EdgeInsets.only( margin: EdgeInsets.only(
bottom: 15, bottom: 15,
...@@ -478,8 +497,8 @@ class _PaymentrequestionlistdetailsState ...@@ -478,8 +497,8 @@ class _PaymentrequestionlistdetailsState
color: AppColors.text_field_color, color: AppColors.text_field_color,
), ),
), ),
iconStyleData: const IconStyleData( iconStyleData: IconStyleData(
icon: Icon(Icons.keyboard_arrow_down), icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12, iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D), iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey, iconDisabledColor: Colors.grey,
...@@ -672,7 +691,6 @@ class _PaymentrequestionlistdetailsState ...@@ -672,7 +691,6 @@ class _PaymentrequestionlistdetailsState
return SafeArea( return SafeArea(
child: Consumer<Requesitionlidtdetailsprovider>( child: Consumer<Requesitionlidtdetailsprovider>(
builder: (context, provider, child) { builder: (context, provider, child) {
return Container( return Container(
margin: EdgeInsets.only( margin: EdgeInsets.only(
bottom: 15, bottom: 15,
...@@ -766,8 +784,8 @@ class _PaymentrequestionlistdetailsState ...@@ -766,8 +784,8 @@ class _PaymentrequestionlistdetailsState
color: AppColors.text_field_color, color: AppColors.text_field_color,
), ),
), ),
iconStyleData: const IconStyleData( iconStyleData: IconStyleData(
icon: Icon(Icons.keyboard_arrow_down), icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12, iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D), iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey, iconDisabledColor: Colors.grey,
...@@ -844,7 +862,28 @@ class _PaymentrequestionlistdetailsState ...@@ -844,7 +862,28 @@ class _PaymentrequestionlistdetailsState
), ),
), ),
), ),
if(provider.imagePicked==1 && provider.imagePath!=null)...[
Padding(
padding: const EdgeInsets.symmetric(vertical: 4.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text("${provider.imagePath}",style: TextStyle(
color: AppColors.semi_black,
fontSize: 11,
fontWeight: FontWeight.w600
),),
InkResponse(
onTap: () {
provider.imagePicked = 0;
provider.imagePath = null;
provider.imageFilePath = null;
},
child: SvgPicture.asset("assets/svg/ic_close.svg",width: 15,height: 15,))
],
),
)
],
textControllerReadonlyWidget( textControllerReadonlyWidget(
context, context,
provider.accountName, provider.accountName,
...@@ -887,32 +926,32 @@ class _PaymentrequestionlistdetailsState ...@@ -887,32 +926,32 @@ class _PaymentrequestionlistdetailsState
context, context,
provider.bankHolderName, provider.bankHolderName,
"Bank Account Holder Name", "Bank Account Holder Name",
(p0) {}, (p0) {},
), ),
textControllerReadonlyWidget( textControllerReadonlyWidget(
context, context,
provider.bankAccountNumber, provider.bankAccountNumber,
"Bank Account Number", "Bank Account Number",
(p0) {}, (p0) {},
), ),
textControllerReadonlyWidget( textControllerReadonlyWidget(
context, context,
provider.bankName, provider.bankName,
"Bank Name", "Bank Name",
(p0) {}, (p0) {},
), ),
textControllerReadonlyWidget( textControllerReadonlyWidget(
context, context,
provider.bankBranchName, provider.bankBranchName,
"Bank Branch Name", "Bank Branch Name",
(p0) {}, (p0) {},
), ),
textControllerReadonlyWidget( textControllerReadonlyWidget(
context, context,
provider.bankIfscCode, provider.bankIfscCode,
"Bank IFSC Code", "Bank IFSC Code",
(p0) {}, (p0) {},
), ),
textControllerReadonlyWidget( textControllerReadonlyWidget(
context, context,
...@@ -921,16 +960,17 @@ class _PaymentrequestionlistdetailsState ...@@ -921,16 +960,17 @@ class _PaymentrequestionlistdetailsState
(p0) {}, (p0) {},
), ),
InkWell( InkWell(
onTap: () { onTap: () {
provider.paymentrequisitionProcessSubmitAPIFunction( provider
context, widget.mode, provider.paymentsReqDetails.id, .paymentrequisitionProcessSubmitAPIFunction(
paymentReferenceNumber.text, context,
remarks.text, widget.mode,
provider.imagePath); provider.paymentsReqDetails.id,
paymentReferenceNumber.text,
remarks.text,
provider.imagePath,
);
}, },
child: Container( child: Container(
alignment: Alignment.center, alignment: Alignment.center,
...@@ -1076,7 +1116,10 @@ class _PaymentrequestionlistdetailsState ...@@ -1076,7 +1116,10 @@ class _PaymentrequestionlistdetailsState
child: Text(hintText), child: Text(hintText),
), ),
Container( Container(
height: hintText == "Enter Description"||hintText=="Enter Remarks" ? 150 : 50, height:
hintText == "Enter Description" || hintText == "Enter Remarks"
? 150
: 50,
alignment: Alignment.center, alignment: Alignment.center,
decoration: BoxDecoration( decoration: BoxDecoration(
color: AppColors.text_field_color, color: AppColors.text_field_color,
...@@ -1087,7 +1130,10 @@ class _PaymentrequestionlistdetailsState ...@@ -1087,7 +1130,10 @@ class _PaymentrequestionlistdetailsState
child: TextFormField( child: TextFormField(
controller: controller, controller: controller,
keyboardType: TextInputType.text, keyboardType: TextInputType.text,
maxLines: hintText == "Enter Description"||hintText=="Enter Remarks" ? 60 : 1, maxLines:
hintText == "Enter Description" || hintText == "Enter Remarks"
? 60
: 1,
onChanged: onChanged, onChanged: onChanged,
decoration: InputDecoration( decoration: InputDecoration(
hintText: hintText, hintText: hintText,
...@@ -1106,7 +1152,7 @@ class _PaymentrequestionlistdetailsState ...@@ -1106,7 +1152,7 @@ class _PaymentrequestionlistdetailsState
], ],
); );
} }
Widget textControllerReadonlyWidget( Widget textControllerReadonlyWidget(
context, context,
controller, controller,
...@@ -1135,12 +1181,8 @@ class _PaymentrequestionlistdetailsState ...@@ -1135,12 +1181,8 @@ class _PaymentrequestionlistdetailsState
keyboardType: TextInputType.text, keyboardType: TextInputType.text,
maxLines: hintText == "Enter Description" ? 60 : 1, maxLines: hintText == "Enter Description" ? 60 : 1,
onChanged: onChanged, onChanged: onChanged,
style: TextStyle( style: TextStyle(color: Color(0xFF818181), fontSize: 14),
color: Color(0xFF818181),
fontSize: 14,
),
decoration: InputDecoration( decoration: InputDecoration(
hintText: hintText, hintText: hintText,
hintStyle: TextStyle( hintStyle: TextStyle(
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
......
import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Models/financeModels/addReceiptPaymentResponse.dart'; import 'package:generp/Models/financeModels/addReceiptPaymentResponse.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
...@@ -116,8 +117,8 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> { ...@@ -116,8 +117,8 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
color: AppColors.text_field_color, color: AppColors.text_field_color,
), ),
), ),
iconStyleData: const IconStyleData( iconStyleData: IconStyleData(
icon: Icon(Icons.keyboard_arrow_down), icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12, iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D), iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey, iconDisabledColor: Colors.grey,
...@@ -211,8 +212,8 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> { ...@@ -211,8 +212,8 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
color: AppColors.text_field_color, color: AppColors.text_field_color,
), ),
), ),
iconStyleData: const IconStyleData( iconStyleData: IconStyleData(
icon: Icon(Icons.keyboard_arrow_down), icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12, iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D), iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey, iconDisabledColor: Colors.grey,
...@@ -361,8 +362,8 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> { ...@@ -361,8 +362,8 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
color: AppColors.text_field_color, color: AppColors.text_field_color,
), ),
), ),
iconStyleData: const IconStyleData( iconStyleData: IconStyleData(
icon: Icon(Icons.keyboard_arrow_down), icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12, iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D), iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey, iconDisabledColor: Colors.grey,
...@@ -485,6 +486,28 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> { ...@@ -485,6 +486,28 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
), ),
), ),
), ),
if(provider.imagePicked==1 && provider.imagePath!=null)...[
Padding(
padding: const EdgeInsets.symmetric(vertical: 4.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text("${provider.imagePath}",style: TextStyle(
color: AppColors.semi_black,
fontSize: 11,
fontWeight: FontWeight.w600
),),
InkResponse(
onTap: () {
provider.imagePicked = 0;
provider.imagePath = null;
provider.imageFilePath = null;
},
child: SvgPicture.asset("assets/svg/ic_close.svg",width: 15,height: 15,))
],
),
)
],
], ],
), ),
), ),
......
import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:generp/Notifiers/financeProvider/RequestionListProvider.dart'; import 'package:flutter_svg/svg.dart';
import 'package:generp/Utils/app_colors.dart'; import 'package:generp/Notifiers/financeProvider/RequestionListProvider.dart';
import 'package:generp/Utils/commonWidgets.dart'; import 'package:generp/Utils/app_colors.dart';
import 'package:intl/intl.dart'; import 'package:generp/Utils/commonWidgets.dart';
import 'package:provider/provider.dart'; import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
import '../../Models/financeModels/addDirectPaymentResponse.dart'; import '../../Models/financeModels/addDirectPaymentResponse.dart';
class Directpaymentrequesitionlist extends StatefulWidget { class Directpaymentrequesitionlist extends StatefulWidget {
final String pageTitleName; final String pageTitleName;
const Directpaymentrequesitionlist({super.key, required this.pageTitleName}); const Directpaymentrequesitionlist({super.key, required this.pageTitleName});
@override @override
State<Directpaymentrequesitionlist> createState() => State<Directpaymentrequesitionlist> createState() =>
_DirectpaymentrequesitionlistState(); _DirectpaymentrequesitionlistState();
} }
class _DirectpaymentrequesitionlistState class _DirectpaymentrequesitionlistState
extends State<Directpaymentrequesitionlist> { extends State<Directpaymentrequesitionlist> {
@override @override
void initState() { void initState() {
// TODO: implement initState // TODO: implement initState
super.initState(); super.initState();
WidgetsBinding.instance.addPostFrameCallback((timeStamp) { WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Requestionlistprovider>( var provider = Provider.of<Requestionlistprovider>(
context, context,
listen: false, listen: false,
); );
provider.addDirectPaymentRequestionViewAPI(context); provider.addDirectPaymentRequestionViewAPI(context);
}); });
} }
@override @override
void dispose() { void dispose() {
super.dispose(); super.dispose();
} }
Future<bool> _onBackPressed(BuildContext context) async { Future<bool> _onBackPressed(BuildContext context) async {
Navigator.pop(context, true); Navigator.pop(context, true);
return true; return true;
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Consumer<Requestionlistprovider>( return Consumer<Requestionlistprovider>(
builder: (context, provider, child) { builder: (context, provider, child) {
return WillPopScope( return WillPopScope(
child: Scaffold( child: Scaffold(
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
backgroundColor: AppColors.white, backgroundColor: AppColors.white,
appBar: appbar(context, "${widget.pageTitleName}"), appBar: appbar(context, "${widget.pageTitleName}"),
body: Container( body: Container(
padding: EdgeInsets.symmetric(horizontal: 10), padding: EdgeInsets.symmetric(horizontal: 10),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(20), borderRadius: BorderRadius.circular(20),
), ),
child: SingleChildScrollView( child: SingleChildScrollView(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
TextWidget(context, "Account"), TextWidget(context, "Account"),
DropdownButtonHideUnderline( DropdownButtonHideUnderline(
child: Row( child: Row(
children: [ children: [
Expanded( Expanded(
child: DropdownButton2<DirectAccounts>( child: DropdownButton2<DirectAccounts>(
isExpanded: true, isExpanded: true,
hint: Text( hint: Text(
'Select Account Type', 'Select Account Type',
style: TextStyle(fontSize: 14), style: TextStyle(fontSize: 14),
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
), ),
items: items:
provider.directAccounts provider.directAccounts
.map( .map(
(accs) => (accs) =>
DropdownMenuItem<DirectAccounts>( DropdownMenuItem<DirectAccounts>(
value: accs, value: accs,
child: Text( child: Text(
accs.name ?? '', accs.name ?? '',
style: const TextStyle( style: const TextStyle(
fontSize: 14, fontSize: 14,
),
overflow: TextOverflow.ellipsis,
), ),
overflow: TextOverflow.ellipsis,
), ),
) ),
.toList(), )
value: provider.selectDirectAccounts, .toList(),
onChanged: (DirectAccounts? value) { value: provider.selectDirectAccounts,
if (value != null) { onChanged: (DirectAccounts? value) {
if (provider.directAccounts.isNotEmpty) { if (value != null) {
provider.selectDirectAccounts = value; if (provider.directAccounts.isNotEmpty) {
print( provider.selectDirectAccounts = value;
"Selected Complaint Type: ${value.name}, ID: ${value.id}", print(
); "Selected Complaint Type: ${value.name}, ID: ${value.id}",
provider.directAccountId = value.id!; );
provider.directAccountValue = value.name!; provider.directAccountId = value.id!;
print( provider.directAccountValue = value.name!;
"hfjkshfg" + print(
provider.directAccountId.toString(), "hfjkshfg" +
); provider.directAccountId.toString(),
} );
} }
}, }
buttonStyleData: ButtonStyleData( },
height: 50, buttonStyleData: ButtonStyleData(
width: 160, height: 50,
padding: const EdgeInsets.only( width: 160,
left: 14, padding: const EdgeInsets.only(
right: 14, left: 14,
), right: 14,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
),
), ),
iconStyleData: const IconStyleData( decoration: BoxDecoration(
icon: Icon(Icons.keyboard_arrow_down), borderRadius: BorderRadius.circular(14),
iconSize: 12, color: AppColors.text_field_color,
iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey,
), ),
dropdownStyleData: DropdownStyleData( ),
maxHeight: 200, iconStyleData: IconStyleData(
decoration: BoxDecoration( icon: SvgPicture.asset(
borderRadius: BorderRadius.circular(14), "assets/svg/arrow_dropdown.svg",
color: AppColors.text_field_color, height: 25,
), width: 20,
scrollbarTheme: ScrollbarThemeData( ),
radius: const Radius.circular(15), iconSize: 12,
thickness: MaterialStateProperty.all<double>( iconEnabledColor: Color(0xFF2D2D2D),
6, iconDisabledColor: Colors.grey,
), ),
thumbVisibility: dropdownStyleData: DropdownStyleData(
MaterialStateProperty.all<bool>(true), maxHeight: 200,
), decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
), ),
menuItemStyleData: const MenuItemStyleData( scrollbarTheme: ScrollbarThemeData(
height: 40, radius: const Radius.circular(15),
padding: EdgeInsets.only(left: 14, right: 14), thickness: MaterialStateProperty.all<double>(
6,
),
thumbVisibility:
MaterialStateProperty.all<bool>(true),
), ),
), ),
menuItemStyleData: const MenuItemStyleData(
height: 40,
padding: EdgeInsets.only(left: 14, right: 14),
),
), ),
], ),
), ],
), ),
ErrorWidget(context, provider.selectDirectAccountError), ),
TextWidget(context, "Payment Account"), ErrorWidget(context, provider.selectDirectAccountError),
DropdownButtonHideUnderline( TextWidget(context, "Payment Account"),
child: Row( DropdownButtonHideUnderline(
children: [ child: Row(
Expanded( children: [
child: DropdownButton2<DirectPaymentAccounts>( Expanded(
isExpanded: true, child: DropdownButton2<DirectPaymentAccounts>(
hint: Text( isExpanded: true,
'Select Account Type', hint: Text(
style: TextStyle(fontSize: 14), 'Select Account Type',
overflow: TextOverflow.ellipsis, style: TextStyle(fontSize: 14),
), overflow: TextOverflow.ellipsis,
items: ),
provider.directPaymentAccounts items:
.map( provider.directPaymentAccounts
(accs) => DropdownMenuItem< .map(
DirectPaymentAccounts (accs) => DropdownMenuItem<
>( DirectPaymentAccounts
value: accs, >(
child: Text( value: accs,
accs.name ?? '', child: Text(
style: const TextStyle( accs.name ?? '',
fontSize: 14, style: const TextStyle(
), fontSize: 14,
overflow: TextOverflow.ellipsis,
), ),
overflow: TextOverflow.ellipsis,
), ),
) ),
.toList(), )
value: provider.selectDirectPaymentAccounts, .toList(),
onChanged: (DirectPaymentAccounts? value) { value: provider.selectDirectPaymentAccounts,
if (value != null) { onChanged: (DirectPaymentAccounts? value) {
if (provider if (value != null) {
.directPaymentAccounts if (provider
.isNotEmpty) { .directPaymentAccounts
provider.selectDirectPaymentAccounts = .isNotEmpty) {
value; provider.selectDirectPaymentAccounts =
print( value;
"Selected Complaint Type: ${value.name}, ID: ${value.id}", print(
); "Selected Complaint Type: ${value.name}, ID: ${value.id}",
provider.directPaymentAccountsID = );
value.id!; provider.directPaymentAccountsID =
provider.directPaymentAccountsValue = value.id!;
value.name!; provider.directPaymentAccountsValue =
print( value.name!;
"hfjkshfg" + print(
provider.directPaymentAccountsID "hfjkshfg" +
.toString(), provider.directPaymentAccountsID
); .toString(),
} );
} }
}, }
buttonStyleData: ButtonStyleData( },
height: 50, buttonStyleData: ButtonStyleData(
width: 160, height: 50,
padding: const EdgeInsets.only( width: 160,
left: 14, padding: const EdgeInsets.only(
right: 14, left: 14,
), right: 14,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
),
), ),
iconStyleData: const IconStyleData( decoration: BoxDecoration(
icon: Icon(Icons.keyboard_arrow_down), borderRadius: BorderRadius.circular(14),
iconSize: 12, color: AppColors.text_field_color,
iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey,
), ),
dropdownStyleData: DropdownStyleData( ),
maxHeight: 200, iconStyleData: IconStyleData(
decoration: BoxDecoration( icon: SvgPicture.asset(
borderRadius: BorderRadius.circular(14), "assets/svg/arrow_dropdown.svg",
color: AppColors.text_field_color, height: 25,
), width: 20,
scrollbarTheme: ScrollbarThemeData(
radius: const Radius.circular(15),
thickness: MaterialStateProperty.all<double>(
6,
),
thumbVisibility:
MaterialStateProperty.all<bool>(true),
),
), ),
menuItemStyleData: const MenuItemStyleData( iconSize: 12,
height: 40, iconEnabledColor: Color(0xFF2D2D2D),
padding: EdgeInsets.only(left: 14, right: 14), iconDisabledColor: Colors.grey,
),
dropdownStyleData: DropdownStyleData(
maxHeight: 200,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
),
scrollbarTheme: ScrollbarThemeData(
radius: const Radius.circular(15),
thickness: MaterialStateProperty.all<double>(
6,
),
thumbVisibility:
MaterialStateProperty.all<bool>(true),
), ),
), ),
menuItemStyleData: const MenuItemStyleData(
height: 40,
padding: EdgeInsets.only(left: 14, right: 14),
),
), ),
], ),
), ],
),
ErrorWidget(context, provider.selectDirectPaymentAccountError),
textControllerWidget(
context,
provider.amountController,
"Enter Amount",
provider.updateAmount,
), ),
),
ErrorWidget(
context,
provider.selectDirectPaymentAccountError,
),
textControllerWidget(
context,
provider.amountController,
"Enter Amount",
provider.updateAmount,
),
ErrorWidget(context, provider.amountError), ErrorWidget(context, provider.amountError),
///payment date toBE
TextWidget(context, "Enter Date"),
GestureDetector(
onTap: () {
provider.showDatePickerDialog(context);
}, ///payment date toBE
child: Row( TextWidget(context, "Enter Date"),
crossAxisAlignment: CrossAxisAlignment.center, GestureDetector(
children: [ onTap: () {
Expanded( provider.showDatePickerDialog(context);
child: Container( },
child: Row(
height: 50, crossAxisAlignment: CrossAxisAlignment.center,
alignment: Alignment.center, children: [
decoration: BoxDecoration( Expanded(
color: AppColors.text_field_color, child: Container(
borderRadius: BorderRadius.circular(14), height: 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(
10.0,
0.0,
10,
0,
), ),
child: Padding( child: TextFormField(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0), controller: provider.dateController,
child: TextFormField( keyboardType: TextInputType.text,
controller: provider.dateController, enabled: false,
keyboardType: TextInputType.text, maxLines: 1,
enabled: false, readOnly: true,
maxLines: 1, onChanged: (value) {},
readOnly: true, decoration: InputDecoration(
onChanged: (value) { hintText: "Enter Date",
hintStyle: TextStyle(
}, fontWeight: FontWeight.w400,
decoration: InputDecoration( color: Color(0xFFB4BEC0),
hintText: "Enter Date", fontSize: 14,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none,
disabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
), ),
enabledBorder: InputBorder.none,
disabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
), ),
), ),
), ),
), ),
], ),
), ],
), ),
ErrorWidget(context, provider.dateError), ),
TextWidget(context, "Select Payment Mode"), ErrorWidget(context, provider.dateError),
DropdownButtonHideUnderline( TextWidget(context, "Select Payment Mode"),
child: Row( DropdownButtonHideUnderline(
children: [ child: Row(
Expanded( children: [
child: DropdownButton2<DirectPaymentModes>( Expanded(
isExpanded: true, child: DropdownButton2<DirectPaymentModes>(
hint: Text( isExpanded: true,
'Select Payment mode', hint: Text(
style: TextStyle(fontSize: 14), 'Select Payment mode',
overflow: TextOverflow.ellipsis, style: TextStyle(fontSize: 14),
), overflow: TextOverflow.ellipsis,
items: ),
provider.directPaymentModes items:
.map( provider.directPaymentModes
(paymenents) => DropdownMenuItem< .map(
DirectPaymentModes (paymenents) => DropdownMenuItem<
>( DirectPaymentModes
value: paymenents, >(
child: Text( value: paymenents,
paymenents.name ?? '', child: Text(
style: const TextStyle( paymenents.name ?? '',
fontSize: 14, style: const TextStyle(
), fontSize: 14,
overflow: TextOverflow.ellipsis,
), ),
overflow: TextOverflow.ellipsis,
), ),
) ),
.toList(), )
value: provider.selectDirectPaymentModes, .toList(),
onChanged: (DirectPaymentModes? value) { value: provider.selectDirectPaymentModes,
if (value != null) { onChanged: (DirectPaymentModes? value) {
if (provider.directPaymentModes.isNotEmpty) { if (value != null) {
provider.selectDirectPaymentModes = value; if (provider.directPaymentModes.isNotEmpty) {
print( provider.selectDirectPaymentModes = value;
"Selected Complaint Type: ${value.name}, ID: ${value.id}", print(
); "Selected Complaint Type: ${value.name}, ID: ${value.id}",
provider.directPaymentModesID = value.id!; );
provider.directPaymentModesValues = provider.directPaymentModesID = value.id!;
value.name!; provider.directPaymentModesValues =
print( value.name!;
"hfjkshfg" + print(
provider.directPaymentModesID "hfjkshfg" +
.toString(), provider.directPaymentModesID
); .toString(),
} );
} }
}, }
buttonStyleData: ButtonStyleData( },
height: 50, buttonStyleData: ButtonStyleData(
width: 160, height: 50,
padding: const EdgeInsets.only( width: 160,
left: 14, padding: const EdgeInsets.only(
right: 14, left: 14,
), right: 14,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
),
), ),
iconStyleData: const IconStyleData( decoration: BoxDecoration(
icon: Icon(Icons.keyboard_arrow_down), borderRadius: BorderRadius.circular(14),
iconSize: 12, color: AppColors.text_field_color,
iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey,
), ),
dropdownStyleData: DropdownStyleData( ),
maxHeight: 200, iconStyleData: IconStyleData(
decoration: BoxDecoration( icon: SvgPicture.asset(
borderRadius: BorderRadius.circular(14), "assets/svg/arrow_dropdown.svg",
color: AppColors.text_field_color, height: 25,
), width: 20,
scrollbarTheme: ScrollbarThemeData(
radius: const Radius.circular(15),
thickness: MaterialStateProperty.all<double>(
6,
),
thumbVisibility:
MaterialStateProperty.all<bool>(true),
),
), ),
menuItemStyleData: const MenuItemStyleData( iconSize: 12,
height: 40, iconEnabledColor: Color(0xFF2D2D2D),
padding: EdgeInsets.only(left: 14, right: 14), iconDisabledColor: Colors.grey,
),
dropdownStyleData: DropdownStyleData(
maxHeight: 200,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
),
scrollbarTheme: ScrollbarThemeData(
radius: const Radius.circular(15),
thickness: MaterialStateProperty.all<double>(
6,
),
thumbVisibility:
MaterialStateProperty.all<bool>(true),
), ),
), ),
menuItemStyleData: const MenuItemStyleData(
height: 40,
padding: EdgeInsets.only(left: 14, right: 14),
),
), ),
], ),
), ],
), ),
ErrorWidget(context, provider.selectDirectPaymentError), ),
if ([ ErrorWidget(context, provider.selectDirectPaymentError),
"Cheque", if ([
"RTGS", "Cheque",
"IMPS", "RTGS",
"NEFT", "IMPS",
].contains(provider.directPaymentModesValues)) ... "NEFT",
[ ].contains(provider.directPaymentModesValues)) ...[
textControllerWidget(
context,
provider.bankNameController,
"Enter Bank Name",
provider.updateBankName,
),
ErrorWidget(context, provider.bankNameError),
textControllerWidget(
context,
provider.bankBranchController,
"Enter Bank Branch",
provider.updateBankBranch,
),
ErrorWidget(context, provider.bankBranchError),
textControllerWidget(
context,
provider.bankAccNumberController,
"Enter Account Number",
provider.updateNumber,
),
ErrorWidget(context, provider.bankNumberError),
textControllerWidget(
context,
provider.bankIfscController,
"Enter Bank IFSC",
provider.updateIFSC,
),
ErrorWidget(context, provider.bankIFSCError),
textControllerWidget(
context,
provider.bankAcHolderController,
"Enter Bank Account Holder Name",
provider.updateHolder,
),ErrorWidget(context, provider.bankHolderError),
]
else if (provider.directPaymentModesValues == "UPI") ...
[
textControllerWidget(
context,
provider.amountController,
"Enter UPI ID",
provider.updateUPI,
),
ErrorWidget(context, provider.UPIError),
],
textControllerWidget( textControllerWidget(
context, context,
provider.paymentReferenceController, provider.bankNameController,
"Enter Payment Reference Number", "Enter Bank Name",
provider.updateReference, provider.updateBankName,
), ),
ErrorWidget(context, provider.paymentreferenceerror), ErrorWidget(context, provider.bankNameError),
textControllerWidget( textControllerWidget(
context, context,
provider.descController, provider.bankBranchController,
"Enter Description", "Enter Bank Branch",
provider.updateDescription, provider.updateBankBranch,
), ),
ErrorWidget(context, provider.descriptionError), ErrorWidget(context, provider.bankBranchError),
InkResponse( textControllerWidget(
onTap: () { context,
_showAttachmentSheet(context); provider.bankAccNumberController,
}, "Enter Account Number",
child: Container( provider.updateNumber,
margin: EdgeInsets.symmetric(vertical: 10), ),
height: 45, ErrorWidget(context, provider.bankNumberError),
width: MediaQuery.of(context).size.width, textControllerWidget(
decoration: BoxDecoration( context,
color: Color(0xFFE6F6FF), provider.bankIfscController,
borderRadius: BorderRadius.circular(12), "Enter Bank IFSC",
border: Border.all( provider.updateIFSC,
color: AppColors.app_blue, ),
width: 0.5, ErrorWidget(context, provider.bankIFSCError),
), textControllerWidget(
context,
provider.bankAcHolderController,
"Enter Bank Account Holder Name",
provider.updateHolder,
),
ErrorWidget(context, provider.bankHolderError),
] else if (provider.directPaymentModesValues == "UPI") ...[
textControllerWidget(
context,
provider.amountController,
"Enter UPI ID",
provider.updateUPI,
),
ErrorWidget(context, provider.UPIError),
],
textControllerWidget(
context,
provider.paymentReferenceController,
"Enter Payment Reference Number",
provider.updateReference,
),
ErrorWidget(context, provider.paymentreferenceerror),
textControllerWidget(
context,
provider.descController,
"Enter Description",
provider.updateDescription,
),
ErrorWidget(context, provider.descriptionError),
InkResponse(
onTap: () {
_showAttachmentSheet(context);
},
child: Container(
margin: EdgeInsets.symmetric(vertical: 10),
height: 45,
width: MediaQuery.of(context).size.width,
decoration: BoxDecoration(
color: Color(0xFFE6F6FF),
borderRadius: BorderRadius.circular(12),
border: Border.all(
color: AppColors.app_blue,
width: 0.5,
), ),
child: Center( ),
child: Text( child: Center(
"File Attachment", child: Text(
style: TextStyle( "File Attachment",
fontFamily: "JakartaMedium", style: TextStyle(
color: AppColors.app_blue, fontFamily: "JakartaMedium",
), color: AppColors.app_blue,
), ),
), ),
), ),
), ),
),
if(provider.imagePicked==1 && provider.imagePath!=null)...[
Padding(
padding: const EdgeInsets.symmetric(vertical: 4.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text("${provider.imagePath}",style: TextStyle(
color: AppColors.semi_black,
fontSize: 11,
fontWeight: FontWeight.w600
),),
InkResponse(
onTap: () {
provider.imagePicked = 0;
provider.imagePath = null;
provider.imageFilePath = null;
},
child: SvgPicture.asset("assets/svg/ic_close.svg",width: 15,height: 15,))
],
),
)
], ],
), ],
), ),
), ),
floatingActionButtonLocation: ),
FloatingActionButtonLocation.centerFloat, floatingActionButtonLocation:
bottomNavigationBar: InkResponse( FloatingActionButtonLocation.centerFloat,
onTap: () { bottomNavigationBar: InkResponse(
// provider.submitClicked = true; onTap: () {
provider.addDirectPaymentRequestionSubmitAPI(context, provider.formattedDate); // provider.submitClicked = true;
}, provider.addDirectPaymentRequestionSubmitAPI(
child: Container( context,
height: 45, provider.formattedDate,
alignment: Alignment.center, );
margin: EdgeInsets.symmetric(horizontal: 10,vertical: 15), },
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5), child: Container(
decoration: BoxDecoration( height: 45,
color: AppColors.app_blue, alignment: Alignment.center,
borderRadius: BorderRadius.circular(15), margin: EdgeInsets.symmetric(horizontal: 10, vertical: 15),
), padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5),
child: Text( decoration: BoxDecoration(
"Submit", color: AppColors.app_blue,
style: TextStyle( borderRadius: BorderRadius.circular(15),
fontSize: 15, ),
fontFamily: "JakartaMedium", child: Text(
color: Colors.white, "Submit",
), style: TextStyle(
fontSize: 15,
fontFamily: "JakartaMedium",
color: Colors.white,
), ),
), ),
), ),
), ),
onWillPop: () {
provider.resetForm();
return onBackPressed(context);
},
);
},
);
}
void _showDialog(Widget child) {
showCupertinoModalPopup<void>(
context: context,
builder: (BuildContext context) => Container(
height: 216,
padding: const EdgeInsets.only(top: 6.0),
// The Bottom margin is provided to align the popup above the system
// navigation bar.
margin: EdgeInsets.only(
bottom: MediaQuery.of(context).viewInsets.bottom,
), ),
// Provide a background color for the popup. onWillPop: () {
color: CupertinoColors.systemBackground.resolveFrom(context), provider.resetForm();
// Use a SafeArea widget to avoid system overlaps. return onBackPressed(context);
child: SafeArea( },
top: false, );
child: Column( },
children: [ );
Expanded( }
flex: 1,
child: SizedBox( void _showDialog(Widget child) {
height: 40, showCupertinoModalPopup<void>(
child: Row( context: context,
mainAxisAlignment: MainAxisAlignment.spaceBetween, builder:
children: [ (BuildContext context) => Container(
// Add a Cancel button (optional) height: 216,
CupertinoButton( padding: const EdgeInsets.only(top: 6.0),
child: Text( // The Bottom margin is provided to align the popup above the system
'Cancel', // navigation bar.
style: TextStyle(fontFamily: "JakartaMedium"), margin: EdgeInsets.only(
bottom: MediaQuery.of(context).viewInsets.bottom,
),
// Provide a background color for the popup.
color: CupertinoColors.systemBackground.resolveFrom(context),
// Use a SafeArea widget to avoid system overlaps.
child: SafeArea(
top: false,
child: Column(
children: [
Expanded(
flex: 1,
child: SizedBox(
height: 40,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
// Add a Cancel button (optional)
CupertinoButton(
child: Text(
'Cancel',
style: TextStyle(fontFamily: "JakartaMedium"),
),
onPressed: () {
Navigator.pop(context);
},
), ),
onPressed: () { // Add a Done button
Navigator.pop(context); CupertinoButton(
}, child: Text(
), 'Done',
// Add a Done button style: TextStyle(fontFamily: "JakartaMedium"),
CupertinoButton( ),
child: Text('Done', onPressed: () {
style: TextStyle(fontFamily: "JakartaMedium")), Navigator.pop(context); // Dismiss the dialog
onPressed: () { },
Navigator.pop(context); // Dismiss the dialog ),
}, ],
), ),
],
), ),
), ),
), Expanded(flex: 3, child: child),
Expanded(flex: 3, child: child), ],
], ),
), ),
), ),
), );
); }
}
Widget TextWidget(context, text) {
return Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(text),
);
}
Widget ErrorWidget(context, text) { Widget TextWidget(context, text) {
if (text != null) return Padding(
return Text(text!, style: TextStyle(color: Colors.red, fontSize: 12)); padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
else child: Text(text),
return SizedBox(height: 10); );
} }
Widget textControllerWidget( Widget ErrorWidget(context, text) {
context, if (text != null)
controller, return Text(text!, style: TextStyle(color: Colors.red, fontSize: 12));
hintText, else
Function(String)? onChanged, return SizedBox(height: 10);
) { }
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(hintText),
),
Container(
height: hintText == "Enter Description" ? 150 : 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: controller,
keyboardType: TextInputType.text,
maxLines: hintText == "Enter Description" ? 60 : 1,
onChanged: onChanged,
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none, Widget textControllerWidget(
focusedBorder: InputBorder.none, context,
controller,
hintText,
Function(String)? onChanged,
) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(hintText),
),
Container(
height: hintText == "Enter Description" ? 150 : 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: controller,
keyboardType: TextInputType.text,
maxLines: hintText == "Enter Description" ? 60 : 1,
onChanged: onChanged,
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
), ),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
), ),
), ),
), ),
], ),
); ],
} );
}
Future<void> _showAttachmentSheet(BuildContext context) { Future<void> _showAttachmentSheet(BuildContext context) {
return showModalBottomSheet( return showModalBottomSheet(
useSafeArea: true, useSafeArea: true,
isDismissible: true, isDismissible: true,
isScrollControlled: true, isScrollControlled: true,
showDragHandle: true, showDragHandle: true,
backgroundColor: Colors.white, backgroundColor: Colors.white,
enableDrag: true, enableDrag: true,
context: context, context: context,
builder: (context) { builder: (context) {
return StatefulBuilder( return StatefulBuilder(
builder: (context, setState) { builder: (context, setState) {
return SafeArea( return SafeArea(
child: Consumer<Requestionlistprovider>( child: Consumer<Requestionlistprovider>(
builder: (context, provider, child) { builder: (context, provider, child) {
return Padding( return Padding(
padding: EdgeInsets.only( padding: EdgeInsets.only(
bottom: bottom:
MediaQuery.of( MediaQuery.of(
context, context,
).viewInsets.bottom, // This handles keyboard ).viewInsets.bottom, // This handles keyboard
),
child: Container(
margin: EdgeInsets.only(
bottom: 15,
left: 15,
right: 15,
top: 10,
), ),
child: Container(
margin: EdgeInsets.only(
bottom: 15,
left: 15,
right: 15,
top: 10,
),
child: SingleChildScrollView( child: SingleChildScrollView(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
Align( Align(
alignment: Alignment.center, alignment: Alignment.center,
child: Text( child: Text(
"Select Source", "Select Source",
style: TextStyle( style: TextStyle(
color: AppColors.app_blue, color: AppColors.app_blue,
fontFamily: "JakrtaMedium", fontFamily: "JakrtaMedium",
fontSize: 16, fontSize: 16,
),
), ),
), ),
SizedBox(height: 15), ),
InkWell( SizedBox(height: 15),
onTap: () { InkWell(
Navigator.of(context).pop(false); onTap: () {
provider.imgFromGallery(context); Navigator.of(context).pop(false);
}, provider.imgFromGallery(context);
child: Container( },
height: 35, child: Container(
child: Text("Select photo from gallery"), height: 35,
), child: Text("Select photo from gallery"),
), ),
SizedBox(height: 10), ),
InkWell( SizedBox(height: 10),
onTap: () { InkWell(
Navigator.of(context).pop(false); onTap: () {
provider.imgFromCamera(context); Navigator.of(context).pop(false);
}, provider.imgFromCamera(context);
child: Container( },
height: 35, child: Container(
child: Text("Capture photo from camera"), height: 35,
), child: Text("Capture photo from camera"),
), ),
], ),
), ],
), ),
), ),
); ),
}, );
), },
); ),
}, );
); },
}, );
); },
} );
} }
}
...@@ -3,12 +3,7 @@ import 'package:flutter_svg/svg.dart'; ...@@ -3,12 +3,7 @@ import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/financeProvider/DashboardProvider.dart'; import 'package:generp/Notifiers/financeProvider/DashboardProvider.dart';
import 'package:generp/Utils/app_colors.dart'; import 'package:generp/Utils/app_colors.dart';
import 'package:generp/Utils/commonWidgets.dart'; import 'package:generp/Utils/commonWidgets.dart';
import 'package:generp/screens/finance/AllPaymentRequesitionListsByModes.dart'; import 'package:generp/screens/screensExports.dart';
import 'package:generp/screens/finance/addPaymentReceiptList.dart';
import 'package:generp/screens/finance/directPaymentRequesitionList.dart';
import 'package:generp/screens/finance/paymentListPaymentRequisition.dart';
import 'package:generp/screens/finance/paymentreceiptList.dart';
import 'package:generp/screens/finance/submitPaymentRequestionListsByMode.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class Financedashboard extends StatefulWidget { class Financedashboard extends StatefulWidget {
......
import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/financeProvider/RequesitionLidtDetailsProvider.dart';
import 'package:generp/Notifiers/financeProvider/approveRejectPaymentRequestResponse.dart';
import 'package:generp/Utils/app_colors.dart'; import 'package:generp/Utils/app_colors.dart';
import 'package:generp/Utils/commonWidgets.dart'; import 'package:generp/Utils/commonWidgets.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
......
...@@ -3,7 +3,6 @@ import 'package:flutter/material.dart'; ...@@ -3,7 +3,6 @@ import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:generp/screens/finance/paymentDetailsPaymentRequisition.dart'; import 'package:generp/screens/finance/paymentDetailsPaymentRequisition.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../Notifiers/financeProvider/paymentRequisitionPaymentsListProvider.dart'; import '../../Notifiers/financeProvider/paymentRequisitionPaymentsListProvider.dart';
import '../../Utils/app_colors.dart'; import '../../Utils/app_colors.dart';
import '../../Utils/commonWidgets.dart'; import '../../Utils/commonWidgets.dart';
...@@ -91,7 +90,8 @@ class _PaymentlistpaymentrequisitionState extends State<Paymentlistpaymentrequis ...@@ -91,7 +90,8 @@ class _PaymentlistpaymentrequisitionState extends State<Paymentlistpaymentrequis
? Center(child: CircularProgressIndicator.adaptive( ? Center(child: CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation<Color>( valueColor: AlwaysStoppedAnimation<Color>(
AppColors.app_blue) AppColors.app_blue)
)):Container( ))
:requestLists.isNotEmpty?Container(
child: SingleChildScrollView( child: SingleChildScrollView(
child: Column( child: Column(
children: [ children: [
...@@ -311,7 +311,7 @@ class _PaymentlistpaymentrequisitionState extends State<Paymentlistpaymentrequis ...@@ -311,7 +311,7 @@ class _PaymentlistpaymentrequisitionState extends State<Paymentlistpaymentrequis
], ],
), ),
), ),
), ):Emptywidget(context),
), ),
); );
}, },
......
import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/financeProvider/RequesitionLidtDetailsProvider.dart';
import 'package:generp/Notifiers/financeProvider/approveRejectPaymentRequestResponse.dart';
import 'package:generp/Utils/app_colors.dart'; import 'package:generp/Utils/app_colors.dart';
import 'package:generp/Utils/commonWidgets.dart'; import 'package:generp/Utils/commonWidgets.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../Notifiers/financeProvider/paymentReceiptsProvider.dart'; import '../../Notifiers/financeProvider/paymentReceiptsProvider.dart';
import '../../Notifiers/financeProvider/paymentRequisitionPaymentsListProvider.dart';
import 'FileViewer.dart'; import 'FileViewer.dart';
class Paymentreceiptdetails extends StatefulWidget { class Paymentreceiptdetails extends StatefulWidget {
......
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:generp/screens/finance/paymentDetailsPaymentRequisition.dart';
import 'package:generp/screens/finance/paymentReceiptDetails.dart'; import 'package:generp/screens/finance/paymentReceiptDetails.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
...@@ -93,204 +92,202 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> { ...@@ -93,204 +92,202 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> {
? Center(child: CircularProgressIndicator.adaptive( ? Center(child: CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation<Color>( valueColor: AlwaysStoppedAnimation<Color>(
AppColors.app_blue) AppColors.app_blue)
)):Container( )):requestLists.isNotEmpty?SingleChildScrollView(
child: SingleChildScrollView( child: Column(
child: Column( children: [
children: [ ListView.builder(
ListView.builder( itemCount: requestLists.length,
itemCount: requestLists.length, shrinkWrap: true,
shrinkWrap: true, physics: NeverScrollableScrollPhysics(),
physics: NeverScrollableScrollPhysics(), itemBuilder: (context, index) {
itemBuilder: (context, index) { return Container(
return Container( padding: EdgeInsets.symmetric(
padding: EdgeInsets.symmetric( horizontal: 10,
horizontal: 10, vertical: 10,
vertical: 10, ),
), margin: EdgeInsets.symmetric(
margin: EdgeInsets.symmetric( horizontal: 10,
horizontal: 10, vertical: 10,
vertical: 10, ),
), decoration: BoxDecoration(
decoration: BoxDecoration( color: Colors.white,
color: Colors.white, borderRadius: BorderRadius.circular(16),
borderRadius: BorderRadius.circular(16), ),
), child: Column(
child: Column( children: [
children: [ Row(
Row( children: [
children: [ Expanded(
Expanded( flex: 1,
flex: 1, child: Container(
child: Container( height: 50,
height: 50, width: 35,
width: 35, padding: EdgeInsets.all(8.0),
padding: EdgeInsets.all(8.0), decoration: BoxDecoration(
decoration: BoxDecoration( color: Color(0xFFFFF3CE),
color: Color(0xFFFFF3CE), borderRadius: BorderRadius.circular(8),
borderRadius: BorderRadius.circular(8),
),
child: SvgPicture.asset(
"assets/svg/fin_ic.svg",
),
), ),
), child: SvgPicture.asset(
SizedBox(width: 10), "assets/svg/fin_ic.svg",
Expanded(
flex: 4,
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
requestLists[index].receipientAccount!,
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.semi_black,
),
),
Text(
"₹${requestLists[index].amount}",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.app_blue,
),
),
],
),
), ),
), ),
),
], SizedBox(width: 10),
), Expanded(
Divider(thickness: 0.5, color: Color(0xFFD7D7D7)), flex: 4,
...List.generate(4, (j) { child: SizedBox(
final headings = [ child: Column(
"Request Mode", crossAxisAlignment:
"Attachment", CrossAxisAlignment.start,
"Receipt Date", children: [
"Note", Text(
]; requestLists[index].receipientAccount!,
final subHeadings = [
requestLists[index].requestMode,
"View",
// requestLists[index].attachmentDirFilePath
requestLists[index].receiptDate,
requestLists[index].description,
];
return Container(
padding: EdgeInsets.symmetric(vertical: 5),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
child: Text(
headings[j],
style: TextStyle( style: TextStyle(
fontFamily: "JakartaMedium", fontFamily: "JakartaMedium",
fontSize: 14, fontSize: 14,
color: AppColors.semi_black, color: AppColors.semi_black,
), ),
), ),
), Text(
Expanded( "₹${requestLists[index].amount}",
child: InkResponse( style: TextStyle(
onTap: fontFamily: "JakartaMedium",
j != 1 fontSize: 14,
? null color: AppColors.app_blue,
: () {
Navigator.push(
context,
MaterialPageRoute(
builder:
(
context,
) => Fileviewer(
fileName:
requestLists[index]
.attachmentViewFileName!,
fileUrl:
requestLists[index]
.attachmentDirFilePath!,
),
),
);
},
child: Text(
subHeadings[j]!,
style: TextStyle(
fontSize: 14,
color:
j == 1
? AppColors.app_blue
: Color(0xFF818181),
decoration:
j == 1
? TextDecoration.underline
: TextDecoration.none,
decorationColor:
j == 1
? AppColors.app_blue
: AppColors.white,
),
), ),
), ),
), ],
],
),
);
}),
InkResponse(
onTap: () async {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) =>
Paymentreceiptdetails(
pageName: widget.pageTitleName,
paymentRequestId:
requestLists[index].id,
),
), ),
); ),
}, ),
child: Container(
padding: EdgeInsets.symmetric(vertical: 5), ],
child: Row( ),
crossAxisAlignment: Divider(thickness: 0.5, color: Color(0xFFD7D7D7)),
CrossAxisAlignment.center, ...List.generate(4, (j) {
mainAxisAlignment: MainAxisAlignment.start, final headings = [
children: [ "Request Mode",
Text( "Attachment",
"View Details", "Receipt Date",
"Note",
];
final subHeadings = [
requestLists[index].requestMode,
"View",
// requestLists[index].attachmentDirFilePath
requestLists[index].receiptDate,
requestLists[index].description,
];
return Container(
padding: EdgeInsets.symmetric(vertical: 5),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
child: Text(
headings[j],
style: TextStyle( style: TextStyle(
fontFamily: "JakartaMedium", fontFamily: "JakartaMedium",
fontSize: 14, fontSize: 14,
color: AppColors.app_blue, color: AppColors.semi_black,
), ),
), ),
SizedBox(width: 5), ),
SvgPicture.asset( Expanded(
"assets/svg/next_button.svg", child: InkResponse(
onTap:
j != 1
? null
: () {
Navigator.push(
context,
MaterialPageRoute(
builder:
(
context,
) => Fileviewer(
fileName:
requestLists[index]
.attachmentViewFileName!,
fileUrl:
requestLists[index]
.attachmentDirFilePath!,
),
),
);
},
child: Text(
subHeadings[j]!,
style: TextStyle(
fontSize: 14,
color:
j == 1
? AppColors.app_blue
: Color(0xFF818181),
decoration:
j == 1
? TextDecoration.underline
: TextDecoration.none,
decorationColor:
j == 1
? AppColors.app_blue
: AppColors.white,
),
),
), ),
], ),
],
),
);
}),
InkResponse(
onTap: () async {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) =>
Paymentreceiptdetails(
pageName: widget.pageTitleName,
paymentRequestId:
requestLists[index].id,
),
), ),
);
},
child: Container(
padding: EdgeInsets.symmetric(vertical: 5),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text(
"View Details",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.app_blue,
),
),
SizedBox(width: 5),
SvgPicture.asset(
"assets/svg/next_button.svg",
),
],
), ),
), ),
], ),
), ],
); ),
}, );
), },
], ),
), ],
), ),
), ):Emptywidget(context),
), ),
); );
}, },
......
import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/financeProvider/RequestionListProvider.dart'; import 'package:generp/Notifiers/financeProvider/RequestionListProvider.dart';
import 'package:generp/Utils/app_colors.dart'; import 'package:generp/Utils/app_colors.dart';
import 'package:generp/Utils/commonWidgets.dart'; import 'package:generp/Utils/commonWidgets.dart';
...@@ -124,8 +125,8 @@ class _SubmitpaymentrequestionlistsbymodeState ...@@ -124,8 +125,8 @@ class _SubmitpaymentrequestionlistsbymodeState
color: AppColors.text_field_color, color: AppColors.text_field_color,
), ),
), ),
iconStyleData: const IconStyleData( iconStyleData: IconStyleData(
icon: Icon(Icons.keyboard_arrow_down), icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12, iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D), iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey, iconDisabledColor: Colors.grey,
...@@ -209,8 +210,8 @@ class _SubmitpaymentrequestionlistsbymodeState ...@@ -209,8 +210,8 @@ class _SubmitpaymentrequestionlistsbymodeState
color: AppColors.text_field_color, color: AppColors.text_field_color,
), ),
), ),
iconStyleData: const IconStyleData( iconStyleData: IconStyleData(
icon: Icon(Icons.keyboard_arrow_down), icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12, iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D), iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey, iconDisabledColor: Colors.grey,
...@@ -321,8 +322,8 @@ class _SubmitpaymentrequestionlistsbymodeState ...@@ -321,8 +322,8 @@ class _SubmitpaymentrequestionlistsbymodeState
color: AppColors.text_field_color, color: AppColors.text_field_color,
), ),
), ),
iconStyleData: const IconStyleData( iconStyleData: IconStyleData(
icon: Icon(Icons.keyboard_arrow_down), icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12, iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D), iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey, iconDisabledColor: Colors.grey,
...@@ -380,6 +381,28 @@ class _SubmitpaymentrequestionlistsbymodeState ...@@ -380,6 +381,28 @@ class _SubmitpaymentrequestionlistsbymodeState
), ),
), ),
), ),
if(provider.imagePicked==1 && provider.imagePath!=null)...[
Padding(
padding: const EdgeInsets.symmetric(vertical: 4.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text("${provider.imagePath}",style: TextStyle(
color: AppColors.semi_black,
fontSize: 11,
fontWeight: FontWeight.w600
),),
InkResponse(
onTap: () {
provider.imagePicked = 0;
provider.imagePath = null;
provider.imageFilePath = null;
},
child: SvgPicture.asset("assets/svg/ic_close.svg",width: 15,height: 15,))
],
),
)
],
ErrorWidget(context, provider.FileError), ErrorWidget(context, provider.FileError),
if ([ if ([
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../Notifiers/GeneratorDetailsProvider.dart'; import '../../Notifiers/GeneratorDetailsProvider.dart';
......
...@@ -86,7 +86,7 @@ class _GeneratordetailsState extends State<Generatordetails> { ...@@ -86,7 +86,7 @@ class _GeneratordetailsState extends State<Generatordetails> {
// val intent = Intent(Intent.ACTION_VIEW, Uri.parse(uri)) // val intent = Intent(Intent.ACTION_VIEW, Uri.parse(uri))
} }
}, },
child: Icon(Icons.directions), child: SvgPicture.asset("assets/svg/directions_ic.svg"),
), ),
); );
return WillPopScope( return WillPopScope(
......
...@@ -257,8 +257,8 @@ class _RegistercomplaintState extends State<Registercomplaint> { ...@@ -257,8 +257,8 @@ class _RegistercomplaintState extends State<Registercomplaint> {
color: AppColors.text_field_color, color: AppColors.text_field_color,
), ),
), ),
iconStyleData: const IconStyleData( iconStyleData: IconStyleData(
icon: Icon(Icons.keyboard_arrow_down), icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12, iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D), iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey, iconDisabledColor: Colors.grey,
...@@ -363,8 +363,8 @@ class _RegistercomplaintState extends State<Registercomplaint> { ...@@ -363,8 +363,8 @@ class _RegistercomplaintState extends State<Registercomplaint> {
color: AppColors.text_field_color, color: AppColors.text_field_color,
), ),
), ),
iconStyleData: const IconStyleData( iconStyleData: IconStyleData(
icon: Icon(Icons.keyboard_arrow_down), icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12, iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D), iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey, iconDisabledColor: Colors.grey,
...@@ -471,8 +471,8 @@ class _RegistercomplaintState extends State<Registercomplaint> { ...@@ -471,8 +471,8 @@ class _RegistercomplaintState extends State<Registercomplaint> {
color: AppColors.text_field_color, color: AppColors.text_field_color,
), ),
), ),
iconStyleData: const IconStyleData( iconStyleData: IconStyleData(
icon: Icon(Icons.keyboard_arrow_down), icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12, iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D), iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey, iconDisabledColor: Colors.grey,
......
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