chnages has been made and net salary is being displayed
This commit is contained in:
@@ -4,6 +4,7 @@ import '../../domain/models/attendance_response_model.dart';
|
||||
import '../../domain/models/attendance_model.dart';
|
||||
import '../../domain/models/overtime_model.dart';
|
||||
import '../../domain/models/extra_payment_model.dart';
|
||||
import '../../domain/models/salary_model.dart';
|
||||
import '../../domain/repositories/attendance_repository.dart';
|
||||
import '../datasources/attendance_remote_data_source.dart';
|
||||
|
||||
@@ -131,4 +132,19 @@ class AttendanceRepositoryImpl implements AttendanceRepository {
|
||||
)
|
||||
.toList();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<SalaryModel> calculateSalary({
|
||||
required String employeeId,
|
||||
required int month,
|
||||
required int year,
|
||||
}) async {
|
||||
final dto = await remoteDataSource.calculateSalary(
|
||||
employeeId: employeeId,
|
||||
month: month,
|
||||
year: year,
|
||||
);
|
||||
|
||||
return SalaryModel(netAmount: dto.data?.netAmount ?? 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,10 @@ import '../../domain/models/login_request.dart';
|
||||
import '../../domain/models/login_response_model.dart';
|
||||
import '../../domain/repositories/auth_repository.dart';
|
||||
|
||||
import '../dto/change_password_request_dto.dart';
|
||||
import '../../domain/models/change_password_request.dart';
|
||||
import '../../domain/models/general_response_model.dart';
|
||||
|
||||
class AuthRepositoryImpl implements AuthRepository {
|
||||
final AuthRemoteDataSource remoteDataSource;
|
||||
final UserLocalDataSource localDataSource;
|
||||
@@ -71,4 +75,45 @@ class AuthRepositoryImpl implements AuthRepository {
|
||||
return Left(ServerFailure('خطأ غير متوقع: $e'));
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<Failure, GeneralResponseModel>> changePassword(
|
||||
ChangePasswordRequest request,
|
||||
) async {
|
||||
try {
|
||||
final dto = ChangePasswordRequestDto(
|
||||
oldPassword: request.oldPassword,
|
||||
newPassword: request.newPassword,
|
||||
);
|
||||
|
||||
final responseDto = await remoteDataSource.changePassword(dto);
|
||||
|
||||
// Re-cache token and employeeId if provided in response
|
||||
if (responseDto.data != null) {
|
||||
if (responseDto.data!.token != null) {
|
||||
await localDataSource.cacheUserToken(responseDto.data!.token!);
|
||||
}
|
||||
if (responseDto.data!.employeeId != null) {
|
||||
await localDataSource.cacheEmployeeId(responseDto.data!.employeeId!);
|
||||
}
|
||||
}
|
||||
|
||||
final model = GeneralResponseModel(
|
||||
statusCode: responseDto.statusCode,
|
||||
isSuccess: responseDto.isSuccess,
|
||||
message: responseDto.message,
|
||||
data:
|
||||
responseDto
|
||||
.isSuccess, // Use isSuccess as data for the boolean model
|
||||
);
|
||||
|
||||
return Right(model);
|
||||
} on ServerException catch (e) {
|
||||
return Left(ServerFailure(e.message));
|
||||
} on NetworkException catch (e) {
|
||||
return Left(NetworkFailure(e.message));
|
||||
} catch (e) {
|
||||
return Left(ServerFailure('خطأ غير متوقع: $e'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user