---
# System prepended metadata

title: Cách tính nợ phí cho từng loại

---

# Cách tính nợ phí cho từng loại

Lấy ví dụ sau cho tất cả các trường hợp:

DB:
|tháng|opening_debt|entry_fee|total_receivable|total_paid|closing_debt|
|-|-|-|-|-|-|
|01/2021|300|1000|1300|500|800|
|07/2021|200|1000|1200|700|500|
|08/2021|100|1200|1300|0|1300|
|09/2021|0|1000|1000|200|800|

==> Đến cuối tháng 09/2021, tổng nợ đang còn là `800+500+1300+800=3400`

## Trường hợp 1: tính phí liệt kê toàn bộ tháng
Là trường hợp liệt kê toàn bộ các phí chưa thanh toán ra.
Trường hợp này thì có bao nhiêu sẽ liệt kê bấy nhiêu, không quan tâm tới việc nợ các tháng trước, các tháng sau.

|tháng|Nợ cũ|Nợ mới|Đã thanh toán|Còn lại|
|-|-|-|-|-|
|01/2021|300|1000|500|800|
|07/2021|200|1000|700|500|
|08/2021|100|1200|0|1300|
|09/2021|0|1000|200|800|

==> đến cuối tháng 9 còn nợ là `3400`


**Trường hợp không có cột đã thanh toán**
Phân bổ đã thanh toán vào nợ cũ và nợ mới
```
Đưa vào nợ cũ max(opening - paid, 0)
Đưa vào nợ mới max(paid - opening, 0)
```

|tháng|Nợ cũ|Nợ mới|Tổng cộng|
|-|-|-|-|
|01/2021|0|800|800|
|07/2021|0|1000|500|500|
|08/2021|100|1200|1300|
|09/2021|0|800|800|

==> đến cuối tháng 9 còn nợ là `3400`


## Trường hợp 2: tính nợ tích lũy đến từng tháng

Nợ cũ = tổng closing debt các tháng trước + max(opening debt - paid tháng này, 0)

Nợ mới = entry fee - max(paid - opening debt tháng này, 0)

**Tại thời điểm tháng 04/2021:**

|tháng|Nợ cũ|Nợ mới|Tổng cộng|
|-|-|-|-|
|01/2021|800|0|800|

`800` ở nợ cũ là tổng nợ cuối kỳ chưa thanh toán trước đó (tháng 1/2021)


**Tại thời điểm tháng 7/2021**

Nợ cũ = nợ cuối tháng 1 + max(nợ đầu tháng 7 - đã thanh toán tháng 7, 0) = 800 + max(200 - 700, 0) = 800

Nợ mới = phát sinh tháng 7 - max(đã thanh toán tháng 7 - nợ đầu tháng 7) = 1000 - max(700 - 200, 0) = 500

|tháng|Nợ cũ|Nợ mới|Tổng cộng|
|-|-|-|-|
|07/2021|800|500|1300|


**Tại thời điểm tháng 9/2021**
Tương tự,
```
Nợ cũ = nợ các tháng trước + max(nợ đầu tháng 9 - ĐTT tháng 9, 0) = 800 + 500 + 1300 + max(0 - 200, 0) = 2600
Nợ mới = phát sinh - max(ĐTT tháng 9 - nợ đầu tháng 9) = 1000 - max(200 - 0, 0) = 800
```
|tháng|Nợ cũ|Nợ mới|Tổng cộng|
|-|-|-|-|
|09/2021|2600|800|3400|

---
** **Chú ý**: Với phương thức tích lũy này thì khi để kế nhau lại thì nợ cũ của tháng này sẽ bằng nợ tổng cộng còn lại của tháng liền kề trước nó.
Ở ví dụ trên thì tính thêm phí tích lũy tháng 8/2021 thì nợ cũ tháng 8/2021 sẽ bằng nợ tổng cộng của tháng 7/2021

---


## Trường hợp 3: Tích lũy đến tháng hiện tại và hiển thị cho phí tương lai
Ví dụ tại thời điểm đang xem phí là tháng 7/2021 thì sẽ hiển thị phí như sau:

- Phí tích lũy đến tháng 7/2021 (xem tính ở TH2)
- Phí các tháng tương lai được tính như TH1

Ví dụ:
|tháng|Nợ cũ|Nợ mới|Tổng cộng|
|-|-|-|-|
|07/2021|800|500|1300|
|08/2021|100|1200|1300|
|09/2021|0|800|800|

Như vậy đến thời điểm tháng 7, nợ tổng cộng đến tháng 9 vẫn là 3400.

Lí do có trường hợp 3 này là khi cư dân đóng trước phí, cần liệt kê các phí tương lai, vì đó không phải là nợ cũ