chnages has been made and net salary is being displayed

This commit is contained in:
Daniah Ayad Al-sultani
2026-02-11 14:31:03 +03:00
parent 1002937045
commit a7930d19e5
23 changed files with 691 additions and 141 deletions

View File

@@ -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);
}
}

View File

@@ -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'));
}
}
}