Files
PowderCoatingLogix/src/PowderCoating.Application/DTOs/Import/ExpenseImportDto.cs
T
2026-04-23 21:38:24 -04:00

47 lines
1.5 KiB
C#

using CsvHelper.Configuration.Attributes;
namespace PowderCoating.Application.DTOs.Import;
/// <summary>
/// DTO for importing expenses from CSV files.
/// ExpenseNumber is optional — a new EXP-YYMM-#### number is generated when left blank.
/// ExpenseAccountNumber and PaymentAccountNumber are matched against Account.AccountNumber.
/// VendorName is matched against Vendor.CompanyName (optional).
/// JobNumber is matched against Job.JobNumber (optional).
/// PaymentMethod accepts: Cash, Check, CreditDebitCard, BankTransferACH, DigitalPayment.
/// </summary>
public class ExpenseImportDto
{
// Optional — auto-generated if blank
[Name("ExpenseNumber")]
public string? ExpenseNumber { get; set; }
[Name("Date")]
public DateTime Date { get; set; }
// Optional — matched to Vendor by CompanyName
[Name("VendorName")]
public string? VendorName { get; set; }
// Required — matched to Account by AccountNumber (e.g. "6200")
[Name("ExpenseAccountNumber")]
public string ExpenseAccountNumber { get; set; } = string.Empty;
// Required — matched to Account by AccountNumber (e.g. "1000")
[Name("PaymentAccountNumber")]
public string PaymentAccountNumber { get; set; } = string.Empty;
// Optional — matched to Job by JobNumber
[Name("JobNumber")]
public string? JobNumber { get; set; }
[Name("PaymentMethod")]
public string PaymentMethod { get; set; } = "Cash";
[Name("Amount")]
public decimal Amount { get; set; }
[Name("Memo")]
public string? Memo { get; set; }
}