add financial invoice

This commit is contained in:
MahanCh
2025-07-14 14:32:58 +03:30
parent 8eb74fea15
commit a4dbb016d2
3 changed files with 67 additions and 0 deletions

View File

@@ -16,6 +16,7 @@
<ItemGroup>
<Folder Include="CheckoutAgg\ValueObjects\" />
<Folder Include="FinancialInvoiceAgg\" />
</ItemGroup>
</Project>

View File

@@ -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, // بازپرداخت شده (در صورت برگشت وجه)
}

View File

@@ -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<FinancialTransaction> FinancialTransactionList { get; set; }
public List<FinancialInvoice> FinancialInvoices { get; set; }
}