policy validation bug fix
This commit is contained in:
parent
e59d163a2e
commit
97759378de
File diff suppressed because one or more lines are too long
@ -5,8 +5,8 @@ class Env {
|
|||||||
);
|
);
|
||||||
static const String apiUrl = String.fromEnvironment(
|
static const String apiUrl = String.fromEnvironment(
|
||||||
'API_URL',
|
'API_URL',
|
||||||
// defaultValue: 'https://partner.nhanceindia.in/partner_api/api/', /* Live build (enable index.html line 18) */
|
defaultValue: 'https://partner.nhanceindia.in/partner_api/api/', /* Live build (enable index.html line 18) */
|
||||||
defaultValue: 'https://venbait.in/nhance/partner/dev/api/', /* Test build (enable index.html line 19) */
|
// defaultValue: 'https://venbait.in/nhance/partner/dev/api/', /* Test build (enable index.html line 19) */
|
||||||
// defaultValue: 'http://localhost/nhance_partner_be/', /* localhost build (enable index.html line 19) */
|
// defaultValue: 'http://localhost/nhance_partner_be/', /* localhost build (enable index.html line 19) */
|
||||||
);
|
);
|
||||||
// static const String baseUrl = String.fromEnvironment(
|
// static const String baseUrl = String.fromEnvironment(
|
||||||
|
|||||||
@ -737,6 +737,26 @@ class ApiService {
|
|||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ----------------------------------- Staff Level Count -------------------------------------------------
|
||||||
|
Future<Map<String, dynamic>> fetchStaffLevelCount(id, userId) async {
|
||||||
|
// print(_token);
|
||||||
|
if (_token == null) {
|
||||||
|
await _initializeToken();
|
||||||
|
}
|
||||||
|
|
||||||
|
final url;
|
||||||
|
|
||||||
|
url = Uri.parse('${Env.apiUrl}dashboard/managerDashboard?manager_id=$id&staff_id=$userId');
|
||||||
|
|
||||||
|
final headers = {
|
||||||
|
'Authorization': 'Bearer $_token' ?? '',
|
||||||
|
'app-signature': Env.App_Signature,
|
||||||
|
};
|
||||||
|
|
||||||
|
final response = await _makeGetRequest(url, headers);
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------- Dashboard -------------------------------------------------
|
// ----------------------------------- Dashboard -------------------------------------------------
|
||||||
Future<Map<String, dynamic>> fetchDashboard(int id, role, userId) async {
|
Future<Map<String, dynamic>> fetchDashboard(int id, role, userId) async {
|
||||||
// print(_token);
|
// print(_token);
|
||||||
@ -1372,6 +1392,7 @@ class ApiService {
|
|||||||
String? fromDate,
|
String? fromDate,
|
||||||
String? toDate,
|
String? toDate,
|
||||||
String? selectedStaffId,
|
String? selectedStaffId,
|
||||||
|
String ? selectedStatus
|
||||||
}) async {
|
}) async {
|
||||||
print(
|
print(
|
||||||
"fetchPolicyDataOnlyListAPI - mangerID- $managerId - id - $id - role -$role ",
|
"fetchPolicyDataOnlyListAPI - mangerID- $managerId - id - $id - role -$role ",
|
||||||
@ -1387,9 +1408,10 @@ class ApiService {
|
|||||||
if (role == 'manager') {
|
if (role == 'manager') {
|
||||||
query = 'manager_id=$managerId';
|
query = 'manager_id=$managerId';
|
||||||
} else if (role == 'Accounts') {
|
} else if (role == 'Accounts') {
|
||||||
query = 'manager_id=$managerId';
|
// query = 'manager_id=$managerId';
|
||||||
} else if (role == 'Accounts') {
|
query = selectedStatus != null
|
||||||
query = 'manager_id=$managerId';
|
? 'manager_id=$managerId&show_policy_report=${Uri.encodeComponent(selectedStatus)}'
|
||||||
|
: 'manager_id=$managerId';
|
||||||
} else if (role == 'staff') {
|
} else if (role == 'staff') {
|
||||||
query = 'staff_id=$id';
|
query = 'staff_id=$id';
|
||||||
} else if (role == 'handler') {
|
} else if (role == 'handler') {
|
||||||
@ -1573,7 +1595,7 @@ class ApiService {
|
|||||||
|
|
||||||
// --------------------------------- MASTER DATA DROPDOWN----------------------------------------------
|
// --------------------------------- MASTER DATA DROPDOWN----------------------------------------------
|
||||||
|
|
||||||
Future<Map<String, dynamic>> fetchMasterDropDown(String val) async {
|
Future<Map<String, dynamic>> fetchMasterDropDown(String val ,[String? type]) async {
|
||||||
// print(_token);
|
// print(_token);
|
||||||
if (_token == null) {
|
if (_token == null) {
|
||||||
await _initializeToken();
|
await _initializeToken();
|
||||||
@ -1586,7 +1608,16 @@ class ApiService {
|
|||||||
if (val == 'staffRole') {
|
if (val == 'staffRole') {
|
||||||
url = Uri.parse('${Env.apiUrl}master/getRoleMaster');
|
url = Uri.parse('${Env.apiUrl}master/getRoleMaster');
|
||||||
} else if (val == 'vehicleType') {
|
} else if (val == 'vehicleType') {
|
||||||
|
// url = Uri.parse('${Env.apiUrl}master/getVehicleTypeMaster');
|
||||||
|
if(type == 'dropdown'){
|
||||||
|
url = Uri.parse('${Env.apiUrl}master/getVehicleTypeMaster?value_for=dropdown');
|
||||||
|
}else{
|
||||||
url = Uri.parse('${Env.apiUrl}master/getVehicleTypeMaster');
|
url = Uri.parse('${Env.apiUrl}master/getVehicleTypeMaster');
|
||||||
|
}
|
||||||
|
// url = Uri.parse('${Env.apiUrl}master/getVehicleTypeMaster')
|
||||||
|
// .replace(queryParameters: {
|
||||||
|
// if (type != null) 'value_for': type,
|
||||||
|
//});
|
||||||
} else if (val == 'InsuranceType') {
|
} else if (val == 'InsuranceType') {
|
||||||
url = Uri.parse('${Env.apiUrl}master/getInsurancePlanTypeMaster');
|
url = Uri.parse('${Env.apiUrl}master/getInsurancePlanTypeMaster');
|
||||||
} else if (val == 'Insurers') {
|
} else if (val == 'Insurers') {
|
||||||
@ -2083,9 +2114,9 @@ class ApiService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> generatePolicyExcel(managerId, fromDate, toDate, searchValue) async {
|
Future<void> generatePolicyExcel(managerId, fromDate, toDate, searchValue,flag) async {
|
||||||
final url = Uri.parse(
|
final url = Uri.parse(
|
||||||
'${Env.apiUrl}reports/policy-excel?manager_id=$managerId&from_date=${fromDate ?? ''}&to_date=${toDate ?? ''}&search=${searchValue ?? ''}',
|
'${Env.apiUrl}reports/policy-excel?manager_id=$managerId&from_date=${fromDate ?? ''}&to_date=${toDate ?? ''}&search=${searchValue ?? ''}&show_policy_report=${flag ?? ''}',
|
||||||
);
|
);
|
||||||
print('getPdfDownload policy-excel - $url');
|
print('getPdfDownload policy-excel - $url');
|
||||||
await _initializeToken();
|
await _initializeToken();
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
@ -32,6 +34,17 @@ class _AppHeaderState extends ConsumerState<AppHeader> {
|
|||||||
OverlayEntry? _overlayEntry;
|
OverlayEntry? _overlayEntry;
|
||||||
String? _activeMenu;
|
String? _activeMenu;
|
||||||
|
|
||||||
|
Timer? _queueTimer;
|
||||||
|
int totalAssigned = 0;
|
||||||
|
int totalPending = 0;
|
||||||
|
int todayAssigned = 0;
|
||||||
|
int todayPending = 0;
|
||||||
|
int todayInProgress = 0;
|
||||||
|
int todayCompleted = 0;
|
||||||
|
|
||||||
|
int queueCount = 0; // badge count
|
||||||
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
@ -42,6 +55,7 @@ class _AppHeaderState extends ConsumerState<AppHeader> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
|
_queueTimer?.cancel();
|
||||||
_hidePopup();
|
_hidePopup();
|
||||||
super.dispose();
|
super.dispose();
|
||||||
}
|
}
|
||||||
@ -91,7 +105,70 @@ class _AppHeaderState extends ConsumerState<AppHeader> {
|
|||||||
role = prefs.getString('userRole') ?? "Guest";
|
role = prefs.getString('userRole') ?? "Guest";
|
||||||
});
|
});
|
||||||
print('AppHeader Role - $role');
|
print('AppHeader Role - $role');
|
||||||
|
// Initial fetch + auto refresh
|
||||||
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
|
print('111');
|
||||||
|
if (role == 'staff') {
|
||||||
|
print('staff 111');
|
||||||
|
getStaffLevelCount(profileData?['manager_id'], profileData?['id']);
|
||||||
|
|
||||||
|
_queueTimer = Timer.periodic(
|
||||||
|
const Duration(seconds: 30),
|
||||||
|
(_) => getStaffLevelCount(
|
||||||
|
profileData?['manager_id'],
|
||||||
|
profileData?['id'],
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> getStaffLevelCount(managerId, userId) async {
|
||||||
|
print('staff 222');
|
||||||
|
print('$managerId ,$userId');
|
||||||
|
print('staff 333');
|
||||||
|
try {
|
||||||
|
final response = await apiService.fetchStaffLevelCount(managerId, userId);
|
||||||
|
|
||||||
|
if (response['status'] == 'success') {
|
||||||
|
final List summary =
|
||||||
|
response['data']['staff_level_pending_summary'] ?? [];
|
||||||
|
|
||||||
|
int _totalAssigned = 0;
|
||||||
|
int _totalPending = 0;
|
||||||
|
int _todayAssigned = 0;
|
||||||
|
int _todayPending = 0;
|
||||||
|
int _todayInProgress = 0;
|
||||||
|
int _todayCompleted = 0;
|
||||||
|
|
||||||
|
for (final item in summary) {
|
||||||
|
_totalAssigned += int.parse(item['total_assigned'] ?? '0');
|
||||||
|
_totalPending += int.parse(item['total_pending'] ?? '0');
|
||||||
|
_todayAssigned += int.parse(item['today_assigned'] ?? '0');
|
||||||
|
_todayPending += int.parse(item['today_pending'] ?? '0');
|
||||||
|
_todayInProgress += int.parse(item['today_in_progress'] ?? '0');
|
||||||
|
_todayCompleted += int.parse(item['today_completed'] ?? '0');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!mounted) return;
|
||||||
|
|
||||||
|
setState(() {
|
||||||
|
totalAssigned = _totalAssigned;
|
||||||
|
totalPending = _totalPending;
|
||||||
|
todayAssigned = _todayAssigned;
|
||||||
|
todayPending = _todayPending;
|
||||||
|
todayInProgress = _todayInProgress;
|
||||||
|
todayCompleted = _todayCompleted;
|
||||||
|
|
||||||
|
queueCount = totalPending + todayPending + todayInProgress;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
debugPrint('Queue API Exception: $e');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Clear dashboard filters
|
// Clear dashboard filters
|
||||||
Future<void> _clearDashboardFilters() async {
|
Future<void> _clearDashboardFilters() async {
|
||||||
@ -408,6 +485,12 @@ class _AppHeaderState extends ConsumerState<AppHeader> {
|
|||||||
),
|
),
|
||||||
const SizedBox(width: 16),
|
const SizedBox(width: 16),
|
||||||
],
|
],
|
||||||
|
|
||||||
|
if (role == 'staff') ...[
|
||||||
|
_buildQueueIcon(),
|
||||||
|
const SizedBox(width: 12),
|
||||||
|
],
|
||||||
|
|
||||||
// if (role != 'Accounts') ...[
|
// if (role != 'Accounts') ...[
|
||||||
if (!['Accounts', 'agent'].contains(role)) ...[
|
if (!['Accounts', 'agent'].contains(role)) ...[
|
||||||
// Proposal button
|
// Proposal button
|
||||||
@ -564,6 +647,123 @@ class _AppHeaderState extends ConsumerState<AppHeader> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget _buildQueueIcon() {
|
||||||
|
return Builder(
|
||||||
|
builder: (iconContext) {
|
||||||
|
return MouseRegion(
|
||||||
|
onEnter: (_) {
|
||||||
|
final box = iconContext.findRenderObject() as RenderBox;
|
||||||
|
_showQueuePopup(
|
||||||
|
context,
|
||||||
|
box.localToGlobal(Offset.zero),
|
||||||
|
box.size,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
onExit: (_) => _hidePopup(),
|
||||||
|
child: Stack(
|
||||||
|
clipBehavior: Clip.none,
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
width: 36,
|
||||||
|
height: 36,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.white,
|
||||||
|
borderRadius: BorderRadius.circular(8),
|
||||||
|
border: Border.all(color: Colors.grey.shade200),
|
||||||
|
),
|
||||||
|
child: const Icon(Icons.priority_high, size: 20),
|
||||||
|
),
|
||||||
|
|
||||||
|
// 🔴 Badge
|
||||||
|
// if (queueCount > 0)
|
||||||
|
Positioned(
|
||||||
|
right: -6,
|
||||||
|
top: -6,
|
||||||
|
child: Container(
|
||||||
|
padding: const EdgeInsets.all(4),
|
||||||
|
decoration: const BoxDecoration(
|
||||||
|
color: Colors.red,
|
||||||
|
shape: BoxShape.circle,
|
||||||
|
),
|
||||||
|
constraints:
|
||||||
|
const BoxConstraints(minWidth: 18, minHeight: 18),
|
||||||
|
child: Text(
|
||||||
|
queueCount.toString(),
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: const TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontSize: 10,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void _showQueuePopup(BuildContext context, Offset offset, Size size) {
|
||||||
|
_hidePopup();
|
||||||
|
|
||||||
|
_overlayEntry = OverlayEntry(
|
||||||
|
builder: (_) => Positioned(
|
||||||
|
left: offset.dx,
|
||||||
|
top: offset.dy + size.height + 4,
|
||||||
|
child: MouseRegion(
|
||||||
|
onExit: (_) => _hidePopup(),
|
||||||
|
child: Material(
|
||||||
|
elevation: 10,
|
||||||
|
borderRadius: BorderRadius.circular(8),
|
||||||
|
child: Container(
|
||||||
|
width: 180,
|
||||||
|
padding: const EdgeInsets.all(12),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.white,
|
||||||
|
borderRadius: BorderRadius.circular(8),
|
||||||
|
),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
_queueRow('Total Assigned', totalAssigned),
|
||||||
|
_queueRow('Total Pending', totalPending),
|
||||||
|
const Divider(),
|
||||||
|
_queueRow('Today Assigned', todayAssigned),
|
||||||
|
_queueRow('Today Pending', todayPending),
|
||||||
|
_queueRow('Today In Progress', todayInProgress),
|
||||||
|
_queueRow('Today Completed', todayCompleted),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
Overlay.of(context, rootOverlay: true).insert(_overlayEntry!);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _queueRow(String label, int value) {
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(vertical: 4),
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
Text(label,
|
||||||
|
style:
|
||||||
|
GoogleFonts.inter(fontSize: 12, color: Colors.grey.shade700)),
|
||||||
|
Text(value.toString(),
|
||||||
|
style: GoogleFonts.inter(
|
||||||
|
fontSize: 12, fontWeight: FontWeight.w600)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Simple menu item widget
|
// Simple menu item widget
|
||||||
Widget _buildMenuItem({
|
Widget _buildMenuItem({
|
||||||
required IconData icon,
|
required IconData icon,
|
||||||
|
|||||||
@ -178,7 +178,7 @@ class EnquiryTabState extends ConsumerState<EnquiryTab> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final response = await apiService.fetchMasterDropDown('vehicleType');
|
final response = await apiService.fetchMasterDropDown('vehicleType','dropdown');
|
||||||
|
|
||||||
if (response['status'] == 200) {
|
if (response['status'] == 200) {
|
||||||
print('getVehicleTypeData - ${response['data']}');
|
print('getVehicleTypeData - ${response['data']}');
|
||||||
|
|||||||
@ -842,7 +842,7 @@ class AgentState extends ConsumerState<Agent> {
|
|||||||
contentPadding: EdgeInsets.all(3),
|
contentPadding: EdgeInsets.all(3),
|
||||||
filled: true,
|
filled: true,
|
||||||
fillColor: Colors.white,
|
fillColor: Colors.white,
|
||||||
hintText: "Search Executive...",
|
hintText: "Select Executive...",
|
||||||
hintStyle: GoogleFonts.inter(
|
hintStyle: GoogleFonts.inter(
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
color: Colors.black,
|
color: Colors.black,
|
||||||
|
|||||||
@ -713,7 +713,7 @@ class StaffState extends ConsumerState<Staff> {
|
|||||||
contentPadding: EdgeInsets.all(3),
|
contentPadding: EdgeInsets.all(3),
|
||||||
filled: true,
|
filled: true,
|
||||||
fillColor: Colors.white,
|
fillColor: Colors.white,
|
||||||
hintText: "Search Role...",
|
hintText: "Select Role...",
|
||||||
hintStyle: GoogleFonts.inter(
|
hintStyle: GoogleFonts.inter(
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
color: Colors.black,
|
color: Colors.black,
|
||||||
|
|||||||
@ -1082,7 +1082,7 @@ class EnquiryHandlerState extends ConsumerState<EnquiryListHandler> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final response = await apiService.fetchMasterDropDown('vehicleType');
|
final response = await apiService.fetchMasterDropDown('vehicleType','dropdown');
|
||||||
|
|
||||||
if (response['status'] == 200) {
|
if (response['status'] == 200) {
|
||||||
print('getVehicleTypeData - ${response['data']}');
|
print('getVehicleTypeData - ${response['data']}');
|
||||||
|
|||||||
@ -1322,7 +1322,7 @@ class EnquiryStaffState extends ConsumerState<EnquiryListStaffInline> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final response = await apiService.fetchMasterDropDown('vehicleType');
|
final response = await apiService.fetchMasterDropDown('vehicleType','dropdown');
|
||||||
|
|
||||||
if (response['status'] == 200) {
|
if (response['status'] == 200) {
|
||||||
print('getVehicleTypeData - ${response['data']}');
|
print('getVehicleTypeData - ${response['data']}');
|
||||||
|
|||||||
@ -646,13 +646,13 @@ class EnquiryStaffState extends ConsumerState<EnquiryListStaffInline> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final response = await apiService.fetchMasterDropDown('vehicleType');
|
final response = await apiService.fetchMasterDropDown('vehicleType','dropdown');
|
||||||
|
|
||||||
if (response['status'] == 200) {
|
if (response['status'] == 200) {
|
||||||
// print('EIL 2getVT-Data - ${response['data']}');
|
print('EIL 2getVT-Data - ${response['data']}');
|
||||||
setState(() {
|
setState(() {
|
||||||
// getVehicleTypeData = List<Map<String, dynamic>>.from(response['data']);
|
getVehicleTypeData = List<Map<String, dynamic>>.from(response['data']);
|
||||||
getVehicleTypeData = List<Map<String, dynamic>>.from(response['data']).where((item) => item['is_active']?.toString() == '1').toList();
|
// getVehicleTypeData = List<Map<String, dynamic>>.from(response['data']).where((item) => item['is_active']?.toString() == '1').toList();
|
||||||
|
|
||||||
// print('EIL 3getVT-B4filterData : $getVehicleTypeData');
|
// print('EIL 3getVT-B4filterData : $getVehicleTypeData');
|
||||||
filteredVehicleData = List.from(getVehicleTypeData);
|
filteredVehicleData = List.from(getVehicleTypeData);
|
||||||
|
|||||||
@ -1557,7 +1557,7 @@ class EnquiryStaffState extends ConsumerState<EnquiryListStaffInline> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final response = await apiService.fetchMasterDropDown('vehicleType');
|
final response = await apiService.fetchMasterDropDown('vehicleType','dropdown');
|
||||||
|
|
||||||
if (response['status'] == 200) {
|
if (response['status'] == 200) {
|
||||||
print('getVehicleTypeData - ${response['data']}');
|
print('getVehicleTypeData - ${response['data']}');
|
||||||
|
|||||||
@ -1132,7 +1132,7 @@ class EnquiryStaffState extends ConsumerState<EnquiryListStaffInline> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final response = await apiService.fetchMasterDropDown('vehicleType');
|
final response = await apiService.fetchMasterDropDown('vehicleType','dropdown');
|
||||||
|
|
||||||
if (response['status'] == 200) {
|
if (response['status'] == 200) {
|
||||||
print('getVehicleTypeData - ${response['data']}');
|
print('getVehicleTypeData - ${response['data']}');
|
||||||
|
|||||||
@ -226,7 +226,7 @@ class RaiseEnqFormState extends ConsumerState<RaiseEnqForm> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final response = await apiService.fetchMasterDropDown('vehicleType');
|
final response = await apiService.fetchMasterDropDown('vehicleType','dropdown');
|
||||||
|
|
||||||
if (response['status'] == 200) {
|
if (response['status'] == 200) {
|
||||||
print('getVehicleTypeData - ${response['data']}');
|
print('getVehicleTypeData - ${response['data']}');
|
||||||
|
|||||||
@ -54,7 +54,7 @@ class policylistState extends ConsumerState<policylist> {
|
|||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
SelectedStatus = 'All';
|
||||||
apiService = ApiService();
|
apiService = ApiService();
|
||||||
|
|
||||||
for (String field in tabHeader) {
|
for (String field in tabHeader) {
|
||||||
@ -68,7 +68,7 @@ class policylistState extends ConsumerState<policylist> {
|
|||||||
|
|
||||||
print("D49 => r : $roleId | mId: $managerId | uId: $userId ");
|
print("D49 => r : $roleId | mId: $managerId | uId: $userId ");
|
||||||
if (userId != null) {
|
if (userId != null) {
|
||||||
getStaffList(managerId!, userId, roleId);
|
getStaffList(managerId!, userId, roleId , selectedStatus : SelectedStatus ?? 'All');
|
||||||
}
|
}
|
||||||
|
|
||||||
refreshSub = ref.listenManual<bool>(policyDataAcurancyRefreshProvider, (
|
refreshSub = ref.listenManual<bool>(policyDataAcurancyRefreshProvider, (
|
||||||
@ -79,7 +79,7 @@ class policylistState extends ConsumerState<policylist> {
|
|||||||
print('refresh triggered Quick Creation');
|
print('refresh triggered Quick Creation');
|
||||||
|
|
||||||
// callRefresh();
|
// callRefresh();
|
||||||
getStaffList(managerId!, userId, roleId);
|
getStaffList(managerId!, userId, roleId,selectedStatus : SelectedStatus ?? 'All');
|
||||||
ref.read(policyDataAcurancyRefreshProvider.notifier).state = false;
|
ref.read(policyDataAcurancyRefreshProvider.notifier).state = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -93,7 +93,7 @@ class policylistState extends ConsumerState<policylist> {
|
|||||||
|
|
||||||
// print("D61 => r : $roleId | mId: $id | uId: $userId");
|
// print("D61 => r : $roleId | mId: $id | uId: $userId");
|
||||||
if (userId != null) {
|
if (userId != null) {
|
||||||
getStaffList(managerId, userId, roleId);
|
getStaffList(managerId, userId, roleId,selectedStatus : SelectedStatus ?? 'All');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -103,6 +103,7 @@ class policylistState extends ConsumerState<policylist> {
|
|||||||
role, {
|
role, {
|
||||||
String fromDate = '',
|
String fromDate = '',
|
||||||
String toDate = '',
|
String toDate = '',
|
||||||
|
String selectedStatus = 'All',
|
||||||
}) async {
|
}) async {
|
||||||
print('D68 => Fns called => $managerId | $role');
|
print('D68 => Fns called => $managerId | $role');
|
||||||
setState(() {
|
setState(() {
|
||||||
@ -137,6 +138,7 @@ class policylistState extends ConsumerState<policylist> {
|
|||||||
fromDate: fromDt,
|
fromDate: fromDt,
|
||||||
toDate: toDt,
|
toDate: toDt,
|
||||||
selectedStaffId: SelectedStaffId ?? '',
|
selectedStaffId: SelectedStaffId ?? '',
|
||||||
|
selectedStatus:selectedStatus
|
||||||
);
|
);
|
||||||
|
|
||||||
if (response['status'] == 'success') {
|
if (response['status'] == 'success') {
|
||||||
@ -226,7 +228,7 @@ class policylistState extends ConsumerState<policylist> {
|
|||||||
print('filterDateRange 1s');
|
print('filterDateRange 1s');
|
||||||
print('manager - $managerId - userID -$userId - roledId -$roleId');
|
print('manager - $managerId - userID -$userId - roledId -$roleId');
|
||||||
|
|
||||||
getStaffList(managerId!, userId, roleId);
|
getStaffList(managerId!, userId, roleId, selectedStatus : SelectedStatus ?? 'All');
|
||||||
}
|
}
|
||||||
print('filterDateRange 1');
|
print('filterDateRange 1');
|
||||||
}
|
}
|
||||||
@ -236,13 +238,13 @@ class policylistState extends ConsumerState<policylist> {
|
|||||||
SelectedStaffId = null;
|
SelectedStaffId = null;
|
||||||
controllers['startDate']!.clear();
|
controllers['startDate']!.clear();
|
||||||
controllers['endDate']!.clear();
|
controllers['endDate']!.clear();
|
||||||
|
SelectedStatus ='All';
|
||||||
controllers['startDate']?.text = '';
|
controllers['startDate']?.text = '';
|
||||||
controllers['endDate']?.text = '';
|
controllers['endDate']?.text = '';
|
||||||
// Reset the FormField validation
|
// Reset the FormField validation
|
||||||
_formKey.currentState?.reset();
|
_formKey.currentState?.reset();
|
||||||
});
|
});
|
||||||
getStaffList(managerId, userId, roleId);
|
getStaffList(managerId, userId, roleId, selectedStatus : SelectedStatus ?? 'All');
|
||||||
}
|
}
|
||||||
|
|
||||||
void filterData(String query) {
|
void filterData(String query) {
|
||||||
@ -304,6 +306,7 @@ class policylistState extends ConsumerState<policylist> {
|
|||||||
fromDate,
|
fromDate,
|
||||||
toDate,
|
toDate,
|
||||||
searchValue,
|
searchValue,
|
||||||
|
SelectedStatus ?? 'All'
|
||||||
);
|
);
|
||||||
// Map your controllers and IDs to the API parameters
|
// Map your controllers and IDs to the API parameters
|
||||||
// final String fromDate = controllers['startDate']!.text; // "11-01-2025"
|
// final String fromDate = controllers['startDate']!.text; // "11-01-2025"
|
||||||
@ -429,8 +432,11 @@ class policylistState extends ConsumerState<policylist> {
|
|||||||
selectedStaffId: SelectedStaffId,
|
selectedStaffId: SelectedStaffId,
|
||||||
startController: controllers['startDate']!,
|
startController: controllers['startDate']!,
|
||||||
endController: controllers['endDate']!,
|
endController: controllers['endDate']!,
|
||||||
|
selectedStatusVal: SelectedStatus,
|
||||||
onStatusChanged: (val) {
|
onStatusChanged: (val) {
|
||||||
|
setState(() {
|
||||||
SelectedStatus = val; // update parent
|
SelectedStatus = val; // update parent
|
||||||
|
});
|
||||||
},
|
},
|
||||||
formKey: _formKey,
|
formKey: _formKey,
|
||||||
isMobile: ResponsiveLayout.isMobile(context),
|
isMobile: ResponsiveLayout.isMobile(context),
|
||||||
@ -465,8 +471,11 @@ class policylistState extends ConsumerState<policylist> {
|
|||||||
selectedStaffId: SelectedStaffId,
|
selectedStaffId: SelectedStaffId,
|
||||||
startController: controllers['startDate']!,
|
startController: controllers['startDate']!,
|
||||||
endController: controllers['endDate']!,
|
endController: controllers['endDate']!,
|
||||||
|
selectedStatusVal: SelectedStatus,
|
||||||
onStatusChanged: (val) {
|
onStatusChanged: (val) {
|
||||||
|
setState(() {
|
||||||
SelectedStatus = val; // update parent
|
SelectedStatus = val; // update parent
|
||||||
|
});
|
||||||
},
|
},
|
||||||
formKey: _formKey,
|
formKey: _formKey,
|
||||||
isMobile: ResponsiveLayout.isMobile(context),
|
isMobile: ResponsiveLayout.isMobile(context),
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -187,6 +187,11 @@ class _DateFilterRowState extends ConsumerState<DateFilterRow> {
|
|||||||
buildSelectStaffMem(context),
|
buildSelectStaffMem(context),
|
||||||
SizedBox(width: spacing),
|
SizedBox(width: spacing),
|
||||||
],
|
],
|
||||||
|
if (widget.role == 'Accounts' && widget.dataFrom == 'Policy') ...[
|
||||||
|
buildPolicyReportFlagSearch(context),
|
||||||
|
SizedBox(width: spacing),
|
||||||
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
final buttons = [
|
final buttons = [
|
||||||
@ -480,6 +485,142 @@ class _DateFilterRowState extends ConsumerState<DateFilterRow> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget buildPolicyReportFlagSearch(BuildContext context) {
|
||||||
|
|
||||||
|
final List<Map<String, dynamic>> policyReportStatusOptions;
|
||||||
|
|
||||||
|
policyReportStatusOptions = [
|
||||||
|
{'id': 'All', 'status': 'All'},
|
||||||
|
{'id': 'Verified', 'status': 'Verified'},
|
||||||
|
{'id': 'Not Verified', 'status': 'Not Verified'},
|
||||||
|
];
|
||||||
|
|
||||||
|
Map<String, dynamic>? selectedPolicyReportStatusMap = policyReportStatusOptions
|
||||||
|
.where((element) => element['status'] == widget.selectedStatusVal)
|
||||||
|
.cast<Map<String, dynamic>>()
|
||||||
|
.toList()
|
||||||
|
.firstOrNull;
|
||||||
|
|
||||||
|
Map<String, dynamic>? selectedItem = policyReportStatusOptions
|
||||||
|
.cast<Map<String, dynamic>>()
|
||||||
|
.firstWhere(
|
||||||
|
(e) => e['status'] == widget.selectedStatusVal,
|
||||||
|
orElse: () => {}, // return empty map
|
||||||
|
);
|
||||||
|
|
||||||
|
if (selectedItem.isEmpty) selectedItem = null;
|
||||||
|
// Map<String, dynamic>? selectedStatus; // ✅ Default: no selection
|
||||||
|
|
||||||
|
return Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
// Text('Status', style: _textStyle),
|
||||||
|
// SizedBox(height: 5),
|
||||||
|
SizedBox(
|
||||||
|
height: 35,
|
||||||
|
child: Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.circular(5.0),
|
||||||
|
border: Border.all(color: Color(0xFFE2E8F0)),
|
||||||
|
// color: Colors.black,
|
||||||
|
),
|
||||||
|
width: ResponsiveLayout.isMobile(context)
|
||||||
|
? null
|
||||||
|
: MediaQuery.of(context).size.width * 0.14,
|
||||||
|
child: DropdownSearch<Map<String, dynamic>>(
|
||||||
|
// selectedItem: selectedStatus,
|
||||||
|
selectedItem: selectedPolicyReportStatusMap,
|
||||||
|
// selectedItem: policyReportStatusOptions.firstWhere(
|
||||||
|
// (element) => element['status'] == selectedStatusVal,
|
||||||
|
// orElse: () => null, // ✅ return null if not found
|
||||||
|
// ),
|
||||||
|
items: (filter, infiniteScrollProps) => policyReportStatusOptions,
|
||||||
|
|
||||||
|
itemAsString: (val) => val['status'].toString(),
|
||||||
|
compareFn: (item, selectedItem) =>
|
||||||
|
item['status'] == selectedItem['status'],
|
||||||
|
|
||||||
|
dropdownBuilder: (context, selectedItem) => Align(
|
||||||
|
alignment: Alignment.centerLeft,
|
||||||
|
|
||||||
|
child: Text(
|
||||||
|
selectedItem != null ? selectedItem['status'].toString() : "",
|
||||||
|
style: GoogleFonts.poppins(fontSize: 11, color: Colors.black),
|
||||||
|
overflow: TextOverflow.ellipsis,
|
||||||
|
maxLines: 1,
|
||||||
|
softWrap: false,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
// validator: (val) {
|
||||||
|
// if (val == null) {
|
||||||
|
// return "Please select a status";
|
||||||
|
// }
|
||||||
|
// return null;
|
||||||
|
// },
|
||||||
|
decoratorProps: DropDownDecoratorProps(
|
||||||
|
decoration:
|
||||||
|
AppInputDecorations.dropdownDecoration(
|
||||||
|
label: "Select Policy Status",
|
||||||
|
).copyWith(
|
||||||
|
filled: true,
|
||||||
|
fillColor: Colors.white,
|
||||||
|
isDense: true, // 👈 reduces built-in vertical padding
|
||||||
|
|
||||||
|
contentPadding: const EdgeInsets.symmetric(
|
||||||
|
horizontal: 6,
|
||||||
|
vertical: 1, // 👈 adjust this to make the field shorter
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// popupProps: PopupProps.menu(
|
||||||
|
// fit: FlexFit.loose,
|
||||||
|
// constraints: BoxConstraints(maxHeight: 200),
|
||||||
|
// menuProps: MenuProps(backgroundColor: Colors.white),
|
||||||
|
// showSearchBox: false, // 👈 no search box since it's static
|
||||||
|
//
|
||||||
|
// ),
|
||||||
|
popupProps: PopupProps.menu(
|
||||||
|
fit: FlexFit.loose,
|
||||||
|
constraints: const BoxConstraints(maxHeight: 200),
|
||||||
|
menuProps: const MenuProps(backgroundColor: Colors.white),
|
||||||
|
showSearchBox: false,
|
||||||
|
|
||||||
|
itemBuilder: (context, item, isDisabled, isSelected) {
|
||||||
|
// ✅ 4 parameters
|
||||||
|
return Container(
|
||||||
|
// color: isSelected ? Colors.blue.withOpacity(0.1) : null,
|
||||||
|
padding: const EdgeInsets.symmetric(
|
||||||
|
horizontal: 12,
|
||||||
|
vertical: 6,
|
||||||
|
),
|
||||||
|
child: Text(
|
||||||
|
item['status'].toString(),
|
||||||
|
style: GoogleFonts.inter(
|
||||||
|
fontSize: 13,
|
||||||
|
color: Colors.black,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
|
||||||
|
onChanged: (val) {
|
||||||
|
if (val != null) {
|
||||||
|
print("Selected Status: ${val['status']}");
|
||||||
|
if (widget.onStatusChanged != null)
|
||||||
|
widget.onStatusChanged!(val['status']);
|
||||||
|
|
||||||
|
Future.microtask(() => widget.onFilter());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
Widget buildSelectStaffMem(BuildContext context) {
|
Widget buildSelectStaffMem(BuildContext context) {
|
||||||
// Map<String, dynamic>? selectedVehicle = filteredStaffData.firstWhere(
|
// Map<String, dynamic>? selectedVehicle = filteredStaffData.firstWhere(
|
||||||
// (item) => item['id'].toString() == selectedStaff,
|
// (item) => item['id'].toString() == selectedStaff,
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
platform :osx, '10.14'
|
platform :osx, '10.15'
|
||||||
|
|
||||||
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||||
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||||
|
|||||||
@ -1,42 +1,261 @@
|
|||||||
PODS:
|
PODS:
|
||||||
|
- AppAuth (2.0.0):
|
||||||
|
- AppAuth/Core (= 2.0.0)
|
||||||
|
- AppAuth/ExternalUserAgent (= 2.0.0)
|
||||||
|
- AppAuth/Core (2.0.0)
|
||||||
|
- AppAuth/ExternalUserAgent (2.0.0):
|
||||||
|
- AppAuth/Core
|
||||||
|
- AppCheckCore (11.2.0):
|
||||||
|
- GoogleUtilities/Environment (~> 8.0)
|
||||||
|
- GoogleUtilities/UserDefaults (~> 8.0)
|
||||||
|
- PromisesObjC (~> 2.4)
|
||||||
- connectivity_plus (0.0.1):
|
- connectivity_plus (0.0.1):
|
||||||
- FlutterMacOS
|
- FlutterMacOS
|
||||||
|
- device_info_plus (0.0.1):
|
||||||
|
- FlutterMacOS
|
||||||
|
- file_picker (0.0.1):
|
||||||
|
- FlutterMacOS
|
||||||
|
- Firebase/Auth (12.4.0):
|
||||||
|
- Firebase/CoreOnly
|
||||||
|
- FirebaseAuth (~> 12.4.0)
|
||||||
|
- Firebase/CoreOnly (12.4.0):
|
||||||
|
- FirebaseCore (~> 12.4.0)
|
||||||
|
- Firebase/Messaging (12.4.0):
|
||||||
|
- Firebase/CoreOnly
|
||||||
|
- FirebaseMessaging (~> 12.4.0)
|
||||||
|
- firebase_auth (6.1.2):
|
||||||
|
- Firebase/Auth (~> 12.4.0)
|
||||||
|
- Firebase/CoreOnly (~> 12.4.0)
|
||||||
|
- firebase_core
|
||||||
|
- FlutterMacOS
|
||||||
|
- firebase_core (4.2.1):
|
||||||
|
- Firebase/CoreOnly (~> 12.4.0)
|
||||||
|
- FlutterMacOS
|
||||||
|
- firebase_messaging (16.0.4):
|
||||||
|
- Firebase/CoreOnly (~> 12.4.0)
|
||||||
|
- Firebase/Messaging (~> 12.4.0)
|
||||||
|
- firebase_core
|
||||||
|
- FlutterMacOS
|
||||||
|
- FirebaseAppCheckInterop (12.4.0)
|
||||||
|
- FirebaseAuth (12.4.0):
|
||||||
|
- FirebaseAppCheckInterop (~> 12.4.0)
|
||||||
|
- FirebaseAuthInterop (~> 12.4.0)
|
||||||
|
- FirebaseCore (~> 12.4.0)
|
||||||
|
- FirebaseCoreExtension (~> 12.4.0)
|
||||||
|
- GoogleUtilities/AppDelegateSwizzler (~> 8.1)
|
||||||
|
- GoogleUtilities/Environment (~> 8.1)
|
||||||
|
- GTMSessionFetcher/Core (< 6.0, >= 3.4)
|
||||||
|
- RecaptchaInterop (~> 101.0)
|
||||||
|
- FirebaseAuthInterop (12.4.0)
|
||||||
|
- FirebaseCore (12.4.0):
|
||||||
|
- FirebaseCoreInternal (~> 12.4.0)
|
||||||
|
- GoogleUtilities/Environment (~> 8.1)
|
||||||
|
- GoogleUtilities/Logger (~> 8.1)
|
||||||
|
- FirebaseCoreExtension (12.4.0):
|
||||||
|
- FirebaseCore (~> 12.4.0)
|
||||||
|
- FirebaseCoreInternal (12.4.0):
|
||||||
|
- "GoogleUtilities/NSData+zlib (~> 8.1)"
|
||||||
|
- FirebaseInstallations (12.4.0):
|
||||||
|
- FirebaseCore (~> 12.4.0)
|
||||||
|
- GoogleUtilities/Environment (~> 8.1)
|
||||||
|
- GoogleUtilities/UserDefaults (~> 8.1)
|
||||||
|
- PromisesObjC (~> 2.4)
|
||||||
|
- FirebaseMessaging (12.4.0):
|
||||||
|
- FirebaseCore (~> 12.4.0)
|
||||||
|
- FirebaseInstallations (~> 12.4.0)
|
||||||
|
- GoogleDataTransport (~> 10.1)
|
||||||
|
- GoogleUtilities/AppDelegateSwizzler (~> 8.1)
|
||||||
|
- GoogleUtilities/Environment (~> 8.1)
|
||||||
|
- GoogleUtilities/Reachability (~> 8.1)
|
||||||
|
- GoogleUtilities/UserDefaults (~> 8.1)
|
||||||
|
- nanopb (~> 3.30910.0)
|
||||||
- flutter_secure_storage_macos (6.1.3):
|
- flutter_secure_storage_macos (6.1.3):
|
||||||
- FlutterMacOS
|
- FlutterMacOS
|
||||||
- FlutterMacOS (1.0.0)
|
- FlutterMacOS (1.0.0)
|
||||||
|
- google_sign_in_ios (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- FlutterMacOS
|
||||||
|
- GoogleSignIn (~> 9.0)
|
||||||
|
- GTMSessionFetcher (>= 3.4.0)
|
||||||
|
- GoogleDataTransport (10.1.0):
|
||||||
|
- nanopb (~> 3.30910.0)
|
||||||
|
- PromisesObjC (~> 2.4)
|
||||||
|
- GoogleSignIn (9.0.0):
|
||||||
|
- AppAuth (~> 2.0)
|
||||||
|
- AppCheckCore (~> 11.0)
|
||||||
|
- GTMAppAuth (~> 5.0)
|
||||||
|
- GTMSessionFetcher/Core (~> 3.3)
|
||||||
|
- GoogleUtilities/AppDelegateSwizzler (8.1.0):
|
||||||
|
- GoogleUtilities/Environment
|
||||||
|
- GoogleUtilities/Logger
|
||||||
|
- GoogleUtilities/Network
|
||||||
|
- GoogleUtilities/Privacy
|
||||||
|
- GoogleUtilities/Environment (8.1.0):
|
||||||
|
- GoogleUtilities/Privacy
|
||||||
|
- GoogleUtilities/Logger (8.1.0):
|
||||||
|
- GoogleUtilities/Environment
|
||||||
|
- GoogleUtilities/Privacy
|
||||||
|
- GoogleUtilities/Network (8.1.0):
|
||||||
|
- GoogleUtilities/Logger
|
||||||
|
- "GoogleUtilities/NSData+zlib"
|
||||||
|
- GoogleUtilities/Privacy
|
||||||
|
- GoogleUtilities/Reachability
|
||||||
|
- "GoogleUtilities/NSData+zlib (8.1.0)":
|
||||||
|
- GoogleUtilities/Privacy
|
||||||
|
- GoogleUtilities/Privacy (8.1.0)
|
||||||
|
- GoogleUtilities/Reachability (8.1.0):
|
||||||
|
- GoogleUtilities/Logger
|
||||||
|
- GoogleUtilities/Privacy
|
||||||
|
- GoogleUtilities/UserDefaults (8.1.0):
|
||||||
|
- GoogleUtilities/Logger
|
||||||
|
- GoogleUtilities/Privacy
|
||||||
|
- GTMAppAuth (5.0.0):
|
||||||
|
- AppAuth/Core (~> 2.0)
|
||||||
|
- GTMSessionFetcher/Core (< 4.0, >= 3.3)
|
||||||
|
- GTMSessionFetcher (3.5.0):
|
||||||
|
- GTMSessionFetcher/Full (= 3.5.0)
|
||||||
|
- GTMSessionFetcher/Core (3.5.0)
|
||||||
|
- GTMSessionFetcher/Full (3.5.0):
|
||||||
|
- GTMSessionFetcher/Core
|
||||||
|
- local_auth_darwin (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- FlutterMacOS
|
||||||
|
- nanopb (3.30910.0):
|
||||||
|
- nanopb/decode (= 3.30910.0)
|
||||||
|
- nanopb/encode (= 3.30910.0)
|
||||||
|
- nanopb/decode (3.30910.0)
|
||||||
|
- nanopb/encode (3.30910.0)
|
||||||
|
- open_file_mac (0.0.1):
|
||||||
|
- FlutterMacOS
|
||||||
|
- package_info_plus (0.0.1):
|
||||||
|
- FlutterMacOS
|
||||||
- path_provider_foundation (0.0.1):
|
- path_provider_foundation (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- FlutterMacOS
|
- FlutterMacOS
|
||||||
|
- pdf_render (0.0.1):
|
||||||
|
- FlutterMacOS
|
||||||
|
- PromisesObjC (2.4.0)
|
||||||
- shared_preferences_foundation (0.0.1):
|
- shared_preferences_foundation (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- FlutterMacOS
|
- FlutterMacOS
|
||||||
|
- syncfusion_pdfviewer_macos (0.0.1):
|
||||||
|
- FlutterMacOS
|
||||||
|
- url_launcher_macos (0.0.1):
|
||||||
|
- FlutterMacOS
|
||||||
|
|
||||||
DEPENDENCIES:
|
DEPENDENCIES:
|
||||||
- connectivity_plus (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos`)
|
- connectivity_plus (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos`)
|
||||||
|
- device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`)
|
||||||
|
- file_picker (from `Flutter/ephemeral/.symlinks/plugins/file_picker/macos`)
|
||||||
|
- firebase_auth (from `Flutter/ephemeral/.symlinks/plugins/firebase_auth/macos`)
|
||||||
|
- firebase_core (from `Flutter/ephemeral/.symlinks/plugins/firebase_core/macos`)
|
||||||
|
- firebase_messaging (from `Flutter/ephemeral/.symlinks/plugins/firebase_messaging/macos`)
|
||||||
- flutter_secure_storage_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos`)
|
- flutter_secure_storage_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos`)
|
||||||
- FlutterMacOS (from `Flutter/ephemeral`)
|
- FlutterMacOS (from `Flutter/ephemeral`)
|
||||||
|
- google_sign_in_ios (from `Flutter/ephemeral/.symlinks/plugins/google_sign_in_ios/darwin`)
|
||||||
|
- local_auth_darwin (from `Flutter/ephemeral/.symlinks/plugins/local_auth_darwin/darwin`)
|
||||||
|
- open_file_mac (from `Flutter/ephemeral/.symlinks/plugins/open_file_mac/macos`)
|
||||||
|
- package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`)
|
||||||
- path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`)
|
- path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`)
|
||||||
|
- pdf_render (from `Flutter/ephemeral/.symlinks/plugins/pdf_render/macos`)
|
||||||
- shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`)
|
- shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`)
|
||||||
|
- syncfusion_pdfviewer_macos (from `Flutter/ephemeral/.symlinks/plugins/syncfusion_pdfviewer_macos/macos`)
|
||||||
|
- url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`)
|
||||||
|
|
||||||
|
SPEC REPOS:
|
||||||
|
trunk:
|
||||||
|
- AppAuth
|
||||||
|
- AppCheckCore
|
||||||
|
- Firebase
|
||||||
|
- FirebaseAppCheckInterop
|
||||||
|
- FirebaseAuth
|
||||||
|
- FirebaseAuthInterop
|
||||||
|
- FirebaseCore
|
||||||
|
- FirebaseCoreExtension
|
||||||
|
- FirebaseCoreInternal
|
||||||
|
- FirebaseInstallations
|
||||||
|
- FirebaseMessaging
|
||||||
|
- GoogleDataTransport
|
||||||
|
- GoogleSignIn
|
||||||
|
- GoogleUtilities
|
||||||
|
- GTMAppAuth
|
||||||
|
- GTMSessionFetcher
|
||||||
|
- nanopb
|
||||||
|
- PromisesObjC
|
||||||
|
|
||||||
EXTERNAL SOURCES:
|
EXTERNAL SOURCES:
|
||||||
connectivity_plus:
|
connectivity_plus:
|
||||||
:path: Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos
|
:path: Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos
|
||||||
|
device_info_plus:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos
|
||||||
|
file_picker:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/file_picker/macos
|
||||||
|
firebase_auth:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/firebase_auth/macos
|
||||||
|
firebase_core:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/firebase_core/macos
|
||||||
|
firebase_messaging:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/firebase_messaging/macos
|
||||||
flutter_secure_storage_macos:
|
flutter_secure_storage_macos:
|
||||||
:path: Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos
|
:path: Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos
|
||||||
FlutterMacOS:
|
FlutterMacOS:
|
||||||
:path: Flutter/ephemeral
|
:path: Flutter/ephemeral
|
||||||
|
google_sign_in_ios:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/google_sign_in_ios/darwin
|
||||||
|
local_auth_darwin:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/local_auth_darwin/darwin
|
||||||
|
open_file_mac:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/open_file_mac/macos
|
||||||
|
package_info_plus:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos
|
||||||
path_provider_foundation:
|
path_provider_foundation:
|
||||||
:path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin
|
:path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin
|
||||||
|
pdf_render:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/pdf_render/macos
|
||||||
shared_preferences_foundation:
|
shared_preferences_foundation:
|
||||||
:path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin
|
:path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin
|
||||||
|
syncfusion_pdfviewer_macos:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/syncfusion_pdfviewer_macos/macos
|
||||||
|
url_launcher_macos:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos
|
||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
|
AppAuth: 1c1a8afa7e12f2ec3a294d9882dfa5ab7d3cb063
|
||||||
|
AppCheckCore: cc8fd0a3a230ddd401f326489c99990b013f0c4f
|
||||||
connectivity_plus: 4adf20a405e25b42b9c9f87feff8f4b6fde18a4e
|
connectivity_plus: 4adf20a405e25b42b9c9f87feff8f4b6fde18a4e
|
||||||
|
device_info_plus: 4fb280989f669696856f8b129e4a5e3cd6c48f76
|
||||||
|
file_picker: 7584aae6fa07a041af2b36a2655122d42f578c1a
|
||||||
|
Firebase: f07b15ae5a6ec0f93713e30b923d9970d144af3e
|
||||||
|
firebase_auth: 87ea88759d0282ccf1e2afe96f88ff3c07547938
|
||||||
|
firebase_core: e054894ab56033ef9bcbe2d9eac9395e5306e2fc
|
||||||
|
firebase_messaging: 373ac3a56e5aa37bb9aff4127f700aa5973c1168
|
||||||
|
FirebaseAppCheckInterop: f734c802f21fe1da0837708f0f9a27218c8a4ed0
|
||||||
|
FirebaseAuth: 4a2aed737c84114a9d9b33d11ae1b147d6b94889
|
||||||
|
FirebaseAuthInterop: 858e6b754966e70740a4370dd1503dfffe6dbb49
|
||||||
|
FirebaseCore: bb595f3114953664e3c1dc032f008a244147cfd3
|
||||||
|
FirebaseCoreExtension: 7e1f7118ee970e001a8013719fb90950ee5e0018
|
||||||
|
FirebaseCoreInternal: d7f5a043c2cd01a08103ab586587c1468047bca6
|
||||||
|
FirebaseInstallations: ae9f4902cb5bf1d0c5eaa31ec1f4e5495a0714e2
|
||||||
|
FirebaseMessaging: d33971b7bb252745ea6cd31ab190d1a1df4b8ed5
|
||||||
flutter_secure_storage_macos: 7f45e30f838cf2659862a4e4e3ee1c347c2b3b54
|
flutter_secure_storage_macos: 7f45e30f838cf2659862a4e4e3ee1c347c2b3b54
|
||||||
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
|
FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1
|
||||||
|
google_sign_in_ios: 205742c688aea0e64db9da03c33121694a365109
|
||||||
|
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
|
||||||
|
GoogleSignIn: c7f09cfbc85a1abf69187be091997c317cc33b77
|
||||||
|
GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1
|
||||||
|
GTMAppAuth: 217a876b249c3c585a54fd6f73e6b58c4f5c4238
|
||||||
|
GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6
|
||||||
|
local_auth_darwin: d2e8c53ef0c4f43c646462e3415432c4dab3ae19
|
||||||
|
nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
|
||||||
|
open_file_mac: 01874b6d6a2c1485ac9b126d7105b99102dea2cf
|
||||||
|
package_info_plus: f0052d280d17aa382b932f399edf32507174e870
|
||||||
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
|
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
|
||||||
|
pdf_render: 97e703cf7cd7122ab240825e8c99dc0616c5123c
|
||||||
|
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
|
||||||
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
|
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
|
||||||
|
syncfusion_pdfviewer_macos: b3b110c68039178ca4105dd03ef38761eca3b36b
|
||||||
|
url_launcher_macos: 0fba8ddabfc33ce0a9afe7c5fef5aab3d8d2d673
|
||||||
|
|
||||||
PODFILE CHECKSUM: 7eb978b976557c8c1cd717d8185ec483fd090a82
|
PODFILE CHECKSUM: 54d867c82ac51cbd61b565781b9fada492027009
|
||||||
|
|
||||||
COCOAPODS: 1.16.2
|
COCOAPODS: 1.16.2
|
||||||
|
|||||||
@ -241,6 +241,7 @@
|
|||||||
33CC110E2044A8840003C045 /* Bundle Framework */,
|
33CC110E2044A8840003C045 /* Bundle Framework */,
|
||||||
3399D490228B24CF009A79C7 /* ShellScript */,
|
3399D490228B24CF009A79C7 /* ShellScript */,
|
||||||
67721E8F298A2F647E244CBA /* [CP] Embed Pods Frameworks */,
|
67721E8F298A2F647E244CBA /* [CP] Embed Pods Frameworks */,
|
||||||
|
82AA3A8A3181F6A9D1E2499E /* [CP] Copy Pods Resources */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
@ -378,6 +379,23 @@
|
|||||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
|
||||||
showEnvVarsInLog = 0;
|
showEnvVarsInLog = 0;
|
||||||
};
|
};
|
||||||
|
82AA3A8A3181F6A9D1E2499E /* [CP] Copy Pods Resources */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
|
||||||
|
);
|
||||||
|
name = "[CP] Copy Pods Resources";
|
||||||
|
outputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
E94A1CE8DCEF40365836C7DF /* [CP] Check Pods Manifest.lock */ = {
|
E94A1CE8DCEF40365836C7DF /* [CP] Check Pods Manifest.lock */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
@ -557,7 +575,7 @@
|
|||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
SWIFT_COMPILATION_MODE = wholemodule;
|
SWIFT_COMPILATION_MODE = wholemodule;
|
||||||
@ -639,7 +657,7 @@
|
|||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||||
MTL_ENABLE_DEBUG_INFO = YES;
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
@ -689,7 +707,7 @@
|
|||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
SWIFT_COMPILATION_MODE = wholemodule;
|
SWIFT_COMPILATION_MODE = wholemodule;
|
||||||
|
|||||||
20
pubspec.lock
20
pubspec.lock
@ -700,26 +700,26 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker
|
name: leak_tracker
|
||||||
sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0"
|
sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "10.0.9"
|
version: "11.0.2"
|
||||||
leak_tracker_flutter_testing:
|
leak_tracker_flutter_testing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker_flutter_testing
|
name: leak_tracker_flutter_testing
|
||||||
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
|
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.9"
|
version: "3.0.10"
|
||||||
leak_tracker_testing:
|
leak_tracker_testing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker_testing
|
name: leak_tracker_testing
|
||||||
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
|
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.1"
|
version: "3.0.2"
|
||||||
lints:
|
lints:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -1297,10 +1297,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
|
sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.7.4"
|
version: "0.7.6"
|
||||||
toastification:
|
toastification:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@ -1417,10 +1417,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: vector_math
|
name: vector_math
|
||||||
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
|
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.4"
|
version: "2.2.0"
|
||||||
vm_service:
|
vm_service:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@ -15,8 +15,8 @@
|
|||||||
the `--base-href` argument provided to `flutter build`.
|
the `--base-href` argument provided to `flutter build`.
|
||||||
-->
|
-->
|
||||||
<!-- <base href="$FLUTTER_BASE_HREF">-->
|
<!-- <base href="$FLUTTER_BASE_HREF">-->
|
||||||
<!--<base href="/partner/"> <!– Live build: also check env.dart (line 8)–>-->
|
<base href="/partner/"> <!-- Live build: also check env.dart (line 8) -->
|
||||||
<base href="/nhance/partner/app/"> <!-- Testing build: also check env.dart (line 9) -->
|
<!--<base href="/nhance/partner/app/"> Testing build: also check env.dart (line 9) -->
|
||||||
|
|
||||||
|
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user