diff --git a/Company.Domain/Company.Domain.csproj b/Company.Domain/Company.Domain.csproj index 76106517..c1cbaff9 100644 --- a/Company.Domain/Company.Domain.csproj +++ b/Company.Domain/Company.Domain.csproj @@ -16,6 +16,7 @@ + diff --git a/Company.Domain/FinancialInvoiceAgg/FinancialInvoice.cs b/Company.Domain/FinancialInvoiceAgg/FinancialInvoice.cs new file mode 100644 index 00000000..ffbead06 --- /dev/null +++ b/Company.Domain/FinancialInvoiceAgg/FinancialInvoice.cs @@ -0,0 +1,64 @@ +using System; +using _0_Framework.Domain; +using Company.Domain.FinancialStatmentAgg; + +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 string SmsCode { get; private set; } + public long? FinancialStatementId { get; private set; } + public FinancialStatment FinancialStatement { get; private set; } + + public FinancialInvoice(int month, int year, FinancialInvoiceStatus status, double amount) + { + Month = month; + Year = year; + Status = status; + Amount = amount; + SmsCode = Guid.NewGuid().ToString("N"); + } + public void SetFinancialStatement(long financialStatementId) + { + FinancialStatementId = financialStatementId; + } + 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; + } + public void SetNewSmsCode() + { + SmsCode = Guid.NewGuid().ToString("N"); + } + +} + +public enum FinancialInvoiceStatus +{ + Unpaid = 0, // پرداخت نشده + Paid = 1, // پرداخت شده کامل + Cancelled = 4, // فاکتور لغو شده + Refunded = 5, // بازپرداخت شده (در صورت برگشت وجه) +} \ No newline at end of file diff --git a/Company.Domain/FinancialStatmentAgg/FinancialStatment.cs b/Company.Domain/FinancialStatmentAgg/FinancialStatment.cs index fecad98f..a1fb2830 100644 --- a/Company.Domain/FinancialStatmentAgg/FinancialStatment.cs +++ b/Company.Domain/FinancialStatmentAgg/FinancialStatment.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using _0_Framework.Domain; +using Company.Domain.FinancialInvoiceAgg; using Company.Domain.FinancialTransactionAgg; namespace Company.Domain.FinancialStatmentAgg; @@ -27,6 +28,7 @@ public class FinancialStatment : EntityBase public List FinancialTransactionList { get; set; } + public List FinancialInvoices { get; set; } } \ No newline at end of file