私は、学生の請求、つまり学生からの料金徴収のためのモジュールを含む学校管理ソフトウェアに取り組んでいます。
料金は月単位(年12回)で徴収され、月額料金の合計は、クラスと月ごとに固定されたさまざまな料金の組み合わせです。料金には、授業料、バス代、印刷代などが含まれます。また、その日から月単位で定額の延滞料金が請求されますが、これは月ごとに異なる場合があります。バス料金は、特定の学生のバスのカテゴリごとに請求されます。分割払いの制度もあります。
私の現在のアプローチは次のようなものです:
月とクラス、および料金設定を含む料金設定を格納するマスター テーブル。
feeMaster
fid -> Primary key
month_year -> Stores Month Year
stu_class -> Class of Student
tuition_fee -> Tuition fee for that class
tuition_fee_percent -> Percentage of Tuition fee to take, defaults to 100%
bus_fee_percent -> Percentage of bus fee
late_fee_start -> Day of month from which to charge late fee
late_fee -> fixed late fee on per month basis
printing_charge -> Printing charge if any
other_fee -> Other fee if any
other_fee_reference -> Other fee reference
学生が料金を支払うたびに、計算が行われ、システム内で取引が行われます。トランザクションの詳細は 2 つのテーブルに格納されます。
トランザクションマスターテーブルは、トランザクションを格納するために使用されます
transMaster
tid -> Primary key
purpose -> purpose of transaction, monthly fee
amount -> amount of transaction
type -> transaction mode / cash / cheque / dd
created -> date
このトランザクションの詳細は、別のテーブルに次のように保存されます。
studentFeeDetails
sfid -> unique id
tid -> transaction id from transMaster table
fid -> fee id from fee settings table feeMaster
tuition_fee -> calculated tuition_fee
bus_fee -> calculated bus_fee
printing_charge -> calculated printing_charge
other_fee -> calculated other_fee
late_fee -> calculated late_fee
total_fee -> total fee calculated
discount -> discount if given any
amount_payable -> net amount payable
amount_paid -> paid amount
balance -> balance - if paid amount is greater or lesser than the original one,
it is stored here
status -> status - true if partial fee else false
created -> date of creation
これは、モジュールの現在のアーキテクチャです。関連する会計慣行がないため、会計部門に多くの問題を引き起こします。
- 1 か月の合計支払い額を報告するために、システムは毎回、すべての学生に対して計算アルゴリズムを実行し、数字を出します。
- クラスの保留料金を見つけるために、システムは最初にそのクラスの未収料金を確認し、
studentFeeDetails
テーブルで見つかったエントリを削除して保留レポートを生成します。 - このシステムでは、手数料の頭金を適切に分離することはできません。
現在のシステムは、前払金と残高を追跡できる適切な会計システムに変換する必要があります。
毎月、転記プロセスがすべての学生の口座からその月の料金を引き落とし、延滞料金の開始日ごとに別のプロセスが遅延料金を学生の口座に引き落とすシステムを考えています。
このアプローチにより、売掛金、保留中および受け取った手数料をチェックできます。
アプローチが正しいかどうか、そしてそれをどのように使用するかを助けてください。私はデータベーススキーマ部分とその実装にこだわっています。