47 lines
1.5 KiB
C#
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; }
|
|
}
|