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
c7ff2cec
Commit
c7ff2cec
authored
Jun 23, 2025
by
Sai Srinivas
Browse files
23-06-2025 By Sai Srinivas
Finance module test cases
parent
a7dc0d35
Changes
44
Expand all
Show whitespace changes
Inline
Side-by-side
assets/svg/crm_contact_edit.svg
0 → 100644
View file @
c7ff2cec
<svg
width=
"21"
height=
"21"
viewBox=
"0 0 21 21"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
>
<g
clip-path=
"url(#clip0_1115_3151)"
>
<path
d=
"M15.5488 20.5042H3.24645C1.45236 20.5042 0 19.0519 0 17.2578V4.95544C0 3.16134 1.45236 1.70898 3.24645 1.70898H9.39762C9.91022 1.70898 10.252 2.05072 10.252 2.56331C10.252 3.07591 9.91022 3.41764 9.39762 3.41764H3.24645C2.39212 3.41764 1.70866 4.10111 1.70866 4.95544V17.1723C1.70866 18.0267 2.39212 18.7101 3.24645 18.7101H15.4634C16.3177 18.7101 17.0012 18.0267 17.0012 17.1723V11.1066C17.0012 10.594 17.3429 10.2523 17.8555 10.2523C18.3681 10.2523 18.7098 10.594 18.7098 11.1066V17.2578C18.7952 19.0519 17.3429 20.5042 15.5488 20.5042Z"
fill=
"#2D2D2D"
/>
<path
d=
"M5.12581 16.2323C4.86951 16.2323 4.69865 16.1468 4.52778 15.976C4.35692 15.8051 4.27148 15.4634 4.27148 15.2071L5.12581 10.9354C5.12581 10.7646 5.21125 10.5937 5.38211 10.5083L15.6341 0.256299C15.9758 -0.0854329 16.4884 -0.0854329 16.8301 0.256299L20.2474 3.67362C20.5892 4.01535 20.5892 4.52795 20.2474 4.86968L9.99549 15.1216C9.91006 15.2071 9.73919 15.2925 9.56833 15.3779L5.29668 16.2323H5.12581ZM6.74904 11.5334L6.23644 14.2673L8.9703 13.7547L18.4534 4.27165L16.2321 2.05039L6.74904 11.5334Z"
fill=
"#2D2D2D"
/>
</g>
<defs>
<clipPath
id=
"clip0_1115_3151"
>
<rect
width=
"20.5039"
height=
"20.5039"
fill=
"white"
/>
</clipPath>
</defs>
</svg>
assets/svg/crm_contact_profile.svg
0 → 100644
View file @
c7ff2cec
<svg
width=
"30"
height=
"30"
viewBox=
"0 0 30 30"
fill=
"none"
xmlns=
"http://www.w3.org/2000/svg"
>
<g
clip-path=
"url(#clip0_1115_3149)"
>
<path
d=
"M14.9827 29.0987C12.7208 29.1555 8.27503 28.8036 6.82436 28.458C5.83413 28.2494 4.90358 27.673 4.20212 26.8709C3.50066 26.0688 3.05841 25.0775 2.95609 24.0759L2.95268 24.0452C2.87722 23.297 2.85385 22.5444 2.88276 21.793C2.88276 21.793 2.82592 21.1296 2.95325 19.9262C2.95325 19.916 2.95325 19.9058 2.95609 19.8961C3.06132 18.9084 3.50284 17.9868 4.20667 17.2858C4.91428 16.5774 5.84181 16.1308 6.83686 16.0193C8.29378 15.8653 12.7276 15.7811 14.981 15.7811C17.2343 15.7811 20.8513 15.8647 22.3082 16.0193C23.3034 16.1308 24.2309 16.5777 24.9384 17.2864C25.6421 17.9877 26.0836 18.9094 26.189 19.8972L26.1924 19.9274C26.318 21.1313 26.301 21.7919 26.301 21.7919C26.3047 22.5453 26.2685 23.2984 26.1924 24.048C26.1924 24.0583 26.1924 24.0685 26.1895 24.0787C26.0867 25.0809 25.6438 26.0711 24.9424 26.8743C24.2409 27.6775 23.3121 28.2517 22.3218 28.4609C20.8683 28.79 17.2445 29.114 14.9827 29.0987ZM14.4387 1.12389e-06C13.0455 0.00078804 11.6838 0.414637 10.5259 1.18923C9.36786 1.96381 8.46554 3.06436 7.93297 4.35171C7.4004 5.63907 7.26149 7.05544 7.53381 8.42173C7.80612 9.78803 8.47744 11.0429 9.46288 12.0277C10.4483 13.0125 11.7036 13.683 13.0701 13.9545C14.4366 14.2259 15.8528 14.0861 17.1399 13.5527C18.4269 13.0193 19.5268 12.1162 20.3007 10.9577C21.0745 9.79925 21.4875 8.43733 21.4874 7.04416C21.4873 6.11875 21.3049 5.20241 20.9506 4.34751C20.5963 3.49262 20.077 2.7159 19.4224 2.06175C18.7678 1.40759 17.9908 0.888813 17.1357 0.535052C16.2805 0.181291 15.3641 -0.000521585 14.4387 1.12389e-06Z"
fill=
"url(#paint0_linear_1115_3149)"
/>
</g>
<defs>
<linearGradient
id=
"paint0_linear_1115_3149"
x1=
"2.87026"
y1=
"14.5522"
x2=
"26.3038"
y2=
"14.5522"
gradientUnits=
"userSpaceOnUse"
>
<stop
stop-color=
"#0080DE"
/>
<stop
offset=
"0.6"
stop-color=
"#49BCFF"
/>
<stop
offset=
"1"
stop-color=
"#61CAFF"
/>
</linearGradient>
<clipPath
id=
"clip0_1115_3149"
>
<rect
width=
"29.1043"
height=
"29.1043"
fill=
"white"
/>
</clipPath>
</defs>
</svg>
lib/Notifiers/PendingComplaintsProvider.dart
View file @
c7ff2cec
...
...
@@ -34,7 +34,7 @@ class Pendingcomplaintsprovider extends ChangeNotifier {
bool
_submitLoading
=
false
;
String
?
statusError
;
String
?
fsrError
;
String
?
runningHoursError
;
String
?
_
runningHoursError
;
List
<
TP_List
>
get
technician_complaint_list
=>
_technician_complaint_list
;
bool
get
isLoading
=>
_isLoading
;
bool
get
submitLoading
=>
_submitLoading
;
...
...
@@ -45,10 +45,15 @@ class Pendingcomplaintsprovider extends ChangeNotifier {
int
get
imagePicked
=>
_image_picked
;
File
?
get
imagePath
=>
_imageName
;
File
?
get
imageFilePath
=>
_image
;
String
?
get
runningHoursError
=>
_runningHoursError
;
final
List
<
Map
<
String
,
dynamic
>>
CompletedStatus
=
[
{
"id"
:
"1"
,
"name"
:
"Pending"
},
{
"id"
:
"2"
,
"name"
:
"Completed"
}
];
set
runningHoursError
(
String
?
values
){
_runningHoursError
=
values
;
notifyListeners
();
}
set
imagePicked
(
int
value
){
_image_picked
=
value
;
notifyListeners
();
...
...
@@ -83,9 +88,10 @@ class Pendingcomplaintsprovider extends ChangeNotifier {
feedbackController
.
clear
();
statusError
=
""
;
fsrError
=
""
;
runningHoursError
=
""
;
_
runningHoursError
=
""
;
_image
=
null
;
_imageName
=
null
;
_selectedTime
=
TimeOfDay
.
now
();
checkDropDownSelected
();
notifyListeners
();
...
...
@@ -147,10 +153,12 @@ class Pendingcomplaintsprovider extends ChangeNotifier {
final
TimeOfDay
?
picked
=
await
showTimePicker
(
context:
context
,
initialTime:
_selectedTime
,
);
if
(
picked
!=
null
&&
picked
!=
_selectedTime
)
_selectedTime
=
picked
;
_formattedTime
=
_selectedTime
.
hour
.
toString
()
+
":"
+
_selectedTime
.
minute
.
toString
();
notifyListeners
();
}
String
formatTime
(
int
hour
,
int
minute
)
{
...
...
@@ -176,12 +184,12 @@ class Pendingcomplaintsprovider extends ChangeNotifier {
runningHr
,
statusId
,
)
async
{
if
(!
validatereceiptForm
(
context
))
{
return
;
}
var
HomeProvider
=
Provider
.
of
<
HomescreenNotifier
>(
context
,
listen:
false
);
try
{
if
(!
validatereceiptForm
(
context
)){
return
;
}
final
data
=
await
ApiCalling
.
UpdateComplaintAPI
(
HomeProvider
.
empId
,
HomeProvider
.
session
,
...
...
@@ -233,7 +241,7 @@ class Pendingcomplaintsprovider extends ChangeNotifier {
bool
validatereceiptForm
(
BuildContext
context
)
{
statusError
=
null
;
fsrError
=
null
;
runningHoursError
=
null
;
_
runningHoursError
=
null
;
_submitLoading
=
false
;
bool
isValid
=
true
;
if
(
_statusId
==
null
||
_statusId
!.
isEmpty
)
{
...
...
@@ -250,11 +258,12 @@ class Pendingcomplaintsprovider extends ChangeNotifier {
}
if
(
runningHoursController
.
text
.
trim
().
isEmpty
){
runningHoursError
=
"Enter Running Hours"
;
_
runningHoursError
=
"Enter Running Hours"
;
_submitLoading
=
false
;
isValid
=
false
;
}
notifyListeners
();
return
isValid
;
}
...
...
lib/Notifiers/crmProvider/crmLeadDetailsProvider.dart
View file @
c7ff2cec
import
'package:flutter/cupertino.dart'
;
import
'package:flutter/foundation.dart'
;
import
'package:provider/provider.dart'
;
...
...
@@ -9,6 +10,34 @@ class crmLeadDetailsProvider extends ChangeNotifier {
bool
_isLoading
=
false
;
TextEditingController
nameController
=
TextEditingController
();
TextEditingController
designationController
=
TextEditingController
();
TextEditingController
mobileNumberController
=
TextEditingController
();
TextEditingController
alternativeMobileController
=
TextEditingController
();
TextEditingController
telephoneController
=
TextEditingController
();
TextEditingController
emailController
=
TextEditingController
();
TextEditingController
editNameController
=
TextEditingController
();
TextEditingController
editDesignationController
=
TextEditingController
();
TextEditingController
editMobileNumberController
=
TextEditingController
();
TextEditingController
editAlternativeMobileController
=
TextEditingController
();
TextEditingController
editTelephoneController
=
TextEditingController
();
TextEditingController
editEmailController
=
TextEditingController
();
String
?
_nameError
;
String
?
_designationError
;
String
?
_mobileNumError
;
String
?
_altMobError
;
String
?
_teleError
;
String
?
_emailError
;
String
?
_editNameError
;
String
?
_editDesignationError
;
String
?
_editMobileNumError
;
String
?
_editAltMobError
;
String
?
_editTeleError
;
String
?
_editEmailError
;
LeadDetails
_leadDetails
=
LeadDetails
();
AccountDetails
_accountDetails
=
AccountDetails
();
List
<
LeadProducts
>
_leadProducts
=
[];
...
...
@@ -19,6 +48,20 @@ class crmLeadDetailsProvider extends ChangeNotifier {
List
<
String
>
_headings
=
[];
List
<
String
>
_subHeadings
=
[];
String
?
get
nameError
=>
_nameError
;
String
?
get
designationError
=>
_designationError
;
String
?
get
mobileNumError
=>
_mobileNumError
;
String
?
get
altMobError
=>
_altMobError
;
String
?
get
teleError
=>
_teleError
;
String
?
get
emailError
=>
_emailError
;
String
?
get
editNameError
=>
_editNameError
;
String
?
get
editDesignationError
=>
_editDesignationError
;
String
?
get
editMobileNumError
=>
_editMobileNumError
;
String
?
get
editAltMobError
=>
_editAltMobError
;
String
?
get
editTeleError
=>
_editTeleError
;
String
?
get
editEmailError
=>
_editEmailError
;
bool
get
isLoading
=>
_isLoading
;
LeadDetails
get
leadDetails
=>
_leadDetails
;
...
...
@@ -39,12 +82,63 @@ class crmLeadDetailsProvider extends ChangeNotifier {
List
<
String
>
get
subHeadings
=>
_subHeadings
;
set
nameError
(
String
?
value
){
_nameError
=
value
;
notifyListeners
();
}
set
designationError
(
String
?
value
){
_designationError
=
value
;
notifyListeners
();
}
set
mobileNumError
(
String
?
value
){
_mobileNumError
=
value
;
notifyListeners
();
}
set
altMobError
(
String
?
value
){
_altMobError
=
value
;
notifyListeners
();
}
set
teleError
(
String
?
value
){
_teleError
=
value
;
notifyListeners
();
}
set
emailError
(
String
?
value
){
_emailError
=
value
;
notifyListeners
();
}
set
editNameError
(
String
?
value
){
_editNameError
=
value
;
notifyListeners
();
}
set
editDesignationError
(
String
?
value
){
_editDesignationError
=
value
;
notifyListeners
();
}
set
editMobileNumError
(
String
?
value
){
_editMobileNumError
=
value
;
notifyListeners
();
}
set
editAltMobError
(
String
?
value
){
_editAltMobError
=
value
;
notifyListeners
();
}
set
editTeleError
(
String
?
value
){
_editTeleError
=
value
;
notifyListeners
();
}
set
editEmailError
(
String
?
value
){
_editEmailError
=
value
;
notifyListeners
();
}
set
isLoading
(
bool
value
){
_isLoading
=
value
;
notifyListeners
();
}
Future
<
void
>
crmLeadDetailsAPI
(
context
,
leadID
,
mode
)
async
{
Future
<
void
>
crmLeadDetailsAPI
Function
(
context
,
leadID
,
mode
)
async
{
try
{
var
HomeProv
=
Provider
.
of
<
HomescreenNotifier
>(
context
,
listen:
false
);
final
data
=
await
ApiCalling
.
crmLeadDetailsAPI
(
...
...
@@ -90,7 +184,7 @@ class crmLeadDetailsProvider extends ChangeNotifier {
data
.
accountDetails
!.
team
??
"-"
,
data
.
accountDetails
!.
segment
??
"-"
,
data
.
leadDetails
!.
status
??
"-"
,
data
.
leadDetails
!.
lage
??
"-"
,
"
${
data.leadDetails!.lage??"-"
}
days"
,
];
_isLoading
=
false
;
notifyListeners
();
...
...
@@ -107,7 +201,139 @@ class crmLeadDetailsProvider extends ChangeNotifier {
notifyListeners
();
}
}
void
resetAll
(){
Future
<
void
>
crmLeadDetailsAddContactAPIFunction
(
context
,
accID
)
async
{
try
{
var
prov
=
Provider
.
of
<
HomescreenNotifier
>(
context
,
listen:
false
);
final
data
=
await
ApiCalling
.
crmLeadDetailsAddContactAPI
(
prov
.
empId
,
prov
.
session
,
accID
,
nameController
.
text
,
mobileNumberController
.
text
,
designationController
.
text
,
alternativeMobileController
.
text
,
telephoneController
.
text
,
emailController
.
text
);
_isLoading
=
true
;
notifyListeners
();
if
(
data
!=
null
)
{
if
(
data
.
error
==
"0"
)
{
Navigator
.
pop
(
context
,
true
);
resetAll
();
_isLoading
=
false
;
notifyListeners
();
}
else
{
_isLoading
=
false
;
notifyListeners
();
}
}
else
{
_isLoading
=
false
;
notifyListeners
();
}
}
catch
(
e
,
s
)
{
_isLoading
=
false
;
notifyListeners
();
}
}
Future
<
void
>
crmLeadDetailsEditContactAPIFunction
(
context
,
contactID
)
async
{
try
{
var
prov
=
Provider
.
of
<
HomescreenNotifier
>(
context
,
listen:
false
);
final
data
=
await
ApiCalling
.
crmLeadDetailsEditContactAPI
(
prov
.
empId
,
prov
.
session
,
contactID
,
nameController
.
text
,
mobileNumberController
.
text
,
designationController
.
text
,
alternativeMobileController
.
text
,
telephoneController
.
text
,
emailController
.
text
);
_isLoading
=
true
;
notifyListeners
();
if
(
data
!=
null
)
{
if
(
data
.
error
==
"0"
)
{
_isLoading
=
false
;
Navigator
.
pop
(
context
,
true
);
resetAll
();
_isLoading
=
false
;
notifyListeners
();
}
else
{
_isLoading
=
false
;
notifyListeners
();
}
}
else
{
_isLoading
=
false
;
notifyListeners
();
}
}
catch
(
e
,
s
)
{
_isLoading
=
false
;
notifyListeners
();
}
}
void
onChangeName
(
value
){
_nameError
=
""
;
notifyListeners
();
}
void
onChangeDesignation
(
value
){
_designationError
=
""
;
notifyListeners
();
}
void
onChangeMobile
(
value
){
_mobileNumError
=
""
;
notifyListeners
();
}
void
onChangeAltMobile
(
value
){
_altMobError
=
""
;
notifyListeners
();
}
void
onChangeTelephone
(
value
){
_teleError
=
""
;
notifyListeners
();
}
void
onChangeEmailId
(
value
){
_emailError
=
""
;
notifyListeners
();
}
void
onChangeEditName
(
value
){
_editNameError
=
""
;
notifyListeners
();
}
void
onChangeEditDesignation
(
value
){
_editDesignationError
=
""
;
notifyListeners
();
}
void
onChangeEditMobile
(
value
){
_editMobileNumError
=
""
;
notifyListeners
();
}
void
onChangeEditAltMobile
(
value
){
_editAltMobError
=
""
;
notifyListeners
();
}
void
onChangeEditTelephone
(
value
){
_editTeleError
=
""
;
notifyListeners
();
}
void
onChangeEditEmailId
(
value
){
_editEmailError
=
""
;
notifyListeners
();
}
void
resetAll
(){
nameController
.
clear
();
designationController
.
clear
();
mobileNumberController
.
clear
();
alternativeMobileController
.
clear
();
telephoneController
.
clear
();
emailController
.
clear
();
editNameController
.
clear
();
editDesignationController
.
clear
();
editMobileNumberController
.
clear
();
editAlternativeMobileController
.
clear
();
editTelephoneController
.
clear
();
editEmailController
.
clear
();
_nameError
=
""
;
_designationError
=
""
;
_mobileNumError
=
""
;
_altMobError
=
""
;
_teleError
=
""
;
_emailError
=
""
;
_editNameError
=
""
;
_editDesignationError
=
""
;
_editMobileNumError
=
""
;
_editAltMobError
=
""
;
_editTeleError
=
""
;
_editEmailError
=
""
;
notifyListeners
();
}
}
lib/Notifiers/financeProvider/RequesitionLidtDetailsProvider.dart
View file @
c7ff2cec
...
...
@@ -305,7 +305,6 @@ class Requesitionlidtdetailsprovider extends ChangeNotifier {
_paymentModes
=
data
.
paymentModes
!;
_paymentAccounts
=
data
.
paymentAccounts
!;
_paymentRequestDetails
=
data
.
paymentRequestDetails
!;
resetAll
();
notifyListeners
();
}
}
...
...
lib/Notifiers/financeProvider/paymentReceiptsProvider.dart
View file @
c7ff2cec
...
...
@@ -459,7 +459,6 @@ class Paymentreceiptsprovider extends ChangeNotifier {
_submitClicked
=
true
;
notifyListeners
();
if
(!
validatereceiptForm
(
context
))
{
_submitClicked
=
false
;
return
;
}
...
...
@@ -487,12 +486,12 @@ class Paymentreceiptsprovider extends ChangeNotifier {
);
if
(
data
!=
null
)
{
if
(
data
.
error
==
"0"
)
{
_submitClicked
=
true
;
notifyListeners
();
_submitClicked
=
false
;
toast
(
context
,
"Added Successfully"
);
resetForm
();
Navigator
.
pop
(
context
,
true
);
notifyListeners
();
Navigator
.
of
(
context
).
pop
(
context
);
}
else
{
_submitClicked
=
true
;
notifyListeners
();
...
...
@@ -729,7 +728,6 @@ class Paymentreceiptsprovider extends ChangeNotifier {
// Clear validation errors
selectAccountError
=
null
;
selectreceiptPaymentAccounts
=
null
;
selectPaymentAccountError
=
null
;
dateError
=
null
;
paymentreferenceError
=
null
;
...
...
@@ -853,6 +851,7 @@ class Paymentreceiptsprovider extends ChangeNotifier {
descriptionError
=
"Please Enter Description"
;
isValid
=
false
;
_submitClicked
=
false
;
}
_submitClicked
=
false
;
notifyListeners
();
return
isValid
;
}
...
...
lib/Utils/dropdownTheme.dart
0 → 100644
View file @
c7ff2cec
import
'package:dropdown_button2/dropdown_button2.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter_svg/svg.dart'
;
import
'app_colors.dart'
;
class
Dropdowntheme
{
final
buttonStyleData
=
ButtonStyleData
(
height:
50
,
width:
160
,
padding:
const
EdgeInsets
.
only
(
left:
14
,
right:
14
),
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
14
),
color:
AppColors
.
text_field_color
,
),
);
final
iconStyleData
=
IconStyleData
(
icon:
SvgPicture
.
asset
(
"assets/svg/arrow_dropdown.svg"
,
height:
25
,
width:
20
,
),
iconSize:
12
,
iconEnabledColor:
Color
(
0xFF2D2D2D
),
iconDisabledColor:
Colors
.
grey
,
);
final
dropdownStyleData
=
DropdownStyleData
(
maxHeight:
200
,
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
14
),
color:
AppColors
.
text_field_color
,
),
scrollbarTheme:
ScrollbarThemeData
(
radius:
const
Radius
.
circular
(
15
),
thickness:
MaterialStateProperty
.
all
<
double
>(
6
),
thumbVisibility:
MaterialStateProperty
.
all
<
bool
>(
true
),
),
);
final
menuItemStyleData
=
const
MenuItemStyleData
(
height:
40
,
padding:
EdgeInsets
.
only
(
left:
14
,
right:
14
),
);
}
\ No newline at end of file
lib/main.dart
View file @
c7ff2cec
...
...
@@ -272,7 +272,7 @@ class MyApp extends StatelessWidget {
radius:
Radius
.
circular
(
6
),
thickness:
WidgetStatePropertyAll
(
10
),
thumbColor:
WidgetStateProperty
.
all
(
AppColors
.
grey_semi
.
withOpacity
(
0.6
))
)
)
,
),
home:
const
Splash
(),
);
...
...
lib/screens/HomeScreen.dart
View file @
c7ff2cec
...
...
@@ -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
>>[];
...
...
lib/screens/commom/accountLedger.dart
View file @
c7ff2cec
...
...
@@ -10,6 +10,7 @@ import '../../Models/commonModels/commonAccountLedgerResponse.dart';
import
'../../Notifiers/commonProvider/accountDetailsProvider.dart'
;
import
'../../Utils/app_colors.dart'
;
import
'../../Utils/commonWidgets.dart'
;
import
'../../Utils/dropdownTheme.dart'
;
class
Accountledger
extends
StatefulWidget
{
const
Accountledger
({
super
.
key
});
...
...
@@ -19,6 +20,7 @@ class Accountledger extends StatefulWidget {
}
class
_AccountledgerState
extends
State
<
Accountledger
>
{
Dropdowntheme
ddtheme
=
Dropdowntheme
();
@override
void
initState
()
{
// TODO: implement initState
...
...
@@ -534,49 +536,10 @@ class _AccountledgerState extends State<Accountledger> {
}
}
},
buttonStyleData: ButtonStyleData(
height: 50,
width: 160,
padding: const EdgeInsets.only(
left: 14,
right: 14,
),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
),
),
iconStyleData: IconStyleData(
icon: SvgPicture.asset("
assets
/
svg
/
arrow_dropdown
.
svg
",height: 25,width: 20,),
iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey,
),
dropdownStyleData: DropdownStyleData(
maxHeight: 200,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
),
scrollbarTheme: ScrollbarThemeData(
radius: const Radius.circular(15),
thickness:
MaterialStateProperty.all<double>(
6,
),
thumbVisibility:
MaterialStateProperty.all<bool>(
true,
),
),
),
menuItemStyleData: const MenuItemStyleData(
height: 40,
padding: EdgeInsets.only(
left: 14,
right: 14,
),
),
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
),
),
],
...
...
lib/screens/commom/addCommonPayment.dart
View file @
c7ff2cec
...
...
@@ -5,6 +5,7 @@ import 'package:flutter_svg/svg.dart';
import
'package:generp/Notifiers/commonProvider/accountsListProvider.dart'
;
import
'package:generp/Utils/app_colors.dart'
;
import
'package:generp/Utils/commonWidgets.dart'
;
import
'package:generp/Utils/dropdownTheme.dart'
;
import
'package:provider/provider.dart'
;
import
'package:generp/Models/commonModels/DistrictsResponse.dart'
;
import
'package:generp/Models/commonModels/SubLocationsResponse.dart'
;
...
...
@@ -19,6 +20,7 @@ class Addcommonpayment extends StatefulWidget {
}
class
_AddcommonpaymentState
extends
State
<
Addcommonpayment
>
{
Dropdowntheme
ddtheme
=
Dropdowntheme
();
@override
void
initState
()
{
// TODO: implement initState
...
...
@@ -100,44 +102,10 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
);
}
},
buttonStyleData:
ButtonStyleData
(
height:
50
,
width:
160
,
padding:
const
EdgeInsets
.
only
(
left:
14
,
right:
14
,
),
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
14
),
color:
AppColors
.
text_field_color
,
),
),
iconStyleData:
IconStyleData
(
icon:
SvgPicture
.
asset
(
"assets/svg/arrow_dropdown.svg"
,
height:
25
,
width:
20
,),
iconSize:
14
,
iconEnabledColor:
Color
(
0xFF2D2D2D
),
iconDisabledColor:
Colors
.
grey
,
),
dropdownStyleData:
DropdownStyleData
(
maxHeight:
200
,
width:
350
,
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
14
),
color:
AppColors
.
text_field_color
,
),
scrollbarTheme:
ScrollbarThemeData
(
radius:
const
Radius
.
circular
(
15
),
thickness:
MaterialStateProperty
.
all
<
double
>(
6
,
),
thumbVisibility:
MaterialStateProperty
.
all
<
bool
>(
true
),
),
),
menuItemStyleData:
const
MenuItemStyleData
(
height:
40
,
padding:
EdgeInsets
.
only
(
left:
14
,
right:
14
),
),
buttonStyleData:
ddtheme
.
buttonStyleData
,
iconStyleData:
ddtheme
.
iconStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
),
),
],
...
...
@@ -218,43 +186,10 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
}
}
},
buttonStyleData:
ButtonStyleData
(
height:
50
,
width:
160
,
padding:
const
EdgeInsets
.
only
(
left:
14
,
right:
14
,
),
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
14
),
color:
AppColors
.
text_field_color
,
),
),
iconStyleData:
IconStyleData
(
icon:
SvgPicture
.
asset
(
"assets/svg/arrow_dropdown.svg"
,
height:
25
,
width:
20
,),
iconSize:
12
,
iconEnabledColor:
Color
(
0xFF2D2D2D
),
iconDisabledColor:
Colors
.
grey
,
),
dropdownStyleData:
DropdownStyleData
(
maxHeight:
200
,
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
14
),
color:
AppColors
.
text_field_color
,
),
scrollbarTheme:
ScrollbarThemeData
(
radius:
const
Radius
.
circular
(
15
),
thickness:
MaterialStateProperty
.
all
<
double
>(
6
,
),
thumbVisibility:
MaterialStateProperty
.
all
<
bool
>(
true
),
),
),
menuItemStyleData:
const
MenuItemStyleData
(
height:
40
,
padding:
EdgeInsets
.
only
(
left:
14
,
right:
14
),
),
buttonStyleData:
ddtheme
.
buttonStyleData
,
iconStyleData:
ddtheme
.
iconStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
),
),
],
...
...
@@ -309,43 +244,10 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
}
}
},
buttonStyleData:
ButtonStyleData
(
height:
50
,
width:
160
,
padding:
const
EdgeInsets
.
only
(
left:
14
,
right:
14
,
),
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
14
),
color:
AppColors
.
text_field_color
,
),
),
iconStyleData:
IconStyleData
(
icon:
SvgPicture
.
asset
(
"assets/svg/arrow_dropdown.svg"
,
height:
25
,
width:
20
,),
iconSize:
12
,
iconEnabledColor:
Color
(
0xFF2D2D2D
),
iconDisabledColor:
Colors
.
grey
,
),
dropdownStyleData:
DropdownStyleData
(
maxHeight:
200
,
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
14
),
color:
AppColors
.
text_field_color
,
),
scrollbarTheme:
ScrollbarThemeData
(
radius:
const
Radius
.
circular
(
15
),
thickness:
MaterialStateProperty
.
all
<
double
>(
6
,
),
thumbVisibility:
MaterialStateProperty
.
all
<
bool
>(
true
),
),
),
menuItemStyleData:
const
MenuItemStyleData
(
height:
40
,
padding:
EdgeInsets
.
only
(
left:
14
,
right:
14
),
),
buttonStyleData:
ddtheme
.
buttonStyleData
,
iconStyleData:
ddtheme
.
iconStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
),
),
],
...
...
@@ -396,43 +298,10 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
}
}
},
buttonStyleData:
ButtonStyleData
(
height:
50
,
width:
160
,
padding:
const
EdgeInsets
.
only
(
left:
14
,
right:
14
,
),
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
14
),
color:
AppColors
.
text_field_color
,
),
),
iconStyleData:
IconStyleData
(
icon:
SvgPicture
.
asset
(
"assets/svg/arrow_dropdown.svg"
,
height:
25
,
width:
20
,),
iconSize:
12
,
iconEnabledColor:
Color
(
0xFF2D2D2D
),
iconDisabledColor:
Colors
.
grey
,
),
dropdownStyleData:
DropdownStyleData
(
maxHeight:
200
,
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
14
),
color:
AppColors
.
text_field_color
,
),
scrollbarTheme:
ScrollbarThemeData
(
radius:
const
Radius
.
circular
(
15
),
thickness:
MaterialStateProperty
.
all
<
double
>(
6
,
),
thumbVisibility:
MaterialStateProperty
.
all
<
bool
>(
true
),
),
),
menuItemStyleData:
const
MenuItemStyleData
(
height:
40
,
padding:
EdgeInsets
.
only
(
left:
14
,
right:
14
),
),
buttonStyleData:
ddtheme
.
buttonStyleData
,
iconStyleData:
ddtheme
.
iconStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
),
),
],
...
...
lib/screens/commonDateRangeFilter.dart
View file @
c7ff2cec
...
...
@@ -3,7 +3,10 @@ import 'package:flutter/cupertino.dart';
import
'package:flutter/material.dart'
;
import
'package:flutter_svg/svg.dart'
;
import
'../Utils/dropdownTheme.dart'
;
class
Commondaterangefilter
{
Dropdowntheme
ddtheme
=
Dropdowntheme
();
final
List
<
String
>
filterItems
=
[
'Today'
,
'Yesterday'
,
...
...
@@ -412,6 +415,9 @@ class Commondaterangefilter {
),
SizedBox
(
height:
16
),
DropdownButtonHideUnderline
(
child:
Row
(
children:
[
Expanded
(
child:
DropdownButton2
<
String
>(
isExpanded:
true
,
hint:
Text
(
...
...
@@ -451,23 +457,13 @@ class Commondaterangefilter {
}
});
},
buttonStyleData:
ButtonStyleData
(
height:
40
,
width:
double
.
infinity
,
padding:
EdgeInsets
.
symmetric
(
horizontal:
14
),
decoration:
BoxDecoration
(
border:
Border
.
all
(
color:
Colors
.
grey
),
borderRadius:
BorderRadius
.
circular
(
8
),
),
),
dropdownStyleData:
DropdownStyleData
(
maxHeight:
200
,
width:
MediaQuery
.
of
(
context
).
size
.
width
-
32
,
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
14
),
color:
Colors
.
white
,
buttonStyleData:
ddtheme
.
buttonStyleData
,
iconStyleData:
ddtheme
.
iconStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
),
),
],
),
),
if
(
tempSelectedValue
==
'Custom'
)
...[
...
...
lib/screens/crm/AppointmentDetails.dart
0 → 100644
View file @
c7ff2cec
import
'package:flutter/material.dart'
;
import
'package:provider/provider.dart'
;
import
'../../Notifiers/crmProvider/crmLeadDetailsProvider.dart'
;
import
'../../Utils/app_colors.dart'
;
import
'../../Utils/commonWidgets.dart'
;
class
AppointmentDetails
extends
StatefulWidget
{
const
AppointmentDetails
({
super
.
key
});
@override
State
<
AppointmentDetails
>
createState
()
=>
_AppointmentDetailsState
();
}
class
_AppointmentDetailsState
extends
State
<
AppointmentDetails
>
{
@override
Widget
build
(
BuildContext
context
)
{
return
Consumer
<
crmLeadDetailsProvider
>(
builder:
(
context
,
provider
,
child
)
{
var
quotationDetails
=
provider
.
appointmentDetails
;
return
WillPopScope
(
onWillPop:
()
=>
onBackPressed
(
context
),
child:
Scaffold
(
resizeToAvoidBottomInset:
true
,
appBar:
appbar
(
context
,
"Appointment Details"
),
backgroundColor:
AppColors
.
scaffold_bg_color
,
body:
SafeArea
(
child:
SizedBox
(
child:
SingleChildScrollView
(
child:
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
TextWidget
(
context
,
"Appointment Details"
),
ListView
.
builder
(
itemCount:
quotationDetails
.
length
,
shrinkWrap:
true
,
itemBuilder:
(
context
,
index
)
{
return
Container
(
margin:
EdgeInsets
.
symmetric
(
horizontal:
10
,
vertical:
5
,
),
padding:
EdgeInsets
.
symmetric
(
horizontal:
15
,
vertical:
10
,
),
decoration:
BoxDecoration
(
color:
Colors
.
white
,
borderRadius:
BorderRadius
.
circular
(
20
),
),
child:
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
...
List
.
generate
(
5
,
(
j
)
{
final
textheads
=
[
"Employee Name"
,
"Appointment Date"
,
"Appointment Type"
,
"Note"
,
"Appointment Executed"
,
"Appointment Created on"
,
];
final
textSubheads
=
[
quotationDetails
[
index
].
ename
??
"-"
,
quotationDetails
[
index
].
aappDate
??
"-"
,
quotationDetails
[
index
].
atype
??
"-"
,
quotationDetails
[
index
].
anote
??
"-"
,
quotationDetails
[
index
].
astatus
??
"-"
,
quotationDetails
[
index
].
adate
??
"-"
,
];
return
Container
(
padding:
EdgeInsets
.
symmetric
(
vertical:
6
,
horizontal:
0
,
),
child:
Row
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
Expanded
(
child:
Text
(
textheads
[
j
].
toString
(),
maxLines:
2
,
overflow:
TextOverflow
.
ellipsis
,
),
),
Expanded
(
child:
Text
(
textSubheads
[
j
],
maxLines:
2
,
overflow:
TextOverflow
.
ellipsis
,
style:
TextStyle
(
color:
textSubheads
[
j
]==
"View File"
?
AppColors
.
app_blue
:
Color
(
0xFF818181
),
decoration:
textSubheads
[
j
]==
"View File"
?
TextDecoration
.
underline
:
TextDecoration
.
none
,
decorationColor:
AppColors
.
app_blue
),
),
),
],
),
);
}),
],
),
);
},
),
SizedBox
(
height:
75
),
],
),
),
),
),
floatingActionButton:
Align
(
alignment:
Alignment
.
bottomCenter
,
child:
InkWell
(
child:
Container
(
alignment:
Alignment
.
bottomCenter
,
height:
45
,
width:
MediaQuery
.
of
(
context
)
.
size
.
width
,
margin:
EdgeInsets
.
symmetric
(
horizontal:
10
),
decoration:
BoxDecoration
(
color:
AppColors
.
app_blue
,
borderRadius:
BorderRadius
.
circular
(
14.0
),
),
child:
Center
(
child:
Text
(
"Add Appointment"
,
textAlign:
TextAlign
.
center
,
style:
TextStyle
(
color:
Colors
.
white
,
fontFamily:
"JakartaMedium"
,
),
),
),
),
),
),
floatingActionButtonLocation:
FloatingActionButtonLocation
.
centerFloat
,
),
);
},
);
}
}
lib/screens/crm/FollowUpDetails.dart
0 → 100644
View file @
c7ff2cec
import
'package:flutter/material.dart'
;
import
'package:flutter_svg/svg.dart'
;
import
'package:provider/provider.dart'
;
import
'../../Notifiers/crmProvider/crmLeadDetailsProvider.dart'
;
import
'../../Utils/app_colors.dart'
;
import
'../../Utils/commonWidgets.dart'
;
class
FollowUpDetails
extends
StatefulWidget
{
const
FollowUpDetails
({
super
.
key
});
@override
State
<
FollowUpDetails
>
createState
()
=>
_FollowUpDetailsState
();
}
class
_FollowUpDetailsState
extends
State
<
FollowUpDetails
>
{
@override
Widget
build
(
BuildContext
context
)
{
return
Consumer
<
crmLeadDetailsProvider
>(
builder:
(
context
,
provider
,
child
)
{
var
followupDetails
=
provider
.
followupDetails
;
return
WillPopScope
(
onWillPop:
()
=>
onBackPressed
(
context
),
child:
Scaffold
(
resizeToAvoidBottomInset:
true
,
appBar:
appbar
(
context
,
"Followup Details"
),
backgroundColor:
AppColors
.
scaffold_bg_color
,
body:
SafeArea
(
child:
SizedBox
(
child:
SingleChildScrollView
(
child:
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
TextWidget
(
context
,
"Followup Details"
),
ListView
.
builder
(
itemCount:
followupDetails
.
length
,
shrinkWrap:
true
,
itemBuilder:
(
context
,
index
)
{
return
Container
(
margin:
EdgeInsets
.
symmetric
(
horizontal:
10
,
vertical:
5
,
),
padding:
EdgeInsets
.
symmetric
(
horizontal:
15
,
vertical:
10
,
),
decoration:
BoxDecoration
(
color:
Colors
.
white
,
borderRadius:
BorderRadius
.
circular
(
20
),
),
child:
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
...
List
.
generate
(
7
,
(
j
)
{
final
textheads
=
[
"Employee Name"
,
"Date"
,
"Type"
,
"In Time"
,
"Out Time"
,
"Status"
,
"Feedback"
,
];
final
textSubheads
=
[
followupDetails
[
index
].
ename
??
"-"
,
followupDetails
[
index
].
fdate
??
"-"
,
followupDetails
[
index
].
ftype
??
"-"
,
followupDetails
[
index
].
finTime
??
"-"
,
followupDetails
[
index
].
foutTime
??
"-"
,
followupDetails
[
index
].
fstatus
??
"-"
,
followupDetails
[
index
].
ffeedback
??
"-"
,
];
return
Container
(
padding:
EdgeInsets
.
symmetric
(
vertical:
6
,
horizontal:
0
,
),
child:
Row
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
Expanded
(
child:
Text
(
textheads
[
j
].
toString
(),
maxLines:
2
,
overflow:
TextOverflow
.
ellipsis
,
),
),
Expanded
(
child:
Text
(
textSubheads
[
j
],
maxLines:
2
,
overflow:
TextOverflow
.
ellipsis
,
style:
TextStyle
(
color:
Color
(
0xFF818181
),
),
),
),
],
),
);
}),
],
),
);
},
),
SizedBox
(
height:
75
),
],
),
),
),
),
floatingActionButton:
Align
(
alignment:
Alignment
.
bottomCenter
,
child:
InkWell
(
child:
Container
(
alignment:
Alignment
.
bottomCenter
,
height:
45
,
width:
MediaQuery
.
of
(
context
).
size
.
width
,
margin:
EdgeInsets
.
symmetric
(
horizontal:
10
),
decoration:
BoxDecoration
(
color:
AppColors
.
app_blue
,
borderRadius:
BorderRadius
.
circular
(
14.0
),
),
child:
Center
(
child:
Text
(
"Followup Details"
,
textAlign:
TextAlign
.
center
,
style:
TextStyle
(
color:
Colors
.
white
,
fontFamily:
"JakartaMedium"
,
),
),
),
),
),
),
floatingActionButtonLocation:
FloatingActionButtonLocation
.
centerFloat
,
),
);
},
);
}
}
lib/screens/crm/LeadDetailsByMode.dart
View file @
c7ff2cec
import
'package:flutter/material.dart'
;
import
'package:flutter_svg/svg.dart'
;
import
'package:generp/Notifiers/crmProvider/crmLeadDetailsProvider.dart'
;
import
'package:generp/screens/crm/AppointmentDetails.dart'
;
import
'package:generp/screens/crm/FollowUpDetails.dart'
;
import
'package:generp/screens/crm/QuotationDetails.dart'
;
import
'package:generp/screens/crm/contactDetails.dart'
;
import
'package:generp/screens/crm/productDetails.dart'
;
import
'package:provider/provider.dart'
;
...
...
@@ -35,7 +38,7 @@ class _LeadDetailsByModeState extends State<LeadDetailsByMode> {
context
,
listen:
false
,
);
provider
.
crmLeadDetailsAPI
(
context
,
widget
.
leadId
,
widget
.
mode
);
provider
.
crmLeadDetailsAPI
Function
(
context
,
widget
.
leadId
,
widget
.
mode
);
});
}
...
...
@@ -227,8 +230,18 @@ class _LeadDetailsByModeState extends State<LeadDetailsByMode> {
Navigator
.
push
(
context
,
MaterialPageRoute
(
builder:
(
context
)
=>
Productdetails
(),));
break
;
case
1
:
Navigator
.
push
(
context
,
MaterialPageRoute
(
builder:
(
context
)
=>
Contactdetails
(),));
Navigator
.
push
(
context
,
MaterialPageRoute
(
builder:
(
context
)
=>
Contactdetails
(
accID:
provider
.
leadDetails
.
accId
),));
break
;
case
2
:
Navigator
.
push
(
context
,
MaterialPageRoute
(
builder:
(
context
)
=>
FollowUpDetails
(),));
break
;
case
3
:
Navigator
.
push
(
context
,
MaterialPageRoute
(
builder:
(
context
)
=>
AppointmentDetails
(),));
break
;
case
4
:
Navigator
.
push
(
context
,
MaterialPageRoute
(
builder:
(
context
)
=>
QuotationDetails
(),));
default
:
print
(
"object"
);
}
...
...
lib/screens/crm/LeadListByMode.dart
View file @
c7ff2cec
...
...
@@ -13,6 +13,7 @@ import 'package:provider/provider.dart';
import
'../../Utils/app_colors.dart'
;
import
'../../Utils/commonWidgets.dart'
;
import
'../../Utils/dropdownTheme.dart'
;
import
'../commonDateRangeFilter.dart'
;
class
Leadlistbymode
extends
StatefulWidget
{
...
...
@@ -26,6 +27,7 @@ class Leadlistbymode extends StatefulWidget {
}
class
_LeadlistbymodeState
extends
State
<
Leadlistbymode
>
{
Dropdowntheme
ddtheme
=
Dropdowntheme
();
@override
void
initState
()
{
// TODO: implement initState
...
...
@@ -49,41 +51,7 @@ class _LeadlistbymodeState extends State<Leadlistbymode> {
);
});
}
final
buttonStyleData
=
ButtonStyleData
(
height:
50
,
width:
160
,
padding:
const
EdgeInsets
.
only
(
left:
14
,
right:
14
),
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
14
),
color:
AppColors
.
text_field_color
,
),
);
final
iconStyleData
=
IconStyleData
(
icon:
SvgPicture
.
asset
(
"assets/svg/arrow_dropdown.svg"
,
height:
25
,
width:
20
,
),
iconSize:
12
,
iconEnabledColor:
Color
(
0xFF2D2D2D
),
iconDisabledColor:
Colors
.
grey
,
);
final
dropdownStyleData
=
DropdownStyleData
(
maxHeight:
200
,
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
14
),
color:
AppColors
.
text_field_color
,
),
scrollbarTheme:
ScrollbarThemeData
(
radius:
const
Radius
.
circular
(
15
),
thickness:
MaterialStateProperty
.
all
<
double
>(
6
),
thumbVisibility:
MaterialStateProperty
.
all
<
bool
>(
true
),
),
);
final
menuItemStyleData
=
const
MenuItemStyleData
(
height:
40
,
padding:
EdgeInsets
.
only
(
left:
14
,
right:
14
),
);
@override
Widget
build
(
BuildContext
context
)
{
...
...
@@ -419,10 +387,10 @@ class _LeadlistbymodeState extends State<Leadlistbymode> {
}
},
isExpanded:
true
,
buttonStyleData:
buttonStyleData
,
iconStyleData:
iconStyleData
,
menuItemStyleData:
menuItemStyleData
,
dropdownStyleData:
dropdownStyleData
,
buttonStyleData:
ddtheme
.
buttonStyleData
,
iconStyleData:
ddtheme
.
iconStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
),
),
],
...
...
@@ -461,10 +429,10 @@ class _LeadlistbymodeState extends State<Leadlistbymode> {
}
},
isExpanded:
true
,
buttonStyleData:
buttonStyleData
,
iconStyleData:
iconStyleData
,
menuItemStyleData:
menuItemStyleData
,
dropdownStyleData:
dropdownStyleData
,
buttonStyleData:
ddtheme
.
buttonStyleData
,
iconStyleData:
ddtheme
.
iconStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
),
),
],
...
...
@@ -503,10 +471,10 @@ class _LeadlistbymodeState extends State<Leadlistbymode> {
}
},
isExpanded:
true
,
buttonStyleData:
buttonStyleData
,
iconStyleData:
iconStyleData
,
menuItemStyleData:
menuItemStyleData
,
dropdownStyleData:
dropdownStyleData
,
buttonStyleData:
ddtheme
.
buttonStyleData
,
iconStyleData:
ddtheme
.
iconStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
),
),
],
...
...
@@ -569,10 +537,10 @@ class _LeadlistbymodeState extends State<Leadlistbymode> {
}
},
isExpanded:
true
,
buttonStyleData:
buttonStyleData
,
iconStyleData:
iconStyleData
,
menuItemStyleData:
menuItemStyleData
,
dropdownStyleData:
dropdownStyleData
,
buttonStyleData:
ddtheme
.
buttonStyleData
,
iconStyleData:
ddtheme
.
iconStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
),
),
],
...
...
@@ -616,10 +584,10 @@ class _LeadlistbymodeState extends State<Leadlistbymode> {
}
},
isExpanded:
true
,
buttonStyleData:
buttonStyleData
,
iconStyleData:
iconStyleData
,
menuItemStyleData:
menuItemStyleData
,
dropdownStyleData:
dropdownStyleData
,
buttonStyleData:
ddtheme
.
buttonStyleData
,
iconStyleData:
ddtheme
.
iconStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
),
),
],
...
...
@@ -664,10 +632,10 @@ class _LeadlistbymodeState extends State<Leadlistbymode> {
}
},
isExpanded:
true
,
buttonStyleData:
buttonStyleData
,
iconStyleData:
iconStyleData
,
menuItemStyleData:
menuItemStyleData
,
dropdownStyleData:
dropdownStyleData
,
buttonStyleData:
ddtheme
.
buttonStyleData
,
iconStyleData:
ddtheme
.
iconStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
),
),
],
...
...
@@ -711,10 +679,10 @@ class _LeadlistbymodeState extends State<Leadlistbymode> {
}
},
isExpanded:
true
,
buttonStyleData:
buttonStyleData
,
iconStyleData:
iconStyleData
,
menuItemStyleData:
menuItemStyleData
,
dropdownStyleData:
dropdownStyleData
,
buttonStyleData:
ddtheme
.
buttonStyleData
,
iconStyleData:
ddtheme
.
iconStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
),
),
],
...
...
@@ -765,10 +733,10 @@ class _LeadlistbymodeState extends State<Leadlistbymode> {
}
},
isExpanded:
true
,
buttonStyleData:
buttonStyleData
,
iconStyleData:
iconStyleData
,
menuItemStyleData:
menuItemStyleData
,
dropdownStyleData:
dropdownStyleData
,
buttonStyleData:
ddtheme
.
buttonStyleData
,
iconStyleData:
ddtheme
.
iconStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
),
),
],
...
...
@@ -822,10 +790,10 @@ class _LeadlistbymodeState extends State<Leadlistbymode> {
}
},
isExpanded:
true
,
buttonStyleData:
buttonStyleData
,
iconStyleData:
iconStyleData
,
menuItemStyleData:
menuItemStyleData
,
dropdownStyleData:
dropdownStyleData
,
buttonStyleData:
ddtheme
.
buttonStyleData
,
iconStyleData:
ddtheme
.
iconStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
),
),
],
...
...
@@ -869,10 +837,10 @@ class _LeadlistbymodeState extends State<Leadlistbymode> {
}
},
isExpanded:
true
,
buttonStyleData:
buttonStyleData
,
iconStyleData:
iconStyleData
,
menuItemStyleData:
menuItemStyleData
,
dropdownStyleData:
dropdownStyleData
,
buttonStyleData:
ddtheme
.
buttonStyleData
,
iconStyleData:
ddtheme
.
iconStyleData
,
menuItemStyleData:
ddtheme
.
menuItemStyleData
,
dropdownStyleData:
ddtheme
.
dropdownStyleData
,
),
),
],
...
...
lib/screens/crm/QuotationDetails.dart
0 → 100644
View file @
c7ff2cec
import
'package:flutter/material.dart'
;
import
'package:provider/provider.dart'
;
import
'../../Notifiers/crmProvider/crmLeadDetailsProvider.dart'
;
import
'../../Utils/app_colors.dart'
;
import
'../../Utils/commonWidgets.dart'
;
class
QuotationDetails
extends
StatefulWidget
{
const
QuotationDetails
({
super
.
key
});
@override
State
<
QuotationDetails
>
createState
()
=>
_QuotationDetailsState
();
}
class
_QuotationDetailsState
extends
State
<
QuotationDetails
>
{
@override
Widget
build
(
BuildContext
context
)
{
return
Consumer
<
crmLeadDetailsProvider
>(
builder:
(
context
,
provider
,
child
)
{
var
quotationDetails
=
provider
.
quotationsDetails
;
return
WillPopScope
(
onWillPop:
()
=>
onBackPressed
(
context
),
child:
Scaffold
(
resizeToAvoidBottomInset:
true
,
appBar:
appbar
(
context
,
"Quotation Details"
),
backgroundColor:
AppColors
.
scaffold_bg_color
,
body:
SafeArea
(
child:
SizedBox
(
child:
SingleChildScrollView
(
child:
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
TextWidget
(
context
,
"Quotation Details"
),
ListView
.
builder
(
itemCount:
quotationDetails
.
length
,
shrinkWrap:
true
,
itemBuilder:
(
context
,
index
)
{
return
Container
(
margin:
EdgeInsets
.
symmetric
(
horizontal:
10
,
vertical:
5
,
),
padding:
EdgeInsets
.
symmetric
(
horizontal:
15
,
vertical:
10
,
),
decoration:
BoxDecoration
(
color:
Colors
.
white
,
borderRadius:
BorderRadius
.
circular
(
20
),
),
child:
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
...
List
.
generate
(
5
,
(
j
)
{
final
textheads
=
[
"Id"
,
"Employee Name"
,
"Quotation"
,
"Info"
,
"Date"
];
final
textSubheads
=
[
quotationDetails
[
index
].
id
??
"-"
,
quotationDetails
[
index
].
employee
??
"-"
,
"View File"
,
// quotationDetails[index].finTime ?? "-",
quotationDetails
[
index
].
info
??
"-"
,
quotationDetails
[
index
].
date
??
"-"
,
];
return
Container
(
padding:
EdgeInsets
.
symmetric
(
vertical:
6
,
horizontal:
0
,
),
child:
Row
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
Expanded
(
child:
Text
(
textheads
[
j
].
toString
(),
maxLines:
2
,
overflow:
TextOverflow
.
ellipsis
,
),
),
Expanded
(
child:
Text
(
textSubheads
[
j
],
maxLines:
2
,
overflow:
TextOverflow
.
ellipsis
,
style:
TextStyle
(
color:
textSubheads
[
j
]==
"View File"
?
AppColors
.
app_blue
:
Color
(
0xFF818181
),
decoration:
textSubheads
[
j
]==
"View File"
?
TextDecoration
.
underline
:
TextDecoration
.
none
,
decorationColor:
AppColors
.
app_blue
),
),
),
],
),
);
}),
],
),
);
},
),
SizedBox
(
height:
75
),
],
),
),
),
),
floatingActionButton:
Align
(
alignment:
Alignment
.
bottomCenter
,
child:
InkWell
(
child:
Container
(
alignment:
Alignment
.
bottomCenter
,
height:
45
,
width:
MediaQuery
.
of
(
context
)
.
size
.
width
,
margin:
EdgeInsets
.
symmetric
(
horizontal:
10
),
decoration:
BoxDecoration
(
color:
AppColors
.
app_blue
,
borderRadius:
BorderRadius
.
circular
(
14.0
),
),
child:
Center
(
child:
Text
(
"Followup Details"
,
textAlign:
TextAlign
.
center
,
style:
TextStyle
(
color:
Colors
.
white
,
fontFamily:
"JakartaMedium"
,
),
),
),
),
),
),
floatingActionButtonLocation:
FloatingActionButtonLocation
.
centerFloat
,
),
);
},
);
}
}
lib/screens/crm/contactDetails.dart
View file @
c7ff2cec
This diff is collapsed.
Click to expand it.
lib/screens/crm/crmDashboard.dart
View file @
c7ff2cec
...
...
@@ -30,7 +30,7 @@ class _CrmdashboardScreenState extends State<CrmdashboardScreen> {
builder:
(
context
,
provider
,
child
)
{
final
gridPages
=
provider
.
accessPages
.
where
((
page
)
=>
![
8
,
9
,
23
,
24
].
contains
(
page
.
id
))
.
where
((
page
)
=>
![
8
,
9
,
23
,
24
,
51
,
50
].
contains
(
page
.
id
))
.
toList
();
return
WillPopScope
(
...
...
lib/screens/finance/AllPaymentRequesitionListsByModes.dart
View file @
c7ff2cec
...
...
@@ -46,7 +46,7 @@ class _AllpaymentrequesitionlistsbymodesState
);
final
dateRange
=
cf
.
getFormattedDateRange
(
range
);
// print(dateRange);
provider
.
paymentRequestionListsAPIFunction
(
context
,
widget
.
mode
,
dateRange
[
0
],
dateRange
[
1
]
);
provider
.
paymentRequestionListsAPIFunction
(
context
,
widget
.
mode
,
""
,
""
);
});
}
...
...
@@ -244,6 +244,10 @@ class _AllpaymentrequesitionlistsbymodesState
requestLists
[
index
].
date
,
requestLists
[
index
].
description
,
];
if
(
j
==
1
&&
requestLists
[
index
]
.
attachmentViewFileName
==
""
){
return
SizedBox
.
shrink
();
}
return
Container
(
padding:
EdgeInsets
.
symmetric
(
vertical:
5
,
...
...
Prev
1
2
3
Next
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