From b1b5b5285410612bf6f208a755d8683c6eeb71da Mon Sep 17 00:00:00 2001 From: Vaibhav Surve Date: Tue, 30 Sep 2025 15:17:03 +0530 Subject: [PATCH] removed unwanted code --- .../attendance/attendence_filter_sheet.dart | 98 +----------- .../employees/add_employee_bottom_sheet.dart | 86 +--------- lib/view/employees/employees_screen.dart | 151 +----------------- 3 files changed, 9 insertions(+), 326 deletions(-) diff --git a/lib/model/attendance/attendence_filter_sheet.dart b/lib/model/attendance/attendence_filter_sheet.dart index f9b2467..7a9eec8 100644 --- a/lib/model/attendance/attendence_filter_sheet.dart +++ b/lib/model/attendance/attendence_filter_sheet.dart @@ -4,7 +4,6 @@ import 'package:marco/controller/attendance/attendance_screen_controller.dart'; import 'package:marco/helpers/widgets/my_text.dart'; import 'package:marco/helpers/utils/permission_constants.dart'; import 'package:marco/helpers/utils/base_bottom_sheet.dart'; -import 'package:get/get.dart'; import 'package:marco/helpers/utils/date_time_utils.dart'; class AttendanceFilterBottomSheet extends StatefulWidget { @@ -39,78 +38,13 @@ class _AttendanceFilterBottomSheetState final endDate = widget.controller.endDateAttendance; if (startDate != null && endDate != null) { - final start = - DateTimeUtils.formatDate(startDate, 'dd MMM yyyy'); + final start = DateTimeUtils.formatDate(startDate, 'dd MMM yyyy'); final end = DateTimeUtils.formatDate(endDate, 'dd MMM yyyy'); return "$start - $end"; } return "Date Range"; } - Widget _popupSelector({ - required String currentValue, - required List items, - required ValueChanged onSelected, - }) { - return PopupMenuButton( - shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), - onSelected: onSelected, - itemBuilder: (context) => items - .map((e) => PopupMenuItem( - value: e, - child: MyText(e), - )) - .toList(), - child: Container( - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), - decoration: BoxDecoration( - color: Colors.grey.shade100, - border: Border.all(color: Colors.grey.shade300), - borderRadius: BorderRadius.circular(12), - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded( - child: MyText( - currentValue, - style: const TextStyle(color: Colors.black87), - overflow: TextOverflow.ellipsis, - ), - ), - const Icon(Icons.arrow_drop_down, color: Colors.grey), - ], - ), - ), - ); - } - - Widget _buildOrganizationSelector(BuildContext context) { - final orgNames = [ - "All Organizations", - ...widget.controller.organizations.map((e) => e.name) - ]; - - return _popupSelector( - currentValue: - widget.controller.selectedOrganization?.name ?? "All Organizations", - items: orgNames, - onSelected: (name) { - if (name == "All Organizations") { - setState(() { - widget.controller.selectedOrganization = null; - }); - } else { - final selectedOrg = widget.controller.organizations - .firstWhere((org) => org.name == name); - setState(() { - widget.controller.selectedOrganization = selectedOrg; - }); - } - }, - ); - } - List buildMainFilters() { final hasRegularizationPermission = widget.permissionController .hasPermission(Permissions.regularizeAttendance); @@ -149,35 +83,6 @@ class _AttendanceFilterBottomSheetState }), ]; - // 🔹 Organization filter - widgets.addAll([ - const Divider(), - Padding( - padding: const EdgeInsets.only(top: 12, bottom: 12), - child: Align( - alignment: Alignment.centerLeft, - child: MyText.titleSmall("Choose Organization", fontWeight: 600), - ), - ), - Obx(() { - if (widget.controller.isLoadingOrganizations.value) { - return const Center(child: CircularProgressIndicator()); - } else if (widget.controller.organizations.isEmpty) { - return Center( - child: Padding( - padding: const EdgeInsets.symmetric(vertical: 16.0), - child: MyText.bodyMedium( - "No organizations found", - fontWeight: 500, - color: Colors.grey, - ), - ), - ); - } - return _buildOrganizationSelector(context); - }), - ]); - // 🔹 Date Range only for attendanceLogs if (tempSelectedTab == 'attendanceLogs') { widgets.addAll([ @@ -237,7 +142,6 @@ class _AttendanceFilterBottomSheetState onCancel: () => Navigator.pop(context), onSubmit: () => Navigator.pop(context, { 'selectedTab': tempSelectedTab, - 'selectedOrganization': widget.controller.selectedOrganization?.id, }), child: Column( crossAxisAlignment: CrossAxisAlignment.start, diff --git a/lib/model/employees/add_employee_bottom_sheet.dart b/lib/model/employees/add_employee_bottom_sheet.dart index 82277f0..e28d1b9 100644 --- a/lib/model/employees/add_employee_bottom_sheet.dart +++ b/lib/model/employees/add_employee_bottom_sheet.dart @@ -5,7 +5,6 @@ import 'package:intl/intl.dart'; import 'package:marco/controller/employee/add_employee_controller.dart'; import 'package:marco/controller/employee/employees_screen_controller.dart'; -import 'package:marco/controller/tenant/organization_selection_controller.dart'; import 'package:marco/helpers/utils/base_bottom_sheet.dart'; import 'package:marco/helpers/utils/mixins/ui_mixin.dart'; import 'package:marco/helpers/widgets/my_snackbar.dart'; @@ -24,8 +23,6 @@ class AddEmployeeBottomSheet extends StatefulWidget { class _AddEmployeeBottomSheetState extends State with UIMixin { late final AddEmployeeController _controller; - final OrganizationController _organizationController = - Get.put(OrganizationController()); // Local UI state bool _hasApplicationAccess = false; @@ -55,19 +52,6 @@ class _AddEmployeeBottomSheetState extends State if (widget.employeeData != null) { _controller.editingEmployeeData = widget.employeeData; _controller.prefillFields(); - - final orgId = widget.employeeData!['organizationId']; - if (orgId != null) { - _controller.selectedOrganizationId = orgId; - - final selectedOrg = _organizationController.organizations - .firstWhereOrNull((o) => o.id == orgId); - if (selectedOrg != null) { - _organizationController.selectOrganization(selectedOrg); - _orgFieldController.text = selectedOrg.name; - } - } - if (_controller.joiningDate != null) { _joiningDateController.text = DateFormat('dd MMM yyyy').format(_controller.joiningDate!); @@ -82,9 +66,7 @@ class _AddEmployeeBottomSheetState extends State (r) => r['id'] == _controller.selectedRoleId)?['name'] ?? ''; _roleController.text = roleName; - } else { - _orgFieldController.text = _organizationController.currentSelection; - } + } else {} } @override @@ -102,7 +84,6 @@ class _AddEmployeeBottomSheetState extends State init: _controller, builder: (_) { // Keep org field in sync with controller selection - _orgFieldController.text = _organizationController.currentSelection; return BaseBottomSheet( title: widget.employeeData != null ? 'Edit Employee' : 'Add Employee', @@ -135,30 +116,6 @@ class _AddEmployeeBottomSheetState extends State _controller.basicValidator.getValidation('last_name'), ), MySpacing.height(16), - _sectionLabel('Organization'), - MySpacing.height(8), - GestureDetector( - onTap: () => _showOrganizationPopup(context), - child: AbsorbPointer( - child: TextFormField( - readOnly: true, - controller: _orgFieldController, - validator: (val) { - if (val == null || - val.trim().isEmpty || - val == 'All Organizations') { - return 'Organization is required'; - } - return null; - }, - decoration: - _inputDecoration('Select Organization').copyWith( - suffixIcon: const Icon(Icons.expand_more), - ), - ), - ), - ), - MySpacing.height(24), _sectionLabel('Application Access'), Row( children: [ @@ -333,8 +290,7 @@ class _AddEmployeeBottomSheetState extends State return null; }, keyboardType: TextInputType.emailAddress, - decoration: _inputDecoration('e.g., john.doe@example.com').copyWith( - ), + decoration: _inputDecoration('e.g., john.doe@example.com').copyWith(), ), ], ); @@ -483,9 +439,7 @@ class _AddEmployeeBottomSheetState extends State if (!isValid || _controller.joiningDate == null || _controller.selectedGender == null || - _controller.selectedRoleId == null || - _organizationController.currentSelection.isEmpty || - _organizationController.currentSelection == 'All Organizations') { + _controller.selectedRoleId == null) { showAppSnackbar( title: 'Missing Fields', message: 'Please complete all required fields.', @@ -514,40 +468,6 @@ class _AddEmployeeBottomSheetState extends State } } - void _showOrganizationPopup(BuildContext context) async { - final orgs = _organizationController.organizations; - - if (orgs.isEmpty) { - showAppSnackbar( - title: 'No Organizations', - message: 'No organizations available to select.', - type: SnackbarType.warning, - ); - return; - } - - final selected = await showMenu( - context: context, - position: _popupMenuPosition(context), - items: orgs - .map( - (org) => PopupMenuItem( - value: org.id, - child: Text(org.name), - ), - ) - .toList(), - ); - - if (selected != null && selected.trim().isNotEmpty) { - final chosen = orgs.firstWhere((e) => e.id == selected); - _organizationController.selectOrganization(chosen); - _controller.selectedOrganizationId = chosen.id; - _orgFieldController.text = chosen.name; - _controller.update(); - } - } - void _showGenderPopup(BuildContext context) async { final selected = await showMenu( context: context, diff --git a/lib/view/employees/employees_screen.dart b/lib/view/employees/employees_screen.dart index 19c6e46..27076d2 100644 --- a/lib/view/employees/employees_screen.dart +++ b/lib/view/employees/employees_screen.dart @@ -11,13 +11,10 @@ import 'package:marco/controller/project_controller.dart'; import 'package:marco/helpers/widgets/my_custom_skeleton.dart'; import 'package:marco/model/employees/employee_model.dart'; import 'package:marco/helpers/utils/launcher_utils.dart'; -import 'package:marco/view/employees/assign_employee_bottom_sheet.dart'; import 'package:marco/controller/permission_controller.dart'; import 'package:marco/helpers/utils/permission_constants.dart'; import 'package:marco/helpers/widgets/my_refresh_indicator.dart'; import 'package:marco/view/employees/employee_profile_screen.dart'; -import 'package:marco/controller/tenant/organization_selection_controller.dart'; -import 'package:marco/helpers/widgets/tenant/organization_selector.dart'; class EmployeesScreen extends StatefulWidget { const EmployeesScreen({super.key}); @@ -33,8 +30,6 @@ class _EmployeesScreenState extends State with UIMixin { Get.find(); final TextEditingController _searchController = TextEditingController(); final RxList _filteredEmployees = [].obs; - final OrganizationController _organizationController = - Get.put(OrganizationController()); @override void initState() { @@ -47,44 +42,15 @@ class _EmployeesScreenState extends State with UIMixin { } Future _initEmployees() async { - final projectId = Get.find().selectedProject?.id; - final orgId = _organizationController.selectedOrganization.value?.id; - - if (projectId != null) { - await _organizationController.fetchOrganizations(projectId); - } - - if (_employeeController.isAllEmployeeSelected.value) { - _employeeController.selectedProjectId = null; - await _employeeController.fetchAllEmployees(organizationId: orgId); - } else if (projectId != null) { - _employeeController.selectedProjectId = projectId; - await _employeeController.fetchEmployeesByProject(projectId, - organizationId: orgId); - } else { - _employeeController.clearEmployees(); - } - + _employeeController.selectedProjectId = null; + await _employeeController.fetchAllEmployees(); _filterEmployees(_searchController.text); } Future _refreshEmployees() async { try { - final projectId = Get.find().selectedProject?.id; - final orgId = _organizationController.selectedOrganization.value?.id; - final allSelected = _employeeController.isAllEmployeeSelected.value; - - _employeeController.selectedProjectId = allSelected ? null : projectId; - - if (allSelected) { - await _employeeController.fetchAllEmployees(organizationId: orgId); - } else if (projectId != null) { - await _employeeController.fetchEmployeesByProject(projectId, - organizationId: orgId); - } else { - _employeeController.clearEmployees(); - } - + _employeeController.selectedProjectId = null; + await _employeeController.fetchAllEmployees(); _filterEmployees(_searchController.text); _employeeController.update(['employee_screen_controller']); } catch (e, stackTrace) { @@ -132,22 +98,7 @@ class _EmployeesScreenState extends State with UIMixin { if (result == null || result['success'] != true) return; - final employeeData = result['data']; - final employeeId = employeeData['id'] as String; - final jobRoleId = employeeData['jobRoleId'] as String?; - - await showModalBottomSheet( - context: context, - isScrollControlled: true, - shape: const RoundedRectangleBorder( - borderRadius: BorderRadius.vertical(top: Radius.circular(24)), - ), - backgroundColor: Colors.transparent, - builder: (context) => AssignProjectBottomSheet( - employeeId: employeeId, - jobRoleId: jobRoleId ?? '', - ), - ); + await _refreshEmployees(); } @@ -287,43 +238,8 @@ class _EmployeesScreenState extends State with UIMixin { Row( children: [ Expanded(child: _buildSearchField()), - const SizedBox(width: 8), - _buildPopupMenu(), ], ), - - // Organization Selector Row - Row( - children: [ - Expanded( - child: OrganizationSelector( - controller: _organizationController, - height: 36, - onSelectionChanged: (org) async { - // Make sure the selectedOrganization is updated immediately - _organizationController.selectOrganization(org); - - final projectId = - Get.find().selectedProject?.id; - - if (_employeeController.isAllEmployeeSelected.value) { - await _employeeController.fetchAllEmployees( - organizationId: _organizationController - .selectedOrganization.value?.id); - } else if (projectId != null) { - await _employeeController.fetchEmployeesByProject( - projectId, - organizationId: _organizationController - .selectedOrganization.value?.id); - } - - _employeeController.update(['employee_screen_controller']); - }, - ), - ), - ], - ), - MySpacing.height(8), ], ), ); @@ -370,63 +286,6 @@ class _EmployeesScreenState extends State with UIMixin { ); } - Widget _buildPopupMenu() { - if (!_permissionController.hasPermission(Permissions.viewAllEmployees)) { - return const SizedBox.shrink(); - } - - return PopupMenuButton( - icon: Stack( - clipBehavior: Clip.none, - children: [ - const Icon(Icons.tune, color: Colors.black), - Obx(() => _employeeController.isAllEmployeeSelected.value - ? Positioned( - right: -1, - top: -1, - child: Container( - width: 10, - height: 10, - decoration: const BoxDecoration( - color: Colors.red, shape: BoxShape.circle), - ), - ) - : const SizedBox.shrink()), - ], - ), - onSelected: (value) async { - if (value == 'all_employees') { - _employeeController.isAllEmployeeSelected.toggle(); - await _initEmployees(); - _employeeController.update(['employee_screen_controller']); - } - }, - itemBuilder: (_) => [ - PopupMenuItem( - value: 'all_employees', - child: Obx( - () => Row( - children: [ - Checkbox( - value: _employeeController.isAllEmployeeSelected.value, - onChanged: (_) => Navigator.pop(context, 'all_employees'), - checkColor: Colors.white, - activeColor: Colors.blueAccent, - side: const BorderSide(color: Colors.black, width: 1.5), - fillColor: MaterialStateProperty.resolveWith( - (states) => states.contains(MaterialState.selected) - ? Colors.blueAccent - : Colors.white), - ), - const Text('All Employees'), - ], - ), - ), - ), - ], - ); - } - Widget _buildEmployeeList() { return Obx(() { if (_employeeController.isLoading.value) {