using System; using System.Collections.Generic; namespace AccountsDAL.DTO.Voucher { // Accounts owns voucher construction/posting mechanics; the caller (e.g. Maintenance's // ClaimBLL) resolves its own domain-specific GL accounts (Activity.ExpenseAccountId, // Employee.AdvanceAccountId, etc.) and hands over only already-resolved account/amount // pairs — Accounts never needs to know what a "Claim" or "Activity" is. This also avoids a // circular project reference (Maintenance -> Accounts for posting, Accounts -> Maintenance // for claim data would be circular). public class ClaimVoucherPostingRequestDTO { public int ClaimId { get; set; } public string ClaimNumber { get; set; } = string.Empty; public DateTime ClaimDate { get; set; } public int OUId { get; set; } public int PeriodId { get; set; } public int BizTransactionTypeId { get; set; } public string Narration { get; set; } = string.Empty; // One Debit line per resolved expense account (already grouped/summed by the caller). public List ExpenseLines { get; set; } = new(); // Single Credit line — the employee's advance/control account. public int CreditAccountId { get; set; } public double CreditAmount { get; set; } } public class ClaimVoucherExpenseLineDTO { public int AccountId { get; set; } public double Amount { get; set; } } }