using GB5Shared.DTO.Framework.Login;
using PayRollBLL.SAPPaySlip.DTO;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace PayRollBLL.SAPPaySlip
{
public interface ISAPPaySlipBLL
{
///
/// Retrieves the SAP payslip for the logged-in employee.
///
/// Internally resolves:
/// • EmployeeID → LoginDTO.UserCode
/// • SapClient → morganizationunit.organizationunitcode (looked up by LoginDTO.ClientId)
/// • Username → SapPaySlip:Username in appsettings.json
/// • Password → SapPaySlip:Password in appsettings.json
///
/// Throws when FiscalYear or Month are invalid.
/// Throws when the SAP API fails,
/// when the session context is incomplete, or when the PDF data is corrupt.
///
Task> GetPaySlipAsync(
string employeeId,
string fiscalYear,
string month,
LoginDTO login,
CancellationToken ct);
}
}