[ Open Admin Main | New Fees Design ]

Fee System Design

Date: March 24, 2007.
    Processes:
  1. Define Fees - fees assessed for a variety of school functions, services, and products.
  2. Add Fees - charge fees for various things to various students/groups of students
  3. Pay Fees - accept payments for a variety of fees.
  4. Export Transactions (if desired) to an external accounting system.

Tables

1. fees_assess - stores fee assessments so they can be applied to particular students or student groups.

id - int, autoincrementing type
name - short descriptor (ie. uniforms) - char(12)?
description - longer description of product or service with details ( char(255) ).
amount - numeric value of the product/service. (double precision)
discount - percentage discount, if applicable. (double precision)
tax1_flag - boolean flag (0/1 value) to indicate if this tax applies to this product/service.
tax2_flag - second flag.
tax3_flag - third flag.
tax4_flag - etc. etc.
tax5_flag - The names and percentages stored in the fees.conf configuration file.
tax6_flag -

Then additional grouping fields such as: grade(?), homeroom(?), subjsec(?). These stored 'groupers' would speed up the Add Fee process by providing defaults.

2. fees_jrl - stores both assessments (charges) and payments.

id - int, autoincrement
studnum - student number; unique to each student.
tdate (or trans_date) - transaction date.
type (or trans_type) - payment or assessment - type of transaction.
description - (from assessment description above for charge and list id's for payments)
amount - amount of the transaction
tax1 - amount of first tax (% of amount; percent and name stored in fees.conf)
tax2 - second tax value
tax3 - third tax value (if any)

Unlikely to have more than 3 taxes applied per item. (though more
could exist, as per fees_assess.

total - sum of amount + taxes.
paid_flag - 0 or 1 value signalling if this transaction has been paid
in full (or not)
paid_amount - amount less than total that _has_ been paid. paid_flag
would be zero when this field has a value.

    The procedures will include:
  1. Store default fees based on group (grade, homeroom, alt) or subjects enrolled in.
  2. Assess student fees. (ie add those fees to what a student owes to the school).
  3. Receive payments for those amounts owing, and generate receipts.
  4. Show outstanding balances owing, assessments, and payments.
  5. Export journal entries to an external system.(General Ledger)