erp-system/ │ ├── app/ │ ├── Core/ # Core Infrastructure Layer │ │ ├── Container/ │ │ │ ├── Container.php │ │ │ ├── ServiceProvider.php │ │ │ └── BindingResolutionException.php │ │ │ │ │ ├── Database/ │ │ │ ├── Connection.php │ │ │ ├── ConnectionFactory.php │ │ │ ├── QueryBuilder.php │ │ │ ├── QueryGrammar.php │ │ │ ├── TransactionManager.php │ │ │ ├── Migrator.php │ │ │ ├── Migration.php │ │ │ ├── Seeder.php │ │ │ └── Schema/ │ │ │ ├── Blueprint.php │ │ │ └── SchemaBuilder.php │ │ │ │ │ ├── Http/ │ │ │ ├── Request.php │ │ │ ├── Response.php │ │ │ ├── Controller.php │ │ │ ├── ApiController.php │ │ │ ├── ApiResponse.php │ │ │ ├── JsonResponse.php │ │ │ ├── RedirectResponse.php │ │ │ ├── ViewResponse.php │ │ │ ├── Route.php │ │ │ ├── Router.php │ │ │ ├── RouteGroup.php │ │ │ └── Middleware/ │ │ │ ├── Authenticate.php │ │ │ ├── RoleMiddleware.php │ │ │ ├── PermissionMiddleware.php │ │ │ ├── DepartmentScope.php │ │ │ ├── BranchScope.php │ │ │ ├── Cors.php │ │ │ ├── RateLimit.php │ │ │ ├── TenantScope.php │ │ │ ├── AttendanceScope.php │ │ │ ├── VerifyCsrfToken.php │ │ │ ├── TrimStrings.php │ │ │ └── ConvertEmptyStringsToNull.php │ │ │ │ │ ├── Auth/ │ │ │ ├── AuthManager.php │ │ │ ├── UnifiedAuth.php │ │ │ ├── RBAC.php │ │ │ ├── PasswordHasher.php │ │ │ ├── JwtAuth.php │ │ │ ├── BiometricAuth.php │ │ │ ├── SimpleAuth.php │ │ │ ├── PinAuth.php │ │ │ ├── Role.php │ │ │ ├── Permission.php │ │ │ ├── Gate.php │ │ │ ├── AccessDeniedException.php │ │ │ └── Policies/ │ │ │ ├── PolicyRegistry.php │ │ │ ├── Policy.php │ │ │ └── AuthorizesRequests.php │ │ │ │ │ ├── Cache/ │ │ │ ├── CacheManager.php │ │ │ ├── RedisAdapter.php │ │ │ ├── FileCache.php │ │ │ ├── MemcachedAdapter.php │ │ │ ├── ArrayCache.php │ │ │ ├── Cacheable.php │ │ │ ├── CacheTags.php │ │ │ └── CacheInvalidationException.php │ │ │ │ │ ├── Queue/ │ │ │ ├── QueueManager.php │ │ │ ├── Job.php │ │ │ ├── Worker.php │ │ │ ├── FailedJobs.php │ │ │ ├── JobProcessor.php │ │ │ ├── QueueWorker.php │ │ │ ├── SyncQueue.php │ │ │ ├── RedisQueue.php │ │ │ ├── DatabaseQueue.php │ │ │ ├── ShouldQueue.php │ │ │ ├── InteractsWithQueue.php │ │ │ └── JobFailedException.php │ │ │ │ │ ├── Validation/ │ │ │ ├── Validator.php │ │ │ ├── ValidationException.php │ │ │ ├── ValidationRule.php │ │ │ ├── Factory.php │ │ │ └── Rules/ │ │ │ ├── UniqueRule.php │ │ │ ├── ExistsRule.php │ │ │ ├── EmailRule.php │ │ │ ├── PhoneRule.php │ │ │ ├── DateRule.php │ │ │ ├── NumericRule.php │ │ │ ├── FileRule.php │ │ │ ├── ImageRule.php │ │ │ ├── PasswordRule.php │ │ │ ├── ConfirmedRule.php │ │ │ └── CustomRule.php │ │ │ │ │ ├── Exceptions/ │ │ │ ├── Handler.php │ │ │ ├── CustomException.php │ │ │ ├── ValidationException.php │ │ │ ├── AuthenticationException.php │ │ │ ├── AuthorizationException.php │ │ │ ├── NotFoundException.php │ │ │ ├── MethodNotAllowedException.php │ │ │ ├── TooManyRequestsException.php │ │ │ ├── MaintenanceModeException.php │ │ │ └── renderers/ │ │ │ ├── JsonExceptionRenderer.php │ │ │ └── HtmlExceptionRenderer.php │ │ │ │ │ ├── Logger/ │ │ │ ├── Logger.php │ │ │ ├── LogManager.php │ │ │ ├── FileLogger.php │ │ │ ├── DatabaseLogger.php │ │ │ ├── CloudLogger.php │ │ │ ├── EmailLogger.php │ │ │ ├── SlackLogger.php │ │ │ ├── LogLevel.php │ │ │ ├── LogFormatter.php │ │ │ └── LogRotator.php │ │ │ │ │ ├── Contracts/ │ │ │ ├── RepositoryInterface.php │ │ │ ├── ServiceInterface.php │ │ │ ├── EventInterface.php │ │ │ ├── ModuleInterface.php │ │ │ ├── Authenticatable.php │ │ │ ├── CanResetPassword.php │ │ │ ├── Authorizable.php │ │ │ └── Queueable.php │ │ │ │ │ ├── Traits/ │ │ │ ├── TimestampableTrait.php │ │ │ ├── SoftDeletesTrait.php │ │ │ ├── ModuleTrait.php │ │ │ ├── EventableTrait.php │ │ │ ├── AttendanceTrackable.php │ │ │ ├── SearchableTrait.php │ │ │ ├── FilterableTrait.php │ │ │ ├── SortableTrait.php │ │ │ ├── PaginatableTrait.php │ │ │ ├── HasUuidTrait.php │ │ │ ├── HasSlugTrait.php │ │ │ ├── HasStatusTrait.php │ │ │ ├── HasApprovalsTrait.php │ │ │ └── HasAuditTrait.php │ │ │ │ │ └── BI/ # Business Intelligence │ │ ├── AnalyticsEngine.php │ │ ├── ReportBuilder.php │ │ ├── ChartGenerator.php │ │ ├── DataWarehouse.php │ │ ├── ETLProcessor.php │ │ ├── KPICalculator.php │ │ ├── Metrics/ │ │ │ ├── AttendanceMetrics.php │ │ │ ├── InventoryMetrics.php │ │ │ ├── ProcurementMetrics.php │ │ │ └── FinancialMetrics.php │ │ ├── Forecasting/ │ │ │ ├── DemandForecaster.php │ │ │ └── TrendAnalyzer.php │ │ └── Dashboards/ │ │ ├── DashboardRenderer.php │ │ └── WidgetManager.php │ │ │ ├── Layout/ # Unified Layout System │ │ ├── Views/ │ │ │ ├── layouts/ │ │ │ │ ├── main_layout.php │ │ │ │ ├── admin_layout.php │ │ │ │ ├── manager_layout.php │ │ │ │ ├── hr_layout.php │ │ │ │ ├── gatekeeper_layout.php │ │ │ │ ├── store_layout.php │ │ │ │ ├── librarian_layout.php │ │ │ │ ├── technician_layout.php │ │ │ │ ├── assistant_layout.php │ │ │ │ └── auth_layout.php │ │ │ ├── partials/ │ │ │ │ ├── header.php │ │ │ │ ├── footer.php │ │ │ │ ├── sidebar.php │ │ │ │ ├── navigation.php │ │ │ │ ├── breadcrumbs.php │ │ │ │ ├── alerts.php │ │ │ │ ├── modals.php │ │ │ │ └── loading.php │ │ │ └── components/ │ │ │ ├── cards.php │ │ │ ├── tables.php │ │ │ ├── forms.php │ │ │ ├── buttons.php │ │ │ ├── pagination.php │ │ │ └── charts.php │ │ │ │ │ ├── Controllers/ │ │ │ └── LayoutController.php │ │ │ │ │ └── Services/ │ │ ├── MenuService.php │ │ ├── SidebarBuilder.php │ │ ├── ThemeManager.php │ │ └── LayoutRenderer.php │ │ │ ├── Domains/ # Domain Modules │ │ ├── CoreModule/ │ │ │ ├── Providers/ │ │ │ │ └── CoreServiceProvider.php │ │ │ ├── Models/ │ │ │ │ ├── User.php │ │ │ │ ├── Role.php │ │ │ │ ├── Permission.php │ │ │ │ ├── Department.php │ │ │ │ ├── Branch.php │ │ │ │ ├── Company.php │ │ │ │ ├── Setting.php │ │ │ │ ├── AuditLog.php │ │ │ │ ├── Notification.php │ │ │ │ ├── ActivityLog.php │ │ │ │ ├── Session.php │ │ │ │ ├── LoginAttempt.php │ │ │ │ └── PasswordReset.php │ │ │ ├── Repositories/ │ │ │ │ ├── UserRepository.php │ │ │ │ ├── RoleRepository.php │ │ │ │ ├── PermissionRepository.php │ │ │ │ ├── DepartmentRepository.php │ │ │ │ ├── SettingRepository.php │ │ │ │ └── AuditLogRepository.php │ │ │ ├── Services/ │ │ │ │ ├── AuthService.php │ │ │ │ ├── PermissionService.php │ │ │ │ ├── RoleService.php │ │ │ │ ├── UserService.php │ │ │ │ ├── SettingService.php │ │ │ │ ├── AuditService.php │ │ │ │ ├── NotificationService.php │ │ │ │ ├── ActivityLogger.php │ │ │ │ └── SystemHealthService.php │ │ │ ├── Controllers/ │ │ │ │ ├── Auth/ │ │ │ │ │ ├── LoginController.php │ │ │ │ │ ├── LogoutController.php │ │ │ │ │ ├── RegisterController.php │ │ │ │ │ ├── ForgotPasswordController.php │ │ │ │ │ ├── ResetPasswordController.php │ │ │ │ │ ├── VerifyEmailController.php │ │ │ │ │ └── TwoFactorController.php │ │ │ │ ├── Admin/ │ │ │ │ │ ├── DashboardController.php │ │ │ │ │ ├── UserManagementController.php │ │ │ │ │ ├── RoleManagementController.php │ │ │ │ │ ├── PermissionManagementController.php │ │ │ │ │ ├── DepartmentController.php │ │ │ │ │ ├── BranchController.php │ │ │ │ │ ├── AuditLogController.php │ │ │ │ │ ├── SystemSettingsController.php │ │ │ │ │ ├── BackupController.php │ │ │ │ │ └── MaintenanceController.php │ │ │ │ └── ProfileController.php │ │ │ ├── Events/ │ │ │ │ ├── UserLoggedIn.php │ │ │ │ ├── UserLoggedOut.php │ │ │ │ ├── UserCreated.php │ │ │ │ ├── UserUpdated.php │ │ │ │ ├── UserDeleted.php │ │ │ │ ├── RoleAssigned.php │ │ │ │ └── PermissionChanged.php │ │ │ ├── Listeners/ │ │ │ │ ├── LogUserActivity.php │ │ │ │ ├── SendWelcomeEmail.php │ │ │ │ └── ClearUserCache.php │ │ │ ├── Jobs/ │ │ │ │ ├── SendDailyDigest.php │ │ │ │ ├── CleanupOldLogs.php │ │ │ │ └── GenerateSystemReport.php │ │ │ ├── Console/ │ │ │ │ └── Commands/ │ │ │ │ ├── CreateAdminCommand.php │ │ │ │ ├── ResetUserPasswordCommand.php │ │ │ │ └── SystemStatusCommand.php │ │ │ ├── DTOs/ │ │ │ │ ├── UserDTO.php │ │ │ │ ├── RoleDTO.php │ │ │ │ └── PermissionDTO.php │ │ │ ├── Enums/ │ │ │ │ ├── UserStatusEnum.php │ │ │ │ └── UserRoleEnum.php │ │ │ └── Routes/ │ │ │ ├── web.php │ │ │ ├── api.php │ │ │ └── admin.php │ │ │ │ │ ├── AttendanceModule/ │ │ │ ├── Providers/ │ │ │ │ └── AttendanceServiceProvider.php │ │ │ ├── Models/ │ │ │ │ ├── Employee.php │ │ │ │ ├── Gatekeeper.php │ │ │ │ ├── Attendance.php │ │ │ │ ├── AttendanceShift.php │ │ │ │ ├── AttendanceSchedule.php │ │ │ │ ├── AttendancePolicy.php │ │ │ │ ├── Leave.php │ │ │ │ ├── LeaveType.php │ │ │ │ ├── LeaveBalance.php │ │ │ │ ├── LeaveApproval.php │ │ │ │ ├── LeaveEntitlement.php │ │ │ │ ├── LeaveAccrual.php │ │ │ │ ├── LeaveRequest.php │ │ │ │ ├── Overtime.php │ │ │ │ ├── OvertimeRate.php │ │ │ │ ├── OvertimeApproval.php │ │ │ │ ├── Break.php │ │ │ │ ├── BreakType.php │ │ │ │ ├── BreakPolicy.php │ │ │ │ ├── ExcusedAbsence.php │ │ │ │ ├── Holiday.php │ │ │ │ ├── HolidayCalendar.php │ │ │ │ ├── AttendanceException.php │ │ │ │ ├── AttendanceSummary.php │ │ │ │ ├── AttendanceCorrection.php │ │ │ │ ├── BiometricLog.php │ │ │ │ ├── BiometricDevice.php │ │ │ │ ├── GeolocationLog.php │ │ │ │ ├── TimeZone.php │ │ │ │ ├── WorkWeek.php │ │ │ │ ├── ShiftPattern.php │ │ │ │ ├── ShiftRotation.php │ │ │ │ ├── ShiftTeam.php │ │ │ │ ├── CalendarSync.php │ │ │ │ └── AttendanceReport.php │ │ │ ├── Repositories/ │ │ │ │ ├── EmployeeRepository.php │ │ │ │ ├── GatekeeperRepository.php │ │ │ │ ├── AttendanceRepository.php │ │ │ │ ├── LeaveRepository.php │ │ │ │ ├── LeaveTypeRepository.php │ │ │ │ ├── LeaveBalanceRepository.php │ │ │ │ ├── OvertimeRepository.php │ │ │ │ ├── BreakRepository.php │ │ │ │ ├── HolidayRepository.php │ │ │ │ ├── ShiftRepository.php │ │ │ │ └── ScheduleRepository.php │ │ │ ├── Services/ │ │ │ │ ├── ClockService.php │ │ │ │ ├── BreakService.php │ │ │ │ ├── LeaveService.php │ │ │ │ ├── LeaveApprovalService.php │ │ │ │ ├── LeaveBalanceService.php │ │ │ │ ├── LeaveAccrualService.php │ │ │ │ ├── OvertimeService.php │ │ │ │ ├── OvertimeCalculationService.php │ │ │ │ ├── ExcusedAbsenceService.php │ │ │ │ ├── HolidayService.php │ │ │ │ ├── AttendanceReportingService.php │ │ │ │ ├── AttendanceAnalyticsService.php │ │ │ │ ├── AttendanceCorrectionService.php │ │ │ │ ├── ShiftSchedulingService.php │ │ │ │ ├── BiometricService.php │ │ │ │ ├── GeofencingService.php │ │ │ │ ├── CalendarSyncService.php │ │ │ │ ├── PayrollIntegrationService.php │ │ │ │ ├── GatekeeperService.php │ │ │ │ ├── NotificationService.php │ │ │ │ └── PolicyEnforcementService.php │ │ │ ├── Controllers/ │ │ │ │ ├── Gatekeeper/ │ │ │ │ │ ├── ClockController.php │ │ │ │ │ ├── StaffSearchController.php │ │ │ │ │ ├── ManualEntryController.php │ │ │ │ │ ├── TodayListController.php │ │ │ │ │ └── BreakController.php │ │ │ │ ├── HR/ │ │ │ │ │ ├── HRDashboardController.php │ │ │ │ │ ├── LeaveManagementController.php │ │ │ │ │ ├── LeaveApprovalController.php │ │ │ │ │ ├── LeaveBalanceController.php │ │ │ │ │ ├── LeaveTypeController.php │ │ │ │ │ ├── LeavePolicyController.php │ │ │ │ │ ├── MaternityLeaveController.php │ │ │ │ │ ├── PaternityLeaveController.php │ │ │ │ │ ├── SickLeaveController.php │ │ │ │ │ ├── AnnualLeaveController.php │ │ │ │ │ ├── EmergencyLeaveController.php │ │ │ │ │ ├── ExcusedAbsenceController.php │ │ │ │ │ ├── OvertimeApprovalController.php │ │ │ │ │ ├── AttendanceViewController.php │ │ │ │ │ ├── AttendanceCorrectionController.php │ │ │ │ │ ├── ShiftManagementController.php │ │ │ │ │ ├── ScheduleController.php │ │ │ │ │ ├── HolidayController.php │ │ │ │ │ ├── HRReportsController.php │ │ │ │ │ └── EmployeeAttendanceController.php │ │ │ │ ├── Manager/ │ │ │ │ │ ├── DepartmentAttendanceController.php │ │ │ │ │ ├── DepartmentLeaveController.php │ │ │ │ │ ├── TeamScheduleController.php │ │ │ │ │ └── AttendanceReportsController.php │ │ │ │ └── Admin/ │ │ │ │ ├── ShiftPatternController.php │ │ │ │ ├── GatekeeperManagementController.php │ │ │ │ ├── BiometricDeviceController.php │ │ │ │ ├── AttendanceSettingsController.php │ │ │ │ ├── PolicyController.php │ │ │ │ └── CalendarSyncController.php │ │ │ ├── Events/ │ │ │ │ ├── StaffClockedIn.php │ │ │ │ ├── StaffClockedOut.php │ │ │ │ ├── BreakStarted.php │ │ │ │ ├── BreakEnded.php │ │ │ │ ├── LunchBreakStarted.php │ │ │ │ ├── LunchBreakEnded.php │ │ │ │ ├── LeaveRequested.php │ │ │ │ ├── LeaveApproved.php │ │ │ │ ├── LeaveRejected.php │ │ │ │ ├── LeaveCancelled.php │ │ │ │ ├── MaternityLeaveRequested.php │ │ │ │ ├── PaternityLeaveRequested.php │ │ │ │ ├── SickLeaveRequested.php │ │ │ │ ├── OvertimeRequested.php │ │ │ │ ├── OvertimeApproved.php │ │ │ │ ├── ExcusedAbsenceGranted.php │ │ │ │ ├── LateArrival.php │ │ │ │ ├── EarlyDeparture.php │ │ │ │ ├── AbsentDetected.php │ │ │ │ ├── ScheduleChanged.php │ │ │ │ ├── HolidayAdded.php │ │ │ │ ├── AttendanceAnomalyDetected.php │ │ │ │ ├── LeaveBalanceAdjusted.php │ │ │ │ └── AttendanceThresholdReached.php │ │ │ ├── Listeners/ │ │ │ │ ├── SendClockInNotification.php │ │ │ │ ├── SendClockOutNotification.php │ │ │ │ ├── SendBreakReminder.php │ │ │ │ ├── UpdateAttendanceSummary.php │ │ │ │ ├── NotifyHRofLeaveRequest.php │ │ │ │ ├── NotifyManagerOfLeave.php │ │ │ │ ├── SendLeaveApprovalNotification.php │ │ │ │ ├── SendLeaveRejectionNotification.php │ │ │ │ ├── UpdateLeaveBalanceOnApproval.php │ │ │ │ ├── CalculateLeaveAccrual.php │ │ │ │ ├── ProcessOvertimeRequest.php │ │ │ │ ├── SendLateArrivalAlert.php │ │ │ │ ├── SendAbsentAlert.php │ │ │ │ ├── TriggerPayrollUpdate.php │ │ │ │ ├── SyncToPayroll.php │ │ │ │ └── LogAttendanceActivity.php │ │ │ ├── Jobs/ │ │ │ │ ├── ProcessDailyAttendance.php │ │ │ │ ├── ProcessBiometricData.php │ │ │ │ ├── GenerateDailySummary.php │ │ │ │ ├── GenerateMonthlyReport.php │ │ │ │ ├── SendAttendanceReminders.php │ │ │ │ ├── SendShiftReminders.php │ │ │ │ ├── ProcessPendingLeaves.php │ │ │ │ ├── CalculateLeaveAccruals.php │ │ │ │ ├── ReconcileAttendanceData.php │ │ │ │ ├── SyncWithPayroll.php │ │ │ │ ├── ExportAttendanceReport.php │ │ │ │ ├── CleanupOldBiometricLogs.php │ │ │ │ └── DetectAttendanceAnomalies.php │ │ │ ├── Console/ │ │ │ │ └── Commands/ │ │ │ │ ├── ProcessAttendanceQueue.php │ │ │ │ ├── GenerateAttendanceReports.php │ │ │ │ ├── SendDailyAttendanceDigest.php │ │ │ │ ├── SyncHolidayCalendar.php │ │ │ │ └── ReconcileLeaveBalances.php │ │ │ ├── Integrations/ │ │ │ │ ├── Biometric/ │ │ │ │ │ ├── ZKTecoAdapter.php │ │ │ │ │ ├── SupremaAdapter.php │ │ │ │ │ ├── DigitalPersonaAdapter.php │ │ │ │ │ └── GenericDeviceAdapter.php │ │ │ │ ├── Calendar/ │ │ │ │ │ ├── GoogleCalendarSync.php │ │ │ │ │ ├── OutlookCalendarSync.php │ │ │ │ │ └── ICalSync.php │ │ │ │ └── HRIS/ │ │ │ │ ├── SAPSuccessFactors.php │ │ │ │ └── OracleHRMS.php │ │ │ ├── DTOs/ │ │ │ │ ├── ClockInDTO.php │ │ │ │ ├── ClockOutDTO.php │ │ │ │ ├── BreakDTO.php │ │ │ │ ├── LeaveRequestDTO.php │ │ │ │ ├── LeaveApprovalDTO.php │ │ │ │ ├── OvertimeRequestDTO.php │ │ │ │ ├── ExcusedAbsenceDTO.php │ │ │ │ ├── ShiftAssignmentDTO.php │ │ │ │ └── AttendanceReportDTO.php │ │ │ ├── Exceptions/ │ │ │ │ ├── AlreadyClockedInException.php │ │ │ │ ├── NotClockedInException.php │ │ │ │ ├── InvalidClockInException.php │ │ │ │ ├── ShiftNotAssignedException.php │ │ │ │ ├── InsufficientLeaveBalanceException.php │ │ │ │ ├── MaternityLeaveEligibilityException.php │ │ │ │ ├── PaternityLeaveEligibilityException.php │ │ │ │ ├── DuplicateAttendanceException.php │ │ │ │ ├── GeolocationMismatchException.php │ │ │ │ ├── BreakDurationExceededException.php │ │ │ │ └── PolicyViolationException.php │ │ │ ├── Enums/ │ │ │ │ ├── LeaveTypeEnum.php │ │ │ │ ├── LeaveStatusEnum.php │ │ │ │ ├── BreakTypeEnum.php │ │ │ │ ├── AttendanceStatusEnum.php │ │ │ │ ├── EmployeeRoleEnum.php │ │ │ │ ├── ShiftTypeEnum.php │ │ │ │ └── VerificationMethodEnum.php │ │ │ ├── Rules/ │ │ │ │ ├── AttendanceRules.php │ │ │ │ ├── LeaveRules.php │ │ │ │ ├── OvertimeRules.php │ │ │ │ └── BreakRules.php │ │ │ ├── Dashboards/ │ │ │ │ ├── AttendanceDashboard.php │ │ │ │ ├── LeaveDashboard.php │ │ │ │ └── OvertimeDashboard.php │ │ │ ├── Charts/ │ │ │ │ ├── AttendanceTrendChart.php │ │ │ │ ├── LeaveUtilizationChart.php │ │ │ │ ├── PeakHoursChart.php │ │ │ │ └── AbsenteeismChart.php │ │ │ ├── Exports/ │ │ │ │ ├── ExcelAttendanceExport.php │ │ │ │ ├── PDFAttendanceExport.php │ │ │ │ ├── CSVAttendanceExport.php │ │ │ │ └── LeaveExport.php │ │ │ ├── Imports/ │ │ │ │ ├── ScheduleImport.php │ │ │ │ ├── LeaveImport.php │ │ │ │ └── EmployeeImport.php │ │ │ └── Routes/ │ │ │ ├── gatekeeper.php │ │ │ ├── hr.php │ │ │ ├── manager.php │ │ │ ├── admin.php │ │ │ └── api.php │ │ │ │ │ ├── InventoryModule/ │ │ │ ├── Providers/ │ │ │ │ └── InventoryServiceProvider.php │ │ │ ├── Models/ │ │ │ │ ├── Product.php │ │ │ │ ├── ProductCategory.php │ │ │ │ ├── ProductSubCategory.php │ │ │ │ ├── ProductAttribute.php │ │ │ │ ├── ProductVariant.php │ │ │ │ ├── ProductImage.php │ │ │ │ ├── ProductDocument.php │ │ │ │ ├── ProductPrice.php │ │ │ │ ├── ProductCost.php │ │ │ │ ├── ProductSupplier.php │ │ │ │ ├── Supplier.php │ │ │ │ ├── SupplierContact.php │ │ │ │ ├── SupplierRating.php │ │ │ │ ├── Warehouse.php │ │ │ │ ├── WarehouseZone.php │ │ │ │ ├── WarehouseBin.php │ │ │ │ ├── StockLevel.php │ │ │ │ ├── StockMovement.php │ │ │ │ ├── StockMovementType.php │ │ │ │ ├── StockAdjustment.php │ │ │ │ ├── StockAdjustmentReason.php │ │ │ │ ├── StockTransfer.php │ │ │ │ ├── StockTransferItem.php │ │ │ │ ├── StockCount.php │ │ │ │ ├── StockCountItem.php │ │ │ │ ├── StockReservation.php │ │ │ │ ├── ReorderPoint.php │ │ │ │ ├── ReorderRule.php │ │ │ │ ├── PurchaseOrder.php │ │ │ │ ├── PurchaseOrderItem.php │ │ │ │ ├── PurchaseOrderStatus.php │ │ │ │ ├── PurchaseRequest.php │ │ │ │ ├── PurchaseRequestItem.php │ │ │ │ ├── GoodsReceipt.php │ │ │ │ ├── GoodsReceiptItem.php │ │ │ │ ├── GoodsIssue.php │ │ │ │ ├── GoodsIssueItem.php │ │ │ │ ├── ReturnToSupplier.php │ │ │ │ ├── ReturnToSupplierItem.php │ │ │ │ ├── ReturnFromCustomer.php │ │ │ │ ├── ReturnFromCustomerItem.php │ │ │ │ ├── Batch.php │ │ │ │ ├── SerialNumber.php │ │ │ │ ├── ExpiryTracking.php │ │ │ │ ├── QualityCheck.php │ │ │ │ ├── QualityCheckTemplate.php │ │ │ │ ├── QualityCheckResult.php │ │ │ │ ├── InventoryForecast.php │ │ │ │ ├── ABCAnalysis.php │ │ │ │ ├── InventoryValuation.php │ │ │ │ ├── InventoryTurnover.php │ │ │ │ └── InventoryReport.php │ │ │ ├── Repositories/ │ │ │ │ ├── ProductRepository.php │ │ │ │ ├── CategoryRepository.php │ │ │ │ ├── SupplierRepository.php │ │ │ │ ├── WarehouseRepository.php │ │ │ │ ├── StockRepository.php │ │ │ │ ├── StockMovementRepository.php │ │ │ │ ├── PurchaseOrderRepository.php │ │ │ │ ├── GoodsReceiptRepository.php │ │ │ │ ├── BatchRepository.php │ │ │ │ └── ReorderRepository.php │ │ │ ├── Services/ │ │ │ │ ├── ProductService.php │ │ │ │ ├── CategoryService.php │ │ │ │ ├── SupplierService.php │ │ │ │ ├── StockService.php │ │ │ │ ├── StockMovementService.php │ │ │ │ ├── StockAdjustmentService.php │ │ │ │ ├── StockTransferService.php │ │ │ │ ├── StockCountService.php │ │ │ │ ├── PurchaseService.php │ │ │ │ ├── PurchaseOrderService.php │ │ │ │ ├── GoodsReceiptService.php │ │ │ │ ├── GoodsIssueService.php │ │ │ │ ├── ReturnService.php │ │ │ │ ├── ReorderService.php │ │ │ │ ├── ReorderPointService.php │ │ │ │ ├── BatchTrackingService.php │ │ │ │ ├── SerialNumberService.php │ │ │ │ ├── ExpiryAlertService.php │ │ │ │ ├── QualityControlService.php │ │ │ │ ├── InventoryValuationService.php │ │ │ │ ├── InventoryForecastService.php │ │ │ │ ├── ABCAnalysisService.php │ │ │ │ ├── InventoryReportingService.php │ │ │ │ ├── InventoryAnalyticsService.php │ │ │ │ └── InventorySyncService.php │ │ │ ├── Controllers/ │ │ │ │ ├── StoreKeeper/ │ │ │ │ │ ├── DashboardController.php │ │ │ │ │ ├── ProductController.php │ │ │ │ │ ├── ReceivingController.php │ │ │ │ │ ├── IssueController.php │ │ │ │ │ ├── TransferController.php │ │ │ │ │ ├── StockCountController.php │ │ │ │ │ ├── BatchController.php │ │ │ │ │ ├── QualityCheckController.php │ │ │ │ │ └── ReportsController.php │ │ │ │ ├── Manager/ │ │ │ │ │ ├── DashboardController.php │ │ │ │ │ ├── PurchaseApprovalController.php │ │ │ │ │ ├── StockReportController.php │ │ │ │ │ ├── SupplierController.php │ │ │ │ │ ├── InventoryAnalysisController.php │ │ │ │ │ ├── ReorderManagementController.php │ │ │ │ │ └── ProcurementController.php │ │ │ │ └── Admin/ │ │ │ │ ├── WarehouseController.php │ │ │ │ ├── CategoryController.php │ │ │ │ ├── ProductAttributeController.php │ │ │ │ ├── SupplierManagementController.php │ │ │ │ ├── StockSettingsController.php │ │ │ │ └── InventorySettingsController.php │ │ │ ├── Events/ │ │ │ │ ├── ProductCreated.php │ │ │ │ ├── ProductUpdated.php │ │ │ │ ├── StockReceived.php │ │ │ │ ├── StockIssued.php │ │ │ │ ├── StockTransferred.php │ │ │ │ ├── StockAdjusted.php │ │ │ │ ├── StockCountCompleted.php │ │ │ │ ├── StockBelowReorderPoint.php │ │ │ │ ├── StockOutOfStock.php │ │ │ │ ├── ExpiryDateApproaching.php │ │ │ │ ├── GoodsReceived.php │ │ │ │ └── QualityCheckFailed.php │ │ │ ├── Listeners/ │ │ │ │ ├── UpdateStockLevels.php │ │ │ │ ├── TriggerReorder.php │ │ │ │ ├── NotifyProcurement.php │ │ │ │ ├── SendExpiryAlert.php │ │ │ │ ├── UpdateInventoryValuation.php │ │ │ │ ├── LogStockMovement.php │ │ │ │ └── SyncWithFinancials.php │ │ │ ├── Jobs/ │ │ │ │ ├── CheckReorderPoints.php │ │ │ │ ├── ProcessExpiryAlerts.php │ │ │ │ ├── CalculateInventoryValuation.php │ │ │ │ ├── GenerateInventoryReport.php │ │ │ │ ├── SyncStockLevels.php │ │ │ │ └── CleanupOldMovements.php │ │ │ ├── Console/ │ │ │ │ └── Commands/ │ │ │ │ ├── CheckReorderCommand.php │ │ │ │ ├── ProcessExpiryCommand.php │ │ │ │ └── GenerateInventoryReportCommand.php │ │ │ ├── DTOs/ │ │ │ │ ├── ProductDTO.php │ │ │ │ ├── StockMovementDTO.php │ │ │ │ ├── TransferDTO.php │ │ │ │ ├── ReceivingDTO.php │ │ │ │ └── ReorderDTO.php │ │ │ ├── Exceptions/ │ │ │ │ ├── InsufficientStockException.php │ │ │ │ ├── ProductNotFoundException.php │ │ │ │ ├── InvalidTransferException.php │ │ │ │ ├── DuplicateBatchException.php │ │ │ │ └── ExpiredProductException.php │ │ │ ├── Enums/ │ │ │ │ ├── StockMovementTypeEnum.php │ │ │ │ ├── ProductStatusEnum.php │ │ │ │ └── QualityStatusEnum.php │ │ │ └── Routes/ │ │ │ ├── storekeeper.php │ │ │ ├── manager.php │ │ │ ├── admin.php │ │ │ └── api.php │ │ │ │ │ ├── ETIMModule/ # ETIM Integration │ │ │ ├── Providers/ │ │ │ │ └── ETIMServiceProvider.php │ │ │ ├── Models/ │ │ │ │ ├── ETIMClassification.php │ │ │ │ ├── ETIMClassGroup.php │ │ │ │ ├── ETIMFeature.php │ │ │ │ ├── ETIMFeatureType.php │ │ │ │ ├── ETIMFeatureValue.php │ │ │ │ ├── ETIMUnit.php │ │ │ │ ├── ETIMVersion.php │ │ │ │ ├── ETIMSynonym.php │ │ │ │ ├── ETIMTranslation.php │ │ │ │ ├── ETIMMapping.php │ │ │ │ ├── ProductETIMClassification.php │ │ │ │ ├── ProductETIMFeatureValue.php │ │ │ │ ├── SupplierETIMCompliance.php │ │ │ │ ├── ETIMVerificationResult.php │ │ │ │ ├── ETIMVerificationRule.php │ │ │ │ ├── ETIMImportHistory.php │ │ │ │ └── ETIMExportHistory.php │ │ │ ├── Repositories/ │ │ │ │ ├── ETIMClassificationRepository.php │ │ │ │ ├── ETIMFeatureRepository.php │ │ │ │ ├── ETIMFeatureValueRepository.php │ │ │ │ ├── ETIMUnitRepository.php │ │ │ │ ├── ProductETIMRepository.php │ │ │ │ └── ETIMMappingRepository.php │ │ │ ├── Services/ │ │ │ │ ├── ETIMImportService.php │ │ │ │ │ ├── importFromIXF() │ │ │ │ │ ├── importFromCSV() │ │ │ │ │ ├── importFromBMEcat() │ │ │ │ │ ├── validateETIMData() │ │ │ │ │ ├── syncWithETIMServer() │ │ │ │ │ └── checkForUpdates() │ │ │ │ ├── ETIMClassificationService.php │ │ │ │ │ ├── suggestClassification() │ │ │ │ │ ├── validateClassification() │ │ │ │ │ ├── getCompatibleClassifications() │ │ │ │ │ ├── getFeaturesForClass() │ │ │ │ │ └── searchByDescription() │ │ │ │ ├── ETIMVerificationService.php │ │ │ │ │ ├── verifyReceiptAgainstETIM() │ │ │ │ │ ├── compareSpecifications() │ │ │ │ │ ├── detectDiscrepancies() │ │ │ │ │ ├── calculateMatchPercentage() │ │ │ │ │ ├── generateVerificationReport() │ │ │ │ │ ├── autoApproveIfMatches() │ │ │ │ │ ├── batchVerification() │ │ │ │ │ └── flagForReview() │ │ │ │ ├── ETIMMappingService.php │ │ │ │ │ ├── mapCategoryToETIM() │ │ │ │ │ ├── mapProductToETIM() │ │ │ │ │ ├── suggestMappings() │ │ │ │ │ └── validateMapping() │ │ │ │ ├── ETIMSyncService.php │ │ │ │ │ ├── syncWithPurchaseOrder() │ │ │ │ │ ├── syncWithReceiving() │ │ │ │ │ ├── syncWithInventory() │ │ │ │ │ └── syncWithSupplier() │ │ │ │ ├── ETIMExportService.php │ │ │ │ │ ├── generateSupplierTemplate() │ │ │ │ │ ├── exportToBMEcat() │ │ │ │ │ ├── exportToExcel() │ │ │ │ │ ├── exportToJSON() │ │ │ │ │ └── exportToXML() │ │ │ │ ├── ETIMAnalyticsService.php │ │ │ │ │ ├── getComplianceRate() │ │ │ │ │ ├── getDiscrepancyReport() │ │ │ │ │ ├── getSupplierCompliance() │ │ │ │ │ ├── getTopDiscrepancies() │ │ │ │ │ └── getVerificationStats() │ │ │ │ ├── ETIMSearchService.php │ │ │ │ │ ├── searchByKeyword() │ │ │ │ │ ├── searchByFeatures() │ │ │ │ │ └── autocomplete() │ │ │ │ └── ETIMValidationService.php │ │ │ │ ├── validateProductData() │ │ │ │ ├── validateSupplierData() │ │ │ │ └── validateFeatureValues() │ │ │ ├── Controllers/ │ │ │ │ ├── Admin/ │ │ │ │ │ ├── ETIMImportController.php │ │ │ │ │ ├── ETIMExportController.php │ │ │ │ │ ├── ETIMClassificationController.php │ │ │ │ │ ├── ETIMFeatureController.php │ │ │ │ │ ├── ETIMMappingController.php │ │ │ │ │ ├── ETIMVersionController.php │ │ │ │ │ ├── ETIMSettingsController.php │ │ │ │ │ └── ETIMSyncController.php │ │ │ │ ├── Procurement/ │ │ │ │ │ ├── ETIMVerificationController.php │ │ │ │ │ │ ├── showVerificationScreen() │ │ │ │ │ │ ├── verifyReceipt() │ │ │ │ │ │ ├── verifyBatch() │ │ │ │ │ │ ├── downloadReport() │ │ │ │ │ │ ├── approveVerification() │ │ │ │ │ │ └── rejectVerification() │ │ │ │ │ ├── ETIMLookupController.php │ │ │ │ │ │ ├── lookupByDescription() │ │ │ │ │ │ ├── lookupBySKU() │ │ │ │ │ │ └── lookupBySupplier() │ │ │ │ │ └── ETIMMappingAssistantController.php │ │ │ │ ├── Manager/ │ │ │ │ │ ├── ETIMComplianceController.php │ │ │ │ │ ├── ETIMReportsController.php │ │ │ │ │ └── SupplierComplianceController.php │ │ │ │ └── Api/ │ │ │ │ └── V1/ │ │ │ │ ├── ETIMClassificationApiController.php │ │ │ │ ├── ETIMFeatureApiController.php │ │ │ │ ├── ETIMVerificationApiController.php │ │ │ │ └── ETIMSearchApiController.php │ │ │ ├── Events/ │ │ │ │ ├── ETIMDataImported.php │ │ │ │ ├── ETIMDataUpdated.php │ │ │ │ ├── ETIMVerificationPassed.php │ │ │ │ ├── ETIMVerificationFailed.php │ │ │ │ ├── ETIMDiscrepancyDetected.php │ │ │ │ ├── ETIMMappingCreated.php │ │ │ │ ├── ETIMClassificationSuggested.php │ │ │ │ └── SupplierComplianceUpdated.php │ │ │ ├── Listeners/ │ │ │ │ ├── NotifyProcurementOfFailure.php │ │ │ │ ├── FlagReceiptForReview.php │ │ │ │ ├── UpdateComplianceMetrics.php │ │ │ │ ├── LogVerificationResult.php │ │ │ │ └── NotifySupplierOfDiscrepancy.php │ │ │ ├── Jobs/ │ │ │ │ ├── ImportETIMData.php │ │ │ │ ├── UpdateETIMVersions.php │ │ │ │ ├── VerifyPendingReceipts.php │ │ │ │ ├── GenerateSupplierETIMReports.php │ │ │ │ ├── CalculateSupplierCompliance.php │ │ │ │ ├── SyncETIMWithProducts.php │ │ │ │ └── CleanupOldVerifications.php │ │ │ ├── Console/ │ │ │ │ └── Commands/ │ │ │ │ ├── EtimImportCommand.php │ │ │ │ ├── EtimSyncCommand.php │ │ │ │ ├── EtimVerifyCommand.php │ │ │ │ ├── EtimCheckUpdatesCommand.php │ │ │ │ └── EtimGenerateReportCommand.php │ │ │ ├── DTOs/ │ │ │ │ ├── ETIMClassificationDTO.php │ │ │ │ ├── ETIMFeatureDTO.php │ │ │ │ ├── ETIMFeatureValueDTO.php │ │ │ │ ├── VerificationRequestDTO.php │ │ │ │ ├── VerificationResultDTO.php │ │ │ │ └── SupplierComplianceDTO.php │ │ │ ├── Exceptions/ │ │ │ │ ├── ETIMDataNotFoundException.php │ │ │ │ ├── ETIMImportException.php │ │ │ │ ├── ETIMVerificationException.php │ │ │ │ ├── ETIMClassificationNotFoundException.php │ │ │ │ └── ETIMFeatureMismatchException.php │ │ │ ├── Enums/ │ │ │ │ ├── ETIMFeatureTypeEnum.php │ │ │ │ ├── ETIMVersionEnum.php │ │ │ │ ├── VerificationStatusEnum.php │ │ │ │ └── MatchLevelEnum.php │ │ │ ├── Rules/ │ │ │ │ ├── ETIMClassificationRule.php │ │ │ │ ├── ETIMFeatureRule.php │ │ │ │ └── ETIMVerificationRule.php │ │ │ ├── Integrations/ │ │ │ │ ├── ETIMAPI/ │ │ │ │ │ ├── ETIMAPIClient.php │ │ │ │ │ ├── ETIMAPIAuth.php │ │ │ │ │ └── ETIMAPIEndpoints.php │ │ │ │ └── BMEcat/ │ │ │ │ ├── BMEcatGenerator.php │ │ │ │ └── BMEcatParser.php │ │ │ ├── Exports/ │ │ │ │ ├── ETIMExcelExport.php │ │ │ │ ├── ETIMPDFExport.php │ │ │ │ ├── ETIMXMLExport.php │ │ │ │ └── ETIMJSONExport.php │ │ │ ├── Imports/ │ │ │ │ ├── ETIMIXFImport.php │ │ │ │ ├── ETIMCSVImport.php │ │ │ │ └── ETIMBMEcatImport.php │ │ │ ├── Charts/ │ │ │ │ ├── ComplianceTrendChart.php │ │ │ │ ├── DiscrepancyTypeChart.php │ │ │ │ └── SupplierComplianceChart.php │ │ │ └── Routes/ │ │ │ ├── admin.php │ │ │ ├── procurement.php │ │ │ ├── manager.php │ │ │ └── api.php │ │ │ │ │ ├── ComputerLabModule/ │ │ │ ├── Providers/ │ │ │ │ └── ComputerLabServiceProvider.php │ │ │ ├── Models/ │ │ │ │ ├── Computer.php │ │ │ │ ├── ComputerSpecs.php │ │ │ │ ├── ComputerComponent.php │ │ │ │ ├── ComputerPeripheral.php │ │ │ │ ├── Software.php │ │ │ │ ├── SoftwareLicense.php │ │ │ │ ├── SoftwareVersion.php │ │ │ │ ├── SoftwareCategory.php │ │ │ │ ├── Lab.php │ │ │ │ ├── LabSession.php │ │ │ │ ├── LabBooking.php │ │ │ │ ├── LabBookingRecurrence.php │ │ │ │ ├── LabAttendance.php │ │ │ │ ├── MaintenanceLog.php │ │ │ │ ├── MaintenanceSchedule.php │ │ │ │ ├── IssueReport.php │ │ │ │ ├── IssueResolution.php │ │ │ │ ├── NetworkDevice.php │ │ │ │ ├── NetworkPort.php │ │ │ │ ├── Printer.php │ │ │ │ ├── PrinterConsumable.php │ │ │ │ ├── ComputerLab.php │ │ │ │ └── LabPolicy.php │ │ │ ├── Repositories/ │ │ │ │ ├── ComputerRepository.php │ │ │ │ ├── SoftwareRepository.php │ │ │ │ ├── LicenseRepository.php │ │ │ │ ├── LabRepository.php │ │ │ │ ├── BookingRepository.php │ │ │ │ └── MaintenanceRepository.php │ │ │ ├── Services/ │ │ │ │ ├── ComputerService.php │ │ │ │ ├── SoftwareService.php │ │ │ │ ├── LicenseTrackingService.php │ │ │ │ ├── LabBookingService.php │ │ │ │ ├── LabSchedulingService.php │ │ │ │ ├── LabAttendanceService.php │ │ │ │ ├── MaintenanceService.php │ │ │ │ ├── IssueTrackingService.php │ │ │ │ ├── NetworkService.php │ │ │ │ ├── PrinterService.php │ │ │ │ ├── InventorySyncService.php │ │ │ │ ├── UtilizationAnalyticsService.php │ │ │ │ └── ReportingService.php │ │ │ ├── Controllers/ │ │ │ │ ├── LabTechnician/ │ │ │ │ │ ├── DashboardController.php │ │ │ │ │ ├── ComputerController.php │ │ │ │ │ ├── SoftwareController.php │ │ │ │ │ ├── LicenseController.php │ │ │ │ │ ├── BookingController.php │ │ │ │ │ ├── MaintenanceController.php │ │ │ │ │ ├── IssueController.php │ │ │ │ │ ├── NetworkController.php │ │ │ │ │ ├── PrinterController.php │ │ │ │ │ └── ReportsController.php │ │ │ │ ├── Manager/ │ │ │ │ │ ├── DashboardController.php │ │ │ │ │ ├── UtilizationController.php │ │ │ │ │ ├── BookingAnalyticsController.php │ │ │ │ │ ├── LicenseComplianceController.php │ │ │ │ │ ├── ProcurementController.php │ │ │ │ │ └── ReportsController.php │ │ │ │ └── Admin/ │ │ │ │ ├── LabController.php │ │ │ │ ├── SoftwareCategoryController.php │ │ │ │ ├── PolicyController.php │ │ │ │ └── LabSettingsController.php │ │ │ ├── Events/ │ │ │ │ ├── ComputerAdded.php │ │ │ │ ├── ComputerRemoved.php │ │ │ │ ├── SoftwareInstalled.php │ │ │ │ ├── LicenseExpiring.php │ │ │ │ ├── LabBooked.php │ │ │ │ ├── LabSessionStarted.php │ │ │ │ ├── LabSessionEnded.php │ │ │ │ ├── MaintenanceDue.php │ │ │ │ ├── IssueReported.php │ │ │ │ └── IssueResolved.php │ │ │ ├── Listeners/ │ │ │ │ ├── SendBookingConfirmation.php │ │ │ │ ├── NotifyTechnicianOfIssue.php │ │ │ │ ├── ScheduleMaintenance.php │ │ │ │ ├── UpdateUtilizationStats.php │ │ │ │ └── SendLicenseExpiryAlert.php │ │ │ ├── Jobs/ │ │ │ │ ├── CheckLicenseExpiry.php │ │ │ │ ├── ScheduleMaintenanceJobs.php │ │ │ │ ├── GenerateUtilizationReport.php │ │ │ │ └── SyncWithInventory.php │ │ │ └── Routes/ │ │ │ ├── technician.php │ │ │ ├── manager.php │ │ │ ├── admin.php │ │ │ └── api.php │ │ │ │ │ ├── ScienceLabModule/ │ │ │ ├── Providers/ │ │ │ │ └── ScienceLabServiceProvider.php │ │ │ ├── Models/ │ │ │ │ ├── Chemical.php │ │ │ │ ├── ChemicalCategory.php │ │ │ │ ├── ChemicalBatch.php │ │ │ │ ├── ChemicalStorage.php │ │ │ │ ├── ChemicalStorageCondition.php │ │ │ │ ├── ChemicalSafetyData.php │ │ │ │ ├── ChemicalHazard.php │ │ │ │ ├── ChemicalCompatibility.php │ │ │ │ ├── ChemicalDisposal.php │ │ │ │ ├── Equipment.php │ │ │ │ ├── EquipmentCategory.php │ │ │ │ ├── EquipmentCalibration.php │ │ │ │ ├── EquipmentMaintenance.php │ │ │ │ ├── EquipmentUsage.php │ │ │ │ ├── Glassware.php │ │ │ │ ├── GlasswareType.php │ │ │ │ ├── GlasswareSet.php │ │ │ │ ├── Consumable.php │ │ │ │ ├── ConsumableType.php │ │ │ │ ├── Experiment.php │ │ │ │ ├── ExperimentProtocol.php │ │ │ │ ├── ExperimentChemical.php │ │ │ │ ├── ExperimentEquipment.php │ │ │ │ ├── ExperimentResult.php │ │ │ │ ├── SafetyDataSheet.php │ │ │ │ ├── MSDS.php │ │ │ │ ├── RiskAssessment.php │ │ │ │ ├── WasteDisposal.php │ │ │ │ ├── WasteDisposalLog.php │ │ │ │ ├── LabRequest.php │ │ │ │ ├── LabRequestItem.php │ │ │ │ ├── ScienceLab.php │ │ │ │ ├── LabIncident.php │ │ │ │ ├── LabIncidentReport.php │ │ │ │ └── LabSafetyPolicy.php │ │ │ ├── Repositories/ │ │ │ │ ├── ChemicalRepository.php │ │ │ │ ├── ChemicalBatchRepository.php │ │ │ │ ├── EquipmentRepository.php │ │ │ │ ├── GlasswareRepository.php │ │ │ │ ├── ConsumableRepository.php │ │ │ │ ├── ExperimentRepository.php │ │ │ │ ├── SafetyRepository.php │ │ │ │ └── WasteRepository.php │ │ │ ├── Services/ │ │ │ │ ├── ChemicalInventoryService.php │ │ │ │ ├── ChemicalBatchTrackingService.php │ │ │ │ ├── ChemicalStorageService.php │ │ │ │ ├── ChemicalCompatibilityService.php │ │ │ │ ├── EquipmentService.php │ │ │ │ ├── EquipmentCalibrationService.php │ │ │ │ ├── EquipmentMaintenanceService.php │ │ │ │ ├── GlasswareManagementService.php │ │ │ │ ├── ConsumableService.php │ │ │ │ ├── ExperimentService.php │ │ │ │ ├── SafetyComplianceService.php │ │ │ │ ├── MSDSService.php │ │ │ │ ├── RiskAssessmentService.php │ │ │ │ ├── WasteManagementService.php │ │ │ │ ├── LabRequestService.php │ │ │ │ ├── IncidentReportingService.php │ │ │ │ ├── InventorySyncService.php │ │ │ │ ├── ExpiryTrackingService.php │ │ │ │ ├── ReportingService.php │ │ │ │ └── AnalyticsService.php │ │ │ ├── Controllers/ │ │ │ │ ├── LabAssistant/ │ │ │ │ │ ├── DashboardController.php │ │ │ │ │ ├── ChemicalController.php │ │ │ │ │ ├── ChemicalBatchController.php │ │ │ │ │ ├── EquipmentController.php │ │ │ │ │ ├── GlasswareController.php │ │ │ │ │ ├── ConsumableController.php │ │ │ │ │ ├── ExperimentController.php │ │ │ │ │ ├── RequestController.php │ │ │ │ │ ├── SafetyController.php │ │ │ │ │ ├── WasteController.php │ │ │ │ │ ├── IncidentController.php │ │ │ │ │ └── ReportsController.php │ │ │ │ ├── Manager/ │ │ │ │ │ ├── DashboardController.php │ │ │ │ │ ├── ChemicalApprovalController.php │ │ │ │ │ ├── ComplianceController.php │ │ │ │ │ ├── SafetyAuditController.php │ │ │ │ │ ├── ProcurementController.php │ │ │ │ │ └── ReportsController.php │ │ │ │ └── Admin/ │ │ │ │ ├── LabController.php │ │ │ │ ├── ChemicalCategoryController.php │ │ │ │ ├── HazardClassController.php │ │ │ │ ├── SafetyPolicyController.php │ │ │ │ └── LabSettingsController.php │ │ │ ├── Events/ │ │ │ │ ├── ChemicalReceived.php │ │ │ │ ├── ChemicalExpiring.php │ │ │ │ ├── ChemicalDisposed.php │ │ │ │ ├── EquipmentCalibrated.php │ │ │ │ ├── EquipmentMaintained.php │ │ │ │ ├── ExperimentStarted.php │ │ │ │ ├── ExperimentCompleted.php │ │ │ │ ├── SafetyIncident.php │ │ │ │ ├── WasteDisposalCompleted.php │ │ │ │ └── LabRequestApproved.php │ │ │ ├── Listeners/ │ │ │ │ ├── SendExpiryAlert.php │ │ │ │ ├── NotifySafetyOfficer.php │ │ │ │ ├── UpdateChemicalInventory.php │ │ │ │ ├── ScheduleCalibration.php │ │ │ │ └── LogChemicalUsage.php │ │ │ ├── Jobs/ │ │ │ │ ├── CheckChemicalExpiry.php │ │ │ │ ├── ScheduleEquipmentCalibration.php │ │ │ │ ├── GenerateSafetyReport.php │ │ │ │ ├── ProcessLabRequests.php │ │ │ │ └── SyncWithInventory.php │ │ │ └── Routes/ │ │ │ ├── assistant.php │ │ │ ├── manager.php │ │ │ ├── admin.php │ │ │ └── api.php │ │ │ │ │ ├── LibraryModule/ │ │ │ ├── Providers/ │ │ │ │ └── LibraryServiceProvider.php │ │ │ ├── Models/ │ │ │ │ ├── Book.php │ │ │ │ ├── BookCategory.php │ │ │ │ ├── BookSubCategory.php │ │ │ │ ├── BookCopy.php │ │ │ │ ├── BookStatus.php │ │ │ │ ├── Author.php │ │ │ │ ├── Publisher.php │ │ │ │ ├── ISBN.php │ │ │ │ ├── DeweyDecimal.php │ │ │ │ ├── Member.php │ │ │ │ ├── MemberType.php │ │ │ │ ├── MemberCard.php │ │ │ │ ├── Membership.php │ │ │ │ ├── MembershipFee.php │ │ │ │ ├── BorrowTransaction.php │ │ │ │ ├── BorrowItem.php │ │ │ │ ├── ReturnTransaction.php │ │ │ │ ├── ReturnItem.php │ │ │ │ ├── Fine.php │ │ │ │ ├── FineType.php │ │ │ │ ├── FinePayment.php │ │ │ │ ├── Reservation.php │ │ │ │ ├── ReservationQueue.php │ │ │ │ ├── Shelf.php │ │ │ │ ├── Rack.php │ │ │ │ ├── Section.php │ │ │ │ ├── Floor.php │ │ │ │ ├── Acquisition.php │ │ │ │ ├── AcquisitionItem.php │ │ │ │ ├── AcquisitionRequest.php │ │ │ │ ├── Vendor.php │ │ │ │ ├── VendorContact.php │ │ │ │ ├── VendorRating.php │ │ │ │ ├── CirculationDesk.php │ │ │ │ ├── CirculationLog.php │ │ │ │ ├── OpeningHour.php │ │ │ │ ├── HolidayClosing.php │ │ │ │ ├── LibraryEvent.php │ │ │ │ ├── EventRegistration.php │ │ │ │ ├── LibraryCard.php │ │ │ │ ├── LibrarySetting.php │ │ │ │ ├── ReportTemplate.php │ │ │ │ └── SavedSearch.php │ │ │ ├── Repositories/ │ │ │ │ ├── BookRepository.php │ │ │ │ ├── BookCopyRepository.php │ │ │ │ ├── AuthorRepository.php │ │ │ │ ├── PublisherRepository.php │ │ │ │ ├── MemberRepository.php │ │ │ │ ├── BorrowRepository.php │ │ │ │ ├── FineRepository.php │ │ │ │ ├── ReservationRepository.php │ │ │ │ ├── AcquisitionRepository.php │ │ │ │ └── VendorRepository.php │ │ │ ├── Services/ │ │ │ │ ├── CatalogingService.php │ │ │ │ ├── ClassificationService.php │ │ │ │ ├── MemberService.php │ │ │ │ ├── BorrowingService.php │ │ │ │ ├── ReturnService.php │ │ │ │ ├── RenewalService.php │ │ │ │ ├── ReservationService.php │ │ │ │ ├── FineCalculationService.php │ │ │ │ ├── FineCollectionService.php │ │ │ │ ├── AcquisitionService.php │ │ │ │ ├── VendorManagementService.php │ │ │ │ ├── CirculationService.php │ │ │ │ ├── InventorySyncService.php │ │ │ │ ├── ReportingService.php │ │ │ │ ├── AnalyticsService.php │ │ │ │ ├── SearchService.php │ │ │ │ ├── RecommendationService.php │ │ │ │ ├── NotificationService.php │ │ │ │ └── CalendarService.php │ │ │ ├── Controllers/ │ │ │ │ ├── Librarian/ │ │ │ │ │ ├── DashboardController.php │ │ │ │ │ ├── BookController.php │ │ │ │ │ ├── CatalogController.php │ │ │ │ │ ├── MemberController.php │ │ │ │ │ ├── BorrowController.php │ │ │ │ │ ├── ReturnController.php │ │ │ │ │ ├── FineController.php │ │ │ │ │ ├── ReservationController.php │ │ │ │ │ ├── CirculationController.php │ │ │ │ │ ├── ShelfController.php │ │ │ │ │ ├── EventController.php │ │ │ │ │ └── ReportsController.php │ │ │ │ ├── Manager/ │ │ │ │ │ ├── DashboardController.php │ │ │ │ │ ├── AcquisitionController.php │ │ │ │ │ ├── VendorController.php │ │ │ │ │ ├── BudgetController.php │ │ │ │ │ ├── PolicyController.php │ │ │ │ │ ├── AnalyticsController.php │ │ │ │ │ └── ReportsController.php │ │ │ │ └── Admin/ │ │ │ │ ├── LibraryController.php │ │ │ │ ├── CategoryController.php │ │ │ │ ├── MemberTypeController.php │ │ │ │ ├── FineTypeController.php │ │ │ │ ├── OpeningHourController.php │ │ │ │ └── SettingsController.php │ │ │ ├── Events/ │ │ │ │ ├── BookAdded.php │ │ │ │ ├── BookUpdated.php │ │ │ │ ├── BookBorrowed.php │ │ │ │ ├── BookReturned.php │ │ │ │ ├── BookReserved.php │ │ │ │ ├── BookOverdue.php │ │ │ │ ├── MemberRegistered.php │ │ │ │ ├── MembershipExpiring.php │ │ │ │ ├── FineIncurred.php │ │ │ │ ├── FinePaid.php │ │ │ │ └── AcquisitionReceived.php │ │ │ ├── Listeners/ │ │ │ │ ├── SendBorrowReceipt.php │ │ │ │ ├── SendReturnReceipt.php │ │ │ │ ├── SendOverdueNotice.php │ │ │ │ ├── SendReservationAvailable.php │ │ │ │ ├── SendMembershipReminder.php │ │ │ │ ├── UpdateCatalog.php │ │ │ │ ├── UpdateFineBalance.php │ │ │ │ └── NotifyAcquisition.php │ │ │ ├── Jobs/ │ │ │ │ ├── CheckOverdueBooks.php │ │ │ │ ├── SendOverdueReminders.php │ │ │ │ ├── ProcessReservationQueue.php │ │ │ │ ├── GenerateCirculationReport.php │ │ │ │ ├── CalculateFines.php │ │ │ │ ├── SyncWithInventory.php │ │ │ │ └── CleanupOldTransactions.php │ │ │ └── Routes/ │ │ │ ├── librarian.php │ │ │ ├── manager.php │ │ │ ├── admin.php │ │ │ └── api.php │ │ │ │ │ ├── ProcurementModule/ │ │ │ ├── Providers/ │ │ │ │ └── ProcurementServiceProvider.php │ │ │ ├── Models/ │ │ │ │ ├── Supplier.php │ │ │ │ ├── SupplierCategory.php │ │ │ │ ├── SupplierContact.php │ │ │ │ ├── SupplierRating.php │ │ │ │ ├── SupplierDocument.php │ │ │ │ ├── PurchaseRequest.php │ │ │ │ ├── PurchaseRequestItem.php │ │ │ │ ├── PurchaseRequestApproval.php │ │ │ │ ├── Quotation.php │ │ │ │ ├── QuotationItem.php │ │ │ │ ├── QuotationComparison.php │ │ │ │ ├── PurchaseOrder.php │ │ │ │ ├── PurchaseOrderItem.php │ │ │ │ ├── PurchaseOrderApproval.php │ │ │ │ ├── PurchaseOrderStatus.php │ │ │ │ ├── GoodsReceipt.php │ │ │ │ ├── GoodsReceiptItem.php │ │ │ │ ├── GoodsReceiptNote.php │ │ │ │ ├── Invoice.php │ │ │ │ ├── InvoiceItem.php │ │ │ │ ├── Payment.php │ │ │ │ ├── PaymentTerm.php │ │ │ │ ├── Contract.php │ │ │ │ ├── ContractItem.php │ │ │ │ ├── Tender.php │ │ │ │ ├── TenderBid.php │ │ │ │ ├── TenderEvaluation.php │ │ │ │ ├── ProcurementCategory.php │ │ │ │ ├── ProcurementBudget.php │ │ │ │ └── ProcurementReport.php │ │ │ ├── Repositories/ │ │ │ │ ├── SupplierRepository.php │ │ │ │ ├── PurchaseRequestRepository.php │ │ │ │ ├── QuotationRepository.php │ │ │ │ ├── PurchaseOrderRepository.php │ │ │ │ ├── GoodsReceiptRepository.php │ │ │ │ ├── InvoiceRepository.php │ │ │ │ ├── ContractRepository.php │ │ │ │ └── TenderRepository.php │ │ │ ├── Services/ │ │ │ │ ├── SupplierManagementService.php │ │ │ │ ├── SupplierEvaluationService.php │ │ │ │ ├── PurchaseRequestService.php │ │ │ │ ├── QuotationService.php │ │ │ │ ├── QuotationComparisonService.php │ │ │ │ ├── PurchaseOrderService.php │ │ │ │ ├── PurchaseOrderApprovalService.php │ │ │ │ ├── GoodsReceiptService.php │ │ │ │ ├── InvoiceProcessingService.php │ │ │ │ ├── PaymentService.php │ │ │ │ ├── ContractManagementService.php │ │ │ │ ├── TenderManagementService.php │ │ │ │ ├── TenderEvaluationService.php │ │ │ │ ├── ProcurementPlanningService.php │ │ │ │ ├── BudgetControlService.php │ │ │ │ ├── ReportingService.php │ │ │ │ └── AnalyticsService.php │ │ │ ├── Controllers/ │ │ │ │ ├── Requisitioner/ │ │ │ │ │ ├── RequestController.php │ │ │ │ │ ├── StatusController.php │ │ │ │ │ └── HistoryController.php │ │ │ │ ├── ProcurementOfficer/ │ │ │ │ │ ├── DashboardController.php │ │ │ │ │ ├── SupplierController.php │ │ │ │ │ ├── PurchaseRequestController.php │ │ │ │ │ ├── QuotationController.php │ │ │ │ │ ├── PurchaseOrderController.php │ │ │ │ │ ├── GoodsReceiptController.php │ │ │ │ │ ├── InvoiceController.php │ │ │ │ │ ├── ContractController.php │ │ │ │ │ └── ReportsController.php │ │ │ │ ├── Manager/ │ │ │ │ │ ├── DashboardController.php │ │ │ │ │ ├── ApprovalController.php │ │ │ │ │ ├── TenderController.php │ │ │ │ │ ├── BudgetController.php │ │ │ │ │ ├── SupplierEvaluationController.php │ │ │ │ │ ├── AnalyticsController.php │ │ │ │ │ └── ReportsController.php │ │ │ │ └── Admin/ │ │ │ │ ├── SupplierCategoryController.php │ │ │ │ ├── ProcurementCategoryController.php │ │ │ │ ├── PaymentTermController.php │ │ │ │ ├── ApprovalWorkflowController.php │ │ │ │ └── SettingsController.php │ │ │ ├── Events/ │ │ │ │ ├── PurchaseRequestCreated.php │ │ │ │ ├── PurchaseRequestApproved.php │ │ │ │ ├── PurchaseRequestRejected.php │ │ │ │ ├── QuotationReceived.php │ │ │ │ ├── PurchaseOrderCreated.php │ │ │ │ ├── PurchaseOrderApproved.php │ │ │ │ ├── PurchaseOrderIssued.php │ │ │ │ ├── GoodsReceived.php │ │ │ │ ├── InvoiceReceived.php │ │ │ │ ├── PaymentMade.php │ │ │ │ ├── ContractSigned.php │ │ │ │ └── TenderAwarded.php │ │ │ ├── Listeners/ │ │ │ │ ├── NotifyRequisitioner.php │ │ │ │ ├── NotifyApprover.php │ │ │ │ ├── UpdateProcurementStatus.php │ │ │ │ ├── SendPurchaseOrderToSupplier.php │ │ │ │ ├── UpdateInventoryOnReceipt.php │ │ │ │ ├── UpdateBudgetOnCommitment.php │ │ │ │ ├── LogProcurementActivity.php │ │ │ │ └── SyncWithFinancials.php │ │ │ ├── Jobs/ │ │ │ │ ├── ProcessPurchaseRequests.php │ │ │ │ ├── SendQuotationReminders.php │ │ │ │ ├── CheckPurchaseOrderDelivery.php │ │ │ │ ├── ProcessInvoicesForPayment.php │ │ │ │ ├── GenerateProcurementReport.php │ │ │ │ └── SyncWithInventory.php │ │ │ └── Routes/ │ │ │ ├── requisitioner.php │ │ │ ├── officer.php │ │ │ ├── manager.php │ │ │ ├── admin.php │ │ │ └── api.php │ │ │ │ │ ├── FinanceModule/ │ │ │ ├── Providers/ │ │ │ │ └── FinanceServiceProvider.php │ │ │ ├── Models/ │ │ │ │ ├── Account.php │ │ │ │ ├── AccountType.php │ │ │ │ ├── AccountGroup.php │ │ │ │ ├── ChartOfAccounts.php │ │ │ │ ├── JournalEntry.php │ │ │ │ ├── JournalLine.php │ │ │ │ ├── Transaction.php │ │ │ │ ├── TransactionType.php │ │ │ │ ├── Budget.php │ │ │ │ ├── BudgetLine.php │ │ │ │ ├── BudgetVersion.php │ │ │ │ ├── BudgetAdjustment.php │ │ │ │ ├── ActualExpense.php │ │ │ │ ├── ActualRevenue.php │ │ │ │ ├── CostCenter.php │ │ │ │ ├── ProfitCenter.php │ │ │ │ ├── DepartmentBudget.php │ │ │ │ ├── ProjectBudget.php │ │ │ │ ├── FinancialPeriod.php │ │ │ │ ├── FiscalYear.php │ │ │ │ ├── Currency.php │ │ │ │ ├── ExchangeRate.php │ │ │ │ ├── Tax.php │ │ │ │ ├── TaxRate.php │ │ │ │ ├── TaxGroup.php │ │ │ │ ├── Payment.php │ │ │ │ ├── PaymentMethod.php │ │ │ │ ├── Receipt.php │ │ │ │ ├── BankAccount.php │ │ │ │ ├── BankTransaction.php │ │ │ │ ├── BankReconciliation.php │ │ │ │ ├── Asset.php │ │ │ │ ├── AssetDepreciation.php │ │ │ │ ├── Liability.php │ │ │ │ ├── Equity.php │ │ │ │ ├── FinancialReport.php │ │ │ │ ├── BalanceSheet.php │ │ │ │ ├── IncomeStatement.php │ │ │ │ ├── CashFlowStatement.php │ │ │ │ └── TrialBalance.php │ │ │ ├── Repositories/ │ │ │ │ ├── AccountRepository.php │ │ │ │ ├── JournalRepository.php │ │ │ │ ├── TransactionRepository.php │ │ │ │ ├── BudgetRepository.php │ │ │ │ ├── CostCenterRepository.php │ │ │ │ ├── CurrencyRepository.php │ │ │ │ ├── TaxRepository.php │ │ │ │ └── FinancialReportRepository.php │ │ │ ├── Services/ │ │ │ │ ├── AccountingService.php │ │ │ │ ├── JournalService.php │ │ │ │ ├── LedgerService.php │ │ │ │ ├── BudgetService.php │ │ │ │ ├── BudgetControlService.php │ │ │ │ ├── CostCenterService.php │ │ │ │ ├── CurrencyService.php │ │ │ │ ├── TaxService.php │ │ │ │ ├── PaymentService.php │ │ │ │ ├── ReceiptService.php │ │ │ │ ├── BankService.php │ │ │ │ ├── ReconciliationService.php │ │ │ │ ├── AssetAccountingService.php │ │ │ │ ├── DepreciationService.php │ │ │ │ ├── FinancialReportingService.php │ │ │ │ ├── FinancialAnalysisService.php │ │ │ │ ├── ForecastingService.php │ │ │ │ └── AuditService.php │ │ │ ├── Controllers/ │ │ │ │ ├── Accountant/ │ │ │ │ │ ├── DashboardController.php │ │ │ │ │ ├── JournalController.php │ │ │ │ │ ├── LedgerController.php │ │ │ │ │ ├── TransactionController.php │ │ │ │ │ ├── BudgetController.php │ │ │ │ │ ├── CostCenterController.php │ │ │ │ │ ├── PaymentController.php │ │ │ │ │ ├── ReceiptController.php │ │ │ │ │ ├── BankController.php │ │ │ │ │ ├── TaxController.php │ │ │ │ │ ├── AssetController.php │ │ │ │ │ └── ReportsController.php │ │ │ │ ├── FinanceManager/ │ │ │ │ │ ├── DashboardController.php │ │ │ │ │ ├── BudgetApprovalController.php │ │ │ │ │ ├── FinancialReportsController.php │ │ │ │ │ ├── FinancialAnalysisController.php │ │ │ │ │ ├── ForecastingController.php │ │ │ │ │ └── AuditController.php │ │ │ │ └── Admin/ │ │ │ │ ├── AccountController.php │ │ │ │ ├── ChartOfAccountsController.php │ │ │ │ ├── CurrencyController.php │ │ │ │ ├── TaxRateController.php │ │ │ │ ├── FiscalYearController.php │ │ │ │ └── SettingsController.php │ │ │ ├── Events/ │ │ │ │ ├── JournalEntryPosted.php │ │ │ │ ├── TransactionRecorded.php │ │ │ │ ├── BudgetCreated.php │ │ │ │ ├── BudgetAdjusted.php │ │ │ │ ├── PaymentMade.php │ │ │ │ ├── ReceiptRecorded.php │ │ │ │ ├── BankReconciled.php │ │ │ │ ├── AssetAcquired.php │ │ │ │ ├── AssetDepreciated.php │ │ │ │ └── FinancialReportGenerated.php │ │ │ ├── Listeners/ │ │ │ │ ├── UpdateGeneralLedger.php │ │ │ │ ├── UpdateBudgetActuals.php │ │ │ │ ├── CheckBudgetVariance.php │ │ │ │ ├── NotifyBudgetOverspend.php │ │ │ │ ├── UpdateAssetValue.php │ │ │ │ ├── LogFinancialTransaction.php │ │ │ │ └── SyncWithProcurement.php │ │ │ ├── Jobs/ │ │ │ │ ├── CalculateDepreciation.php │ │ │ │ ├── ReconcileBankAccounts.php │ │ │ │ ├── GenerateFinancialReports.php │ │ │ │ ├── ProcessRecurringTransactions.php │ │ │ │ ├── UpdateExchangeRates.php │ │ │ │ └── CloseFinancialPeriod.php │ │ │ └── Routes/ │ │ │ ├── accountant.php │ │ │ ├── manager.php │ │ │ ├── admin.php │ │ │ └── api.php │ │ │ │ │ └── ReportingModule/ │ │ ├── Providers/ │ │ │ └── ReportingServiceProvider.php │ │ ├── Models/ │ │ │ ├── Report.php │ │ │ ├── ReportCategory.php │ │ │ ├── ReportTemplate.php │ │ │ ├── ReportSchedule.php │ │ │ ├── ReportHistory.php │ │ │ ├── Dashboard.php │ │ │ ├── DashboardWidget.php │ │ │ ├── WidgetType.php │ │ │ ├── Chart.php │ │ │ ├── ChartType.php │ │ │ ├── DataSource.php │ │ │ ├── DataSourceQuery.php │ │ │ ├── ExportFormat.php │ │ │ └── SavedFilter.php │ │ ├── Repositories/ │ │ │ ├── ReportRepository.php │ │ │ ├── DashboardRepository.php │ │ │ └── WidgetRepository.php │ │ ├── Services/ │ │ │ ├── ReportGeneratorService.php │ │ │ ├── ReportSchedulerService.php │ │ │ ├── ReportExportService.php │ │ │ ├── DashboardService.php │ │ │ ├── WidgetService.php │ │ │ ├── ChartService.php │ │ │ ├── DataSourceService.php │ │ │ ├── PDFExportService.php │ │ │ ├── ExcelExportService.php │ │ │ ├── CSVExportService.php │ │ │ ├── JSONExportService.php │ │ │ ├── EmailReportService.php │ │ │ └── AnalyticsService.php │ │ ├── Controllers/ │ │ │ ├── Manager/ │ │ │ │ ├── ReportController.php │ │ │ │ ├── ReportBuilderController.php │ │ │ │ ├── DashboardController.php │ │ │ │ ├── WidgetController.php │ │ │ │ ├── ExportController.php │ │ │ │ └── ScheduleController.php │ │ │ └── Admin/ │ │ │ ├── ReportTemplateController.php │ │ │ ├── DataSourceController.php │ │ │ └── SettingsController.php │ │ ├── Events/ │ │ │ ├── ReportGenerated.php │ │ │ ├── ReportScheduled.php │ │ │ ├── ReportExported.php │ │ │ └── DashboardUpdated.php │ │ ├── Listeners/ │ │ │ ├── SendReportEmail.php │ │ │ ├── StoreReportHistory.php │ │ │ └── NotifyReportReady.php │ │ ├── Jobs/ │ │ │ ├── GenerateScheduledReport.php │ │ │ ├── SendReportDigest.php │ │ │ └── CleanupOldReports.php │ │ └── Routes/ │ │ ├── manager.php │ │ ├── admin.php │ │ └── api.php │ │ │ ├── Services/ # Cross-Module Services │ │ ├── NotificationService.php │ │ ├── EmailService.php │ │ ├── SmsService.php │ │ ├── PushNotificationService.php │ │ ├── AuditService.php │ │ ├── FileStorageService.php │ │ ├── SearchService.php │ │ ├── CacheService.php │ │ ├── QueueService.php │ │ ├── EncryptionService.php │ │ ├── PDFService.php │ │ ├── ExcelService.php │ │ ├── ImportService.php │ │ ├── ExportService.php │ │ ├── BackupService.php │ │ ├── RestoreService.php │ │ ├── HealthCheckService.php │ │ ├── MonitoringService.php │ │ ├── AlertService.php │ │ ├── IntegrationService.php │ │ ├── WebhookService.php │ │ ├── APIGatewayService.php │ │ └── TranslationService.php │ │ │ ├── Console/ # CLI Commands │ │ ├── Kernel.php │ │ ├── Commands/ │ │ │ ├── System/ │ │ │ │ ├── InstallCommand.php │ │ │ │ ├── UpdateCommand.php │ │ │ │ ├── BackupCommand.php │ │ │ │ ├── RestoreCommand.php │ │ │ │ ├── CacheClearCommand.php │ │ │ │ ├── ConfigCacheCommand.php │ │ │ │ ├── RouteCacheCommand.php │ │ │ │ ├── QueueWorkCommand.php │ │ │ │ ├── QueueRestartCommand.php │ │ │ │ ├── HealthCheckCommand.php │ │ │ │ └── MaintenanceModeCommand.php │ │ │ ├── Attendance/ │ │ │ │ ├── ProcessAttendanceCommand.php │ │ │ │ ├── GenerateAttendanceReportCommand.php │ │ │ │ ├── SendAttendanceRemindersCommand.php │ │ │ │ ├── SyncBiometricDataCommand.php │ │ │ │ └── CalculateLeaveAccrualsCommand.php │ │ │ ├── Inventory/ │ │ │ │ ├── CheckReorderPointsCommand.php │ │ │ │ ├── ProcessExpiryAlertsCommand.php │ │ │ │ ├── CalculateValuationCommand.php │ │ │ │ ├── SyncStockLevelsCommand.php │ │ │ │ └── GenerateInventoryReportCommand.php │ │ │ ├── Procurement/ │ │ │ │ ├── ProcessPurchaseRequestsCommand.php │ │ │ │ ├── CheckOrdersDeliveryCommand.php │ │ │ │ ├── ProcessInvoicesCommand.php │ │ │ │ └── GenerateProcurementReportCommand.php │ │ │ ├── Finance/ │ │ │ │ ├── CalculateDepreciationCommand.php │ │ │ │ ├── ReconcileBankAccountsCommand.php │ │ │ │ ├── GenerateFinancialReportsCommand.php │ │ │ │ └── CloseFinancialPeriodCommand.php │ │ │ ├── Library/ │ │ │ │ ├── CheckOverdueBooksCommand.php │ │ │ │ ├── SendOverdueRemindersCommand.php │ │ │ │ ├── ProcessReservationQueueCommand.php │ │ │ │ └── CalculateFinesCommand.php │ │ │ └── ETIM/ │ │ │ ├── EtimImportCommand.php │ │ │ ├── EtimSyncCommand.php │ │ │ ├── EtimVerifyCommand.php │ │ │ ├── EtimCheckUpdatesCommand.php │ │ │ └── EtimGenerateReportCommand.php │ │ └── Schedules/ │ │ ├── KernelScheduler.php │ │ └── ScheduleDefinitions.php │ │ │ └── Helpers/ # Helper Functions │ ├── DateHelper.php │ ├── TimeHelper.php │ ├── NumberHelper.php │ ├── StringHelper.php │ ├── ArrayHelper.php │ ├── FileHelper.php │ ├── ImageHelper.php │ ├── CurrencyHelper.php │ ├── TaxHelper.php │ ├── ValidationHelper.php │ ├── FormatHelper.php │ ├── EncryptionHelper.php │ ├── HashHelper.php │ ├── RandomHelper.php │ ├── SlugHelper.php │ ├── ModuleHelper.php │ └── LeaveCalculatorHelper.php │ ├── bootstrap/ # Bootstrap Files │ ├── app.php │ ├── autoload.php │ ├── providers.php │ └── helpers.php │ ├── config/ # Configuration Files │ ├── app.php │ ├── auth.php │ ├── database.php │ ├── cache.php │ ├── queue.php │ ├── mail.php │ ├── logging.php │ ├── session.php │ ├── cors.php │ ├── modules.php │ ├── roles.php │ ├── permissions.php │ ├── attendance.php │ │ ├── clock_settings │ │ ├── break_settings │ │ ├── leave_settings │ │ ├── overtime_settings │ │ ├── notification_settings │ │ └── gender_policies │ ├── inventory.php │ │ ├── stock_settings │ │ ├── reorder_settings │ │ ├── expiry_settings │ │ └── valuation_method │ ├── etim.php │ │ ├── api_endpoint │ │ ├── import_path │ │ ├── supported_versions │ │ ├── auto_verify_threshold │ │ └── languages │ ├── procurement.php │ ├── finance.php │ ├── library.php │ ├── computerlab.php │ ├── sciencelab.php │ └── services/ │ ├── notification.php │ ├── payment.php │ └── integration.php │ ├── database/ # Database Files │ ├── migrations/ │ │ ├── core/ │ │ │ ├── 2024_01_01_000001_create_users_table.php │ │ │ ├── 2024_01_01_000002_create_roles_table.php │ │ │ ├── 2024_01_01_000003_create_permissions_table.php │ │ │ ├── 2024_01_01_000004_create_departments_table.php │ │ │ ├── 2024_01_01_000005_create_settings_table.php │ │ │ └── ... │ │ ├── attendance/ │ │ │ ├── 2024_01_02_000001_create_employees_table.php │ │ │ ├── 2024_01_02_000002_create_attendance_table.php │ │ │ ├── 2024_01_02_000003_create_leaves_table.php │ │ │ ├── 2024_01_02_000004_create_leave_balances_table.php │ │ │ ├── 2024_01_02_000005_create_shifts_table.php │ │ │ ├── 2024_01_02_000006_create_breaks_table.php │ │ │ ├── 2024_01_02_000007_create_overtime_table.php │ │ │ ├── 2024_01_02_000008_create_holidays_table.php │ │ │ └── ... │ │ ├── inventory/ │ │ │ ├── 2024_01_03_000001_create_products_table.php │ │ │ ├── 2024_01_03_000002_create_categories_table.php │ │ │ ├── 2024_01_03_000003_create_suppliers_table.php │ │ │ ├── 2024_01_03_000004_create_warehouses_table.php │ │ │ ├── 2024_01_03_000005_create_stock_levels_table.php │ │ │ ├── 2024_01_03_000006_create_stock_movements_table.php │ │ │ ├── 2024_01_03_000007_create_purchase_orders_table.php │ │ │ ├── 2024_01_03_000008_create_goods_receipts_table.php │ │ │ ├── 2024_01_03_000009_create_batches_table.php │ │ │ └── ... │ │ ├── etim/ │ │ │ ├── 2024_01_04_000001_create_etim_classifications_table.php │ │ │ ├── 2024_01_04_000002_create_etim_features_table.php │ │ │ ├── 2024_01_04_000003_create_etim_feature_values_table.php │ │ │ ├── 2024_01_04_000004_create_etim_units_table.php │ │ │ ├── 2024_01_04_000005_create_product_etim_classifications_table.php │ │ │ ├── 2024_01_04_000006_add_etim_fields_to_receiving_table.php │ │ │ └── ... │ │ ├── computerlab/ │ │ ├── sciencelab/ │ │ ├── library/ │ │ ├── procurement/ │ │ └── finance/ │ │ │ ├── seeders/ │ │ ├── DatabaseSeeder.php │ │ ├── CoreSeeder.php │ │ ├── RoleSeeder.php │ │ ├── PermissionSeeder.php │ │ ├── DepartmentSeeder.php │ │ ├── UserSeeder.php │ │ ├── AttendanceSeeder.php │ │ ├── InventorySeeder.php │ │ ├── ETIMSeeder.php │ │ ├── LibrarySeeder.php │ │ ├── ComputerLabSeeder.php │ │ ├── ScienceLabSeeder.php │ │ ├── ProcurementSeeder.php │ │ └── FinanceSeeder.php │ │ │ └── factories/ │ ├── UserFactory.php │ ├── EmployeeFactory.php │ ├── ProductFactory.php │ ├── BookFactory.php │ ├── ChemicalFactory.php │ └── ComputerFactory.php │ ├── public/ # Public Directory │ ├── index.php │ ├── .htaccess │ ├── robots.txt │ ├── favicon.ico │ ├── assets/ │ │ ├── css/ │ │ │ ├── app.css │ │ │ ├── admin.css │ │ │ ├── manager.css │ │ │ ├── hr.css │ │ │ ├── gatekeeper.css │ │ │ └── vendor.css │ │ ├── js/ │ │ │ ├── app.js │ │ │ ├── admin.js │ │ │ ├── manager.js │ │ │ ├── hr.js │ │ │ ├── gatekeeper.js │ │ │ ├── charts.js │ │ │ └── vendor.js │ │ └── images/ │ │ ├── logo.png │ │ ├── favicon/ │ │ └── icons/ │ │ │ └── uploads/ │ ├── profile-photos/ │ ├── employee-documents/ │ ├── inventory/ │ │ ├── product-images/ │ │ └── documents/ │ ├── library/ │ │ ├── book-covers/ │ │ └── documents/ │ ├── laboratory/ │ │ ├── safety-sheets/ │ │ └── experiment-results/ │ ├── procurement/ │ │ ├── quotations/ │ │ ├── invoices/ │ │ └── contracts/ │ ├── etim/ │ │ ├── imports/ │ │ └── exports/ │ └── temp/ │ ├── resources/ # Resources │ ├── views/ │ │ ├── auth/ │ │ │ ├── login.blade.php │ │ │ ├── register.blade.php │ │ │ ├── forgot-password.blade.php │ │ │ ├── reset-password.blade.php │ │ │ ├── verify-email.blade.php │ │ │ └── two-factor.blade.php │ │ │ │ │ ├── admin/ │ │ │ ├── dashboard.blade.php │ │ │ ├── users/ │ │ │ ├── roles/ │ │ │ ├── permissions/ │ │ │ ├── departments/ │ │ │ ├── settings/ │ │ │ ├── audit-logs/ │ │ │ └── backups/ │ │ │ │ │ ├── manager/ │ │ │ ├── dashboard.blade.php │ │ │ ├── attendance/ │ │ │ ├── inventory/ │ │ │ ├── procurement/ │ │ │ ├── reports/ │ │ │ └── analytics/ │ │ │ │ │ ├── hr/ │ │ │ ├── dashboard.blade.php │ │ │ ├── leaves/ │ │ │ │ ├── index.blade.php │ │ │ │ ├── pending.blade.php │ │ │ │ ├── approved.blade.php │ │ │ │ ├── rejected.blade.php │ │ │ │ ├── maternity.blade.php │ │ │ │ ├── paternity.blade.php │ │ │ │ ├── sick.blade.php │ │ │ │ ├── annual.blade.php │ │ │ │ ├── emergency.blade.php │ │ │ │ ├── excused.blade.php │ │ │ │ ├── approve.blade.php │ │ │ │ ├── reject.blade.php │ │ │ │ └── view.blade.php │ │ │ ├── balances/ │ │ │ │ ├── index.blade.php │ │ │ │ ├── adjust.blade.php │ │ │ │ └── history.blade.php │ │ │ ├── attendance/ │ │ │ │ ├── view.blade.php │ │ │ │ └── corrections.blade.php │ │ │ ├── overtime/ │ │ │ │ └── requests.blade.php │ │ │ ├── employees/ │ │ │ │ ├── index.blade.php │ │ │ │ ├── create.blade.php │ │ │ │ ├── edit.blade.php │ │ │ │ └── view.blade.php │ │ │ └── reports/ │ │ │ ├── leave-summary.blade.php │ │ │ ├── attendance-summary.blade.php │ │ │ └── export.blade.php │ │ │ │ │ ├── gatekeeper/ │ │ │ ├── clock-screen.blade.php │ │ │ ├── staff-search.blade.php │ │ │ ├── manual-clock.blade.php │ │ │ ├── today-list.blade.php │ │ │ └── quick-actions.blade.php │ │ │ │ │ ├── storekeeper/ │ │ │ ├── dashboard.blade.php │ │ │ ├── products/ │ │ │ ├── receiving/ │ │ │ ├── issues/ │ │ │ ├── transfers/ │ │ │ └── stock-count/ │ │ │ │ │ ├── librarian/ │ │ │ ├── dashboard.blade.php │ │ │ ├── books/ │ │ │ ├── members/ │ │ │ ├── borrowing/ │ │ │ ├── returns/ │ │ │ └── fines/ │ │ │ │ │ ├── labtechnician/ │ │ │ ├── dashboard.blade.php │ │ │ ├── computers/ │ │ │ ├── software/ │ │ │ └── bookings/ │ │ │ │ │ ├── labassistant/ │ │ │ ├── dashboard.blade.php │ │ │ ├── chemicals/ │ │ │ ├── equipment/ │ │ │ └── experiments/ │ │ │ │ │ ├── procurement/ │ │ │ ├── receiving/ │ │ │ │ ├── verification.blade.php │ │ │ │ ├── verification-report.blade.php │ │ │ │ └── batch-verification.blade.php │ │ │ └── reports/ │ │ │ └── etim-compliance.blade.php │ │ │ │ │ ├── etim/ │ │ │ ├── admin/ │ │ │ │ ├── import.blade.php │ │ │ │ ├── classifications.blade.php │ │ │ │ ├── mapping.blade.php │ │ │ │ └── settings.blade.php │ │ │ └── procurement/ │ │ │ └── verification.blade.php │ │ │ │ │ ├── errors/ │ │ │ ├── 403.blade.php │ │ │ ├── 404.blade.php │ │ │ ├── 419.blade.php │ │ │ ├── 429.blade.php │ │ │ └── 500.blade.php │ │ │ │ │ ├── emails/ │ │ │ ├── auth/ │ │ │ ├── attendance/ │ │ │ ├── inventory/ │ │ │ ├── procurement/ │ │ │ └── reports/ │ │ │ │ │ ├── pdf/ │ │ │ ├── reports/ │ │ │ └── invoices/ │ │ │ │ │ └── partials/ │ │ ├── header.blade.php │ │ ├── footer.blade.php │ │ ├── sidebar/ │ │ │ ├── admin-sidebar.blade.php │ │ │ ├── manager-sidebar.blade.php │ │ │ ├── hr-sidebar.blade.php │ │ │ ├── gatekeeper-sidebar.blade.php │ │ │ └── staff-sidebar.blade.php │ │ ├── modals/ │ │ │ ├── clock-in-modal.blade.php │ │ │ ├── break-modal.blade.php │ │ │ └── leave-modal.blade.php │ │ └── widgets/ │ │ ├── attendance-stats.blade.php │ │ ├── pending-count.blade.php │ │ └── alerts.blade.php │ │ │ ├── lang/ │ │ ├── en/ │ │ │ ├── auth.php │ │ │ ├── validation.php │ │ │ ├── pagination.php │ │ │ ├── messages.php │ │ │ ├── attendance.php │ │ │ ├── inventory.php │ │ │ ├── etim.php │ │ │ ├── procurement.php │ │ │ ├── library.php │ │ │ └── verification.php │ │ └── es/ │ │ └── ... │ │ │ └── sass/ │ ├── app.scss │ ├── admin.scss │ └── gatekeeper.scss │ ├── routes/ # Routes │ ├── web.php │ ├── api.php │ ├── admin.php │ ├── manager.php │ ├── hr.php │ ├── gatekeeper.php │ ├── storekeeper.php │ ├── librarian.php │ ├── technician.php │ ├── assistant.php │ └── modules/ │ ├── attendance.php │ ├── inventory.php │ ├── etim.php │ ├── procurement.php │ ├── library.php │ ├── computerlab.php │ └── sciencelab.php │ ├── storage/ # Storage │ ├── app/ │ │ ├── public/ │ │ │ ├── uploads/ │ │ │ └── exports/ │ │ └── private/ │ ├── framework/ │ │ ├── cache/ │ │ ├── sessions/ │ │ ├── views/ │ │ └── testing/ │ ├── logs/ │ │ ├── system.log │ │ ├── audit.log │ │ ├── queue.log │ │ ├── attendance.log │ │ └── etim.log │ ├── exports/ │ │ ├── reports/ │ │ ├── inventory/ │ │ └── attendance/ │ ├── reports/ │ │ ├── generated/ │ │ └── scheduled/ │ ├── backups/ │ │ ├── database/ │ │ └── files/ │ └── etim/ │ ├── imports/ │ ├── exports/ │ └── verification-reports/ │ ├── tests/ # Tests │ ├── TestCase.php │ ├── CreatesApplication.php │ ├── Traits/ │ │ ├── DatabaseMigrations.php │ │ ├── DomainSetup.php │ │ ├── AuthHelpers.php │ │ └── FactoryHelpers.php │ ├── Unit/ │ │ ├── Core/ │ │ ├── Attendance/ │ │ ├── Inventory/ │ │ ├── ETIM/ │ │ └── Library/ │ ├── Feature/ │ │ ├── Auth/ │ │ ├── Attendance/ │ │ ├── Inventory/ │ │ ├── Procurement/ │ │ └── API/ │ ├── Integration/ │ │ ├── Modules/ │ │ └── Services/ │ └── Mocks/ │ └── Repositories/ │ ├── docker/ # Docker Configuration │ ├── Dockerfile │ ├── docker-compose.yml │ ├── nginx/ │ │ ├── default.conf │ │ └── ssl/ │ ├── php/ │ │ ├── php.ini │ │ └── php-fpm.conf │ ├── mysql/ │ │ └── my.cnf │ ├── redis/ │ │ └── redis.conf │ └── supervisor/ │ └── queue-worker.conf │ ├── docs/ # Documentation │ ├── ARCHITECTURE.md │ ├── CODING_STANDARDS.md │ ├── CONTRIBUTING.md │ ├── MODULE_CREATION_GUIDE.md │ ├── DEPLOYMENT.md │ ├── API/ │ │ ├── authentication.md │ │ ├── attendance.md │ │ ├── inventory.md │ │ ├── procurement.md │ │ ├── library.md │ │ ├── etim.md │ │ └── postman/ │ │ └── collection.json │ ├── ERD/ │ │ ├── core-erd.png │ │ ├── attendance-erd.png │ │ ├── inventory-erd.png │ │ └── etim-erd.png │ ├── UserGuide/ │ │ ├── admin/ │ │ ├── manager/ │ │ ├── hr/ │ │ ├── gatekeeper/ │ │ │ ├── clocking-staff.md │ │ │ └── manual-entry.md │ │ ├── storekeeper/ │ │ └── librarian/ │ └── Integration/ │ ├── etim-integration.md │ └── biometric-devices.md │ ├── .env.example ├── .env.testing ├── .gitignore ├── .gitattributes ├── .editorconfig ├── phpunit.xml ├── phpcs.xml ├── phpmd.xml ├── phpstan.neon ├── psalm.xml ├── package.json ├── webpack.mix.js ├── composer.json └── README.md