63 lines
1.7 KiB
C#
63 lines
1.7 KiB
C#
using PowderCoating.Core.Enums;
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace PowderCoating.Application.DTOs.Accounting;
|
|
|
|
public class ExpenseListDto
|
|
{
|
|
public int Id { get; set; }
|
|
public string ExpenseNumber { get; set; } = string.Empty;
|
|
public DateTime Date { get; set; }
|
|
public int? VendorId { get; set; }
|
|
public string? VendorName { get; set; }
|
|
public int ExpenseAccountId { get; set; }
|
|
public string ExpenseAccountName { get; set; } = string.Empty;
|
|
public string ExpenseAccountNumber { get; set; } = string.Empty;
|
|
public int PaymentAccountId { get; set; }
|
|
public string PaymentAccountName { get; set; } = string.Empty;
|
|
public PaymentMethod PaymentMethod { get; set; }
|
|
public decimal Amount { get; set; }
|
|
public string? Memo { get; set; }
|
|
public int? JobId { get; set; }
|
|
public string? JobNumber { get; set; }
|
|
public bool HasReceipt { get; set; }
|
|
}
|
|
|
|
public class ExpenseDto : ExpenseListDto
|
|
{
|
|
public string? ReceiptFilePath { get; set; }
|
|
public DateTime CreatedAt { get; set; }
|
|
}
|
|
|
|
public class CreateExpenseDto
|
|
{
|
|
[Required]
|
|
public DateTime Date { get; set; } = DateTime.Today;
|
|
|
|
public int? VendorId { get; set; }
|
|
|
|
[Required]
|
|
public int ExpenseAccountId { get; set; }
|
|
|
|
[Required]
|
|
public int PaymentAccountId { get; set; }
|
|
|
|
public int? JobId { get; set; }
|
|
|
|
[Required]
|
|
public PaymentMethod PaymentMethod { get; set; }
|
|
|
|
[Required, Range(0.01, double.MaxValue, ErrorMessage = "Amount must be greater than zero")]
|
|
public decimal Amount { get; set; }
|
|
|
|
[MaxLength(500)]
|
|
public string? Memo { get; set; }
|
|
|
|
public string? ReceiptFilePath { get; set; }
|
|
}
|
|
|
|
public class EditExpenseDto : CreateExpenseDto
|
|
{
|
|
public int Id { get; set; }
|
|
}
|