chnages has been made and net salary is being displayed
This commit is contained in:
@@ -3,6 +3,7 @@ import '../../../domain/usecases/get_attendance_records_usecase.dart';
|
||||
import '../../../domain/usecases/get_extra_hours_usecase.dart';
|
||||
import '../../../domain/usecases/get_rewards_usecase.dart';
|
||||
import '../../../domain/usecases/get_punishments_usecase.dart';
|
||||
import '../../../domain/usecases/get_salary_summary_usecase.dart';
|
||||
import '../../../domain/models/finance_record.dart';
|
||||
import '../../../domain/models/finance_category.dart';
|
||||
import '../../../core/error/exceptions.dart';
|
||||
@@ -13,8 +14,15 @@ abstract class FinanceEvent {}
|
||||
class LoadFinanceDataEvent extends FinanceEvent {
|
||||
final String employeeId;
|
||||
final FinanceCategory category;
|
||||
final int? month;
|
||||
final int? year;
|
||||
|
||||
LoadFinanceDataEvent({required this.employeeId, required this.category});
|
||||
LoadFinanceDataEvent({
|
||||
required this.employeeId,
|
||||
required this.category,
|
||||
this.month,
|
||||
this.year,
|
||||
});
|
||||
}
|
||||
|
||||
// States
|
||||
@@ -27,8 +35,13 @@ class FinanceLoading extends FinanceState {}
|
||||
class FinanceLoaded extends FinanceState {
|
||||
final List<FinanceRecord> records;
|
||||
final FinanceCategory category;
|
||||
final double netSalary;
|
||||
|
||||
FinanceLoaded({required this.records, required this.category});
|
||||
FinanceLoaded({
|
||||
required this.records,
|
||||
required this.category,
|
||||
this.netSalary = 0.0,
|
||||
});
|
||||
}
|
||||
|
||||
class FinanceError extends FinanceState {
|
||||
@@ -43,12 +56,14 @@ class FinanceBloc extends Bloc<FinanceEvent, FinanceState> {
|
||||
final GetExtraHoursUseCase getExtraHoursUseCase;
|
||||
final GetRewardsUseCase getRewardsUseCase;
|
||||
final GetPunishmentsUseCase getPunishmentsUseCase;
|
||||
final GetSalarySummaryUseCase getSalarySummaryUseCase;
|
||||
|
||||
FinanceBloc({
|
||||
required this.getAttendanceRecordsUseCase,
|
||||
required this.getExtraHoursUseCase,
|
||||
required this.getRewardsUseCase,
|
||||
required this.getPunishmentsUseCase,
|
||||
required this.getSalarySummaryUseCase,
|
||||
}) : super(FinanceInitial()) {
|
||||
on<LoadFinanceDataEvent>(_onLoadFinanceData);
|
||||
}
|
||||
@@ -64,6 +79,27 @@ class FinanceBloc extends Bloc<FinanceEvent, FinanceState> {
|
||||
|
||||
emit(FinanceLoading());
|
||||
try {
|
||||
final now = DateTime.now();
|
||||
final month = event.month ?? now.month;
|
||||
final year = event.year ?? now.year;
|
||||
double netSalary = 0.0;
|
||||
|
||||
print(
|
||||
'Fetching salary for Employee: ${event.employeeId}, Month: $month, Year: $year',
|
||||
);
|
||||
try {
|
||||
final salaryModel = await getSalarySummaryUseCase.execute(
|
||||
employeeId: event.employeeId,
|
||||
month: month,
|
||||
year: year,
|
||||
);
|
||||
print('Salary Model fetched: ${salaryModel.netAmount}');
|
||||
netSalary = salaryModel.netAmount;
|
||||
} catch (e) {
|
||||
print('Error fetching salary: $e');
|
||||
// We continue even if salary fails, to show the list at least
|
||||
}
|
||||
|
||||
List<FinanceRecord> records;
|
||||
switch (event.category) {
|
||||
case FinanceCategory.attendance:
|
||||
@@ -87,7 +123,13 @@ class FinanceBloc extends Bloc<FinanceEvent, FinanceState> {
|
||||
);
|
||||
break;
|
||||
}
|
||||
emit(FinanceLoaded(records: records, category: event.category));
|
||||
emit(
|
||||
FinanceLoaded(
|
||||
records: records,
|
||||
category: event.category,
|
||||
netSalary: netSalary,
|
||||
),
|
||||
);
|
||||
} on ServerException catch (e) {
|
||||
emit(FinanceError(message: e.message));
|
||||
} on NetworkException catch (e) {
|
||||
|
||||
Reference in New Issue
Block a user