在前幾天文章當中我們有提到社團的經費非常重要,
有很多社團的經費來自於學校、系上、課外活動組、其他經費。
以資安與資訊社團當中,也可以選擇跟資安社群、資安公司,
或任何有機會的公司、社團談合作與資金。
有時候不一定要以「金錢」的方式進行,
也可以用支援租借場地、食物、獎品的方式。
以下是一個資安與資訊社團的簡易年度預算表
項目 | 說明 | 預算 (NTD) | 實際支出 (NTD) | 差異 |
---|---|---|---|---|
收入 | ||||
社費 | 50名社員 x NTD500 | 25,000 | 24,500 | -500 |
活動入場費 | 5場活動 x NTD2000 | 10,000 | 9,500 | -500 |
贊助 | 資安公司贊助 | 30,000 | 30,000 | 0 |
販賣商品 | 賣出100件T-shirt | 20,000 | 18,000 | -2,000 |
支出 | ||||
活動經費 | 場地、食物、獎品等 | -40,000 | -38,500 | 1,500 |
設備購買 | 購買新電腦和軟體 | -30,000 | -29,000 | 1,000 |
雜費 | 文具、列印、郵費等 | -5,000 | -4,500 | 500 |
總計 | 10,000 | 10,000 | 0 |
社團的總預算是NTD10,000,收入和支出的項目都清楚列出,並且有實際支出和預算之間的差異。
明確了解資金的去向和狀況,並且進行必要的調整。
社團記帳主要是為了追蹤所有的收入和支出,確保社團財務健全。
日期 | 交易項目 | 類別 | 金額 (NTD) | 備註 |
---|---|---|---|---|
2023/10/1 | 社費收入 | 收入 - 社費 | 500 | 來自李先生 |
2023/10/2 | 購買文具 | 支出 - 雜費 | -100 | 購入筆和筆記本 |
2023/10/5 | T-shirt販售收入 | 收入 - 販賣商品 | 200 | 賣給王小姐 |
2023/10/7 | 講座活動入場費 | 收入 - 活動收入 | 2,000 | 10人參與,每人NTD200 |
2023/10/8 | 租用講座場地 | 支出 - 活動經費 | -1,000 | 租用學校禮堂 |
2023/10/9 | 資安公司贊助 | 收入 - 贊助 | 5,000 | 資安公司對講座的贊助 |
2023/10/15 | 購買新電腦 | 支出 - 設備購買 | -20,000 | 購入新的筆記型電腦供社員使用 |
2023/10/20 | 販賣社團徽章 | 收入 - 販賣商品 | 1,500 | 賣出150個,每個NTD10 |
2023/10/22 | 購買食物和飲料 | 支出 - 活動經費 | -2,500 | 為講座活動提供 |
2023/10/25 | 列印講座宣傳海報 | 支出 - 雜費 | -200 | 列印50張 |
這個記帳明細表可以幫助社團追蹤每筆交易,每筆交易都詳細記錄了日期、交易項目、類別、金額和備註。
可以確保社團的財務透明和負責,也方便核對和檢查。
核銷是確認社團的支出是否合理以及取得贊助。
新增 financial
app:
python manage.py startapp financial
在 financial/models.py
中新增資料庫。
利用 Transaction
模型來記錄每筆交易:
from django.db import models
class Transaction(models.Model):
CHOICES = (
('Income', '收入'),
('Expense', '支出'),
)
type = models.CharField(max_length=10, choices=CHOICES)
description = models.CharField(max_length=255)
amount = models.DecimalField(max_digits=10, decimal_places=2)
date = models.DateField()
receipt = models.ImageField(upload_to='receipts/', blank=True, null=True)
def __str__(self):
return self.description
在 financial/views.py
中加入:
from django.shortcuts import render, redirect
from .models import Transaction
from .forms import TransactionForm
def transaction_list(request):
transactions = Transaction.objects.all()
return render(request, 'financial/transaction_list.html', {'transactions': transactions})
def add_transaction(request):
if request.method == "POST":
form = TransactionForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('transaction_list')
else:
form = TransactionForm()
return render(request, 'financial/transaction_add.html', {'form': form})
financial/templates/financial
資料夾並加入以下檔案:
transaction_list.html
(列出所有交易)transaction_add.html
(新增交易表單)transaction_list.html
(列出所有交易){% extends 'base.html' %}
{% block content %}
<h2>Transaction List</h2>
<a href="{% url 'add_transaction' %}">Add New Transaction</a>
<table border="1">
<thead>
<tr>
<th>Date</th>
<th>Type</th>
<th>Description</th>
<th>Amount</th>
<th>Receipt</th>
</tr>
</thead>
<tbody>
{% for transaction in transactions %}
<tr>
<td>{{ transaction.date }}</td>
<td>{{ transaction.get_type_display }}</td>
<td>{{ transaction.description }}</td>
<td>{{ transaction.amount }}</td>
<td>
{% if transaction.receipt %}
<a href="{{ transaction.receipt.url }}" target="_blank">View Receipt</a>
{% else %}
No receipt
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
transaction_add.html
(新增交易表單){% extends 'base.html' %}
{% block content %}
<h2>Add Transaction</h2>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Add Transaction</button>
</form>
<br>
<a href="{% url 'transaction_list' %}">Back to Transaction List</a>
{% endblock %}
在 financial/urls.py
中加入:
from django.urls import path
from . import views
urlpatterns = [
path('transactions/', views.transaction_list, name='transaction_list'),
path('transactions/add/', views.add_transaction, name='add_transaction'),
]
主要專案的 urls.py
增加
path('financial/', include('financial.urls')),
python manage.py makemigrations
和 python manage.py migrate