using GB5Shared.DTO.Framework.Login;
using MMDAL.DTO.StockValuation;
namespace MMDAL.CustomCode.StockAccountPost;
public interface IStockAccountPostDAL
{
///
/// Returns GL posting lines for a non-transfer stock document
/// (stocked and capital items). One row per NUMBERTALLY N (1-6 account slots).
///
Task> GetPostingLinesAsync(
int objectTypeId, int objectId, int ouid,
LoginDTO login, CancellationToken ct);
///
/// Returns GL posting lines for a stock transfer document (2 account slots).
///
Task> GetTransferPostingLinesAsync(
int objectTypeId, int objectId, int ouid,
LoginDTO login, CancellationToken ct);
///
/// Returns non-stock charge lines (erection charges, services) from TMMDETAIL
/// that have no TSTOCKLEDGER row — fixes the legacy GL gap.
///
Task> GetNonStockChargeItemsAsync(
int objectTypeId, int objectId, int ouid,
LoginDTO login, CancellationToken ct);
Task InsertPostDetailAsync(StockAccountPostDetailDTO detail, LoginDTO login, CancellationToken ct);
Task MarkPostedAsync(long stockAccountPostDetailId, LoginDTO login, CancellationToken ct);
Task MarkFailedAsync(long stockAccountPostDetailId, string error, LoginDTO login, CancellationToken ct);
Task> GetPostDetailsAsync(
int objectTypeId, int objectId, int ouid,
LoginDTO login, CancellationToken ct);
}