Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Sai Srinivas
GEN_ERP_2025
Commits
b9d7c024
Commit
b9d7c024
authored
Jun 23, 2025
by
Sai Srinivas
Browse files
sai srinivas
finance module updated
parent
a92809e3
Changes
11
Expand all
Show whitespace changes
Inline
Side-by-side
lib/Models/TechniciansPendingComplaintsResponse.dart
View file @
b9d7c024
...
...
@@ -3,8 +3,11 @@ class TechnicianPendingComplaintsResponse {
int
?
error
;
int
?
sessionExists
;
TechnicianPendingComplaintsResponse
(
{
this
.
list
,
this
.
error
,
this
.
sessionExists
});
TechnicianPendingComplaintsResponse
({
this
.
list
,
this
.
error
,
this
.
sessionExists
,
});
TechnicianPendingComplaintsResponse
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
if
(
json
[
'list'
]
!=
null
)
{
...
...
@@ -39,9 +42,10 @@ class TP_List {
String
?
compRegDatetime
;
String
?
mobileNo
;
String
?
contactName
;
String
?
engineNo
;
TP_List
(
{
this
.
genId
,
TP_List
(
{
this
.
genId
,
this
.
address
,
this
.
loc
,
this
.
complaintId
,
...
...
@@ -51,6 +55,7 @@ class TP_List {
this
.
compRegDatetime
,
this
.
mobileNo
,
this
.
contactName
,
this
.
engineNo
,
});
TP_List
.
fromJson
(
Map
<
String
,
dynamic
>
json
)
{
...
...
@@ -64,6 +69,7 @@ class TP_List {
compRegDatetime
=
json
[
'comp_reg_datetime'
];
mobileNo
=
json
[
'mobile_no'
];
contactName
=
json
[
'contact_name'
];
engineNo
=
json
[
'engine_number'
];
}
Map
<
String
,
dynamic
>
toJson
()
{
...
...
@@ -78,6 +84,7 @@ class TP_List {
data
[
'comp_reg_datetime'
]
=
this
.
compRegDatetime
;
data
[
'mobile_no'
]
=
this
.
mobileNo
;
data
[
'contact_name'
]
=
this
.
contactName
;
data
[
'engine_number'
]
=
this
.
engineNo
;
return
data
;
}
}
lib/Utils/commonWidgets.dart
View file @
b9d7c024
...
...
@@ -18,7 +18,7 @@ PreferredSizeWidget appbar(BuildContext context, title) {
child:
SvgPicture
.
asset
(
"assets/svg/app_bar_back.svg"
,
height:
25
),
),
InkResponse
(
onTap:
()
=>
Navigator
.
pop
(
context
,
true
),
onTap:
()
=>
Navigator
.
pop
(
context
,
true
),
child:
Text
(
title
,
style:
TextStyle
(
...
...
@@ -40,7 +40,7 @@ PreferredSizeWidget appbar(BuildContext context, title) {
);
}
PreferredSizeWidget
appbar2
(
BuildContext
context
,
title
,
reset
,
widget
)
{
PreferredSizeWidget
appbar2
(
BuildContext
context
,
title
,
reset
,
widget
)
{
return
AppBar
(
automaticallyImplyLeading:
false
,
elevation:
2.0
,
...
...
@@ -50,14 +50,14 @@ PreferredSizeWidget appbar2(BuildContext context, title,reset,widget) {
crossAxisAlignment:
CrossAxisAlignment
.
center
,
children:
[
InkResponse
(
onTap:
(){
onTap:
()
{
reset
();
Navigator
.
pop
(
context
,
true
);
},
child:
SvgPicture
.
asset
(
"assets/svg/app_bar_back.svg"
,
height:
25
),
),
Expanded
(
flex:
4
,
flex:
4
,
child:
InkResponse
(
onTap:
()
{
reset
();
...
...
@@ -77,7 +77,7 @@ PreferredSizeWidget appbar2(BuildContext context, title,reset,widget) {
),
),
Spacer
(),
widget
widget
,
],
),
),
...
...
@@ -94,11 +94,10 @@ Future<bool> onBackPressed(BuildContext context) async {
return
true
;
}
Widget
Emptywidget
(
BuildContext
context
){
Widget
Emptywidget
(
BuildContext
context
)
{
return
SizedBox
(
height:
MediaQuery
.
of
(
context
).
size
.
height
*
0.8
,
child:
Center
(
child:
Text
(
"No Data Available"
)),
height:
MediaQuery
.
of
(
context
).
size
.
height
*
0.8
,
child:
Center
(
child:
Text
(
"No Data Available"
)),
);
}
...
...
@@ -124,7 +123,7 @@ Widget textControllerWidget(
inputtype
,
readonly
,
inputFormatters
,
)
{
)
{
return
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
...
...
@@ -169,12 +168,13 @@ Widget textControllerWidget(
],
);
}
Widget
textControllerReadonlyWidget
(
context
,
controller
,
hintText
,
Function
(
String
)?
onChanged
,
)
{
)
{
return
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
...
...
@@ -215,14 +215,15 @@ Widget textControllerReadonlyWidget(
],
);
}
class
MyNavigatorObserver
extends
NavigatorObserver
{
@override
void
didPush
(
Route
route
,
Route
?
previousRoute
)
{
super
.
didPush
(
route
,
previousRoute
);
// Called when a route has been pushed onto the navigator.
didPushed
=
"true"
;
//
print('Route pushed: ${route.settings.name}');
//
print('didPushed$didPushed');
print
(
'Route pushed:
${route.settings.name}
'
);
print
(
'didPushed
$didPushed
'
);
}
@override
...
...
@@ -230,7 +231,7 @@ class MyNavigatorObserver extends NavigatorObserver {
super
.
didPop
(
route
,
previousRoute
);
didPopped
=
"true"
;
// Called when a route has been popped off the navigator.
//
print('Route popped: ${route.settings.name}');
//
print('didPopped${didPopped}');
print
(
'Route popped:
${route.settings.name}
'
);
print
(
'didPopped
${didPopped}
'
);
}
}
lib/main.dart
View file @
b9d7c024
...
...
@@ -57,7 +57,6 @@ Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
void
main
(
)
async
{
WidgetsFlutterBinding
.
ensureInitialized
();
if
(
Platform
.
isAndroid
)
{
await
Firebase
.
initializeApp
(
options:
FirebaseOptions
(
...
...
@@ -186,25 +185,28 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider
(
create:
(
_
)
=>
Paymentdetailsprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
Generatordetailsprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
Nearbygeneratorsprovider
()),
///finance
ChangeNotifierProvider
(
create:
(
_
)
=>
Dashboardprovider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
Requestionlistprovider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
Requesitionlidtdetailsprovider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
Paymentrequisitionpaymentslistprovider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
Paymentreceiptsprovider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
Commonpagesprovider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
Accountslistprovider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
Accountdetailsprovider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
Accountledgerprovider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
Pagesdashboardprovider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
Paymentsprovider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
Tpcagentsprovider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
Addpaymentprovider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
Addorderprovider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
Editpaymentprovider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
Crmdashboardprovider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
Leadlistprovider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
crmLeadDetailsProvider
(),),
ChangeNotifierProvider
(
create:
(
_
)
=>
Dashboardprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
Requestionlistprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
Requesitionlidtdetailsprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
Paymentrequisitionpaymentslistprovider
(),
),
ChangeNotifierProvider
(
create:
(
_
)
=>
Paymentreceiptsprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
Commonpagesprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
Accountslistprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
Accountdetailsprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
Accountledgerprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
Pagesdashboardprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
Paymentsprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
Tpcagentsprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
Addpaymentprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
Addorderprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
Editpaymentprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
Crmdashboardprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
Leadlistprovider
()),
ChangeNotifierProvider
(
create:
(
_
)
=>
crmLeadDetailsProvider
()),
],
child:
Builder
(
builder:
(
BuildContext
context
)
{
...
...
@@ -213,7 +215,7 @@ class MyApp extends StatelessWidget {
builder:
(
BuildContext
context
,
Widget
?
child
)
{
final
MediaQueryData
data
=
MediaQuery
.
of
(
context
);
return
MediaQuery
(
data:
data
.
copyWith
(
textScale
Factor:
1.0
),
data:
data
.
copyWith
(
textScale
r:
TextScaler
.
linear
(
1.0
)
)
,
child:
child
??
Container
(),
);
},
...
...
@@ -271,7 +273,9 @@ class MyApp extends StatelessWidget {
interactive:
true
,
radius:
Radius
.
circular
(
6
),
thickness:
WidgetStatePropertyAll
(
10
),
thumbColor:
WidgetStateProperty
.
all
(
AppColors
.
grey_semi
.
withOpacity
(
0.6
))
thumbColor:
WidgetStateProperty
.
all
(
AppColors
.
grey_semi
.
withOpacity
(
0.6
),
),
),
),
home:
const
Splash
(),
...
...
lib/screens/HomeScreen.dart
View file @
b9d7c024
...
...
@@ -118,8 +118,8 @@ class _MyHomePageState extends State<MyHomePage> {
"Whizzdom"
,
"Common"
,
"Finance"
,
"Orders"
,
"CRM"
,
//
"Orders",
//
"CRM",
];
final
icons
=
[
"assets/svg/home_icons_1.svg"
,
...
...
@@ -131,8 +131,8 @@ class _MyHomePageState extends State<MyHomePage> {
"assets/svg/home_icons_81.svg"
,
"assets/svg/home_icons_9.svg"
,
"assets/svg/home_icons_10.svg"
,
"assets/svg/home_icons_11.svg"
,
"assets/svg/home_icons_12.svg"
,
//
"assets/svg/home_icons_11.svg",
//
"assets/svg/home_icons_12.svg",
];
final
requiredRoles
=
[
"430"
,
...
...
@@ -144,8 +144,8 @@ class _MyHomePageState extends State<MyHomePage> {
"431"
,
"430"
,
"430"
,
"430"
,
"430"
,
//
"430",
//
"430",
];
final
filteredItems
=
<
Map
<
String
,
String
>>[];
...
...
@@ -204,7 +204,8 @@ class _MyHomePageState extends State<MyHomePage> {
flex:
2
,
child:
SizedBox
(
child:
Column
(
mainAxisAlignment:
MainAxisAlignment
.
center
,
mainAxisAlignment:
MainAxisAlignment
.
center
,
children:
[
SizedBox
(
...
...
@@ -217,7 +218,8 @@ class _MyHomePageState extends State<MyHomePage> {
child:
CachedNetworkImage
(
cacheKey:
profile
.
profileImage
,
fit:
BoxFit
.
cover
,
imageUrl:
"
${profile.profileImage}
"
,
imageUrl:
"
${profile.profileImage}
"
,
useOldImageOnUrlChange:
false
,
placeholder:
(
context
,
url
)
=>
...
...
@@ -266,7 +268,8 @@ class _MyHomePageState extends State<MyHomePage> {
child:
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
mainAxisAlignment:
MainAxisAlignment
.
center
,
mainAxisAlignment:
MainAxisAlignment
.
center
,
children:
[
Text
(
"
${profile.employeeName}
"
,
...
...
@@ -341,7 +344,7 @@ class _MyHomePageState extends State<MyHomePage> {
top:
0
,
bottom:
10
,
),
margin:
EdgeInsets
.
only
(
top:
10
),
margin:
EdgeInsets
.
only
(
top:
10
),
child:
GridView
.
builder
(
itemCount:
filteredItems
.
length
,
gridDelegate:
...
...
@@ -401,7 +404,8 @@ class _MyHomePageState extends State<MyHomePage> {
context
,
MaterialPageRoute
(
builder:
(
context
)
=>
Gentrackerdashboard
(),
(
context
)
=>
Gentrackerdashboard
(),
),
);
break
;
...
...
@@ -429,7 +433,8 @@ class _MyHomePageState extends State<MyHomePage> {
res
=
await
Navigator
.
push
(
context
,
MaterialPageRoute
(
builder:
(
context
)
=>
InventoryScreen
(),
builder:
(
context
)
=>
InventoryScreen
(),
),
);
break
;
...
...
@@ -443,7 +448,8 @@ class _MyHomePageState extends State<MyHomePage> {
builder:
(
context
)
=>
WebWhizzdomScreen
(
whizzdom_url:
homescreen
.
whizzdomPageUrl
,
homescreen
.
whizzdomPageUrl
,
),
),
);
...
...
@@ -455,7 +461,8 @@ class _MyHomePageState extends State<MyHomePage> {
res
=
await
Navigator
.
push
(
context
,
MaterialPageRoute
(
builder:
(
context
)
=>
Commondashboard
(),
builder:
(
context
)
=>
Commondashboard
(),
),
);
break
;
...
...
@@ -473,7 +480,8 @@ class _MyHomePageState extends State<MyHomePage> {
context
,
MaterialPageRoute
(
builder:
(
context
)
=>
Ordermoduledashboard
(),
(
context
)
=>
Ordermoduledashboard
(),
),
);
case
"CRM"
:
...
...
@@ -498,10 +506,14 @@ class _MyHomePageState extends State<MyHomePage> {
borderRadius:
BorderRadius
.
circular
(
30
),
),
child:
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
center
,
crossAxisAlignment:
CrossAxisAlignment
.
center
,
mainAxisAlignment:
MainAxisAlignment
.
center
,
children:
[
SvgPicture
.
asset
(
item
[
'icon'
]!,
height:
45
),
SvgPicture
.
asset
(
item
[
'icon'
]!,
height:
45
,
),
SizedBox
(
height:
10
),
Text
(
item
[
'name'
]!),
],
...
...
lib/screens/finance/PaymentRequestionListDetails.dart
View file @
b9d7c024
...
...
@@ -32,7 +32,6 @@ class Paymentrequestionlistdetails extends StatefulWidget {
class
_PaymentrequestionlistdetailsState
extends
State
<
Paymentrequestionlistdetails
>
{
Dropdowntheme
ddtheme
=
Dropdowntheme
();
TextEditingController
approvedAmount
=
TextEditingController
();
TextEditingController
remarks
=
TextEditingController
();
...
...
@@ -55,11 +54,9 @@ class _PaymentrequestionlistdetailsState
bool
isLevel2Finalized
=
false
;
// Final decision on whether to show buttons
// Final decision on whether to show buttons
bool
shouldShowButtons
=
false
;
@override
void
initState
()
{
// TODO: implement initState
...
...
@@ -95,7 +92,9 @@ class _PaymentrequestionlistdetailsState
if
(
widget
.
mode
==
"apr_lvl1"
)
{
shouldShowButtons
=
!
isLevel1Finalized
;
}
else
if
(
widget
.
mode
==
"apr_lvl2"
)
{
shouldShowButtons
=
!
isLevel2Finalized
&&
[
shouldShowButtons
=
!
isLevel2Finalized
&&
[
"Requested"
,
"Level 1 Approved"
,
"Level 1 approved"
,
...
...
@@ -109,7 +108,12 @@ class _PaymentrequestionlistdetailsState
return
WillPopScope
(
child:
Scaffold
(
resizeToAvoidBottomInset:
true
,
appBar:
appbar2
(
context
,
widget
.
pageName
,
provider
.
resetAll
,
SizedBox
(
width:
0
,)),
appBar:
appbar2
(
context
,
widget
.
pageName
,
provider
.
resetAll
,
SizedBox
(
width:
0
),
),
backgroundColor:
AppColors
.
scaffold_bg_color
,
body:
SafeArea
(
child:
Container
(
...
...
@@ -199,8 +203,8 @@ class _PaymentrequestionlistdetailsState
),
Divider
(
thickness:
0.5
,
color:
Color
(
0xFFD7D7D7
)),
...
List
.
generate
(
provider
.
subHeadings
.
length
,
(
j
)
{
if
(
provider
.
Headings
[
j
]
==
"Attachment"
&&
req_det
.
attachmentViewFileName
==
""
){
if
(
provider
.
Headings
[
j
]
==
"Attachment"
&&
req_det
.
attachmentViewFileName
==
""
)
{
return
SizedBox
.
shrink
();
}
return
Container
(
...
...
@@ -301,7 +305,8 @@ class _PaymentrequestionlistdetailsState
),
),
),
floatingActionButton:
([
"admin"
,
"self"
].
contains
(
widget
.
mode
)
||
!
shouldShowButtons
)
floatingActionButton:
([
"admin"
,
"self"
].
contains
(
widget
.
mode
)
||
!
shouldShowButtons
)
?
Container
(
height:
0
)
:
Container
(
margin:
EdgeInsets
.
symmetric
(
horizontal:
10
),
...
...
@@ -317,7 +322,11 @@ class _PaymentrequestionlistdetailsState
Expanded
(
child:
InkResponse
(
onTap:
()
{
_showLevelRejectionSheet
(
context
);
print
(
provider
.
requestsDetails
.
id
);
_showLevelRejectionSheet
(
context
,
provider
.
requestsDetails
.
id
,
);
},
child:
Container
(
decoration:
BoxDecoration
(
...
...
@@ -340,15 +349,22 @@ class _PaymentrequestionlistdetailsState
),
),
SizedBox
(
width:
10
),
if
([
"apr_lvl1"
,
"apr_lvl2"
].
contains
(
widget
.
mode
))
...[
if
([
"apr_lvl1"
,
"apr_lvl2"
,
].
contains
(
widget
.
mode
))
...[
Expanded
(
child:
InkResponse
(
onTap:
()
{
provider
.
approveRejectPaymentRequestAPIFunction
(
provider
.
approveRejectPaymentRequestAPIFunction
(
context
,
provider
.
requestsDetails
.
id
,
);
_showLevelApprovalSheet
(
context
,
provider
.
requestsDetails
.
id
,
);
_showLevelApprovalSheet
(
context
);
},
child:
Container
(
decoration:
BoxDecoration
(
...
...
@@ -370,17 +386,20 @@ class _PaymentrequestionlistdetailsState
),
),
),
]
else
if
(
widget
.
mode
==
"process"
)
...[
]
else
if
(
widget
.
mode
==
"process"
)
...[
Expanded
(
child:
InkResponse
(
onTap:
()
{
provider
.
approveRejectPaymentRequestAPIFunction
(
provider
.
approveRejectPaymentRequestAPIFunction
(
context
,
provider
.
requestsDetails
.
id
,
);
provider
.
preValues
();
_showAddPaymentSheet
(
context
);
_showAddPaymentSheet
(
context
,
provider
.
requestsDetails
.
id
,
);
},
child:
Container
(
decoration:
BoxDecoration
(
...
...
@@ -407,7 +426,8 @@ class _PaymentrequestionlistdetailsState
),
),
),
floatingActionButtonLocation:
FloatingActionButtonLocation
.
centerFloat
,
floatingActionButtonLocation:
FloatingActionButtonLocation
.
centerFloat
,
// bottomNavigationBar:
// (["admin", "self"].contains(widget.mode))
// ? Container(height: 0)
...
...
@@ -539,7 +559,7 @@ class _PaymentrequestionlistdetailsState
);
}
Future
<
void
>
_showLevelApprovalSheet
(
BuildContext
context
)
{
Future
<
void
>
_showLevelApprovalSheet
(
BuildContext
context
,
paymentID
)
{
return
showModalBottomSheet
(
useSafeArea:
true
,
isDismissible:
true
,
...
...
@@ -561,7 +581,9 @@ class _PaymentrequestionlistdetailsState
right:
15
,
top:
10
,
),
padding:
EdgeInsets
.
only
(
bottom:
MediaQuery
.
of
(
context
).
viewInsets
.
bottom
,),
padding:
EdgeInsets
.
only
(
bottom:
MediaQuery
.
of
(
context
).
viewInsets
.
bottom
,
),
child:
SingleChildScrollView
(
child:
Column
(
...
...
@@ -668,20 +690,26 @@ class _PaymentrequestionlistdetailsState
},
dropdownSearchData:
DropdownSearchData
(
searchInnerWidgetHeight:
50
,
searchController:
provider
.
paymentAccountSearchController
,
searchController:
provider
.
paymentAccountSearchController
,
searchInnerWidget:
Padding
(
padding:
const
EdgeInsets
.
all
(
8
),
child:
TextFormField
(
controller:
provider
.
paymentAccountSearchController
,
controller:
provider
.
paymentAccountSearchController
,
decoration:
InputDecoration
(
isDense:
true
,
contentPadding:
const
EdgeInsets
.
symmetric
(
contentPadding:
const
EdgeInsets
.
symmetric
(
horizontal:
10
,
vertical:
8
,
),
hintText:
'Search account...'
,
border:
OutlineInputBorder
(
borderRadius:
BorderRadius
.
circular
(
8
),
borderRadius:
BorderRadius
.
circular
(
8
),
),
),
),
...
...
@@ -689,21 +717,26 @@ class _PaymentrequestionlistdetailsState
searchMatchFn:
(
item
,
searchValue
)
{
return
item
.
value
?.
name
?.
toLowerCase
()
.
contains
(
searchValue
.
toLowerCase
())
??
.
contains
(
searchValue
.
toLowerCase
(),
)
??
false
;
},
// Optional: clear search text when dropdown closes
// Optional: clear search text when dropdown closes
),
onMenuStateChange:
(
isOpen
)
{
if
(!
isOpen
)
{
provider
.
paymentAccountSearchController
.
clear
();
provider
.
paymentAccountSearchController
.
clear
();
}
},
buttonStyleData:
ddtheme
.
buttonStyleData
,
iconStyleData:
ddtheme
.
iconStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
),
),
],
...
...
@@ -715,7 +748,7 @@ class _PaymentrequestionlistdetailsState
.
paymentrequisitionApproveSubmitAPIFunction
(
context
,
widget
.
mode
,
p
rovider
.
paymentsReqDetails
.
id
,
p
aymentID
,
approvedAmount
.
text
,
remarks
.
text
,
provider
.
selectedID
,
...
...
@@ -737,6 +770,8 @@ class _PaymentrequestionlistdetailsState
child:
Center
(
child:
Text
(
"Submit"
,
///approve
textAlign:
TextAlign
.
center
,
style:
TextStyle
(
color:
Colors
.
white
),
),
...
...
@@ -756,7 +791,7 @@ class _PaymentrequestionlistdetailsState
);
}
Future
<
void
>
_showLevelRejectionSheet
(
BuildContext
context
)
{
Future
<
void
>
_showLevelRejectionSheet
(
BuildContext
context
,
paymentID
)
{
return
showModalBottomSheet
(
useSafeArea:
true
,
isDismissible:
true
,
...
...
@@ -778,7 +813,9 @@ class _PaymentrequestionlistdetailsState
right:
15
,
top:
10
,
),
padding:
EdgeInsets
.
only
(
bottom:
MediaQuery
.
of
(
context
).
viewInsets
.
bottom
,),
padding:
EdgeInsets
.
only
(
bottom:
MediaQuery
.
of
(
context
).
viewInsets
.
bottom
,
),
child:
SingleChildScrollView
(
child:
Column
(
mainAxisSize:
MainAxisSize
.
min
,
...
...
@@ -829,7 +866,7 @@ class _PaymentrequestionlistdetailsState
.
paymentrequisitionRejectSubmitAPIFunction
(
context
,
widget
.
mode
,
p
rovider
.
paymentsReqDetails
.
id
,
p
aymentID
,
remarks
.
text
,
);
},
...
...
@@ -849,6 +886,8 @@ class _PaymentrequestionlistdetailsState
child:
Center
(
child:
Text
(
"Submit"
,
///reject
textAlign:
TextAlign
.
center
,
style:
TextStyle
(
color:
Colors
.
white
),
),
...
...
@@ -868,7 +907,7 @@ class _PaymentrequestionlistdetailsState
);
}
Future
<
void
>
_showAddPaymentSheet
(
BuildContext
context
)
{
Future
<
void
>
_showAddPaymentSheet
(
BuildContext
context
,
paymentID
)
{
return
showModalBottomSheet
(
useSafeArea:
true
,
isDismissible:
true
,
...
...
@@ -890,7 +929,9 @@ class _PaymentrequestionlistdetailsState
right:
15
,
top:
10
,
),
padding:
EdgeInsets
.
only
(
bottom:
MediaQuery
.
of
(
context
).
viewInsets
.
bottom
,),
padding:
EdgeInsets
.
only
(
bottom:
MediaQuery
.
of
(
context
).
viewInsets
.
bottom
,
),
child:
SingleChildScrollView
(
child:
Column
(
...
...
@@ -967,8 +1008,10 @@ class _PaymentrequestionlistdetailsState
},
buttonStyleData:
ddtheme
.
buttonStyleData
,
iconStyleData:
ddtheme
.
iconStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
),
),
],
...
...
@@ -1138,7 +1181,7 @@ class _PaymentrequestionlistdetailsState
.
paymentrequisitionProcessSubmitAPIFunction
(
context
,
widget
.
mode
,
p
rovider
.
paymentsReqDetails
.
id
,
p
aymentID
,
paymentReferenceNumber
.
text
,
remarks
.
text
,
provider
.
imagePath
,
...
...
@@ -1160,6 +1203,8 @@ class _PaymentrequestionlistdetailsState
child:
Center
(
child:
Text
(
"Submit"
,
///add payment
textAlign:
TextAlign
.
center
,
style:
TextStyle
(
color:
Colors
.
white
),
),
...
...
lib/screens/serviceEngineer/PendingComplaints.dart
View file @
b9d7c024
...
...
@@ -55,7 +55,10 @@ class _PendingcomplaintsState extends State<Pendingcomplaints> {
child:
SvgPicture
.
asset
(
"assets/svg/scanner.svg"
),
),
),
body:
SafeArea
(
child:
provider
.
technician_complaint_list
.
isNotEmpty
?
Container
(
body:
SafeArea
(
child:
provider
.
technician_complaint_list
.
isNotEmpty
?
Container
(
child:
ListView
.
builder
(
scrollDirection:
Axis
.
vertical
,
shrinkWrap:
true
,
...
...
@@ -80,7 +83,8 @@ class _PendingcomplaintsState extends State<Pendingcomplaints> {
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
Row
(
crossAxisAlignment:
CrossAxisAlignment
.
center
,
crossAxisAlignment:
CrossAxisAlignment
.
center
,
mainAxisAlignment:
MainAxisAlignment
.
center
,
children:
[
Expanded
(
...
...
@@ -152,16 +156,24 @@ class _PendingcomplaintsState extends State<Pendingcomplaints> {
.
complaintId
,
);
},
child:
SvgPicture
.
asset
(
"assets/svg/ic_more.svg"
,
height:
30
,),
child:
SvgPicture
.
asset
(
"assets/svg/ic_more.svg"
,
height:
30
,
),
),
),
],
),
Divider
(
thickness:
0.5
,
color:
Color
(
0xFFD7D7D7
)),
...
List
.
generate
(
3
,
(
j
)
{
Divider
(
thickness:
0.5
,
color:
Color
(
0xFFD7D7D7
),
),
...
List
.
generate
(
4
,
(
j
)
{
final
textheads
=
[
"Complaint ID"
,
"Product Name"
,
"Engine Number"
,
"Address"
,
];
final
textSubheads
=
[
...
...
@@ -171,12 +183,17 @@ class _PendingcomplaintsState extends State<Pendingcomplaints> {
provider
.
technician_complaint_list
[
index
]
.
productName
,
provider
.
technician_complaint_list
[
index
]
.
engineNo
,
provider
.
technician_complaint_list
[
index
]
.
address
,
];
return
Container
(
padding:
EdgeInsets
.
symmetric
(
vertical:
3
),
padding:
EdgeInsets
.
symmetric
(
vertical:
3
,
),
child:
Row
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
...
...
@@ -219,14 +236,16 @@ class _PendingcomplaintsState extends State<Pendingcomplaints> {
);
},
child:
Row
(
mainAxisAlignment:
MainAxisAlignment
.
start
,
crossAxisAlignment:
CrossAxisAlignment
.
center
,
mainAxisAlignment:
MainAxisAlignment
.
start
,
crossAxisAlignment:
CrossAxisAlignment
.
center
,
children:
[
Text
(
"View Details"
,
style:
TextStyle
(
color:
AppColors
.
app_blue
,
fontFamily:
"JakartaMedium"
fontFamily:
"JakartaMedium"
,
),
),
SizedBox
(
width:
5
),
...
...
@@ -241,7 +260,9 @@ class _PendingcomplaintsState extends State<Pendingcomplaints> {
);
},
),
):
Emptywidget
(
context
),)
)
:
Emptywidget
(
context
),
),
),
);
},
...
...
@@ -346,9 +367,10 @@ class _PendingcomplaintsState extends State<Pendingcomplaints> {
leading:
SvgPicture
.
asset
(
"assets/svg/
${assetnames[index]}
.svg"
,
),
title:
Text
(
Headingnames
[
index
],
style:
TextStyle
(
fontFamily:
"JakartaMedium"
),),
title:
Text
(
Headingnames
[
index
],
style:
TextStyle
(
fontFamily:
"JakartaMedium"
),
),
trailing:
SvgPicture
.
asset
(
"assets/svg/arrow_right_new.svg"
,
),
...
...
lib/screens/serviceEngineer/UpdateComplaints.dart
View file @
b9d7c024
This diff is collapsed.
Click to expand it.
lib/screens/serviceEngineer/VisitDetails.dart
View file @
b9d7c024
...
...
@@ -51,8 +51,14 @@ class _VisitdetailsState extends State<Visitdetails> {
children:
[
Text
(
"Customer Details"
),
Container
(
margin:
EdgeInsets
.
symmetric
(
horizontal:
10
,
vertical:
5
),
padding:
EdgeInsets
.
symmetric
(
horizontal:
15
,
vertical:
10
),
margin:
EdgeInsets
.
symmetric
(
horizontal:
10
,
vertical:
5
,
),
padding:
EdgeInsets
.
symmetric
(
horizontal:
15
,
vertical:
10
,
),
decoration:
BoxDecoration
(
color:
Colors
.
white
,
borderRadius:
BorderRadius
.
circular
(
20
),
...
...
@@ -67,13 +73,12 @@ class _VisitdetailsState extends State<Visitdetails> {
"Mail ID"
,
];
final
textSubheads
=
[
customerDetails
.
aname
??
"-"
,
customerDetails
.
mob1
??
"-"
,
customerDetails
.
mob2
??
"-"
,
customerDetails
.
mail
??
"-"
,
customerDetails
.
aname
??
"-"
,
customerDetails
.
mob1
??
"-"
,
customerDetails
.
mob2
??
"-"
,
customerDetails
.
mail
??
"-"
,
];
return
Container
(
padding:
EdgeInsets
.
symmetric
(
vertical:
6
,
horizontal:
0
,
...
...
@@ -94,9 +99,11 @@ class _VisitdetailsState extends State<Visitdetails> {
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
Text
(
textheads
[
j
].
toString
(),
Text
(
textheads
[
j
].
toString
(),
maxLines:
2
,
overflow:
TextOverflow
.
ellipsis
,),
overflow:
TextOverflow
.
ellipsis
,
),
SizedBox
(
// height:45,
width:
...
...
@@ -105,11 +112,11 @@ class _VisitdetailsState extends State<Visitdetails> {
).
size
.
width
*
0.75
,
child:
Text
(
textSubheads
[
j
]==
""
?
"-"
:
textSubheads
[
j
],
textSubheads
[
j
]
==
""
?
"-"
:
textSubheads
[
j
],
maxLines:
2
,
overflow:
TextOverflow
.
ellipsis
,
overflow:
TextOverflow
.
ellipsis
,
style:
TextStyle
(
color:
Color
(
0xFF818181
),
),
...
...
@@ -128,8 +135,14 @@ class _VisitdetailsState extends State<Visitdetails> {
Text
(
"Generator Details"
),
Container
(
margin:
EdgeInsets
.
symmetric
(
horizontal:
10
,
vertical:
5
),
padding:
EdgeInsets
.
symmetric
(
horizontal:
15
,
vertical:
10
),
margin:
EdgeInsets
.
symmetric
(
horizontal:
10
,
vertical:
5
,
),
padding:
EdgeInsets
.
symmetric
(
horizontal:
15
,
vertical:
10
,
),
decoration:
BoxDecoration
(
color:
Colors
.
white
,
borderRadius:
BorderRadius
.
circular
(
20
),
...
...
@@ -159,7 +172,9 @@ class _VisitdetailsState extends State<Visitdetails> {
"
${complaintDetails.dateOfSupply}
"
,
];
return
Container
(
padding:
EdgeInsets
.
symmetric
(
vertical:
3
),
padding:
EdgeInsets
.
symmetric
(
vertical:
3
,
),
child:
Column
(
children:
[
Row
(
...
...
@@ -175,7 +190,9 @@ class _VisitdetailsState extends State<Visitdetails> {
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
Text
(
textheads
[
j
].
toString
()),
Text
(
textheads
[
j
].
toString
(),
),
SizedBox
(
// height:45,
width:
...
...
@@ -184,12 +201,17 @@ class _VisitdetailsState extends State<Visitdetails> {
).
size
.
width
*
0.8
,
child:
Text
(
textSubheads
[
j
]==
""
?
"-"
:
textSubheads
[
j
],
textSubheads
[
j
]
==
""
?
"-"
:
textSubheads
[
j
],
maxLines:
2
,
overflow:
TextOverflow
.
ellipsis
,
TextOverflow
.
ellipsis
,
style:
TextStyle
(
color:
Color
(
0xFF818181
),
color:
Color
(
0xFF818181
,
),
),
),
),
...
...
@@ -211,8 +233,14 @@ class _VisitdetailsState extends State<Visitdetails> {
Text
(
"Complaint Details"
),
Container
(
margin:
EdgeInsets
.
symmetric
(
horizontal:
10
,
vertical:
5
),
padding:
EdgeInsets
.
symmetric
(
horizontal:
15
,
vertical:
10
),
margin:
EdgeInsets
.
symmetric
(
horizontal:
10
,
vertical:
5
,
),
padding:
EdgeInsets
.
symmetric
(
horizontal:
15
,
vertical:
10
,
),
decoration:
BoxDecoration
(
color:
Colors
.
white
,
borderRadius:
BorderRadius
.
circular
(
20
),
...
...
@@ -221,7 +249,6 @@ class _VisitdetailsState extends State<Visitdetails> {
children:
[
Row
(
children:
[
SvgPicture
.
asset
(
"assetName"
),
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
List
.
generate
(
4
,
(
j
)
{
...
...
@@ -238,7 +265,9 @@ class _VisitdetailsState extends State<Visitdetails> {
"
${complaintDetails.complaintType}
"
,
];
return
Container
(
padding:
EdgeInsets
.
symmetric
(
vertical:
3
),
padding:
EdgeInsets
.
symmetric
(
vertical:
3
,
),
child:
Column
(
children:
[
Row
(
...
...
@@ -254,7 +283,9 @@ class _VisitdetailsState extends State<Visitdetails> {
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
Text
(
textheads
[
j
].
toString
()),
Text
(
textheads
[
j
].
toString
(),
),
SizedBox
(
// height:45,
width:
...
...
@@ -263,12 +294,17 @@ class _VisitdetailsState extends State<Visitdetails> {
).
size
.
width
*
0.8
,
child:
Text
(
textSubheads
[
j
]==
""
?
"-"
:
textSubheads
[
j
],
textSubheads
[
j
]
==
""
?
"-"
:
textSubheads
[
j
],
maxLines:
2
,
overflow:
TextOverflow
.
ellipsis
,
TextOverflow
.
ellipsis
,
style:
TextStyle
(
color:
Color
(
0xFF818181
),
color:
Color
(
0xFF818181
,
),
),
),
),
...
...
@@ -320,8 +356,10 @@ class _VisitdetailsState extends State<Visitdetails> {
child:
Text
(
"Followup Details"
,
textAlign:
TextAlign
.
center
,
style:
TextStyle
(
color:
Colors
.
white
,
fontFamily:
"JakartaMedium"
),
style:
TextStyle
(
color:
Colors
.
white
,
fontFamily:
"JakartaMedium"
,
),
),
),
),
...
...
lib/services/api_calling.dart
View file @
b9d7c024
This diff is collapsed.
Click to expand it.
pubspec.lock
View file @
b9d7c024
...
...
@@ -37,10 +37,10 @@ packages:
dependency: transitive
description:
name: async
sha256:
d2872f9c1
97
3
1c
2
e5
f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
sha256:
"758e6d74e
971c
3
e5
aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
url: "https://pub.dev"
source: hosted
version: "2.1
2
.0"
version: "2.1
3
.0"
barcode:
dependency: transitive
description:
...
...
@@ -285,10 +285,10 @@ packages:
dependency: transitive
description:
name: fake_async
sha256: "
6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc
"
sha256: "
5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44
"
url: "https://pub.dev"
source: hosted
version: "1.3.
2
"
version: "1.3.
3
"
ffi:
dependency: transitive
description:
...
...
@@ -932,26 +932,26 @@ packages:
dependency: transitive
description:
name: leak_tracker
sha256:
c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
sha256:
"8dcda04c3fc16c14f48a7bb586d4be1f0d1572731b6d81d51772ef47c02081e0"
url: "https://pub.dev"
source: hosted
version: "1
0
.0.
8
"
version: "1
1
.0.
1
"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256:
f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
sha256:
"1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
url: "https://pub.dev"
source: hosted
version: "3.0.
9
"
version: "3.0.
10
"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
sha256: "
6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3
"
sha256: "
8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1
"
url: "https://pub.dev"
source: hosted
version: "3.0.
1
"
version: "3.0.
2
"
lints:
dependency: transitive
description:
...
...
@@ -1657,10 +1657,10 @@ packages:
dependency: transitive
description:
name: vm_service
sha256:
"0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"
sha256:
ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02
url: "https://pub.dev"
source: hosted
version: "1
4.3.1
"
version: "1
5.0.0
"
web:
dependency: transitive
description:
...
...
pubspec.yaml
View file @
b9d7c024
...
...
@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
version
:
1.0.8
7
+9
1
version
:
1.0.8
8
+9
2
environment
:
sdk
:
^3.7.2
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment