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

07-07-2025 By Sai Srinivas

Pubspec and Safe Area.
parent 67ab0f3e
...@@ -278,7 +278,6 @@ class Generatordetailsprovider extends ChangeNotifier { ...@@ -278,7 +278,6 @@ class Generatordetailsprovider extends ChangeNotifier {
} }
void resetForm() { void resetForm() {
_qrViewController!.dispose();
engNoController.clear(); engNoController.clear();
_selectedComplaintType = null; _selectedComplaintType = null;
_selectedCategoryType = null; _selectedCategoryType = null;
...@@ -289,6 +288,8 @@ class Generatordetailsprovider extends ChangeNotifier { ...@@ -289,6 +288,8 @@ class Generatordetailsprovider extends ChangeNotifier {
_selectedCategoryId = ""; _selectedCategoryId = "";
_selectedDescriptionId = ""; _selectedDescriptionId = "";
_selectedDescription = ""; _selectedDescription = "";
_qrViewController!.dispose();
} }
initialFunction(from) async { initialFunction(from) async {
......
...@@ -130,7 +130,7 @@ set markers(List<Marker> value){ ...@@ -130,7 +130,7 @@ set markers(List<Marker> value){
final lat = _currentLocation!.latitude; final lat = _currentLocation!.latitude;
final lang = _currentLocation!.longitude!; final lang = _currentLocation!.longitude!;
_latlongs = '$lat,$lang'; _latlongs = '$lat,$lang';
LoadNearbyGeneratorsAPI(context); LoadNearbyGeneratorsAPI(context,_currentValue);
} }
} }
...@@ -146,7 +146,7 @@ set markers(List<Marker> value){ ...@@ -146,7 +146,7 @@ set markers(List<Marker> value){
} }
Future<void> LoadNearbyGeneratorsAPI(BuildContext context) async { Future<void> LoadNearbyGeneratorsAPI(BuildContext context,radius) async {
if (_latlongs.isEmpty || _currentValue <= 0) { if (_latlongs.isEmpty || _currentValue <= 0) {
print("Invalid parameters: latlongs=$_latlongs, currentValue=$_currentValue"); print("Invalid parameters: latlongs=$_latlongs, currentValue=$_currentValue");
return; return;
...@@ -231,6 +231,19 @@ set markers(List<Marker> value){ ...@@ -231,6 +231,19 @@ set markers(List<Marker> value){
position: _parseLatLng(generator.loc), position: _parseLatLng(generator.loc),
icon: BitmapDescriptor.fromBytes(resizedBytes), icon: BitmapDescriptor.fromBytes(resizedBytes),
infoWindow: InfoWindow( infoWindow: InfoWindow(
onTap: () {
print("INFO WINDOW TAP");
Navigator.push(
context, // Use the widget's BuildContext, which is valid here
MaterialPageRoute(
builder: (context) => Generatordetails(
activityName: "NearByGenerators",
genLocation: generator.loc,
generatorId: generator.generatorId,
),
),
);
},
title: "Customer Name: ${generator.accName}", title: "Customer Name: ${generator.accName}",
snippet: "Product Name: ${generator.productName}", snippet: "Product Name: ${generator.productName}",
...@@ -238,16 +251,16 @@ set markers(List<Marker> value){ ...@@ -238,16 +251,16 @@ set markers(List<Marker> value){
zIndex: 100, zIndex: 100,
onTap: () { onTap: () {
int index = generatorslist.indexWhere( // int index = generatorslist.indexWhere(
(techResponse) => // (techResponse) =>
techResponse.generatorId == generator.generatorId, // techResponse.generatorId == generator.generatorId,
); // );
onMarkerTap( // onMarkerTap(
context, // context,
"NearByGenerators", // "NearByGenerators",
generator.loc, // generator.loc,
generator.generatorId, // generator.generatorId,
); // );
// print("index:${index}"); // print("index:${index}");
// Navigator.push( // Navigator.push(
// context, // context,
......
...@@ -39,7 +39,6 @@ class crmNearbyOpenLeadsProvider extends ChangeNotifier { ...@@ -39,7 +39,6 @@ class crmNearbyOpenLeadsProvider extends ChangeNotifier {
Timer? _timer; Timer? _timer;
File? _image; File? _image;
bool _isLoading = true; bool _isLoading = true;
String _selectedItem = 'Active';
double _currentValue = 1.0; double _currentValue = 1.0;
Timer? _debounceTimer; Timer? _debounceTimer;
...@@ -59,17 +58,13 @@ class crmNearbyOpenLeadsProvider extends ChangeNotifier { ...@@ -59,17 +58,13 @@ class crmNearbyOpenLeadsProvider extends ChangeNotifier {
bool get isLoading => _isLoading; bool get isLoading => _isLoading;
Timer? get timer => _timer; Timer? get timer => _timer;
File? get image => _image; File? get image => _image;
String get selectedItem => _selectedItem;
double get currentValue => _currentValue; double get currentValue => _currentValue;
set currentValue(value){ set currentValue(value){
_currentValue = value; _currentValue = value;
notifyListeners(); notifyListeners();
} }
set selectedItem(String value){
_selectedItem = value;
notifyListeners();
}
set markers(List<Marker> value){ set markers(List<Marker> value){
_markers = value; _markers = value;
...@@ -82,7 +77,6 @@ class crmNearbyOpenLeadsProvider extends ChangeNotifier { ...@@ -82,7 +77,6 @@ class crmNearbyOpenLeadsProvider extends ChangeNotifier {
void resetAll(){ void resetAll(){
_currentValue = 1.0; _currentValue = 1.0;
_selectedItem = "";
_markers= []; _markers= [];
_addresses = []; _addresses = [];
} }
...@@ -128,7 +122,7 @@ class crmNearbyOpenLeadsProvider extends ChangeNotifier { ...@@ -128,7 +122,7 @@ class crmNearbyOpenLeadsProvider extends ChangeNotifier {
final lat = _currentLocation!.latitude; final lat = _currentLocation!.latitude;
final lang = _currentLocation!.longitude!; final lang = _currentLocation!.longitude!;
_latlongs = '$lat,$lang'; _latlongs = '$lat,$lang';
LoadNearbyOpenLeadsAPI(context); LoadNearbyOpenLeadsAPI(context,_currentValue);
} }
} }
...@@ -144,7 +138,7 @@ class crmNearbyOpenLeadsProvider extends ChangeNotifier { ...@@ -144,7 +138,7 @@ class crmNearbyOpenLeadsProvider extends ChangeNotifier {
} }
Future<void> LoadNearbyOpenLeadsAPI(BuildContext context) async { Future<void> LoadNearbyOpenLeadsAPI(BuildContext context,radius) async {
if (_latlongs.isEmpty || _currentValue <= 0) { if (_latlongs.isEmpty || _currentValue <= 0) {
print("Invalid parameters: latlongs=$_latlongs, currentValue=$_currentValue"); print("Invalid parameters: latlongs=$_latlongs, currentValue=$_currentValue");
return; return;
...@@ -155,7 +149,7 @@ class crmNearbyOpenLeadsProvider extends ChangeNotifier { ...@@ -155,7 +149,7 @@ class crmNearbyOpenLeadsProvider extends ChangeNotifier {
provider.empId, provider.empId,
provider.session, provider.session,
_latlongs, _latlongs,
_currentValue radius
); );
if (data != null) { if (data != null) {
...@@ -223,6 +217,21 @@ class crmNearbyOpenLeadsProvider extends ChangeNotifier { ...@@ -223,6 +217,21 @@ class crmNearbyOpenLeadsProvider extends ChangeNotifier {
position: _parseLatLng(leads.loc), position: _parseLatLng(leads.loc),
icon: BitmapDescriptor.fromBytes(resizedBytes), icon: BitmapDescriptor.fromBytes(resizedBytes),
infoWindow: InfoWindow( infoWindow: InfoWindow(
onTap:() {
// onMarkerTap(context, leads.id);
Navigator.push(
context, // Use the widget's BuildContext, which is valid here
MaterialPageRoute(
builder: (context) => LeadDetailsByMode(
mode: "",
pageTitleName: "Lead Details",
leadId:leads.id ,
),
),
);
},
anchor: Offset(0, 0),
title: "Name: ${leads.name}", title: "Name: ${leads.name}",
snippet: "Address: ${leads.address}", snippet: "Address: ${leads.address}",
...@@ -234,10 +243,10 @@ class crmNearbyOpenLeadsProvider extends ChangeNotifier { ...@@ -234,10 +243,10 @@ class crmNearbyOpenLeadsProvider extends ChangeNotifier {
(techResponse) => (techResponse) =>
techResponse.id == leads.id, techResponse.id == leads.id,
); );
onMarkerTap( // onMarkerTap(
context, // context,
leads.id, // leads.id,
); // );
// print("index:${index}"); // print("index:${index}");
// Navigator.push( // Navigator.push(
// context, // context,
......
...@@ -317,13 +317,18 @@ String? proposedAmountError; ...@@ -317,13 +317,18 @@ String? proposedAmountError;
} catch (e, s) {} } catch (e, s) {}
} }
String? remarksError;
String? ApprovedAmountError;
Future<void> paymentrequisitionRejectSubmitAPIFunction(context, Future<void> paymentrequisitionRejectSubmitAPIFunction(context,
mode, mode,
payment_request_id, payment_request_id,
approve_remarks,) async { approve_remarks,) async {
try { try {
if(approve_remarks.toString().trim().isEmpty) { if(approve_remarks.toString().trim().isEmpty) {
toast(context,"Enter Remarks"); remarksError = "Please Enter Remarks";
notifyListeners();
// toast(context,"Enter Remarks");
return; return;
} }
var provider = Provider.of<HomescreenNotifier>(context, listen: false); var provider = Provider.of<HomescreenNotifier>(context, listen: false);
...@@ -362,6 +367,16 @@ String? proposedAmountError; ...@@ -362,6 +367,16 @@ String? proposedAmountError;
approve_remarks, approve_remarks,
proposed_payment_account_id, proposed_payment_account_id,
); );
if(approved_amount.toString().trim().isEmpty){
ApprovedAmountError = "Enter Amount";
notifyListeners();
return;
}
if(approve_remarks.toString().trim().isEmpty) {
remarksError = "Please Enter Remarks";
notifyListeners();
return;
}
if (data != null) { if (data != null) {
if (data.error == "0") { if (data.error == "0") {
paymentRequesitionDetails(context, payment_request_id); paymentRequesitionDetails(context, payment_request_id);
...@@ -428,6 +443,8 @@ String? proposedAmountError; ...@@ -428,6 +443,8 @@ String? proposedAmountError;
_selectedValue = ""; _selectedValue = "";
_selectedID = null; _selectedID = null;
proposedAmountError = null; proposedAmountError = null;
remarksError = null;
ApprovedAmountError = null;
checkDropDownReset(); checkDropDownReset();
notifyListeners(); notifyListeners();
......
...@@ -4,6 +4,7 @@ import 'package:firebase_core/firebase_core.dart'; ...@@ -4,6 +4,7 @@ import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:flutter_ringtone_player/flutter_ringtone_player.dart'; import 'package:flutter_ringtone_player/flutter_ringtone_player.dart';
import 'package:generp/Utils/app_colors.dart'; import 'package:generp/Utils/app_colors.dart';
...@@ -149,6 +150,8 @@ class MyApp extends StatelessWidget { ...@@ -149,6 +150,8 @@ class MyApp extends StatelessWidget {
// This widget is the root of your application. // This widget is the root of your application.
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
// SystemChrome.setApplicationSwitcherDescription(ApplicationSwitcherDescription());
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) { FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
String type = message.data['type'] ?? ''; String type = message.data['type'] ?? '';
String redirectUrl = message.data['redirect_url'] ?? ''; String redirectUrl = message.data['redirect_url'] ?? '';
...@@ -293,6 +296,7 @@ class MyApp extends StatelessWidget { ...@@ -293,6 +296,7 @@ class MyApp extends StatelessWidget {
AppColors.grey_semi.withOpacity(0.6), AppColors.grey_semi.withOpacity(0.6),
), ),
), ),
useMaterial3: true
// inputDecorationTheme: InputDecorationTheme( // inputDecorationTheme: InputDecorationTheme(
// hintStyle: TextStyle( // hintStyle: TextStyle(
// fontWeight: FontWeight.w400, // fontWeight: FontWeight.w400,
......
import 'dart:io';
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/notifierExports.dart'; import 'package:generp/screens/notifierExports.dart';
...@@ -102,650 +104,654 @@ class _AttendanceScreenState extends State<AttendanceScreen> { ...@@ -102,650 +104,654 @@ class _AttendanceScreenState extends State<AttendanceScreen> {
}, },
child: WillPopScope( child: WillPopScope(
onWillPop: () => onBackPressed(context), onWillPop: () => onBackPressed(context),
child: Scaffold( child: SafeArea(
resizeToAvoidBottomInset: true, top: false,
backgroundColor: AppColors.scaffold_bg_color, bottom: Platform.isIOS?false:true,
appBar: appbar(context, "Attendance"), child: Scaffold(
body: SafeArea( resizeToAvoidBottomInset: true,
child: Container( backgroundColor: AppColors.scaffold_bg_color,
child: SingleChildScrollView( appBar: appbar(context, "Attendance"),
child: Column( body: SafeArea(
crossAxisAlignment: CrossAxisAlignment.start, child: Container(
children: [ child: SingleChildScrollView(
Container( child: Column(
margin: EdgeInsets.only(top: 15, bottom: 15), crossAxisAlignment: CrossAxisAlignment.start,
decoration: BoxDecoration( children: [
color: Colors.white, Container(
borderRadius: BorderRadius.circular(16), margin: EdgeInsets.only(top: 15, bottom: 15),
), decoration: BoxDecoration(
child: Column( color: Colors.white,
crossAxisAlignment: CrossAxisAlignment.start, borderRadius: BorderRadius.circular(16),
children: [ ),
Container( child: Column(
padding: EdgeInsets.only( crossAxisAlignment: CrossAxisAlignment.start,
left: 15, children: [
right: 10, Container(
top: 15, padding: EdgeInsets.only(
), left: 15,
child: Row( right: 10,
children: [ top: 15,
Expanded(child: Text("Check-in")), ),
Expanded(child: Text("Check-out")), child: Row(
], children: [
Expanded(child: Text("Check-in")),
Expanded(child: Text("Check-out")),
],
),
), ),
), SizedBox(
SizedBox( child: Row(
child: Row( children: [
children: [ Expanded(
Expanded( child: Container(
child: Container( padding: EdgeInsets.symmetric(
padding: EdgeInsets.symmetric( horizontal: 10,
horizontal: 10, vertical: 15,
vertical: 15,
),
margin: EdgeInsets.symmetric(
horizontal: 10,
vertical: 15,
),
decoration: BoxDecoration(
color: Color(0xFFF3EDFF),
borderRadius: BorderRadius.circular(
16,
), ),
), margin: EdgeInsets.symmetric(
child: Column( horizontal: 10,
crossAxisAlignment: vertical: 15,
CrossAxisAlignment.start, ),
children: [ decoration: BoxDecoration(
RichText( color: Color(0xFFF3EDFF),
text: TextSpan( borderRadius: BorderRadius.circular(
children: [ 16,
TextSpan( ),
text: formattedTime, ),
style: TextStyle( child: Column(
color:formattedTime!="-"?Color(0xFF493272): Color(0xFFED3424), crossAxisAlignment:
fontFamily: CrossAxisAlignment.start,
"JakartaRegular", children: [
fontSize: 30, RichText(
text: TextSpan(
children: [
TextSpan(
text: formattedTime,
style: TextStyle(
color:formattedTime!="-"?Color(0xFF493272): Color(0xFFED3424),
fontFamily:
"JakartaRegular",
fontSize: 30,
),
), ),
), TextSpan(
TextSpan( text: period,
text: period, style: TextStyle(
style: TextStyle( color:period!="-"?Color(0xFF493272): Color(0xFFED3424),
color:period!="-"?Color(0xFF493272): Color(0xFFED3424), fontFamily:
fontFamily: "JakartaRegular",
"JakartaRegular", ),
), ),
), ],
], ),
), ),
), Text(
Text( "${attendance.attendanceHistory.firstOrNull?['check_in_location']}",
"${attendance.attendanceHistory.firstOrNull?['check_in_location']}", style: TextStyle(
style: TextStyle( color: Color(0xFF818181),
color: Color(0xFF818181), ),
), ),
), ],
], ),
), ),
), ),
), Expanded(
Expanded( child: Container(
child: Container( padding: EdgeInsets.symmetric(
padding: EdgeInsets.symmetric( horizontal: 10,
horizontal: 10, vertical: 15,
vertical: 15,
),
margin: EdgeInsets.symmetric(
horizontal: 10,
vertical: 15,
),
decoration: BoxDecoration(
color: Color(0xFFF3EDFF),
borderRadius: BorderRadius.circular(
16,
), ),
), margin: EdgeInsets.symmetric(
child: Column( horizontal: 10,
crossAxisAlignment: vertical: 15,
CrossAxisAlignment.start, ),
children: [ decoration: BoxDecoration(
RichText( color: Color(0xFFF3EDFF),
text: TextSpan( borderRadius: BorderRadius.circular(
children: [ 16,
TextSpan( ),
text: formattedTime2, ),
style: TextStyle( child: Column(
color:formattedTime2!="-"?Color(0xFF493272): Color(0xFFED3424), crossAxisAlignment:
fontFamily: CrossAxisAlignment.start,
"JakartaRegular", children: [
fontSize: 30, RichText(
text: TextSpan(
children: [
TextSpan(
text: formattedTime2,
style: TextStyle(
color:formattedTime2!="-"?Color(0xFF493272): Color(0xFFED3424),
fontFamily:
"JakartaRegular",
fontSize: 30,
),
), ),
), TextSpan(
TextSpan( text: period2,
text: period2, style: TextStyle(
style: TextStyle( color:period2!="-"?Color(0xFF493272): Color(0xFFED3424),
color:period2!="-"?Color(0xFF493272): Color(0xFFED3424), fontFamily:
fontFamily: "JakartaRegular",
"JakartaRegular", ),
), ),
), ],
], ),
), ),
), Text(
Text( "${attendance.attendanceHistory.firstOrNull?['check_out_location']}",
"${attendance.attendanceHistory.firstOrNull?['check_out_location']}", style: TextStyle(
style: TextStyle( color: Color(0xFF818181),
color: Color(0xFF818181), ),
), ),
), ],
], ),
), ),
), ),
), ],
], ),
), ),
), ],
],
),
),
Container(
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
child: Text(
"Attendance Details",
style: TextStyle(
fontFamily: "JakartaSemiBold",
fontSize: 14,
color: Color(0xFF818181),
), ),
), ),
), Container(
Container( padding: EdgeInsets.symmetric(
padding: EdgeInsets.symmetric( horizontal: 10,
horizontal: 10, vertical: 10,
vertical: 10, ),
), child: Text(
decoration: BoxDecoration( "Attendance Details",
color: Colors.white, style: TextStyle(
borderRadius: BorderRadius.circular(16), fontFamily: "JakartaSemiBold",
fontSize: 14,
color: Color(0xFF818181),
),
),
), ),
child: GridView.builder( Container(
itemCount: 4, padding: EdgeInsets.symmetric(
shrinkWrap: true, horizontal: 10,
physics: NeverScrollableScrollPhysics(), vertical: 10,
gridDelegate: ),
SliverGridDelegateWithFixedCrossAxisCount( decoration: BoxDecoration(
crossAxisCount: 2, color: Colors.white,
crossAxisSpacing: 10, borderRadius: BorderRadius.circular(16),
mainAxisSpacing: 10, ),
childAspectRatio: 20 / 10, child: GridView.builder(
), itemCount: 4,
itemBuilder: (context, index) { shrinkWrap: true,
final numbers = [ physics: NeverScrollableScrollPhysics(),
attendance.presentDays, gridDelegate:
attendance.absentDays, SliverGridDelegateWithFixedCrossAxisCount(
attendance.holidays, crossAxisCount: 2,
attendance.latePenalties, crossAxisSpacing: 10,
]; mainAxisSpacing: 10,
final names = [ childAspectRatio: 20 / 10,
"Present Days", ),
"Absent Days", itemBuilder: (context, index) {
"Holidays", final numbers = [
"Late Points", attendance.presentDays,
]; attendance.absentDays,
final colors = [ attendance.holidays,
0xFFE7FFE5, attendance.latePenalties,
0xFFFFEFEF, ];
0xFFF3EDFF, final names = [
0xFFFFF6F0, "Present Days",
]; "Absent Days",
final textcolors = [ "Holidays",
0xFF0D9C00, "Late Points",
0xFFFF0000, ];
0xFF493272, final colors = [
0xFF91481B, 0xFFE7FFE5,
]; 0xFFFFEFEF,
return Container( 0xFFF3EDFF,
padding: EdgeInsets.symmetric(horizontal: 13), 0xFFFFF6F0,
decoration: BoxDecoration( ];
color: Color(colors[index]), final textcolors = [
borderRadius: BorderRadius.circular(12), 0xFF0D9C00,
), 0xFFFF0000,
child: Column( 0xFF493272,
crossAxisAlignment: CrossAxisAlignment.start, 0xFF91481B,
mainAxisAlignment: MainAxisAlignment.center, ];
children: [ return Container(
Text( padding: EdgeInsets.symmetric(horizontal: 13),
numbers[index].toString(), decoration: BoxDecoration(
style: TextStyle( color: Color(colors[index]),
fontSize: 30, borderRadius: BorderRadius.circular(12),
fontFamily: "JakartaMedium", ),
color: Color(textcolors[index]), child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
numbers[index].toString(),
style: TextStyle(
fontSize: 30,
fontFamily: "JakartaMedium",
color: Color(textcolors[index]),
),
), ),
), Text(
Text( names[index],
names[index], style: TextStyle(
style: TextStyle( color: Color(0xFF818181),
color: Color(0xFF818181), ),
), ),
), ],
], ),
), );
); },
}, ),
), ),
),
///calendar ///calendar
Container( Container(
// padding: EdgeInsets.symmetric(horizontal: 10,vertical: 5), // padding: EdgeInsets.symmetric(horizontal: 10,vertical: 5),
margin: EdgeInsets.symmetric( margin: EdgeInsets.symmetric(
horizontal: 10, horizontal: 10,
vertical: 5, vertical: 5,
), ),
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(16), borderRadius: BorderRadius.circular(16),
color: Colors.white, color: Colors.white,
), ),
child: Column( child: Column(
children: [ children: [
Padding( Padding(
padding: const EdgeInsets.fromLTRB( padding: const EdgeInsets.fromLTRB(
30, 30,
10, 10,
30, 30,
0, 0,
), ),
child: Container( child: Container(
child: Row( child: Row(
mainAxisAlignment: mainAxisAlignment:
MainAxisAlignment.spaceBetween, MainAxisAlignment.spaceBetween,
children: [ children: [
SizedBox( SizedBox(
child: Row( child: Row(
children: [ children: [
GestureDetector( GestureDetector(
onTap: () { onTap: () {
attendance.setPreviousMonth( attendance.setPreviousMonth(
homeProvider, homeProvider,
context, context,
); );
}, },
child: SvgPicture.asset( child: SvgPicture.asset(
"assets/svg/arrow_left.svg", "assets/svg/arrow_left.svg",
),
), ),
), Text(
Text( monthLabel,
monthLabel, style: TextStyle(
style: TextStyle( overflow: TextOverflow.ellipsis,
overflow: TextOverflow.ellipsis, fontFamily: "JakartaMedium",
fontFamily: "JakartaMedium", color: Color(0xFF2D2D2D),
color: Color(0xFF2D2D2D), ),
), ),
), GestureDetector(
GestureDetector( onTap: () {
onTap: () { attendance.setNextMonth(
attendance.setNextMonth( homeProvider,
homeProvider, context,
context, );
); },
}, child: SvgPicture.asset(
child: SvgPicture.asset( "assets/svg/arrow_right_new.svg",
"assets/svg/arrow_right_new.svg", ),
), ),
), ],
], ),
), ),
),
InkResponse( InkResponse(
onTap: () { onTap: () {
_showInfoBottomSheet(context); _showInfoBottomSheet(context);
}, },
child: SizedBox( child: SizedBox(
width: 20,
height: 20,
child: SvgPicture.asset(
"assets/svg/ic_info_new.svg",
width: 20, width: 20,
height: 20, height: 20,
child: SvgPicture.asset(
"assets/svg/ic_info_new.svg",
width: 20,
height: 20,
),
), ),
), ),
), ],
], ),
), ),
), ),
), SizedBox(height: 5),
SizedBox(height: 5), Padding(
Padding( padding: const EdgeInsets.fromLTRB(8, 10, 8, 0),
padding: const EdgeInsets.fromLTRB(8, 10, 8, 0), child: Container(
child: Container( child: Row(
child: Row( children: [
children: [ for (
for ( var i = 0;
var i = 0; i <
i < [
[ 'S',
'S', 'M',
'M', 'T',
'T', 'W',
'W', 'T',
'T', 'F',
'F', 'S',
'S', ].length;
].length; i++
i++ )
) Expanded(
Expanded( child: Text(
child: Text( [
[ 'S',
'S', 'M',
'M', 'T',
'T', 'W',
'W', 'T',
'T', 'F',
'F', 'S',
'S', ][i],
][i], textAlign: TextAlign.center,
textAlign: TextAlign.center, style: TextStyle(
style: TextStyle( overflow: TextOverflow.ellipsis,
overflow: TextOverflow.ellipsis, color:
color: i == 0
i == 0 ? Color(0xFFFF0000)
? Color(0xFFFF0000) : AppColors.semi_black,
: AppColors.semi_black, ),
), ),
), ),
), ],
], ),
), ),
), ),
),
Padding( Padding(
padding: const EdgeInsets.fromLTRB(0, 0, 0, 10), padding: const EdgeInsets.fromLTRB(0, 0, 0, 10),
child: Container( child: Container(
child: GridView.builder( child: GridView.builder(
itemCount: daysInPeriod + startingIndex, itemCount: daysInPeriod + startingIndex,
gridDelegate: gridDelegate:
SliverGridDelegateWithFixedCrossAxisCount( SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 7, crossAxisCount: 7,
crossAxisSpacing: 2, crossAxisSpacing: 2,
mainAxisSpacing: 1, mainAxisSpacing: 1,
childAspectRatio: (255 / 245), childAspectRatio: (255 / 245),
), ),
padding: const EdgeInsets.fromLTRB( padding: const EdgeInsets.fromLTRB(
0, 0,
0, 0,
0, 0,
0, 0,
), ),
shrinkWrap: true, shrinkWrap: true,
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
itemBuilder: (context, index) { itemBuilder: (context, index) {
if (index < startingIndex) { if (index < startingIndex) {
return SizedBox.shrink(); return SizedBox.shrink();
} }
final dayIndex = index - startingIndex; final dayIndex = index - startingIndex;
final currentDateInPeriod = startDate.add( final currentDateInPeriod = startDate.add(
Duration(days: dayIndex), Duration(days: dayIndex),
); );
final currentDay = final currentDay =
currentDateInPeriod.day; currentDateInPeriod.day;
final isFutureDate = currentDateInPeriod final isFutureDate = currentDateInPeriod
.isAfter(currentDate); .isAfter(currentDate);
// Find matching date in dateArrayList // Find matching date in dateArrayList
Map<String, dynamic>? dateMap; Map<String, dynamic>? dateMap;
try { try {
dateMap = dateArrayList[dayIndex]; dateMap = dateArrayList[dayIndex];
} catch (e) { } catch (e) {
dateMap = {}; dateMap = {};
} }
// Find matching penalty // Find matching penalty
Map<String, dynamic>? penaltyMap; Map<String, dynamic>? penaltyMap;
try { try {
penaltyMap = penaltyMap =
penalityArrayList[dayIndex]; penalityArrayList[dayIndex];
} catch (e) { } catch (e) {
penaltyMap = {}; penaltyMap = {};
} }
String? dateColor = String? dateColor =
dateMap.isNotEmpty dateMap.isNotEmpty
? dateMap.values.first ? dateMap.values.first
: null; : null;
String? penaltyKey = String? penaltyKey =
penaltyMap.isNotEmpty penaltyMap.isNotEmpty
? penaltyMap.keys.first ? penaltyMap.keys.first
: null; : null;
int? datePenalty = int? datePenalty =
penaltyMap.isNotEmpty penaltyMap.isNotEmpty
? penaltyMap.values.first ? penaltyMap.values.first
: 0; : 0;
// Determine if this is the current day // Determine if this is the current day
final isCurrentDay = final isCurrentDay =
currentDateInPeriod.day == currentDateInPeriod.day ==
currentDate.day && currentDate.day &&
currentDateInPeriod.month == currentDateInPeriod.month ==
currentDate.month && currentDate.month &&
currentDateInPeriod.year == currentDateInPeriod.year ==
currentDate.year; currentDate.year;
return InkWell( return InkWell(
onTap: onTap:
isFutureDate isFutureDate
? null ? null
: () { : () {
selectedIndex = index; selectedIndex = index;
if (penaltyKey != null) { if (penaltyKey != null) {
attendance attendance
.dateWiseAttendance( .dateWiseAttendance(
homeProvider, homeProvider,
penaltyKey, penaltyKey,
context, context,
); );
} }
attendance.selectedDate = attendance.selectedDate =
currentDay.toString(); currentDay.toString();
_showAttDetailsBottomSheet( _showAttDetailsBottomSheet(
context, context,
); );
}, },
child: Card( child: Card(
elevation: 0, elevation: 0,
child: Column( child: Column(
children: [ children: [
// Row( // Row(
// mainAxisAlignment: // mainAxisAlignment:
// MainAxisAlignment.center, // MainAxisAlignment.center,
// children: [ // children: [
// Text( // Text(
// "($datePenalty)", // "($datePenalty)",
// style: TextStyle( // style: TextStyle(
// fontWeight: FontWeight.w400, // fontWeight: FontWeight.w400,
// color: Colors.black, // color: Colors.black,
// fontSize: 5 // fontSize: 5
// ), // ),
// ), // ),
// ], // ],
// ), // ),
Center( Center(
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
shape: BoxShape.circle, shape: BoxShape.circle,
border: Border.all( border: Border.all(
color:
(isCurrentDay ||
(selectedIndex ==
index))
? Color(
0xFF1487C9,
)
: Colors
.transparent,
),
color:
isFutureDate
? Colors.transparent
: (isCurrentDay ||
(selectedIndex ==
index))
? Color(0xFFFFFFFF)
: dateColor == 'g'
? Color(
0xFF6B3A02,
).withAlpha(50)
: dateColor == 'r'
? Color(
0xFFFF0000,
).withAlpha(50)
: dateColor == 'b'
? Color(
0xFF493272,
).withAlpha(50)
: dateColor == 'br'
? Color(0xFFFFE8D0)
: dateColor == 'y'
? Color(0xFFFFF9B2)
: Colors
.transparent,
),
child: Center(
child: Text(
currentDay.toString(),
style: TextStyle(
fontSize: 14,
fontWeight:
FontWeight.w400,
color: color:
isFutureDate (isCurrentDay ||
? AppColors
.semi_black
: (isCurrentDay ||
(selectedIndex == (selectedIndex ==
index)) index))
? Color( ? Color(
0xFF2D2D2D, 0xFF1487C9,
)
: dateColor ==
'g'
? Color(
0xFF6B3A02,
)
: dateColor ==
'r'
? Color(
0xFFFF0000,
)
: dateColor ==
'b'
? Color(
0xFF493272,
)
: dateColor ==
'br'
? Color(
0xFF6B3A02,
)
: dateColor ==
'y'
? Color(
0xFF605C00,
) )
: Colors : Colors
.transparent, .transparent,
), ),
color:
isFutureDate
? Colors.transparent
: (isCurrentDay ||
(selectedIndex ==
index))
? Color(0xFFFFFFFF)
: dateColor == 'g'
? Color(
0xFF6B3A02,
).withAlpha(50)
: dateColor == 'r'
? Color(
0xFFFF0000,
).withAlpha(50)
: dateColor == 'b'
? Color(
0xFF493272,
).withAlpha(50)
: dateColor == 'br'
? Color(0xFFFFE8D0)
: dateColor == 'y'
? Color(0xFFFFF9B2)
: Colors
.transparent,
),
child: Center(
child: Text(
currentDay.toString(),
style: TextStyle(
fontSize: 14,
fontWeight:
FontWeight.w400,
color:
isFutureDate
? AppColors
.semi_black
: (isCurrentDay ||
(selectedIndex ==
index))
? Color(
0xFF2D2D2D,
)
: dateColor ==
'g'
? Color(
0xFF6B3A02,
)
: dateColor ==
'r'
? Color(
0xFFFF0000,
)
: dateColor ==
'b'
? Color(
0xFF493272,
)
: dateColor ==
'br'
? Color(
0xFF6B3A02,
)
: dateColor ==
'y'
? Color(
0xFF605C00,
)
: Colors
.transparent,
),
),
), ),
), ),
), ),
), ],
], ),
), ),
), );
); },
}, ),
), ),
), ),
), ],
], ),
), ),
), SizedBox(height: 70),
SizedBox(height: 70), ],
], ),
), ),
), ),
), ),
), floatingActionButton:
floatingActionButton: attendance.attendanceStatus == 0 ||
attendance.attendanceStatus == 0 || attendance.attendanceStatus == 1
attendance.attendanceStatus == 1 ? Align(
? Align( alignment: Alignment.bottomCenter,
alignment: Alignment.bottomCenter, child: InkWell(
child: InkWell( onTap: () async {
onTap: () async { var res = await Navigator.push(
var res = await Navigator.push(
context,
MaterialPageRoute(
builder:
(context) => CheckInOutScreen(
getAttendanceStatus:
attendance.attendanceStatus,
),
),
);
if (res == true) {
attendance.getAttendanceList(
homeProvider,
context,
);
attendance.init(homeProvider, context);
attendance.loadAttendanceDetails(
homeProvider,
context, context,
MaterialPageRoute(
builder:
(context) => CheckInOutScreen(
getAttendanceStatus:
attendance.attendanceStatus,
),
),
); );
} if (res == true) {
attendance.getAttendanceList(
homeProvider,
context,
);
attendance.init(homeProvider, context);
attendance.loadAttendanceDetails(
homeProvider,
context,
);
}
var f = FocusScope.of(context); var f = FocusScope.of(context);
if (!f.hasPrimaryFocus) { if (!f.hasPrimaryFocus) {
f.unfocus(); f.unfocus();
} }
}, },
child: Container( child: Container(
alignment: Alignment.bottomCenter, alignment: Alignment.bottomCenter,
height: 45, height: 45,
margin: EdgeInsets.symmetric(horizontal: 10), margin: EdgeInsets.symmetric(horizontal: 10),
width: MediaQuery.of(context).size.width, width: MediaQuery.of(context).size.width,
decoration: BoxDecoration( decoration: BoxDecoration(
color: AppColors.app_blue, color: AppColors.app_blue,
borderRadius: BorderRadius.circular(15.0), borderRadius: BorderRadius.circular(15.0),
), ),
child: Center( child: Center(
child: Text( child: Text(
attendance.attendanceStatus == 0 attendance.attendanceStatus == 0
? "Check In" ? "Check In"
: "Check Out", : "Check Out",
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontSize: 16, fontSize: 16,
color: Colors.white, color: Colors.white,
fontFamily: "JakartaMedium", fontFamily: "JakartaMedium",
),
), ),
), ),
), ),
), ),
), )
) : SizedBox(height: 0),
: SizedBox(height: 0), floatingActionButtonLocation:
floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
FloatingActionButtonLocation.centerFloat, ),
), ),
), ),
); );
......
...@@ -50,11 +50,13 @@ class _CheckInOutScreenState extends State<CheckInOutScreen> { ...@@ -50,11 +50,13 @@ class _CheckInOutScreenState extends State<CheckInOutScreen> {
onWillPop: () { onWillPop: () {
provider.dispose(); provider.dispose();
return onBackPressed(context);}, return onBackPressed(context);},
child: Scaffold( child: SafeArea(
resizeToAvoidBottomInset: true, top: false,
appBar: appbar2(context, widget.getAttendanceStatus==0? "Check In":"Check Out", provider.dispose,SizedBox(width: 0,)), bottom: Platform.isIOS?false:true,
body:SafeArea( child: Scaffold(
child: Container( resizeToAvoidBottomInset: true,
appBar: appbar2(context, widget.getAttendanceStatus==0? "Check In":"Check Out", provider.dispose,SizedBox(width: 0,)),
body:Container(
child: SafeArea( child: SafeArea(
child: Column( child: Column(
children: [ children: [
......
...@@ -80,60 +80,61 @@ class _CheckOutScreenState extends State<FrontCameraCapture> { ...@@ -80,60 +80,61 @@ class _CheckOutScreenState extends State<FrontCameraCapture> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
Size size = MediaQuery.of(context).size; Size size = MediaQuery.of(context).size;
return Scaffold( return SafeArea(
// appBar: AppBar(automaticallyImplyLeading: false), top: false,
body: SafeArea( bottom: Platform.isIOS?false:true,
child: child: Scaffold(
isLoading // appBar: AppBar(automaticallyImplyLeading: false),
? Center(child: CircularProgressIndicator()) body: isLoading
: Row( ? Center(child: CircularProgressIndicator())
children: [ : Row(
Expanded( children: [
child: SizedBox( Expanded(
height: double.infinity, child: SizedBox(
child: height: double.infinity,
cam_controller.value.isInitialized child:
? Transform( cam_controller.value.isInitialized
alignment: Alignment.center, ? Transform(
transform: Matrix4.rotationY(math.pi), alignment: Alignment.center,
child: CameraPreview( transform: Matrix4.rotationY(math.pi),
cam_controller, child: CameraPreview(
child: Align( cam_controller,
alignment: Alignment.bottomCenter, child: Align(
child: GestureDetector( alignment: Alignment.bottomCenter,
onTap: () async { child: GestureDetector(
if (!cam_controller onTap: () async {
.value if (!cam_controller
.isInitialized) .value
return; .isInitialized)
final image = return;
await cam_controller final image =
.takePicture(); await cam_controller
_image = File(image.path); .takePicture();
Navigator.pop(context, _image); _image = File(image.path);
Navigator.pop(context, _image);
},
child: Container( },
height: 100, child: Container(
width: double.infinity, height: 100,
padding: EdgeInsets.all(10), width: double.infinity,
decoration: BoxDecoration( padding: EdgeInsets.all(10),
color: Colors.black26 decoration: BoxDecoration(
), color: Colors.black26
child: Center( ),
child: SvgPicture.asset("assets/svg/check_in_cam.svg",width: 50,height: 50,) child: Center(
child: SvgPicture.asset("assets/svg/check_in_cam.svg",width: 50,height: 50,)
),
),
), ),
), ),
), ),
) ),
: Center(child: Text("Camera not ready")), ),
), )
), : Center(child: Text("Camera not ready")),
], ),
), ),
],
),
), ),
); );
} }
......
...@@ -164,12 +164,14 @@ class _MyHomePageState extends State<MyHomePage> { ...@@ -164,12 +164,14 @@ class _MyHomePageState extends State<MyHomePage> {
await Future.delayed(const Duration(milliseconds: 600)); await Future.delayed(const Duration(milliseconds: 600));
homescreen.DashboardApiFunction(context); homescreen.DashboardApiFunction(context);
}, },
child: Scaffold( child: SafeArea(
resizeToAvoidBottomInset: true, top: false,
backgroundColor: AppColors.scaffold_bg_color, bottom: Platform.isIOS?false:true,
child: Scaffold(
body: SafeArea( resizeToAvoidBottomInset: true,
child: Container( backgroundColor: AppColors.scaffold_bg_color,
body: Container(
child: Column( child: Column(
children: [ children: [
Expanded( Expanded(
......
...@@ -157,11 +157,13 @@ class _LoginScreenState extends State<LoginScreen> ...@@ -157,11 +157,13 @@ class _LoginScreenState extends State<LoginScreen>
builder: (context, loginProv, child) { builder: (context, loginProv, child) {
return WillPopScope( return WillPopScope(
onWillPop: onBackPressed, onWillPop: onBackPressed,
child: Scaffold( child: SafeArea(
resizeToAvoidBottomInset: true, top: false,
backgroundColor: AppColors.scaffold_bg_color, bottom: Platform.isIOS?false:true,
body: SafeArea( child: Scaffold(
child: KeyboardVisibilityProvider( resizeToAvoidBottomInset: true,
backgroundColor: AppColors.scaffold_bg_color,
body: KeyboardVisibilityProvider(
controller: _keyboardVisibilityController, controller: _keyboardVisibilityController,
child: Stack( child: Stack(
alignment: Alignment.center, alignment: Alignment.center,
...@@ -486,7 +488,7 @@ class _LoginScreenState extends State<LoginScreen> ...@@ -486,7 +488,7 @@ class _LoginScreenState extends State<LoginScreen>
password.text, password.text,
); );
var f = FocusScope.of(context); var f = FocusScope.of(context);
if (!f.hasPrimaryFocus) { if (!f.hasPrimaryFocus) {
f.unfocus(); f.unfocus();
} }
...@@ -694,8 +696,8 @@ class _LoginScreenState extends State<LoginScreen> ...@@ -694,8 +696,8 @@ class _LoginScreenState extends State<LoginScreen>
], ],
), ),
), ),
// bottomNavigationBar: ,
), ),
// bottomNavigationBar: ,
), ),
); );
}, },
......
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:qr_code_scanner/qr_code_scanner.dart'; import 'package:qr_code_scanner/qr_code_scanner.dart';
...@@ -20,30 +22,32 @@ class _ScannerloginState extends State<Scannerlogin> { ...@@ -20,30 +22,32 @@ class _ScannerloginState extends State<Scannerlogin> {
builder: (context, provider, child) { builder: (context, provider, child) {
return WillPopScope( return WillPopScope(
onWillPop: () => onBackPressed(context), onWillPop: () => onBackPressed(context),
child: Scaffold( child: SafeArea(
resizeToAvoidBottomInset: true, top: false,
backgroundColor: AppColors.scaffold_bg_color, bottom: Platform.isIOS?false:true,
appBar: appbar(context, "QR Login"), child: Scaffold(
body: SafeArea( resizeToAvoidBottomInset: true,
child: Container( backgroundColor: AppColors.scaffold_bg_color,
appBar: appbar(context, "QR Login"),
body: Container(
decoration: BoxDecoration(color: Colors.black), decoration: BoxDecoration(color: Colors.black),
child: Column( child: Column(
children: [ children: [
Spacer(), Spacer(),
Container( Container(
height: 250, height: 250,
child: QRView( child: QRView(
key: provider.scannerKey, key: provider.scannerKey,
onQRViewCreated: (p0) { onQRViewCreated: (p0) {
provider.onQRViewCreated(p0, context); provider.onQRViewCreated(p0, context);
}, },
formatsAllowed: [BarcodeFormat.qrcode], formatsAllowed: [BarcodeFormat.qrcode],
cameraFacing: CameraFacing.back, cameraFacing: CameraFacing.back,
overlay: QrScannerOverlayShape( overlay: QrScannerOverlayShape(
borderColor: AppColors.app_blue, borderColor: AppColors.app_blue,
borderRadius: 20, borderRadius: 20,
borderLength: 60, borderLength: 60,
...@@ -64,7 +68,7 @@ class _ScannerloginState extends State<Scannerlogin> { ...@@ -64,7 +68,7 @@ class _ScannerloginState extends State<Scannerlogin> {
style: TextStyle(fontSize: 14, color: Colors.white), style: TextStyle(fontSize: 14, color: Colors.white),
), ),
Spacer(), Spacer(),
SizedBox(height: 50), SizedBox(height: 50),
], ],
), ),
......
import 'dart:io';
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';
...@@ -15,12 +17,14 @@ class UpdatePassword extends StatelessWidget { ...@@ -15,12 +17,14 @@ class UpdatePassword extends StatelessWidget {
return WillPopScope( return WillPopScope(
onWillPop: () => onBackPressed(context), onWillPop: () => onBackPressed(context),
child: Scaffold( child: SafeArea(
resizeToAvoidBottomInset: true, top: false,
appBar: appbar(context, "Update Password"), bottom: Platform.isIOS?false:true,
backgroundColor: AppColors.scaffold_bg_color, child: Scaffold(
body: SafeArea( resizeToAvoidBottomInset: true,
child: Container( appBar: appbar(context, "Update Password"),
backgroundColor: AppColors.scaffold_bg_color,
body: Container(
child: Column( child: Column(
children: [ children: [
Expanded( Expanded(
...@@ -51,7 +55,7 @@ class UpdatePassword extends StatelessWidget { ...@@ -51,7 +55,7 @@ class UpdatePassword extends StatelessWidget {
),)), ),)),
SizedBox(height: 5), SizedBox(height: 5),
_buildTextField( _buildTextField(
controller: provider.password, controller: provider.password,
hintText: "New Password*", hintText: "New Password*",
errorText: provider.passwordError, errorText: provider.passwordError,
...@@ -121,7 +125,7 @@ class UpdatePassword extends StatelessWidget { ...@@ -121,7 +125,7 @@ class UpdatePassword extends StatelessWidget {
? CircularProgressIndicator( ? CircularProgressIndicator(
color: Colors.white, color: Colors.white,
padding: EdgeInsets.all(7.5), padding: EdgeInsets.all(7.5),
) )
: Text( : Text(
"Update", "Update",
......
...@@ -85,10 +85,12 @@ class _WebERPIOSState extends State<WebERPIOS> { ...@@ -85,10 +85,12 @@ class _WebERPIOSState extends State<WebERPIOS> {
} }
return true; // Allow default back button behavior return true; // Allow default back button behavior
}, },
child: Scaffold( child: SafeArea(
appBar: appbar(context, "ERP"), top: false,
body: SafeArea( bottom: Platform.isIOS?false:true,
child: Container( child: Scaffold(
appBar: appbar(context, "ERP"),
body: Container(
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
...@@ -129,7 +131,7 @@ class _WebERPIOSState extends State<WebERPIOS> { ...@@ -129,7 +131,7 @@ class _WebERPIOSState extends State<WebERPIOS> {
allowsBackForwardNavigationGestures: true, allowsBackForwardNavigationGestures: true,
), ),
), ),
androidOnPermissionRequest: ( androidOnPermissionRequest: (
InAppWebViewController controller, InAppWebViewController controller,
String origin, String origin,
...@@ -214,7 +216,7 @@ class _WebERPIOSState extends State<WebERPIOS> { ...@@ -214,7 +216,7 @@ class _WebERPIOSState extends State<WebERPIOS> {
// } // }
return NavigationActionPolicy.ALLOW; return NavigationActionPolicy.ALLOW;
}, },
onLoadStart: (controller, url) { onLoadStart: (controller, url) {
return setState(() { return setState(() {
isLoading = true; isLoading = true;
...@@ -262,7 +264,7 @@ class _WebERPIOSState extends State<WebERPIOS> { ...@@ -262,7 +264,7 @@ class _WebERPIOSState extends State<WebERPIOS> {
), ),
), ),
), ),
// SvgPicture.asset("/assets/images/NutsLoader.gif") // SvgPicture.asset("/assets/images/NutsLoader.gif")
], ],
), ),
......
...@@ -119,11 +119,13 @@ class _WebErpScreenState extends State<WebErpScreen> { ...@@ -119,11 +119,13 @@ class _WebErpScreenState extends State<WebErpScreen> {
} }
return true; // Allow default back button behavior return true; // Allow default back button behavior
}, },
child: Scaffold( child: SafeArea(
resizeToAvoidBottomInset: true, top: false,
appBar: appbar(context, "ERP"), bottom: Platform.isIOS?false:true,
body: SafeArea( child: Scaffold(
child: Container( resizeToAvoidBottomInset: true,
appBar: appbar(context, "ERP"),
body: Container(
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
......
import 'dart:async'; import 'dart:async';
import 'dart:io';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
...@@ -77,11 +78,13 @@ class _WebWhizzdomScreenState extends State<WebWhizzdomScreen> { ...@@ -77,11 +78,13 @@ class _WebWhizzdomScreenState extends State<WebWhizzdomScreen> {
} }
return true; // Allow default back button behavior return true; // Allow default back button behavior
}, },
child: Scaffold( child: SafeArea(
resizeToAvoidBottomInset: true, top: false,
appBar: appbar(context, "Whizzdom"), bottom: Platform.isIOS?false:true,
body: SafeArea( child: Scaffold(
child: Container( resizeToAvoidBottomInset: true,
appBar: appbar(context, "Whizzdom"),
body: Container(
child: Column(children: <Widget>[ child: Column(children: <Widget>[
Expanded( Expanded(
child: Stack( child: Stack(
...@@ -115,8 +118,8 @@ class _WebWhizzdomScreenState extends State<WebWhizzdomScreen> { ...@@ -115,8 +118,8 @@ class _WebWhizzdomScreenState extends State<WebWhizzdomScreen> {
allowsInlineMediaPlayback: true, allowsInlineMediaPlayback: true,
), ),
), ),
androidOnPermissionRequest: (InAppWebViewController controller, androidOnPermissionRequest: (InAppWebViewController controller,
String origin, List<String> resources) async { String origin, List<String> resources) async {
return PermissionRequestResponse( return PermissionRequestResponse(
...@@ -147,7 +150,7 @@ class _WebWhizzdomScreenState extends State<WebWhizzdomScreen> { ...@@ -147,7 +150,7 @@ class _WebWhizzdomScreenState extends State<WebWhizzdomScreen> {
pullToRefreshController?.endRefreshing(); pullToRefreshController?.endRefreshing();
} }
}, },
), ),
if (isLoading) ...[Container( if (isLoading) ...[Container(
color: Colors.white.withOpacity(0.7), color: Colors.white.withOpacity(0.7),
...@@ -176,7 +179,7 @@ class _WebWhizzdomScreenState extends State<WebWhizzdomScreen> { ...@@ -176,7 +179,7 @@ class _WebWhizzdomScreenState extends State<WebWhizzdomScreen> {
color: AppColors.app_blue), color: AppColors.app_blue),
), ),
), ),
// SvgPicture.asset("/assets/images/NutsLoader.gif") // SvgPicture.asset("/assets/images/NutsLoader.gif")
], ],
), ),
......
import 'dart:io';
import 'package:auto_size_text/auto_size_text.dart'; import 'package:auto_size_text/auto_size_text.dart';
import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
...@@ -96,470 +98,474 @@ class _AccountledgerState extends State<Accountledger> { ...@@ -96,470 +98,474 @@ class _AccountledgerState extends State<Accountledger> {
totalValues = [...values, ...values2]; totalValues = [...values, ...values2];
} }
return WillPopScope( return WillPopScope(
child: Scaffold( child: SafeArea(
resizeToAvoidBottomInset: true, top: false,
appBar: appbar2( bottom: Platform.isIOS?false:true,
context, child: Scaffold(
"Account Ledger List", resizeToAvoidBottomInset: true,
provider.resetAll, appBar: appbar2(
Row( context,
children: [ "Account Ledger List",
Container( provider.resetAll,
padding: EdgeInsets.symmetric(horizontal: 5,vertical: 5), Row(
decoration: BoxDecoration( children: [
Container(
color: Color(0xFFE6F6FF), padding: EdgeInsets.symmetric(horizontal: 5,vertical: 5),
borderRadius: BorderRadius.circular(8), decoration: BoxDecoration(
), color: Color(0xFFE6F6FF),
child: Row( borderRadius: BorderRadius.circular(8),
children: [
SvgPicture.asset("assets/svg/fin_ic.svg",height: 12,),
SizedBox(width: 5,),
Text("${provider.balanceDetails.balance.toString()}"??"-",style: TextStyle(
fontSize: 12,
),)
],
),
),SizedBox(width: 10,),
Container(
padding: EdgeInsets.symmetric(horizontal: 5, vertical: 5),
child: GestureDetector( ),
onTap: () { child: Row(
print("Tapped"); children: [
SvgPicture.asset("assets/svg/fin_ic.svg",height: 12,),
SizedBox(width: 5,),
Text("${provider.balanceDetails.balance.toString()}"??"-",style: TextStyle(
fontSize: 12,
),)
],
),
),SizedBox(width: 10,),
Container(
padding: EdgeInsets.symmetric(horizontal: 5, vertical: 5),
_showFilterSheet(context); child: GestureDetector(
}, onTap: () {
child: SvgPicture.asset("assets/svg/search_ic.svg", height: 25), print("Tapped");
),
),
],
),
),
backgroundColor: AppColors.scaffold_bg_color,
body: SafeArea(child: provider.isLoading
? Center(child: CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation<Color>(
AppColors.app_blue)
)):SizedBox(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding( _showFilterSheet(context);
padding: const EdgeInsets.all(8.0), },
child: Text("${provider.selectedAcVal??""}" +" "+ "Account Ledger List"), child: SvgPicture.asset("assets/svg/search_ic.svg", height: 25),
),
), ),
if(provider.ledgerList.isEmpty)...[ ],
Emptywidget(context), ),
]else...[ ),
Container( backgroundColor: AppColors.scaffold_bg_color,
decoration: BoxDecoration( body: provider.isLoading
color: Colors.white, ? Center(child: CircularProgressIndicator.adaptive(
borderRadius: BorderRadius.circular(16), valueColor: AlwaysStoppedAnimation<Color>(
), AppColors.app_blue)
child: Row( )):SizedBox(
children: [ child: SingleChildScrollView(
Expanded( child: Column(
child: Container( crossAxisAlignment: CrossAxisAlignment.start,
padding: EdgeInsets.symmetric( children: [
horizontal: 10,
vertical: 15, Padding(
), padding: const EdgeInsets.all(8.0),
margin: EdgeInsets.symmetric( child: Text("${provider.selectedAcVal??""}" +" "+ "Account Ledger List"),
horizontal: 10, ),
vertical: 15, if(provider.ledgerList.isEmpty)...[
), Emptywidget(context),
decoration: BoxDecoration( ]else...[
color: Color(0xFFFFEFEF), Container(
borderRadius: BorderRadius.circular(16), decoration: BoxDecoration(
), color: Colors.white,
child: Column( borderRadius: BorderRadius.circular(16),
crossAxisAlignment: CrossAxisAlignment.start, ),
children: [ child: Row(
AutoSizeText( children: [
"${provider.balanceDetails.totalCredit}", Expanded(
style: TextStyle( child: Container(
color: Color(0xFFED3424), padding: EdgeInsets.symmetric(
fontFamily: "JakartaRegular", horizontal: 10,
fontSize: 20, vertical: 15,
),
margin: EdgeInsets.symmetric(
horizontal: 10,
vertical: 15,
),
decoration: BoxDecoration(
color: Color(0xFFFFEFEF),
borderRadius: BorderRadius.circular(16),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AutoSizeText(
"${provider.balanceDetails.totalCredit}",
style: TextStyle(
color: Color(0xFFED3424),
fontFamily: "JakartaRegular",
fontSize: 20,
),
minFontSize: 20,
maxFontSize: 25,
), ),
minFontSize: 20,
maxFontSize: 25,
),
Text( Text(
"credit", "credit",
style: TextStyle(color: Color(0xFF818181)), style: TextStyle(color: Color(0xFF818181)),
), ),
], ],
),
), ),
), ),
), Expanded(
Expanded( child: Container(
child: Container( padding: EdgeInsets.symmetric(
padding: EdgeInsets.symmetric( horizontal: 10,
horizontal: 10, vertical: 15,
vertical: 15, ),
), margin: EdgeInsets.symmetric(
margin: EdgeInsets.symmetric( horizontal: 10,
horizontal: 10, vertical: 15,
vertical: 15, ),
), decoration: BoxDecoration(
decoration: BoxDecoration( color: Color(0xFFFFEFEF),
color: Color(0xFFFFEFEF), borderRadius: BorderRadius.circular(16),
borderRadius: BorderRadius.circular(16), ),
), child: Column(
child: Column( crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start, children: [
children: [ AutoSizeText(
AutoSizeText( "${provider.balanceDetails.totalDebit}",
"${provider.balanceDetails.totalDebit}", style: TextStyle(
style: TextStyle( color: Color(0xFFED3424),
color: Color(0xFFED3424), fontFamily: "JakartaRegular",
fontFamily: "JakartaRegular", fontSize: 20,
fontSize: 20, ),
minFontSize: 20,
maxFontSize: 25,
), ),
minFontSize: 20, Text(
maxFontSize: 25, "debit",
), style: TextStyle(color: Color(0xFF818181)),
Text( ),
"debit", ],
style: TextStyle(color: Color(0xFF818181)), ),
),
],
), ),
), ),
), ],
], ),
), ),
),
Container( Container(
alignment: Alignment.topLeft, alignment: Alignment.topLeft,
padding: EdgeInsets.symmetric(horizontal: 10,vertical: 10), padding: EdgeInsets.symmetric(horizontal: 10,vertical: 10),
child: Text( child: Text(
"Account Details", "Account Details",
style: TextStyle( style: TextStyle(
fontFamily: "JakartaMedium", fontFamily: "JakartaMedium",
color: Color(0xFF818181), color: Color(0xFF818181),
),
), ),
), ),
), Container(
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( crossAxisAlignment: CrossAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center, children: [
children: [
...List.generate(totalHeadings.length, (index) { ...List.generate(totalHeadings.length, (index) {
return Container( return Container(
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(
horizontal: 10, horizontal: 10,
vertical: 5, vertical: 5,
), ),
child: Row( child: Row(
// crossAxisAlignment: CrossAxisAlignment.start, // crossAxisAlignment: CrossAxisAlignment.start,
// mainAxisAlignment: MainAxisAlignment.start, // mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Expanded( Expanded(
child: Text( child: Text(
"${totalHeadings[index]}", "${totalHeadings[index]}",
style: TextStyle( style: TextStyle(
fontFamily: "JakartaMedium", fontFamily: "JakartaMedium",
),
), ),
), ),
),
Expanded( Expanded(
child: Text( child: Text(
"${totalValues[index]}", "${totalValues[index]}",
style: TextStyle( style: TextStyle(
color: Color(0xFF818181), color: Color(0xFF818181),
),
), ),
), ),
),
], ],
), ),
); );
}), }),
InkResponse( InkResponse(
onTap: () async { onTap: () async {
provider.showMoreDetails = !provider.showMoreDetails; provider.showMoreDetails = !provider.showMoreDetails;
}, },
child: Container( child: Container(
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(
vertical: 5, vertical: 5,
), ),
child: Row( child: Row(
crossAxisAlignment: crossAxisAlignment:
CrossAxisAlignment.center, CrossAxisAlignment.center,
mainAxisAlignment: mainAxisAlignment:
MainAxisAlignment.center, MainAxisAlignment.center,
children: [ children: [
Text( Text(
provider.showMoreDetails?"- Show Less": "+ More Details", provider.showMoreDetails?"- Show Less": "+ More Details",
style: TextStyle( style: TextStyle(
fontFamily: "JakartaMedium", fontFamily: "JakartaMedium",
fontSize: 14, fontSize: 14,
color: AppColors.app_blue, color: AppColors.app_blue,
),
), ),
),
], ],
),
), ),
), ),
), ],
], ),
), ),
), ListView.builder(
ListView.builder( physics: NeverScrollableScrollPhysics(),
physics: NeverScrollableScrollPhysics(), shrinkWrap: true,
shrinkWrap: true, itemCount: groupedData.keys.length,
itemCount: groupedData.keys.length, itemBuilder: (context, index) {
itemBuilder: (context, index) { String date = groupedData.keys.elementAt(index);
String date = groupedData.keys.elementAt(index); List<LedgerList> items = groupedData[date]!;
List<LedgerList> items = groupedData[date]!; if (provider.ledgerList.isEmpty) {
if (provider.ledgerList.isEmpty) { return Center(child: Text("No Data Available"));
return Center(child: Text("No Data Available")); }
} return Container(
return Container( padding: EdgeInsets.symmetric(vertical: 5),
padding: EdgeInsets.symmetric(vertical: 5), margin: EdgeInsets.symmetric(horizontal: 10),
margin: EdgeInsets.symmetric(horizontal: 10), child: Column(
child: Column( crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start, children: [
children: [ Container(
Container( padding: EdgeInsets.only(bottom: 5),
padding: EdgeInsets.only(bottom: 5), child: Text(
child: Text( date,
date, style: TextStyle(
style: TextStyle( fontSize: 14,
fontSize: 14, fontFamily: "JakartaMedium",
fontFamily: "JakartaMedium", color: Color(0xFF818181),
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( style: TextStyle(
color: Color(
0xFF2D2D2D,
),
fontSize: 13,
fontFamily:
"JakartaRegular",
),
),
TextSpan(
text:
"₹${item.type == "Credit" ? "${item.creditAmount}" : "${item.debitAmount}"}",
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,
// ), ),
InkResponse( fontSize: 13,
onTap: () async { fontFamily:
Navigator.push( "JakartaMedium",
context, ),
MaterialPageRoute( ),
builder: ],
(context) => Transactiondetails( ),
paymentID: item.refId, ),
type: item.type,
), ),
), ),
); ],
}, ),
child: Container( Divider(
padding: EdgeInsets.symmetric( thickness: 0.5,
vertical: 5, color: Color(0xFFd7d7d7),
), ),
child: Row( // Row(
crossAxisAlignment: // children: [
CrossAxisAlignment.center, // Expanded(
mainAxisAlignment: // child: Text(
MainAxisAlignment.start, // "Balance",
children: [ // style: TextStyle(
Text( // fontSize: 13,
"View Details", // color: Color(0xFF2d2d2d),
style: TextStyle( // ),
fontFamily: "JakartaMedium", // ),
fontSize: 14, // ),
color: AppColors.app_blue, // Expanded(
// child: Text(
// textAlign: TextAlign.right,
// "₹${running_balance.toString()}" ??
// "-",
// style: TextStyle(
// color: Color(0xFF818181),
// fontSize: 13,
// ),
// ),
// ),
// ],
// ),
InkResponse(
onTap: () async {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) => Transactiondetails(
paymentID: item.refId,
type: item.type,
), ),
), ),
SizedBox(width: 5), );
SvgPicture.asset( },
"assets/svg/next_button.svg", 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(), ],
], ),
), );
); },
}, ),
), ],
],
], ],
),
), ),
), ),
)), ),
), ),
onWillPop: () { onWillPop: () {
return _onBackPressed(context); return _onBackPressed(context);
......
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
...@@ -55,251 +57,252 @@ class _AccountslistState extends State<Accountslist> { ...@@ -55,251 +57,252 @@ class _AccountslistState extends State<Accountslist> {
var accountList = provider.accountsList; var accountList = provider.accountsList;
print(accountList.length); print(accountList.length);
return WillPopScope( return WillPopScope(
child: Scaffold( child: SafeArea(
resizeToAvoidBottomInset: true, top: false,
appBar: appbar2( bottom: Platform.isIOS?false:true,
context, child: Scaffold(
"Account List", resizeToAvoidBottomInset: true,
provider.resetValues, appBar: appbar2(
Container( context,
padding: EdgeInsets.symmetric(horizontal: 5, vertical: 5), "Account List",
provider.resetValues,
Container(
padding: EdgeInsets.symmetric(horizontal: 5, vertical: 5),
child: InkResponse( child: InkResponse(
onTap: () { onTap: () {
_showFilterSheet(context); _showFilterSheet(context);
}, },
child: SvgPicture.asset( child: SvgPicture.asset(
"assets/svg/filter_ic.svg", "assets/svg/filter_ic.svg",
height: 18, height: 18,
),
), ),
), ),
), ),
), backgroundColor: AppColors.scaffold_bg_color,
backgroundColor: AppColors.scaffold_bg_color, body: provider.isLoading?
body: SafeArea( Center(
child: child: CircularProgressIndicator(
provider.isLoading? valueColor: AlwaysStoppedAnimation(AppColors.app_blue),
Center( ),
child: CircularProgressIndicator( )
valueColor: AlwaysStoppedAnimation(AppColors.app_blue), :
), accountList.isNotEmpty
) ? SizedBox(
: child: Scrollbar(
accountList.isNotEmpty child: SingleChildScrollView(
? SizedBox( controller: scrollController,
child: Scrollbar( child: Column(
child: SingleChildScrollView( children: [
controller: scrollController, ListView.builder(
child: Column( itemCount: accountList.length + (provider.hasMoreData && provider.isLoading ? 1 : 0),
children: [ shrinkWrap: true,
ListView.builder( physics: NeverScrollableScrollPhysics(),
itemCount: accountList.length + (provider.hasMoreData && provider.isLoading ? 1 : 0), itemBuilder: (context, index) {
shrinkWrap: true, if (accountList.isEmpty) {
physics: NeverScrollableScrollPhysics(), return SizedBox(
itemBuilder: (context, index) { child: Center(
if (accountList.isEmpty) { child: Text("No Data Available"),
return SizedBox( ),
child: Center( );
child: Text("No Data Available"), }
), if (index == accountList.length &&
); !provider.isLoading) {
} return Padding(
if (index == accountList.length && padding: EdgeInsets.all(8.0),
!provider.isLoading) { child: Center(
return Padding( child:
padding: EdgeInsets.all(8.0), CircularProgressIndicator.adaptive(
child: Center( valueColor:
child: AlwaysStoppedAnimation<Color>(
CircularProgressIndicator.adaptive( AppColors.app_blue,
valueColor: ),
AlwaysStoppedAnimation<Color>( ),
AppColors.app_blue, ),
);
}
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(
children: [
Expanded(
flex: 1,
child: Container(
height: 50,
width: 35,
padding: EdgeInsets.all(8.0),
decoration: BoxDecoration(
color: Color(0xFFEAF7FF),
borderRadius:
BorderRadius.circular(8),
),
child: SvgPicture.asset(
"assets/svg/common_ac_list_ic.svg",
),
),
),
SizedBox(width: 10),
Expanded(
flex: 4,
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
accountList[index].name!,
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color:
AppColors
.semi_black,
), ),
),
Text(
accountList[index]
.contactName ??
"-",
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color:
AppColors.app_blue,
),
),
],
), ),
), ),
); ),
} ],
return Container(
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
margin: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
), ),
decoration: BoxDecoration( Divider(
color: Colors.white, thickness: 0.5,
borderRadius: BorderRadius.circular(16), color: Color(0xFFD7D7D7),
), ),
child: Column( ...List.generate(4, (j) {
children: [ final headings = [
Row( "Mobile Number",
"Email Id",
"Address",
"Account Type",
];
final subHeadings = [
accountList[index].mob1 ?? "-",
accountList[index].email ?? "-",
accountList[index].address ?? "-",
accountList[index].type ?? "-",
];
return Container(
padding: EdgeInsets.symmetric(
vertical: 5,
),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [ children: [
Expanded( Expanded(
flex: 1, child: Text(
child: Container( headings[j],
height: 50, style: TextStyle(
width: 35, fontFamily:
padding: EdgeInsets.all(8.0), "JakartaMedium",
decoration: BoxDecoration( fontSize: 14,
color: Color(0xFFEAF7FF), color:
borderRadius: AppColors.semi_black,
BorderRadius.circular(8),
),
child: SvgPicture.asset(
"assets/svg/common_ac_list_ic.svg",
), ),
), ),
), ),
SizedBox(width: 10), SizedBox(width: 15),
Expanded( Expanded(
flex: 4, child: Text(
child: SizedBox( subHeadings[j] ?? "-",
child: Column( style: TextStyle(
crossAxisAlignment: fontFamily:
CrossAxisAlignment.start, "JakartaMedium",
children: [ fontSize: 14,
Text( color:
accountList[index].name!, AppColors.grey_thick,
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color:
AppColors
.semi_black,
),
),
Text(
accountList[index]
.contactName ??
"-",
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color:
AppColors.app_blue,
),
),
],
), ),
), ),
), ),
], ],
), ),
Divider( );
thickness: 0.5, }),
color: Color(0xFFD7D7D7), InkResponse(
), onTap: () async {
...List.generate(4, (j) { print(
final headings = [ "length, ${accountList.length}",
"Mobile Number", );
"Email Id", Navigator.push(
"Address", context,
"Account Type", MaterialPageRoute(
]; builder:
(context) =>
final subHeadings = [ Accountslistdetails(
accountList[index].mob1 ?? "-", accountID:
accountList[index].email ?? "-", accountList[index]
accountList[index].address ?? "-", .id,
accountList[index].type ?? "-",
];
return Container(
padding: EdgeInsets.symmetric(
vertical: 5,
),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
child: Text(
headings[j],
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color:
AppColors.semi_black,
),
),
),
SizedBox(width: 15),
Expanded(
child: Text(
subHeadings[j] ?? "-",
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color:
AppColors.grey_thick,
), ),
), ),
), );
], },
), child: Container(
); padding: EdgeInsets.symmetric(
}), vertical: 5,
InkResponse( ),
onTap: () async { child: Row(
print( crossAxisAlignment:
"length, ${accountList.length}", CrossAxisAlignment.center,
); mainAxisAlignment:
Navigator.push( MainAxisAlignment.start,
context, children: [
MaterialPageRoute( Text(
builder: "View Details",
(context) => style: TextStyle(
Accountslistdetails( fontFamily: "JakartaMedium",
accountID: fontSize: 14,
accountList[index] color: AppColors.app_blue,
.id,
),
), ),
);
},
child: Container(
padding: EdgeInsets.symmetric(
vertical: 5,
), ),
child: Row( SizedBox(width: 5),
crossAxisAlignment: SvgPicture.asset(
CrossAxisAlignment.center, "assets/svg/next_button.svg",
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), ),
)
: Emptywidget(context),
), ),
), ),
onWillPop: () { onWillPop: () {
......
import 'dart:io';
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/accountDetailsProvider.dart'; import 'package:generp/Notifiers/commonProvider/accountDetailsProvider.dart';
...@@ -48,33 +50,35 @@ class _AccountslistdetailsState extends State<Accountslistdetails> { ...@@ -48,33 +50,35 @@ class _AccountslistdetailsState extends State<Accountslistdetails> {
overallBalance = totalDebit - totalCredit; overallBalance = totalDebit - totalCredit;
return WillPopScope( return WillPopScope(
child: Scaffold( child: SafeArea(
appBar: appbar2( top: false,
context, bottom: Platform.isIOS?false:true,
"Account Details", child: Scaffold(
provider.resetValues, appBar: appbar2(
Container( context,
padding: EdgeInsets.symmetric(horizontal: 5, vertical: 5), "Account Details",
decoration: BoxDecoration( provider.resetValues,
color: Color(0xFFE6F6FF), Container(
borderRadius: BorderRadius.circular(8), padding: EdgeInsets.symmetric(horizontal: 5, vertical: 5),
), decoration: BoxDecoration(
child: Row( color: Color(0xFFE6F6FF),
children: [ borderRadius: BorderRadius.circular(8),
SvgPicture.asset("assets/svg/fin_ic.svg", height: 12), ),
SizedBox(width: 5), child: Row(
Text( children: [
overallBalance.toString() ?? "-", SvgPicture.asset("assets/svg/fin_ic.svg", height: 12),
style: TextStyle(fontSize: 12), SizedBox(width: 5),
), Text(
], overallBalance.toString() ?? "-",
style: TextStyle(fontSize: 12),
),
],
),
), ),
), ),
), resizeToAvoidBottomInset: true,
resizeToAvoidBottomInset: true, backgroundColor: AppColors.scaffold_bg_color,
backgroundColor: AppColors.scaffold_bg_color, body: SizedBox(
body: SafeArea(
child: SizedBox(
child: SingleChildScrollView( child: SingleChildScrollView(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
...@@ -528,7 +532,7 @@ class _AccountslistdetailsState extends State<Accountslistdetails> { ...@@ -528,7 +532,7 @@ class _AccountslistdetailsState extends State<Accountslistdetails> {
), ),
), ),
), ),
] ]
], ],
), ),
), ),
......
import 'dart:io';
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/services.dart'; import 'package:flutter/services.dart';
...@@ -53,17 +55,19 @@ class _AddcommonpaymentState extends State<Addcommonpayment>{ ...@@ -53,17 +55,19 @@ class _AddcommonpaymentState extends State<Addcommonpayment>{
provider.resetValues(); provider.resetValues();
return onBackPressed(context); return onBackPressed(context);
}, },
child: Scaffold( child: SafeArea(
resizeToAvoidBottomInset: true, top: false,
appBar: appbar2( bottom: Platform.isIOS?false:true,
context, child: Scaffold(
"Add Account", resizeToAvoidBottomInset: true,
provider.resetValues, appBar: appbar2(
SizedBox(width: 0), context,
), "Add Account",
backgroundColor: AppColors.white, provider.resetValues,
body: SafeArea( SizedBox(width: 0),
child: SizedBox( ),
backgroundColor: AppColors.white,
body: SizedBox(
child: SingleChildScrollView( child: SingleChildScrollView(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
...@@ -854,38 +858,38 @@ class _AddcommonpaymentState extends State<Addcommonpayment>{ ...@@ -854,38 +858,38 @@ class _AddcommonpaymentState extends State<Addcommonpayment>{
), ),
), ),
), ),
),
bottomNavigationBar: InkResponse( bottomNavigationBar: InkResponse(
onTap: onTap:
provider.submitClickced
? null
: () {
provider.submitClickced = true;
provider.submitCommonAccountsAPI(context,widget.from);
},
child: Container(
height: 45,
alignment: Alignment.center,
margin: EdgeInsets.symmetric(horizontal: 10, vertical: 15),
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5),
decoration: BoxDecoration(
color: AppColors.app_blue,
borderRadius: BorderRadius.circular(15),
),
child:
provider.submitClickced provider.submitClickced
? CircularProgressIndicator.adaptive( ? null
valueColor: AlwaysStoppedAnimation(AppColors.white), : () {
) provider.submitClickced = true;
: Text( provider.submitCommonAccountsAPI(context,widget.from);
"Submit", },
style: TextStyle( child: Container(
fontSize: 15, height: 45,
fontFamily: "JakartaMedium", alignment: Alignment.center,
color: Colors.white, margin: EdgeInsets.symmetric(horizontal: 10, vertical: 15),
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5),
decoration: BoxDecoration(
color: AppColors.app_blue,
borderRadius: BorderRadius.circular(15),
),
child:
provider.submitClickced
? CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation(AppColors.white),
)
: Text(
"Submit",
style: TextStyle(
fontSize: 15,
fontFamily: "JakartaMedium",
color: Colors.white,
),
), ),
), ),
), ),
), ),
), ),
......
import 'dart:io';
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';
...@@ -35,12 +37,14 @@ class _CommondashboardState extends State<Commondashboard> { ...@@ -35,12 +37,14 @@ class _CommondashboardState extends State<Commondashboard> {
return WillPopScope( return WillPopScope(
onWillPop: () => onBackPressed(context), onWillPop: () => onBackPressed(context),
child: Scaffold( child: SafeArea(
resizeToAvoidBottomInset: true, top: false,
backgroundColor: AppColors.scaffold_bg_color, bottom: Platform.isIOS?false:true,
appBar: appbar(context, "Common"), child: Scaffold(
body: SafeArea( resizeToAvoidBottomInset: true,
child: GridView.builder( backgroundColor: AppColors.scaffold_bg_color,
appBar: appbar(context, "Common"),
body: GridView.builder(
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 10), padding: EdgeInsets.symmetric(vertical: 10, horizontal: 10),
itemCount: gridPages.length, itemCount: gridPages.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
...@@ -89,35 +93,35 @@ class _CommondashboardState extends State<Commondashboard> { ...@@ -89,35 +93,35 @@ class _CommondashboardState extends State<Commondashboard> {
); );
}, },
), ),
), floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat, floatingActionButton:provider.accessPages
floatingActionButton:provider.accessPages .any((page) => page.id==292)? InkResponse(
.any((page) => page.id==292)? InkResponse( onTap: () {
onTap: () { Navigator.push(
Navigator.push( context,
context, MaterialPageRoute(builder: (context) => Addcommonpayment(from: "Dashboard",)),
MaterialPageRoute(builder: (context) => Addcommonpayment(from: "Dashboard",)), );
); },
}, child: Container(
child: Container( height: 45,
height: 45, alignment: Alignment.center,
alignment: Alignment.center, margin: EdgeInsets.symmetric(horizontal: 10),
margin: EdgeInsets.symmetric(horizontal: 10), padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5),
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5), decoration: BoxDecoration(
decoration: BoxDecoration( color: AppColors.app_blue,
color: AppColors.app_blue, borderRadius: BorderRadius.circular(15),
borderRadius: BorderRadius.circular(15), ),
), child: Text(
child: Text( "Add Account",
"Add Account", style: TextStyle(
style: TextStyle( fontSize: 15,
fontSize: 15, fontFamily: "JakartaMedium",
fontFamily: "JakartaMedium", color: Colors.white,
color: Colors.white, ),
), ),
), ),
), ):SizedBox(height: 0,),
):SizedBox(height: 0,), ),
), ),
); );
} }
......
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