Files
Backend-Api/Company.Domain/FinancialInvoiceAgg/FinancialInvoice.cs
mahan 4a8f76c473 Refactor FinancialInvoice class to simplify properties
Removed `SmsCode`, `FinancialStatementId`, and `FinancialStatement` properties, along with their associated methods (`SetFinancialStatement` and `SetNewSmsCode`).

Added a new `InvoiceId` property of type `Guid` to serve as a unique identifier for invoices. Updated the constructor to initialize `InvoiceId` and removed the `SmsCode` initialization logic.

These changes streamline the `FinancialInvoice` class and improve its alignment with application requirements.
2025-11-12 10:20:22 +03:30

50 lines
1.2 KiB
C#

using System;
using _0_Framework.Domain;
using Company.Domain.FinancialStatmentAgg;
using CompanyManagment.App.Contracts.FinancialInvoice;
namespace Company.Domain.FinancialInvoiceAgg;
public class FinancialInvoice:EntityBase
{
public int Month { get; private set; }
public int Year { get; private set; }
public FinancialInvoiceStatus Status { get; private set; }
public DateTime? PaidAt { get; private set; }
public double Amount { get; private set; }
public Guid InvoiceId { get; private set; }
public FinancialInvoice(int month, int year, FinancialInvoiceStatus status, double amount)
{
Month = month;
Year = year;
Status = status;
Amount = amount;
InvoiceId = Guid.NewGuid();
}
public void SetPaid(DateTime paidAt)
{
Status = FinancialInvoiceStatus.Paid;
PaidAt = paidAt;
}
public void SetUnpaid()
{
Status = FinancialInvoiceStatus.Unpaid;
PaidAt = null;
}
public void SetCancelled()
{
Status = FinancialInvoiceStatus.Cancelled;
PaidAt = null;
}
public void SetRefunded()
{
Status = FinancialInvoiceStatus.Refunded;
PaidAt = null;
}
}