enquiry_list_search
This commit is contained in:
parent
46ef0c20d6
commit
dcbf177dde
File diff suppressed because one or more lines are too long
@ -35,8 +35,10 @@ class ApiService {
|
||||
context.go(AppRoutes.login);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _makeGetRequest(Uri url,
|
||||
Map<String, String> headers,) async {
|
||||
Future<Map<String, dynamic>> _makeGetRequest(
|
||||
Uri url,
|
||||
Map<String, String> headers,
|
||||
) async {
|
||||
final response = await http.get(url, headers: headers);
|
||||
return _handleResponse(response);
|
||||
}
|
||||
@ -58,8 +60,10 @@ class ApiService {
|
||||
// }
|
||||
// }
|
||||
|
||||
Future<http.Response> _makeGethttpRequest(Uri url,
|
||||
Map<String, String> headers,) async {
|
||||
Future<http.Response> _makeGethttpRequest(
|
||||
Uri url,
|
||||
Map<String, String> headers,
|
||||
) async {
|
||||
final response = await http.get(url, headers: headers);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
@ -73,9 +77,11 @@ class ApiService {
|
||||
}
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> _makePostRequestJson(Uri url,
|
||||
Map<String, dynamic> body,
|
||||
Map<String, String> headers,) async {
|
||||
Future<Map<String, dynamic>> _makePostRequestJson(
|
||||
Uri url,
|
||||
Map<String, dynamic> body,
|
||||
Map<String, String> headers,
|
||||
) async {
|
||||
final response = await http.post(
|
||||
url,
|
||||
headers: headers,
|
||||
@ -151,8 +157,10 @@ class ApiService {
|
||||
}
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> CheckDuplicate(BuildContext context,
|
||||
String value,) async {
|
||||
Future<Map<String, dynamic>> CheckDuplicate(
|
||||
BuildContext context,
|
||||
String value,
|
||||
) async {
|
||||
if (_token == null) {
|
||||
await _initializeToken();
|
||||
}
|
||||
@ -193,8 +201,7 @@ class ApiService {
|
||||
return {};
|
||||
} else {
|
||||
throw Exception(
|
||||
'Failed to load checkDuplicate data. Status code: ${response
|
||||
.statusCode}',
|
||||
'Failed to load checkDuplicate data. Status code: ${response.statusCode}',
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -288,9 +295,11 @@ class ApiService {
|
||||
return fallback;
|
||||
}
|
||||
|
||||
Future<void> getPdfDownload(// BuildContext context,
|
||||
String path,
|
||||
String id,) async {
|
||||
Future<void> getPdfDownload(
|
||||
// BuildContext context,
|
||||
String path,
|
||||
String id,
|
||||
) async {
|
||||
print('getPdfDownload 1 - $path');
|
||||
|
||||
// if (path.isEmpty) {
|
||||
@ -344,9 +353,7 @@ class ApiService {
|
||||
final contentDisp = response.headers['content-disposition'];
|
||||
print('getPdfDownloadcontentDisp $contentDisp');
|
||||
|
||||
String fileName = extractFileName(contentDisp, path
|
||||
.split('/')
|
||||
.last);
|
||||
String fileName = extractFileName(contentDisp, path.split('/').last);
|
||||
print('Resolved fileName: $fileName');
|
||||
final anchor = html.AnchorElement(href: blobUrl)
|
||||
..setAttribute('download', fileName)
|
||||
@ -357,16 +364,15 @@ class ApiService {
|
||||
} else if (response.statusCode == 404) {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (context) =>
|
||||
AlertDialog(
|
||||
title: const Text('File not found.'),
|
||||
actions: [
|
||||
TextButton(
|
||||
child: const Text('OK'),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
],
|
||||
builder: (context) => AlertDialog(
|
||||
title: const Text('File not found.'),
|
||||
actions: [
|
||||
TextButton(
|
||||
child: const Text('OK'),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
} else if (response.statusCode == 403) {
|
||||
await clearLocalStorageAndRedirect();
|
||||
@ -450,10 +456,12 @@ class ApiService {
|
||||
return response;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> updateStatusMasters(id,
|
||||
status,
|
||||
masterName,
|
||||
userId,) async {
|
||||
Future<Map<String, dynamic>> updateStatusMasters(
|
||||
id,
|
||||
status,
|
||||
masterName,
|
||||
userId,
|
||||
) async {
|
||||
print('updateStatusMaster $id $status $masterName $userId');
|
||||
final Map<String, dynamic> data = {
|
||||
"is_active": int.parse(status),
|
||||
@ -499,8 +507,7 @@ class ApiService {
|
||||
url = Uri.parse('${Env.apiUrl}dashboard/managerDashboard?manager_id=$id');
|
||||
} else if (role == 'handler') {
|
||||
url = Uri.parse(
|
||||
'${Env
|
||||
.apiUrl}dashboard/handlerDashboard?manager_id=$id&handler_id=$userId',
|
||||
'${Env.apiUrl}dashboard/handlerDashboard?manager_id=$id&handler_id=$userId',
|
||||
);
|
||||
} else if (role == 'staff') {
|
||||
url = Uri.parse('${Env.apiUrl}dashboard/staffDashboard?staff_id=$userId');
|
||||
@ -687,6 +694,10 @@ class ApiService {
|
||||
print('manager');
|
||||
// url = Uri.parse('${Env.apiUrl}staff/staffList');
|
||||
url = Uri.parse('${Env.apiUrl}staff/staffList?manager_id=${managerId}');
|
||||
} else if (role == 'Accounts') {
|
||||
print('manager');
|
||||
// url = Uri.parse('${Env.apiUrl}staff/staffList');
|
||||
url = Uri.parse('${Env.apiUrl}staff/staffList?manager_id=${managerId}');
|
||||
} else {
|
||||
print('handler');
|
||||
url = Uri.parse('${Env.apiUrl}staff/staffList?handler_id=${managerId}');
|
||||
@ -721,8 +732,10 @@ class ApiService {
|
||||
|
||||
// ------------------------------------ SALES EXECUTIVE -----------------------------------------------------
|
||||
|
||||
Future<Map<String, dynamic>> fetchSalesExecutiveList(int managerId,
|
||||
role,) async {
|
||||
Future<Map<String, dynamic>> fetchSalesExecutiveList(
|
||||
int managerId,
|
||||
role,
|
||||
) async {
|
||||
// print(_token);
|
||||
|
||||
print('rolemanagerId - $managerId');
|
||||
@ -738,6 +751,10 @@ class ApiService {
|
||||
'${Env.apiUrl}salesExecutive/executiveList?manager_id=${managerId}',
|
||||
);
|
||||
// url = Uri.parse('${Env.apiUrl}salesExecutive/executiveList');
|
||||
} else if (role == 'Accounts') {
|
||||
print('manager');
|
||||
// url = Uri.parse('${Env.apiUrl}staff/staffList');
|
||||
url = Uri.parse('${Env.apiUrl}staff/staffList?manager_id=${managerId}');
|
||||
} else {
|
||||
print('handler');
|
||||
url = Uri.parse(
|
||||
@ -807,15 +824,12 @@ class ApiService {
|
||||
|
||||
if (role == 'staff') {
|
||||
url = Uri.parse(
|
||||
'${Env.apiUrl}enquiry/enquiryList?$query&from_date=${fromDate ??
|
||||
''}&to_date=${toDate ?? ''}&enquiry_status=$selectedStatus',
|
||||
'${Env.apiUrl}enquiry/enquiryList?$query&from_date=${fromDate ?? ''}&to_date=${toDate ?? ''}&enquiry_status=$selectedStatus',
|
||||
// '${Env.apiUrl}enquiry/enquiryList?$query&from_date=${fromDate ?? ''}&to_date=${toDate ?? ''}&status=$selectedStatus',
|
||||
);
|
||||
} else {
|
||||
url = Uri.parse(
|
||||
'${Env.apiUrl}enquiry/enquiryList?$query&from_date=${fromDate ??
|
||||
''}&to_date=${toDate ??
|
||||
''}&enquiry_status=$selectedStatus&staff_id=$selectedStaffId',
|
||||
'${Env.apiUrl}enquiry/enquiryList?$query&from_date=${fromDate ?? ''}&to_date=${toDate ?? ''}&enquiry_status=$selectedStatus&staff_id=$selectedStaffId',
|
||||
// '${Env.apiUrl}enquiry/enquiryList?$query&from_date=${fromDate ?? ''}&to_date=${toDate ?? ''}&status=$selectedStatus&staff_id=$selectedStaffId',
|
||||
);
|
||||
}
|
||||
@ -844,8 +858,7 @@ class ApiService {
|
||||
// }
|
||||
|
||||
final url = Uri.parse(
|
||||
'${Env.apiUrl}staff/monthlyLoginCount?month=${month ??
|
||||
''}&manager_id=$mangerId',
|
||||
'${Env.apiUrl}staff/monthlyLoginCount?month=${month ?? ''}&manager_id=$mangerId',
|
||||
);
|
||||
|
||||
final headers = {
|
||||
@ -1017,13 +1030,14 @@ class ApiService {
|
||||
|
||||
// ----------------------------------- POLICY -------------------------------------------------
|
||||
|
||||
Future<Map<String, dynamic>> fetchPolicyList(int id,
|
||||
role, {
|
||||
String? fromDate,
|
||||
String? toDate,
|
||||
String? selectedStatus,
|
||||
String? selectedStaffId,
|
||||
}) async {
|
||||
Future<Map<String, dynamic>> fetchPolicyList(
|
||||
int id,
|
||||
role, {
|
||||
String? fromDate,
|
||||
String? toDate,
|
||||
String? selectedStatus,
|
||||
String? selectedStaffId,
|
||||
}) async {
|
||||
// print(_token);
|
||||
if (_token == null) {
|
||||
await _initializeToken();
|
||||
@ -1047,14 +1061,11 @@ class ApiService {
|
||||
|
||||
if (role == 'staff') {
|
||||
url = Uri.parse(
|
||||
'${Env.apiUrl}enquiry/enquiryList?$query&from_date=${fromDate ??
|
||||
''}&to_date=${toDate ?? ''}&status=$selectedStatus',
|
||||
'${Env.apiUrl}enquiry/enquiryList?$query&from_date=${fromDate ?? ''}&to_date=${toDate ?? ''}&status=$selectedStatus',
|
||||
);
|
||||
} else {
|
||||
url = Uri.parse(
|
||||
'${Env.apiUrl}enquiry/enquiryList?$query&from_date=${fromDate ??
|
||||
''}&to_date=${toDate ??
|
||||
''}&status=$selectedStatus&staff_id=$selectedStaffId',
|
||||
'${Env.apiUrl}enquiry/enquiryList?$query&from_date=${fromDate ?? ''}&to_date=${toDate ?? ''}&status=$selectedStatus&staff_id=$selectedStaffId',
|
||||
);
|
||||
}
|
||||
|
||||
@ -1077,13 +1088,17 @@ class ApiService {
|
||||
return response;
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> fetchPolicyDataOnlyList(dynamic id,
|
||||
role, {
|
||||
String? fromDate,
|
||||
String? toDate,
|
||||
String? selectedStaffId,
|
||||
}) async {
|
||||
// print(_token);
|
||||
Future<Map<String, dynamic>> fetchPolicyDataOnlyList(
|
||||
managerId,
|
||||
dynamic id,
|
||||
role, {
|
||||
String? fromDate,
|
||||
String? toDate,
|
||||
String? selectedStaffId,
|
||||
}) async {
|
||||
print(
|
||||
"fetchPolicyDataOnlyListAPI - mangerID- $managerId - id - $id - role -$role ",
|
||||
);
|
||||
if (_token == null) {
|
||||
await _initializeToken();
|
||||
}
|
||||
@ -1093,7 +1108,11 @@ class ApiService {
|
||||
final String query;
|
||||
|
||||
if (role == 'manager') {
|
||||
query = 'manager_id=$id';
|
||||
query = 'manager_id=$managerId';
|
||||
} else if (role == 'Accounts') {
|
||||
query = 'manager_id=$managerId';
|
||||
} else if (role == 'Accounts') {
|
||||
query = 'manager_id=$managerId';
|
||||
} else if (role == 'staff') {
|
||||
query = 'staff_id=$id';
|
||||
} else if (role == 'handler') {
|
||||
@ -1103,9 +1122,7 @@ class ApiService {
|
||||
}
|
||||
|
||||
final url = Uri.parse(
|
||||
'${Env
|
||||
.apiUrl}enquiry/enquiryList?$query&only_policy_data=true&from_date=${fromDate ??
|
||||
''}&to_date=${toDate ?? ''}&staff_id=$selectedStaffId',
|
||||
'${Env.apiUrl}enquiry/enquiryList?$query&only_policy_data=true&from_date=${fromDate ?? ''}&to_date=${toDate ?? ''}&staff_id=$selectedStaffId',
|
||||
);
|
||||
|
||||
// if (role == 'manager') {
|
||||
@ -1190,6 +1207,8 @@ class ApiService {
|
||||
|
||||
if (role == 'manager') {
|
||||
url = Uri.parse('${Env.apiUrl}claim/ClaimList?manager_id=$managerId');
|
||||
} else if (role == 'Accounts') {
|
||||
url = Uri.parse('${Env.apiUrl}claim/ClaimList?manager_id=$managerId');
|
||||
} else if (role == 'agent') {
|
||||
url = Uri.parse('${Env.apiUrl}claim/ClaimList?agent_id=$userId');
|
||||
} else if (role == 'handler') {
|
||||
@ -1242,6 +1261,10 @@ class ApiService {
|
||||
url = Uri.parse(
|
||||
'${Env.apiUrl}endorsement/endorsementList?manager_id=$managerId',
|
||||
);
|
||||
} else if (role == 'Accounts') {
|
||||
url = Uri.parse(
|
||||
'${Env.apiUrl}endorsement/endorsementList?manager_id=$managerId',
|
||||
);
|
||||
} else if (role == 'agent') {
|
||||
url = Uri.parse('${Env.apiUrl}endorsement/endorsementList?agent_id=$id');
|
||||
} else if (role == 'handler') {
|
||||
@ -1439,8 +1462,10 @@ class ApiService {
|
||||
}
|
||||
|
||||
// Update enquiry
|
||||
static Future<EnquiryModel> updateEnquiry(String id,
|
||||
EnquiryModel enquiry,) async {
|
||||
static Future<EnquiryModel> updateEnquiry(
|
||||
String id,
|
||||
EnquiryModel enquiry,
|
||||
) async {
|
||||
try {
|
||||
final response = await http.put(
|
||||
Uri.parse('$_baseUrl/api/enquiries/$id'),
|
||||
@ -1608,8 +1633,9 @@ class ApiService {
|
||||
await _initializeToken();
|
||||
}
|
||||
|
||||
final url = Uri.parse('${Env
|
||||
.apiUrl}policy/PolicyFilePath?policy_id=$ID&file_type=$file_type');
|
||||
final url = Uri.parse(
|
||||
'${Env.apiUrl}policy/PolicyFilePath?policy_id=$ID&file_type=$file_type',
|
||||
);
|
||||
|
||||
final headers = {
|
||||
'Authorization': 'Bearer $_token' ?? '',
|
||||
@ -1640,7 +1666,4 @@ class ApiService {
|
||||
final response = await _makePostRequestJson(url, data, headers);
|
||||
return response;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -374,32 +374,32 @@ class _AppHeaderState extends ConsumerState<AppHeader> {
|
||||
),
|
||||
const SizedBox(width: 16),
|
||||
],
|
||||
|
||||
// Proposal button
|
||||
Container(
|
||||
width: 36,
|
||||
height: 36,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
border: Border.all(color: Colors.grey.shade200, width: 1),
|
||||
if (role != 'Accounts') ...[
|
||||
// Proposal button
|
||||
Container(
|
||||
width: 36,
|
||||
height: 36,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
border: Border.all(color: Colors.grey.shade200, width: 1),
|
||||
),
|
||||
child: IconButton(
|
||||
padding: EdgeInsets.zero,
|
||||
icon: const Icon(Icons.quora, color: Colors.black87, size: 20),
|
||||
onPressed: () {
|
||||
SideDrawerPanel.show(
|
||||
context: context,
|
||||
title: 'Quote Creation',
|
||||
child: CreateProposal_Quick(),
|
||||
);
|
||||
},
|
||||
tooltip: 'Quick Quote',
|
||||
),
|
||||
),
|
||||
child: IconButton(
|
||||
padding: EdgeInsets.zero,
|
||||
icon: const Icon(Icons.quora, color: Colors.black87, size: 20),
|
||||
onPressed: () {
|
||||
SideDrawerPanel.show(
|
||||
context: context,
|
||||
title: 'Quote Creation',
|
||||
child: CreateProposal_Quick(),
|
||||
);
|
||||
},
|
||||
tooltip: 'Quick Quote',
|
||||
),
|
||||
),
|
||||
|
||||
const SizedBox(width: 12),
|
||||
|
||||
const SizedBox(width: 12),
|
||||
],
|
||||
// Notifications button
|
||||
Container(
|
||||
width: 36,
|
||||
|
||||
@ -135,7 +135,7 @@ class _AddDialogState extends State<AddDialog> {
|
||||
Future.microtask(() {
|
||||
// final id = ref.read(managerIdProvider);
|
||||
// roleId = ref.read(userRoleProvider);
|
||||
// userId = ref.read(userIdProvider);
|
||||
// userId = ref.read(userIdProvider);
|
||||
|
||||
if (widget.userId != null && widget.managerId != null) {
|
||||
getStaffList(widget.managerId, widget.userId);
|
||||
@ -269,6 +269,7 @@ class _AddDialogState extends State<AddDialog> {
|
||||
final response = await apiService.fetchPolicyDataOnlyList(
|
||||
managerIdStr,
|
||||
roleStr,
|
||||
roleStr,
|
||||
fromDate: controllers['startDate']?.text ?? '',
|
||||
toDate: controllers['endDate']?.text ?? '',
|
||||
selectedStaffId: widget.userId ?? '',
|
||||
|
||||
@ -49,6 +49,7 @@ class StaffListState extends ConsumerState<StaffList> {
|
||||
prefid = data1;
|
||||
role = ref.read(userRoleProvider);
|
||||
print("E43 => mId: $prefid");
|
||||
print("roleSTAFFLIST: $role");
|
||||
if (prefid != null && role != null) {
|
||||
getStaffList(prefid, role);
|
||||
}
|
||||
|
||||
@ -146,9 +146,7 @@ class _InvoiceListState extends ConsumerState<InvoiceList> {
|
||||
return sortedData.sublist(startIndex, endIndex);
|
||||
}
|
||||
|
||||
void filterDateRange() {
|
||||
|
||||
}
|
||||
void filterDateRange() {}
|
||||
|
||||
void refrshfilterDateRange() {
|
||||
setState(() {
|
||||
@ -161,7 +159,7 @@ class _InvoiceListState extends ConsumerState<InvoiceList> {
|
||||
// Reset the FormField validation
|
||||
_formKey.currentState?.reset();
|
||||
});
|
||||
getInvoiceList();
|
||||
getInvoiceList();
|
||||
}
|
||||
|
||||
void filterData(String query) {
|
||||
@ -171,8 +169,8 @@ class _InvoiceListState extends ConsumerState<InvoiceList> {
|
||||
// final isActiveStatus = item['is_active'] == "1" ? "active" : "inactive";
|
||||
|
||||
return (_formatDate(item['updated_at']) ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(_formatDate(item['invoice_date']) ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
@ -211,6 +209,7 @@ class _InvoiceListState extends ConsumerState<InvoiceList> {
|
||||
return MainLayout(
|
||||
title: "Pay Out",
|
||||
body: Container(
|
||||
height: 30,
|
||||
// color: Colors.yellow.shade50,
|
||||
width: MediaQuery.of(context).size.width,
|
||||
child: Column(
|
||||
@ -228,29 +227,29 @@ class _InvoiceListState extends ConsumerState<InvoiceList> {
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Tooltip(
|
||||
message: 'Back',
|
||||
child: IconButton(
|
||||
icon: const Icon(
|
||||
Icons.arrow_left_sharp,
|
||||
size: 25,
|
||||
color: Color(0xFF425B5B),
|
||||
),
|
||||
onPressed: () {
|
||||
context.go(AppRoutes.dashboard);
|
||||
},
|
||||
splashRadius: 18,
|
||||
hoverColor: Colors.black12,
|
||||
padding: const EdgeInsets.all(4),
|
||||
constraints: const BoxConstraints(),
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 5), // spacing between icon and text
|
||||
// Tooltip(
|
||||
// message: 'Back',
|
||||
// child: IconButton(
|
||||
// icon: const Icon(
|
||||
// Icons.arrow_left_sharp,
|
||||
// size: 25,
|
||||
// color: Color(0xFF425B5B),
|
||||
// ),
|
||||
// onPressed: () {
|
||||
// context.go(AppRoutes.dashboard);
|
||||
// },
|
||||
// splashRadius: 18,
|
||||
// hoverColor: Colors.black12,
|
||||
// padding: const EdgeInsets.all(4),
|
||||
// constraints: const BoxConstraints(),
|
||||
// ),
|
||||
// ),
|
||||
// const SizedBox(width: 5), // spacing between icon and text
|
||||
Text(
|
||||
"Invoice",
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.w600,
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
],
|
||||
@ -372,13 +371,15 @@ class _InvoiceListState extends ConsumerState<InvoiceList> {
|
||||
// // ),
|
||||
// Spacer(),
|
||||
// ],
|
||||
|
||||
ThemedSearchField(
|
||||
hintText: 'Search',
|
||||
backgroundColor: Color(0xFFF6F8F8),
|
||||
// backgroundColor: Color(0xFFF6F8F8),
|
||||
onChanged: filterData,
|
||||
controller: _searchStaffController,
|
||||
txtwidth: MediaQuery.of(context).size.width * 0.2,
|
||||
txtHeight: 30,
|
||||
txtwidth: ResponsiveLayout.isMobile(context)
|
||||
? MediaQuery.of(context).size.width * 0.7
|
||||
: MediaQuery.of(context).size.width * 0.15,
|
||||
),
|
||||
SizedBox(width: 10),
|
||||
Tooltip(
|
||||
@ -533,10 +534,7 @@ class _InvoiceListState extends ConsumerState<InvoiceList> {
|
||||
),
|
||||
Expanded(
|
||||
flex: 3,
|
||||
child: Text(
|
||||
item['invoice_date'] ?? '-',
|
||||
style: _dataBold,
|
||||
),
|
||||
child: Text(item['invoice_date'] ?? '-', style: _dataBold),
|
||||
),
|
||||
Expanded(
|
||||
flex: 3,
|
||||
|
||||
@ -300,7 +300,8 @@ class EnquiryStaffState extends ConsumerState<EnquiryListStaffInline> {
|
||||
) {
|
||||
if (next == true) {
|
||||
print('refresh triggered Quick Creation');
|
||||
callRefresh();
|
||||
autoRefrshfilterDateRange();
|
||||
// callRefresh();
|
||||
|
||||
ref.read(enquiryRefreshProvider.notifier).state = false;
|
||||
}
|
||||
@ -637,9 +638,18 @@ class EnquiryStaffState extends ConsumerState<EnquiryListStaffInline> {
|
||||
print('completedData - $completedData');
|
||||
|
||||
// filteredData now holds the currently displayed tab's data (without search)
|
||||
// filteredData = (selectedIndex == 0)
|
||||
// ? inProgressData
|
||||
// : completedData;
|
||||
|
||||
// 👇 IMPORTANT: Set filteredData based on current tab
|
||||
filteredData = (selectedIndex == 0)
|
||||
? inProgressData
|
||||
: completedData;
|
||||
? List.from(inProgressData)
|
||||
: List.from(completedData);
|
||||
|
||||
print('filteredData count: ${filteredData.length}');
|
||||
print('inProgressData count: ${inProgressData.length}');
|
||||
print('completedData count: ${completedData.length}');
|
||||
} else if (data is Map) {
|
||||
getStaffData = [Map<String, dynamic>.from(data)];
|
||||
} else {
|
||||
@ -662,54 +672,64 @@ class EnquiryStaffState extends ConsumerState<EnquiryListStaffInline> {
|
||||
}
|
||||
|
||||
void filterData(String query) {
|
||||
print("FilterDAta - $query");
|
||||
print("FilterData - $query");
|
||||
setState(() {
|
||||
// Get the correct source list based on selected tab
|
||||
final sourceList = (selectedIndex == 0) ? inProgressData : completedData;
|
||||
|
||||
filteredData = sourceList.where((item) {
|
||||
// final isActiveStatus = item['is_active'] == "1" ? "active" : "inactive";
|
||||
|
||||
return (item['agent_name'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['agent_code'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['reg_no'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['insurer_name'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['enquiry_status'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['assigned_to_name'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['insured_name'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['insurer_short_name'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['premium_amount'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['payment_mode'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(_formatDate(item['created_on']) ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(_formatDate(item['updated_on']) ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['policy_number'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['status'] ?? '-').toLowerCase().contains(query.toLowerCase());
|
||||
}).toList();
|
||||
if (query.isEmpty) {
|
||||
// If search is empty, show all data for current tab
|
||||
filteredData = List.from(sourceList);
|
||||
} else {
|
||||
// Search within the current tab's data
|
||||
filteredData = sourceList.where((item) {
|
||||
return (item['agent_name'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['agent_code'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['reg_no'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['insurer_name'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['enquiry_status'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['assigned_to_name'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['insured_name'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['insurer_short_name'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['premium_amount'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['payment_mode'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['broker_name'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(_formatDate(item['created_on']) ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(_formatDate(item['updated_on']) ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['policy_number'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
) ||
|
||||
(item['status'] ?? '-').toLowerCase().contains(
|
||||
query.toLowerCase(),
|
||||
);
|
||||
}).toList();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -1595,7 +1615,7 @@ class EnquiryStaffState extends ConsumerState<EnquiryListStaffInline> {
|
||||
'In progress': 'In Progress',
|
||||
};
|
||||
|
||||
List<Map<String, dynamic>> get filteredDataByTab {
|
||||
List<Map<String, dynamic>> get filteredDataByTab1 {
|
||||
if (selectedIndex == 0) {
|
||||
// Progress enquiries
|
||||
final sortedData = [...inProgressData]
|
||||
@ -1628,6 +1648,44 @@ class EnquiryStaffState extends ConsumerState<EnquiryListStaffInline> {
|
||||
}
|
||||
}
|
||||
|
||||
List<Map<String, dynamic>> get filteredDataByTab {
|
||||
// Use filteredData instead of the raw source lists
|
||||
final sortedData = [...filteredData]
|
||||
..sort((a, b) => int.parse(b['id']) - int.parse(a['id']));
|
||||
|
||||
if (sortedData.isEmpty) return [];
|
||||
|
||||
if (selectedIndex == 0) {
|
||||
// Progress enquiries - return filtered in-progress items
|
||||
return sortedData.where((e) {
|
||||
return [
|
||||
"To be assigned",
|
||||
"Assigned",
|
||||
"In progress",
|
||||
].contains(e['enquiry_status']);
|
||||
}).toList();
|
||||
} else {
|
||||
// Completed enquiries - apply pagination to filtered completed items
|
||||
final completedFiltered = sortedData.where((e) {
|
||||
return e['enquiry_status'] == "Completed";
|
||||
}).toList();
|
||||
|
||||
// Update total pages based on filtered results
|
||||
totalCompletedPages = (completedFiltered.length / completedItemsPerPage)
|
||||
.ceil();
|
||||
if (totalCompletedPages == 0) totalCompletedPages = 1;
|
||||
|
||||
// Apply pagination
|
||||
final startIndex = (completedCurrentPage - 1) * completedItemsPerPage;
|
||||
final endIndex = (startIndex + completedItemsPerPage).clamp(
|
||||
0,
|
||||
completedFiltered.length,
|
||||
);
|
||||
|
||||
return completedFiltered.sublist(startIndex, endIndex);
|
||||
}
|
||||
}
|
||||
|
||||
// Add group enquiries by status
|
||||
Map<String, List<Map<String, dynamic>>> get _groupedEnquiries {
|
||||
final Map<String, List<Map<String, dynamic>>> grouped = {};
|
||||
@ -2770,7 +2828,7 @@ class EnquiryStaffState extends ConsumerState<EnquiryListStaffInline> {
|
||||
setState(() {
|
||||
print('TAPPED TAB');
|
||||
selectedIndex = index;
|
||||
|
||||
filteredData = (index == 0) ? inProgressData : completedData;
|
||||
if (index == 1) {
|
||||
completedCurrentPage = 1;
|
||||
}
|
||||
|
||||
@ -637,6 +637,35 @@ class EnquiryStaffState extends ConsumerState<EnquiryListStaffInline> {
|
||||
}
|
||||
|
||||
void filterData(String query) {
|
||||
final queryLC = query.toLowerCase();
|
||||
|
||||
String _safeStr(dynamic value) {
|
||||
return value?.toString().toLowerCase() ?? '';
|
||||
}
|
||||
|
||||
setState(() {
|
||||
final sourceList = (selectedIndex == 0) ? inProgressData : completedData;
|
||||
|
||||
filteredData = sourceList.where((item) {
|
||||
return _safeStr(item['agent_name']).contains(queryLC) ||
|
||||
_safeStr(item['agent_code']).contains(queryLC) ||
|
||||
_safeStr(item['reg_no']).contains(queryLC) ||
|
||||
_safeStr(item['insurer_name']).contains(queryLC) ||
|
||||
_safeStr(item['enquiry_status']).contains(queryLC) ||
|
||||
_safeStr(item['assigned_to_name']).contains(queryLC) ||
|
||||
_safeStr(item['insured_name']).contains(queryLC) ||
|
||||
_safeStr(item['insurer_short_name']).contains(queryLC) ||
|
||||
_safeStr(item['premium_amount']).contains(queryLC) ||
|
||||
_safeStr(item['payment_mode']).contains(queryLC) ||
|
||||
_safeStr(_formatDate(item['created_on'])).contains(queryLC) ||
|
||||
_safeStr(_formatDate(item['updated_on'])).contains(queryLC) ||
|
||||
_safeStr(item['policy_number']).contains(queryLC) ||
|
||||
_safeStr(item['status']).contains(queryLC);
|
||||
}).toList();
|
||||
});
|
||||
}
|
||||
|
||||
void filterData1(String query) {
|
||||
print("FilterDAta - $query");
|
||||
setState(() {
|
||||
final sourceList = (selectedIndex == 0) ? inProgressData : completedData;
|
||||
|
||||
@ -32,6 +32,7 @@ class policylistState extends ConsumerState<policylist> {
|
||||
int itemsPerPage = 10;
|
||||
late ApiService apiService;
|
||||
dynamic userId;
|
||||
dynamic managerId;
|
||||
dynamic SelectedStatus;
|
||||
dynamic SelectedStaffId;
|
||||
// List<Map<String, dynamic>> dataVal = [];
|
||||
@ -58,30 +59,31 @@ class policylistState extends ConsumerState<policylist> {
|
||||
}
|
||||
|
||||
Future.microtask(() {
|
||||
final id = ref.read(managerIdProvider);
|
||||
final managerId = ref.read(managerIdProvider);
|
||||
roleId = ref.read(userRoleProvider);
|
||||
userId = ref.read(userIdProvider);
|
||||
|
||||
print("D49 => r : $roleId | mId: $id | uId: $userId ");
|
||||
print("D49 => r : $roleId | mId: $managerId | uId: $userId ");
|
||||
if (userId != null) {
|
||||
getStaffList(userId, roleId);
|
||||
getStaffList(managerId!, userId, roleId);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void refresh() {
|
||||
final id = ref.read(managerIdProvider);
|
||||
managerId = ref.read(managerIdProvider);
|
||||
final roleId = ref.read(userRoleProvider);
|
||||
final userId = ref.read(userIdProvider);
|
||||
|
||||
print("D61 => r : $roleId | mId: $id | uId: $userId");
|
||||
// print("D61 => r : $roleId | mId: $id | uId: $userId");
|
||||
if (userId != null) {
|
||||
getStaffList(userId, roleId);
|
||||
getStaffList(managerId, userId, roleId);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> getStaffList(
|
||||
int managerId,
|
||||
id,
|
||||
role, {
|
||||
String fromDate = '',
|
||||
String toDate = '',
|
||||
@ -114,6 +116,7 @@ class policylistState extends ConsumerState<policylist> {
|
||||
try {
|
||||
final response = await apiService.fetchPolicyDataOnlyList(
|
||||
managerId,
|
||||
id,
|
||||
role,
|
||||
fromDate: fromDt,
|
||||
toDate: toDt,
|
||||
@ -199,7 +202,7 @@ class policylistState extends ConsumerState<policylist> {
|
||||
// }
|
||||
|
||||
// ✅ Call your API
|
||||
getStaffList(userId, roleId);
|
||||
getStaffList(managerId, userId, roleId);
|
||||
}
|
||||
|
||||
void refrshfilterDateRange() {
|
||||
@ -213,7 +216,7 @@ class policylistState extends ConsumerState<policylist> {
|
||||
// Reset the FormField validation
|
||||
_formKey.currentState?.reset();
|
||||
});
|
||||
getStaffList(userId, roleId);
|
||||
getStaffList(managerId, userId, roleId);
|
||||
}
|
||||
|
||||
void filterData(String query) {
|
||||
@ -223,27 +226,33 @@ class policylistState extends ConsumerState<policylist> {
|
||||
|
||||
setState(() {
|
||||
filteredData = getStaffData.where((item) {
|
||||
|
||||
// ⭐ Compute UI status text
|
||||
final accuracyText =
|
||||
item['is_data_accuracy_checked'] == '1'
|
||||
final accuracyText = item['is_data_accuracy_checked'] == '1'
|
||||
? 'Verified'
|
||||
: 'Click to Verify';
|
||||
|
||||
return
|
||||
(item['agent_name'] ?? '-').toLowerCase().contains(lowerQuery) ||
|
||||
(item['reg_no'] ?? '-').toLowerCase().contains(lowerQuery) ||
|
||||
(item['insurer_name'] ?? '-').toLowerCase().contains(lowerQuery) ||
|
||||
(item['insurer_short_name'] ?? '-').toLowerCase().contains(lowerQuery) ||
|
||||
(item['assigned_to_name'] ?? '-').toLowerCase().contains(lowerQuery) ||
|
||||
(item['insured_name'] ?? '-').toLowerCase().contains(lowerQuery) ||
|
||||
(item['premium_amount'] ?? '-').toLowerCase().contains(lowerQuery) ||
|
||||
(item['payment_mode_value'] ?? '-').toLowerCase().contains(lowerQuery) ||
|
||||
(_formatDate(item['updated_on']) ?? '-').toLowerCase().contains(lowerQuery) ||
|
||||
(item['policy_number'] ?? '-').toLowerCase().contains(lowerQuery) ||
|
||||
|
||||
// ⭐ NEW CONDITIONS for search
|
||||
accuracyText.toLowerCase().contains(lowerQuery);
|
||||
return (item['agent_name'] ?? '-').toLowerCase().contains(lowerQuery) ||
|
||||
(item['reg_no'] ?? '-').toLowerCase().contains(lowerQuery) ||
|
||||
(item['insurer_name'] ?? '-').toLowerCase().contains(lowerQuery) ||
|
||||
(item['insurer_short_name'] ?? '-').toLowerCase().contains(
|
||||
lowerQuery,
|
||||
) ||
|
||||
(item['assigned_to_name'] ?? '-').toLowerCase().contains(
|
||||
lowerQuery,
|
||||
) ||
|
||||
(item['insured_name'] ?? '-').toLowerCase().contains(lowerQuery) ||
|
||||
(item['premium_amount'] ?? '-').toLowerCase().contains(
|
||||
lowerQuery,
|
||||
) ||
|
||||
(item['payment_mode_value'] ?? '-').toLowerCase().contains(
|
||||
lowerQuery,
|
||||
) ||
|
||||
(_formatDate(item['updated_on']) ?? '-').toLowerCase().contains(
|
||||
lowerQuery,
|
||||
) ||
|
||||
(item['policy_number'] ?? '-').toLowerCase().contains(lowerQuery) ||
|
||||
// ⭐ NEW CONDITIONS for search
|
||||
accuracyText.toLowerCase().contains(lowerQuery);
|
||||
}).toList();
|
||||
});
|
||||
}
|
||||
@ -418,11 +427,12 @@ class policylistState extends ConsumerState<policylist> {
|
||||
: SizedBox.shrink(),
|
||||
ThemedSearchField(
|
||||
hintText: 'Search',
|
||||
|
||||
// backgroundColor: Color(0xFFF6F8F8),
|
||||
backgroundColor: Color(0xFFFFFFFF),
|
||||
txtHeight: 30,
|
||||
onChanged: filterData,
|
||||
controller: _searchStaffController,
|
||||
backgroundColor: Color(0xFFFFFFFF),
|
||||
txtHeight: 30,
|
||||
txtwidth: ResponsiveLayout.isMobile(context)
|
||||
? MediaQuery.of(context).size.width * 0.7
|
||||
: MediaQuery.of(context).size.width * 0.15,
|
||||
@ -737,14 +747,14 @@ class policylistState extends ConsumerState<policylist> {
|
||||
message: '',
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
context.push(
|
||||
AppRoutes.policyValidation,
|
||||
extra: item,
|
||||
);
|
||||
context.push(AppRoutes.policyValidation, extra: item);
|
||||
},
|
||||
child: Container(
|
||||
width: 110, // ⭐ FIXED WIDTH → Equal in both states
|
||||
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4),
|
||||
width: 110, // ⭐ FIXED WIDTH → Equal in both states
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 8,
|
||||
vertical: 4,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
color: item['is_data_accuracy_checked'] == '1'
|
||||
? const Color(0xFF2E7D6E)
|
||||
@ -752,7 +762,8 @@ class policylistState extends ConsumerState<policylist> {
|
||||
borderRadius: BorderRadius.circular(5),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center, // ⭐ Center content
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.center, // ⭐ Center content
|
||||
children: [
|
||||
Icon(
|
||||
item['is_data_accuracy_checked'] == '1'
|
||||
@ -777,8 +788,7 @@ class policylistState extends ConsumerState<policylist> {
|
||||
),
|
||||
),
|
||||
),
|
||||
]
|
||||
|
||||
],
|
||||
],
|
||||
),
|
||||
),
|
||||
@ -1003,4 +1013,3 @@ class policylistState extends ConsumerState<policylist> {
|
||||
fontSize: 12,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
62
pubspec.lock
62
pubspec.lock
@ -237,10 +237,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: device_info_plus
|
||||
sha256: "4df8babf73058181227e18b08e6ea3520cf5fc5d796888d33b7cb0f33f984b7c"
|
||||
sha256: "98f28b42168cc509abc92f88518882fd58061ea372d7999aecc424345c7bff6a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "12.3.0"
|
||||
version: "11.5.0"
|
||||
device_info_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -700,26 +700,26 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker
|
||||
sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
|
||||
sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "11.0.2"
|
||||
version: "10.0.9"
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_flutter_testing
|
||||
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
|
||||
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.10"
|
||||
version: "3.0.9"
|
||||
leak_tracker_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_testing
|
||||
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
|
||||
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.2"
|
||||
version: "3.0.1"
|
||||
lints:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1217,74 +1217,74 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: syncfusion_flutter_core
|
||||
sha256: e1fdfcc3ed7e1f040ba95838780b2eb1857e3e5eccb817fbe94ea2b09c35eac4
|
||||
sha256: "2d878bce96c4fd1092205a4f72b328f7f05d86b27c3bd55db7fd440e6017352a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "31.2.18"
|
||||
version: "31.1.19"
|
||||
syncfusion_flutter_pdf:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: syncfusion_flutter_pdf
|
||||
sha256: "4077abff3d3dcae757317c0a85cb607b98cc6ea8f3b47c7d8488d4144ef01a9f"
|
||||
sha256: "95b5e01cc2305f03490b009a28c2e8753feecdb4202c87fcba27a74fbc93222c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "31.2.18"
|
||||
version: "31.1.19"
|
||||
syncfusion_flutter_pdfviewer:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: syncfusion_flutter_pdfviewer
|
||||
sha256: "4bc26c493a017ea615a2c232031f3aa46642ddb22d82a8d88d8c5e5ea7fe4c7d"
|
||||
sha256: "31ae13c02b8db657ee914dd8912ccb8eefeb86a0957d5a7315d46efe4729472f"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "31.2.18"
|
||||
version: "31.1.19"
|
||||
syncfusion_flutter_signaturepad:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: syncfusion_flutter_signaturepad
|
||||
sha256: "56c35321879b900f59a91e0758af7ca66973447bfdaeb643fe1da0084cbc5b22"
|
||||
sha256: b4f229d542b29f9c3927862194d9f0b15b02f27b13a899e7dd54b04de8b50d24
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "31.2.18"
|
||||
version: "31.1.19"
|
||||
syncfusion_pdfviewer_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: syncfusion_pdfviewer_linux
|
||||
sha256: bae7feb109b38ecf9f8be99bd032503adf98e56da048307a17af8515d0f9d2ed
|
||||
sha256: ef66789a0018e4fa84f17277a5e1ed3ac817aa197d19073a6b6a409256c5c131
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "31.2.18"
|
||||
version: "31.1.19"
|
||||
syncfusion_pdfviewer_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: syncfusion_pdfviewer_macos
|
||||
sha256: "5c02ead2a430cd3f203639ede38ce2e06fb6c8aab6791b0d15c01436f882f482"
|
||||
sha256: "23ba6294111f72b24ddeb36f685e4c7dd02a855a3c514b628926c9b58e45a40a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "31.2.18"
|
||||
version: "31.1.19"
|
||||
syncfusion_pdfviewer_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: syncfusion_pdfviewer_platform_interface
|
||||
sha256: "65641e064385ac65253930ec96a6edc2eea781c9e15bf3d5fa15e459037817e7"
|
||||
sha256: d4061b838a6847cf07ab946346865dc32608691f9fa8d11b3870ac947f236222
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "31.2.18"
|
||||
version: "31.1.19"
|
||||
syncfusion_pdfviewer_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: syncfusion_pdfviewer_web
|
||||
sha256: c55201d9eda49f543b9ad21f539b0f5fbe45ca1a3b30081ee471eb4dff7132f4
|
||||
sha256: "9acc5d3a7a056d81e2ea333fb9f42b6838263c80f54400a69aab73a845290fc2"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "31.2.18"
|
||||
version: "31.1.19"
|
||||
syncfusion_pdfviewer_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: syncfusion_pdfviewer_windows
|
||||
sha256: "1b706e58a95c794687d037e055cf0580370ceee27a59a8cd4e14368534161af8"
|
||||
sha256: "4989d32dbcda945615f3ba5730f814a468d34c0fdaab9edf4805a0f03c3ae62d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "31.2.18"
|
||||
version: "31.1.19"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1297,10 +1297,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00"
|
||||
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.6"
|
||||
version: "0.7.4"
|
||||
toastification:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -1417,10 +1417,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_math
|
||||
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
|
||||
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.0"
|
||||
version: "2.1.4"
|
||||
vm_service:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1503,4 +1503,4 @@ packages:
|
||||
version: "3.1.3"
|
||||
sdks:
|
||||
dart: ">=3.8.1 <4.0.0"
|
||||
flutter: ">=3.35.1"
|
||||
flutter: ">=3.32.0"
|
||||
|
||||
@ -70,7 +70,7 @@ dependencies:
|
||||
fluttertoast: ^9.0.0
|
||||
fl_chart: ^0.70.0
|
||||
flutter_reorderable_grid_view: ^5.5.2
|
||||
syncfusion_flutter_pdfviewer: ^31.2.18
|
||||
syncfusion_flutter_pdfviewer: ^31.1.19
|
||||
pdf_render: ^1.4.12
|
||||
|
||||
# fl_chart: ^1.1.0
|
||||
|
||||
Loading…
Reference in New Issue
Block a user