Hunt

User Guide

Back to Login →
📖

Welcome to the User Guide

Select a module from the sidebar to view the detailed step-by-step guide, or click on one of the cards below.

Manufacturing

Formulations & Production Orders

Legal Affairs

Contracts & Signatures

CRM

Invoices & Quotations

Supply Chain

Products, Purchases & Warehouses

Custom Manufacturing

Made-to-order manufacturing management

Schools Management

Registration, Fees, Exams, Attendance, Certificates

Accounting

Journal Entries & Balance Sheet - Coming Soon

Human Resources

Employees & Payroll - Coming Soon

🏭 Manufacturing Module

A practical step-by-step guide for all manufacturing operations - from creating formulations to adding the final product to inventory.

1 Introduction: What is the Manufacturing Module?

The Manufacturing Module in Hunt ERP is an integrated system that helps you manage the entire manufacturing process from start to finish. From the moment you decide to manufacture a product, until the final product enters the warehouse ready for sale.

The Concept Simply

Imagine you want to manufacture 1000 boxes of a certain product. The cycle goes as follows:

  • Define the required raw materials and their quantities (Formulation)
  • Request manufacturing of that quantity (Job Order)
  • Distribute the work across departments (Production Order)
  • Issue raw materials from the warehouse
  • Start actual manufacturing stage by stage
  • When the product is finished, it enters the warehouse as a final product
Who uses this module?
  • Production Manager: Plans, approves production orders and monitors all departments
  • Department Supervisor: Views orders assigned to their department and manages manufacturing
  • Warehouse Manager: Approves material issuance and final product additions
  • Quality Control: Performs tests on raw materials and final products
2 Initial Setup (Before You Start)

Before you start manufacturing, you need to do a one-time initial setup. These steps are done once and then used for all production orders.

First: Create Manufacturing Departments

A department is where a part of manufacturing takes place. For example: Mixing Department, Filling Department, Packaging Department.

1Go to: Manufacturing → Departments → Add New Department
2Enter the department name and code (e.g., MIX-01)
3Select the user responsible for the department
This person will see the production orders assigned to their department in the dashboard
4Enter a description (optional) and click Save
📌 The department supervisor can only see orders assigned to their department. The admin can see all departments.
Second: Create Stages, Groups, and Machines

Each department has stages (e.g., Filling Department has filling stage and sealing stage). Each stage has machine groups.

1Go to: Manufacturing → Stages & Groups
2Select the department and add stages
E.g., Initial mixing, Final mixing - set the expected duration in days
3For each stage, add a machine group (e.g., Large Mixers)
4For each group, add the machines used in it
Third: Register Machines
1Go to: Manufacturing → Machines → Add Machine
2Enter the machine code, name, and select type
Types: Production / Packaging / Quality / Support
3Enter purchase price and expected life years
The system will automatically calculate depreciation per operating hour
4Enter operating cost per hour
This cost is added to the final product cost
Fourth: Register Workers
1Go to: Manufacturing → Workers → Add Worker
2Enter name and phone number
3Enter national ID (14 digits)
The system automatically extracts birth date and gender from the national ID
Fifth: Setup Quality Tests
1Go to: Manufacturing → Quality Control → Test Groups
2Create a group (e.g., Chemical Tests)
3Add tests (e.g., Acidity Level, Moisture Level)
💡 Take your time with the initial setup. The more accurate the data, the better the system works.
3 Creating a Product Recipe (Formulation)

A formulation is a product recipe - it defines what raw materials you need and in what quantities to produce a certain amount of the final product. Think of it like a cooking recipe.

1Go to: Manufacturing → Formulations → Create New Formulation
The system will auto-generate a unique batch number
2Select the final product
This is the product you want to manufacture
3Set the unit and base quantity for the formulation
E.g., This formulation produces 100 kg of the product
4Add raw materials
For each material: product, quantity, unit, unit price. E.g., 50 kg flour + 20 liters water + 5 kg sugar
5Add packaging materials
E.g., 100 carton boxes + 100 lids + 100 labels
6Add quality tests for each component (optional)
For each component, set the test and acceptable range (from - to)
7Add direct and indirect costs
E.g., Labor 500 EGP, Energy 200 EGP, Rent 100 EGP
8Define the manufacturing stages in order
E.g., Mixing Dept (initial + final mixing) → Filling Dept (filling + sealing)
9Click Save
The system auto-calculates: raw material cost, packaging cost, total costs, and unit cost
💡 If you have a formulation similar to an existing one, you can duplicate it and modify instead of starting from scratch.
4 Creating a Job Order

After creating the formulation, now you want to request manufacturing a specific quantity. E.g., The formulation produces 100 kg, and you need 500 kg. So the job order = 500 kg.

1Go to: Manufacturing → Job Orders → Create New Order
2Select the formulation
The system will automatically display the final product and its unit
3Enter the required quantity
The system auto-calculates the multiplier (500 / 100 = 5) and multiplies all component quantities by 5
4Set the expected start and end dates
5Review the cost summary and click Save
Splitting a Job Order

You don't have to manufacture the entire quantity at once. You can split it into multiple production orders. E.g., First order = 200 kg, Second order = 300 kg. The system tracks the remaining quantity automatically.

⚠️ When you approve a production order, the quantity is deducted from the job order. If you cancel the production order, the quantity is restored.
5 Creating a Production Order

A production order is the actual order that gets executed in the departments. You specify who does what and where.

1Go to: Manufacturing → Production Orders → Create New Order
2Select the job order
Only shows orders with remaining quantity
3Set the target quantity
Must be less than or equal to the remaining quantity
4Set the maximum allowed waste
E.g., If manufacturing 200 kg, you may allow 10 kg waste
5Assign components to departments
For each component, select the responsible department. E.g., Raw materials → Mixing Dept, Packaging → Packaging Dept
6Select the starting department
The first department to start work. Remaining departments work in sequence
7Set the priority
Normal / High / Urgent / Emergency
8Click Save
The order is saved as a draft and can be modified
📌 At this stage, the order is still a draft. Nothing has been executed. You can edit or delete freely.
6 Approving a Production Order

After reviewing the production order and everything is correct, approve it to start execution.

1Click the Approve button on the production order screen
What happens automatically?
  • The quantity is deducted from the job order
  • The starting department is activated with status (Pending) - the supervisor can see it
  • Other departments status is (Not Started) - until their turn comes
  • The production order status changes from draft to approved
Practical Example

Production order for 200 kg going through 3 departments: Mixing → Filling → Packaging

  • Mixing Dept: Status (Pending) - supervisor can see it and is ready to start
  • Filling Dept: Status (Not Started) - supervisor cannot see it yet
  • Packaging Dept: Status (Not Started) - supervisor cannot see it yet

When the Mixing Dept finishes, the Filling Dept is automatically activated. And so on.

⚠️ After approval, you cannot edit the production order. If you need to change something, you must cancel it and create a new one.
7 Material Check

Before a department starts working, it must verify that the required raw materials are available in the warehouse and their quality is good.

1The department supervisor opens their dashboard
They will find the production order in the (Pending) section
2Click on the order and select (Material Check)
3Select the warehouse to issue from
4The system displays the list of required components
For each: Required qty - Available qty - Status (Green=Available / Yellow=Insufficient / Red=Not Available)
5Quality tests (optional)
Record each test result. E.g., Flour moisture required 10%-14%, actual 12% = Passed
6Click Confirm Check
Department status changes to (Waiting Approval)
💡 If a material is not available, you can select another warehouse or wait until it becomes available.
8 Material Issuance from Warehouse

After the check, the system automatically creates a material issue request with the required materials.

1The system creates the issue request automatically
With all components, quantities, and correct units
2The warehouse manager reviews and approves
3Actual issuance takes place
Materials are deducted from warehouse stock. Department status changes to (Ready to Manufacture)
Additional Material Issuance During Manufacturing

If you need extra materials during manufacturing:

1From the stage execution screen, request additional materials
2The system creates a new issue request
3After approval, manufacturing continues
9 Starting Manufacturing in the Department
1The department supervisor opens the dashboard
They will find the order with status (Ready to Manufacture)
2Click (Start Manufacturing)
Department status changes to (In Progress) and the production order as well

From here, the supervisor starts executing stages one by one.

📌 The admin can see all departments and all orders. The supervisor can only see their department.
10 Executing Production Stages
Starting a Stage
1Select the required stage
2Select the group and machine
E.g., Mixers Group → Mixer #3
3Select the operator (worker)
4Enter the input quantity
The system verifies it doesn't exceed the allowed maximum
5Click Start Stage
Completing a Stage
1Enter the produced quantity
2Enter waste quantity (if any)
3Select the product destination:
• Next stage in the same department\n• Next department (if all stages in this dept are done)\n• Final product warehouse (if this is the last department)
4Click Complete Stage
The system records quantities, time, and worker log automatically
11 Department Completion and Handover

When a department finishes all its stages, it hands over to the next department automatically:

1The last stage completes and you selected destination (Next Department)
2The system creates a department transfer automatically
3The sending department changes to (Completed)
4The receiving department activates and starts a new cycle
Material check → Issuance → Manufacturing → Handover
Full Practical Example

Production order 200 kg: Mixing → Filling → Packaging

  • Mixing Dept: 200 kg input → 190 kg output (10 kg waste)
  • Filling Dept: 190 kg → 185 boxes (5 kg waste)
  • Packaging Dept: 185 boxes → 183 finished boxes (2 waste)
  • The 183 boxes are added to warehouse as final product
12 Adding Final Product to Warehouse

The last step in the manufacturing cycle. The product is finished and ready to enter the warehouse.

1The addition request is created automatically
When the last stage in the last department completes
2The warehouse manager reviews and approves
Upon approval, the system:
  • Calculates manufacturing cost from approved issue requests
  • Adds the quantity to warehouse stock
  • Creates an accounting entry (Debit: Inventory, Credit: Purchases)
⚠️ The cost must be greater than zero. Make sure materials were issued correctly or the formulation has prices.
💡 After approval, the product is available for sale. The manufacturing cycle is complete!
13 Machine Management & Maintenance
Machine Monitoring

The system automatically calculates for each machine: operating hours, consumption percentage, cost, and average monthly maintenance.

Logging Maintenance
1Go to: Machines → Select Machine → Add Maintenance
2Select maintenance type
Preventive / Corrective / Emergency / Overhaul
3Enter cost, downtime, technician name, and spare parts
4Set the next maintenance date and click Save
14 Quality Control

During material check before issuance:

1For each component, enter the actual test percentage
2The system compares actual vs required
Within range = Passed (Green) / Out of range = Failed (Red)
3The system calculates variance automatically
E.g., Required 12%, Actual 13% = Variance +1%
15 Waste Tracking

Waste is recorded automatically when you complete a stage and enter the waste quantity. For each waste: quantity, cost, reason, whether recyclable.

Reports show: total waste by period, analysis by stage, reason, and department.

💡 Review waste reports regularly. If a stage has high waste, there may be an issue with the machine or materials.
16 Worker Management & Performance

The system automatically records each worker's performance: quantities produced, working hours, efficiency rate, and waste rate.

1Go to: Manufacturing → Worker Reports
2You will find a summary of each worker's performance
3Click on a worker for details
4Filter by period or department + export to Excel
17 Material Reception & Virtual Warehouses
Receiving Raw Materials
1Go to: Manufacturing → Reception → New Reception
2Select ownership: Company or Customer
3Add received items
The system auto-generates a batch number and barcode for each item
4Click Save → Items enter the virtual warehouse with status (Pending)
5After review: Approve (Accepted) or Reject (Rejected)
Virtual Warehouses

Virtual warehouses are separate from actual warehouses. They are used to track materials before they enter the official inventory.

18 Reports & Dashboards
Department Supervisor Dashboard
  • Pending: Orders needing check or issuance
  • In Progress: Orders currently being manufactured
  • Completed: Finished orders
Admin Dashboard

The admin can see all departments and can monitor, assign, and transfer orders.

Department Reports

For each department: order count, quantities, efficiency, costs, and department ranking by performance.

Production Planning

Overview of all orders with statistics by status, priority, delays, and readiness check.

💰 Customer Relations (Sales)

Your complete guide to managing customers, quotations, reservations, invoices, returns, and collections

1 Sales Module Overview

The Sales module is the heart of the financial system - connecting customers, products, and accounts. It covers the full sales cycle from customer registration to final collection.

Complete Sales Cycle

The system supports a flexible sales path for all business types:

1Customer registration & financial setup
2Create quotation (optional)
3Reserve goods for customer (optional)
4Create draft invoice
5Post final invoice & generate accounting entries
6Collect payments (immediate / credit / installments)
7Sales returns (if needed)
Who uses this module?
  • Sales Rep: Creates quotations, reservations, and invoices
  • Sales Manager: Reviews performance, manages customers, approvals
  • Accountant: Tracks collections, reviews entries, manages installments
  • Warehouse Keeper: Dispatches goods based on invoices & reservations
2 Customer Management

The customer is the foundation of sales. The system provides a comprehensive profile for each customer including basic data, financial settings, transaction history, and pricing policies.

Adding a New Customer

When adding a new customer, the system automatically creates an accounting account under Receivables (51):

1Go to Customers → Add New Customer
2Enter basic data: Name, Phone (unique), Address
3Set financial settings: Credit type (limited/unlimited), credit limit, payment term days
Limited credit means the system will track the customer balance and warn when limit is exceeded
4Select available currencies for customer (in addition to default)
The system creates a separate accounting account for each additional currency
5Set opening balance (debit or credit) if customer has prior balance
6Select responsible sales employee (optional)
7Set preferred price type (optional): Basic / Commercial / Special Offer / Wholesale
8Add category discounts (optional) in order
You can set different discounts per category, with ordering for cascading discounts (discount on discount)
📌 When adding a customer with an opening balance, the system creates an automatic journal entry: Debit Customer Account / Credit Opening Balance Account (or vice versa depending on balance type).
Customer Groups

You can classify customers into groups for easier management and reporting (e.g., VIP, wholesale, retail):

1Create group: Enter name and description
2When adding or editing a customer, select the group from the dropdown
Customer Filters & Search

The customers page provides advanced search and filter tools:

  • Search by name, phone, address, or tax number
  • Filter by province and region
  • Filter by status (active / inactive)
  • Show only customers who exceeded credit limit
Customer Account Statement

You can view a detailed account statement for any customer including all invoices, payments, returns, and journal entries linked to their account.

3 Quotations

A quotation is a non-binding document sent to a customer containing prices, quantities, and terms. Quotations do not affect inventory or accounts.

Creating a Quotation
1Go to Quotations → Create New Quotation
2Select customer, currency, and sales employee
3Set date and validity period in days
System auto-calculates expiry date. Serial number format: QT-2025-0001
4Add products: select product, unit, quantity, and price
For each item you can set discount percentage and VAT percentage
5Review totals (subtotal, discount, VAT, net) and save
Quotation Statuses
  • Valid: The quotation is still within validity period
  • Expired: Past expiry date - auto-updated by system
  • Converted: Has been converted to a draft invoice
Converting Quotation to Draft Invoice

You can convert a valid quotation directly to a draft invoice, auto-transferring all product data and prices:

1Open valid quotation and click "Convert to Draft Invoice"
2Select warehouse and payment method (cash/credit/cheque/transfer/wallet)
3Set down payment (if credit) and confirm
📌 After conversion, quotation status changes to "Converted" and cannot be converted again.
4 Reservations

Reservations allow you to reserve goods for a customer with a down payment. The system supports two types:

Reservation Types
  • From Stock: Deducts reserved quantities from available stock immediately
  • Without Stock: Records reservation only without affecting available stock
Creating a New Reservation
1Go to Reservations → Create New Reservation
2Select customer, warehouse, sales employee, currency
3Select reservation type (from stock / without stock)
4Add products with quantities, prices, and discounts
System shows available stock and previously reserved quantity for each product
5Set payment method (cash/bank transfer/e-wallet) and down payment amount
6Add payment terms (percentage or value) and save
Reservation Statuses
  • Pending: Reservation created, waiting for confirmation
  • Confirmed: Confirmed and can be converted to invoice
  • Completed: Reservation has been converted to sales invoice
  • Cancelled: Reservation cancelled and reserved quantities released
Additional Reservation Payments

You can receive additional payments on a reservation before converting to invoice:

1Open reservation and click "Add Payment"
2Set amount and payment method (cash/transfer/wallet/cheque)
3System auto-updates payment status (unpaid/partially paid/paid)
⚡ Reservation Accounting Entries:
• When receiving down payment or additional payment:
Debit: Treasury/Bank/Wallet → Credit: Customer Account
5 Draft Invoices

A draft invoice is a modifiable draft before posting. It does not affect inventory or accounts until posted as a final invoice.

Creating a Draft Invoice

A draft invoice can be created in three ways:

  • Manual creation directly from invoices screen
  • Conversion from a valid quotation
  • Conversion from a confirmed reservation
Available Payment Methods
  • Cash: Full payment immediately via treasury
  • Credit: Pay later with optional down payment
  • Bank Transfer: Payment via bank account
  • Cheque: Payment by incoming cheque from customer
  • E-Wallet: Payment via electronic wallet
  • Installments: Split amount into payments with due dates
Installment Plan

When selecting installment payment, a payment plan is created including:

  • Amount and due date for each installment
  • Payment method for each installment (cash/bank/cheque)
  • Link cheques to installments directly (if payment by cheque)
6 Final Sales Invoices

The final invoice is the official binding document. When posting a draft invoice, the system performs several automated operations.

Posting Process (Draft to Final)

When posting a draft invoice, the system automatically:

1Creates final sales invoice with serial number (INV-YYYYMM-0001)
2Creates warehouse exit permit and deducts quantities from stock
3Creates automatic journal entries (detailed below)
4Updates customer account balance
5Updates treasury/bank balance (for cash or bank payments)
6Creates installment plan (if installments payment method)
Automatic Accounting Entries on Posting
Cash / Bank Transfer / E-Wallet Payment:
• Debit: Treasury/Bank/Wallet → Invoice total
• Credit: Sales Account → Subtotal before tax
• Credit: VAT Account → VAT amount (if applicable)
• Debit: Withholding Tax Account (if applicable)
Credit Payment:
• Debit: Customer Account (Receivables) → Invoice total
• Credit: Sales Account → Subtotal before tax
• Credit: VAT Account (if applicable)
• If down payment: Debit Treasury/Bank → Credit Customer Account
Cheque Payment:
• Debit: Cheques Under Collection Account → Invoice total
• Credit: Sales Account + VAT
• Cheque status auto-updated to "Used"
Warehouse Exit Entry (separate):
• Debit: Cost of Goods Sold → Item cost
• Credit: Inventory Account → Item cost
Invoice Statuses
  • Draft: Modifiable and deletable draft
  • Posted: Final invoice with journal entries - cannot be modified
  • Cancelled: Cancelled with all entries reversed
Cancelling a Posted Invoice

A posted invoice can be cancelled if there are no active returns. On cancellation:

  • All related journal entries are reversed
  • Quantities are returned to inventory
  • Customer balance is updated
📌 The system performs a comprehensive pre-cancellation check to display all expected impacts before execution.
Additional Invoice Discount

You can add additional discount on a posted invoice in two types:

  • Percentage: Discount amount calculated from net invoice
  • Fixed Amount: Discount by specific amount

Each additional discount creates a separate journal entry and records who added it, the date, and the reason.

7 Sales Returns

When a customer needs to return goods, the system provides a comprehensive return process that handles inventory and accounts automatically.

Return Types
  • Invoice-based Return: Linked to specific invoice - tracks returned quantities per invoice item
  • Direct Return: Without invoice link - used for returning goods without specific invoice reference
Creating a Return
1Go to Returns → New Return, or from invoice click "Create Return"
2Select customer and invoice (for invoice-based return)
System auto-loads invoice items with available return quantities
3Set returned quantities per item (cannot exceed available quantity)
4Select warehouse, cost center, and refund method
5Save - Return created with "Pending" status and warehouse add permit
Refund Methods
  • Cash: Refund from treasury
  • Bank Transfer: Refund via bank account
  • E-Wallet: Refund via wallet
  • No Refund (Credit Note): Deduct amount from customer balance without cash refund
  • Credit Note: Issue credit note to be deducted from future invoices
Approving a Return

Returns need approval after goods enter the warehouse. On approval:

  • Returned quantities are added to inventory
  • Original invoice is updated (total and remaining)
  • Journal entries are created
⚡ Return Approval Accounting Entries:
For cash/bank/wallet refund:
• Credit: Treasury/Bank/Wallet → Return amount
• Debit: Sales Returns Account → Total
For credit note (no refund):
• Credit: Customer Account → Return amount
• Debit: Sales Returns Account
Warehouse Add Entry:
• Debit: Inventory → Credit: COGS
8 Payment Collection (Credit Invoice Settlement)

The payment collection screen shows all credit invoices with remaining balance. Includes both tax and non-tax invoices.

Recording Payment on Invoice
1Go to Payment Collection - shows due invoices
2Select invoice and click "Record Payment"
3Enter amount (cannot exceed remaining), payment method, and date
4System auto-updates invoice status and creates journal entry
Bulk Payment

You can record payment for multiple invoices of one customer at once:

1Select customer from bulk payment screen
2Enter total received amount
3System distributes amount to oldest invoices first (FIFO)
⚡ Journal Entry on Payment Recording:
• Debit: Treasury/Bank/Wallet/Cheques → Payment amount
• Credit: Customer Account → Payment amount
9 Installment Payments

A dedicated screen for paying due installments on installment invoices. Shows installments due today and overdue.

Tracking Installments
  • Installments grouped by invoice
  • Filter by customer or due date
  • Statistics: total due today, overdue, counts
  • Cheque-linked installments are hidden (paid when cheque is collected)
Paying an Installment
1Select due installment and click "Pay"
2Enter amount (partial payment allowed) and method (cash/transfer/wallet)
3System auto-updates installment and invoice status
Installment Statuses
  • Pending: Not yet paid
  • Partial: Partially paid
  • Paid: Fully paid
  • Cancelled: Cancelled
⚡ Journal Entry on Installment Payment:
• Debit: Treasury/Bank/Wallet → Installment amount
• Credit: Customer Account → Installment amount
• Payment can be reversed within a specified period
10 Pricing System & Price Lists

The system provides a flexible pricing system supporting multiple levels of prices and discounts.

Price Types
  • Basic Price: Default sale price set in product card
  • Commercial: Special price for commercial customers
  • Special Offer: Temporary offer price
  • Wholesale: Bulk/wholesale price
Price Lists

Price lists allow setting different prices per product unit by type:

  • Price can be adjusted by increase or decrease (percentage or value)
  • Each customer has a preferred price type applied automatically
  • You can view a price list specific to each customer
Category Discounts

You can set different discount rates per product category per customer, with cascading discount support:

  • First discount applied to original price
  • Second discount applied to price after first discount (and so on)
  • Order matters and is set by user during setup
📌 Example: Product price 100 - First discount 10% = 90 - Second discount 5% = 85.5 (not 85)
11 Non-Tax Invoices

The system supports two invoice types: Tax (with VAT and withholding tax) and Non-Tax (without taxes). Non-tax invoices work the same way but without tax calculations.

  • Supports same payment methods (cash, credit, transfer, cheque, wallet)
  • Same posting and accounting entries system (without tax entries)
  • Returns can be processed the same way
  • Appear in payment collection screen alongside tax invoices
12 Permissions & Security

Every screen in the Sales module is protected by a multi-level permission system:

Permission Types
  • View: View data and lists
  • Add: Create new records
  • Edit: Edit existing records
  • Delete/Cancel: Delete or cancel records
Visibility Restrictions

Regular users only see what they created (their invoices, reservations, quotations). Managers see everything.

Fiscal Period Protection

Invoices in closed fiscal periods are hidden from lists and cannot be modified, ensuring accounting data integrity.

Audit Trail

The system automatically records:

  • Who created each invoice/reservation/return (user_id)
  • Who posted (processed_by) and when (processed_at)
  • Who approved return (approved_by) and when (approved_at)
  • Who recorded each payment (created_by)
13 Summary of All Automatic Journal Entries

This chapter consolidates all automatic journal entries generated by the Sales module:

1. Sales Invoice Posting (Cash)
Debit: Treasury/Bank/Wallet → Credit: Sales + VAT - Withholding Tax
2. Sales Invoice Posting (Credit)
Debit: Customer Account → Credit: Sales + VAT - Withholding Tax
3. Sales Invoice Posting (Cheque)
Debit: Cheques Under Collection → Credit: Sales + VAT
4. Warehouse Exit (with every invoice)
Debit: COGS → Credit: Inventory
5. Credit Invoice Payment
Debit: Treasury/Bank/Wallet/Cheques → Credit: Customer Account
6. Installment Payment
Debit: Treasury/Bank/Wallet → Credit: Customer Account
7. Reservation Payment (down or additional)
Debit: Treasury/Bank/Wallet/Cheques → Credit: Customer Account
8. Return Approval (Cash Refund)
Debit: Sales Returns → Credit: Treasury/Bank/Wallet
Debit: Inventory → Credit: COGS
9. Return Approval (Credit Note)
Debit: Sales Returns → Credit: Customer Account
Debit: Inventory → Credit: COGS
10. Cancel Posted Invoice
Reverse all original entries (every debit becomes credit and vice versa)
11. New Customer Opening Balance
Debit: Customer Account → Credit: Opening Balance (if debit)
Debit: Opening Balance → Credit: Customer Account (if credit)

Supply Chain

Comprehensive guide for Supply Chain management including: Products & Categories management, Purchases & Suppliers & Invoices & Returns & Imports, Warehouses & Inventory & Add/Exit permits & Transfers & Inventory Count, with full explanation of all automatic journal entries.

1 Products & Categories Management

1.1 Categories

The system supports a two-level category hierarchy: Parent Categories and Sub-Categories. Each category can be active or inactive.

1 Parent Category
First level of categories - contains sub-categories. Example: "Electronics", "Food".
2 Sub-Category
Second level linked to a parent category. Example: "Phones" under "Electronics".

1.2 Products

A product is the basic unit in the inventory system. Each product belongs to a sub-category and can have multiple units with different prices.

📋 The system supports 8 product types, each with different behavior in purchases, inventory, and manufacturing:
1 inventory - Inventory
Products fully tracked in inventory - the default type.
2 service - Service
Services not stored but their cost is calculated in invoices and compositions. Does not create warehouse add permits.
3 food - Food
Food products with expiry tracking. Can only be stored in "food" type warehouses.
4 composite - Composite
Product composed of multiple components (BOM). Supports assembly and disassembly operations.
5 raw_materials - Raw Materials
Raw materials used in manufacturing and production orders.
6 operational - Operational
Daily operational supplies like office and cleaning materials.
7 packaging - Packaging
Packaging materials used for product preparation.
8 manufactured - Manufactured
Finished products resulting from manufacturing processes.

1.3 Units & Pricing

Each product can have multiple units of measurement (e.g., piece, carton, kg). Each unit has its own sale price, purchase price, and barcode.

💡 The conversion factor determines how inventory is tracked for each unit:
  • Factor = 1: Main unit (e.g., piece) - the basis for inventory calculation.
  • Factor > 0: Sub-unit calculated from main (e.g., carton = 12 pieces). No separate inventory record created.
  • Factor = 0: Independent unit (e.g., meter). A separate inventory record is created in every warehouse.

1.4 Price Lists

The system supports multiple price types per product unit, with percentage or value-based price adjustments:

  • commercial - Commercial price - for regular customers
  • special_offer - Special offer - promotional and discount prices
  • wholesale - Wholesale price - for bulk purchases
📋 Every price adjustment is automatically logged in PriceAdjustmentLog with the user, old price, and new price.

1.5 Barcode

The system provides Code 128 barcode printing in multiple sizes (40x25, 50x30, 60x40, 30x20 mm). Supports showing product name, price, copy count, and custom margins.

1.6 Product Compositions (BOM)

A Composite product is composed of multiple components with specified quantities. Used to calculate composite product cost automatically and to execute assembly/disassembly operations. Services within the composition have their cost calculated but are not deducted from inventory.

1.7 Assembly & Disassembly

Two main operations that work on composite products with automatic warehouse permit creation:

🔢 Numbering format: ASM-YYYYMM-####
1 Assembly
Converts components into a composite product. Automatically creates an exit permit for components + an add permit for the finished product.
2 Disassembly
Converts a composite product into its components. Automatically creates an exit permit for the composite + an add permit for components.

1.8 Excel Import/Export

Export: Excel file with all product data formatted with RTL support. Import: Upload Excel file with automatic validation (name, code, unit, prices, barcode) with clear Arabic error messages.

2 Purchases Management

2.1 Local Suppliers

An accounting account is automatically created for each supplier. Includes credit type, credit limit, payment terms, and available currencies. Cannot modify or delete a supplier with existing transactions.

💡 Each supplier is linked to an accounting account in the chart of accounts. Current balance is calculated directly from the accounting account balance.

External Import Suppliers

External suppliers not linked to accounts in the general ledger. They have a separate account statement tracking debits and credits in multiple currencies with exchange rates.

2.2 Purchase Requests

The first stage in the purchasing cycle. An internal request to purchase items including products, required quantities, last purchase price, and specifications.

🔢 Numbering format: PR-YYYYMM-####

2.3 Purchase Orders

The main purchasing document. Includes supplier, warehouse, currency, and items with discount, VAT, and Withholding Tax.

📋 Status flow: Draft → Posted → Cancelled

Available payment methods:

1 Cash
Immediate payment from treasury - Payment status: Fully paid.
2 Credit
Deferred payment with optional down payment - Payment status: Partially paid or Unpaid.
3 Bank Transfer
Payment via bank transfer - Payment status: Fully paid.
4 Cheque
Payment by cheque linked to cheque book - Payment status: Fully paid.
5 Electronic Wallet
Payment via electronic wallet - Payment status: Fully paid.
⚠️ On creation: A warehouse add permit is automatically created for non-service products. On update: Auto-sync. On cancellation: Cancel the add permit if pending.

2.4 Purchase Invoices

Purchase invoices are created as drafts then posted. Support the same payment methods and taxes. On posting, a warehouse add permit is automatically created.

📋 Status flow: Draft → Posted → Cancelled

2.5 Purchase Returns

Return goods to supplier. Links to an original purchase invoice. On creation, a warehouse exit permit is automatically created. On approval, a reverse journal entry is created.

🔢 Numbering format: PRET-YYYYMM-####
📋 Status flow: Pending → Approved → Cancelled

2.6 Payment Transactions

Purchase payments can be made in multiple installments. Each transaction links to a purchase invoice, order, or supplier (bulk payment). Supports receipt printing with amount in words.

2.7 Import & Shipments

Comprehensive system for managing import shipments:

1 Shipment (Import)
Shipping data: supplier (local or external), country of origin, shipping country, shipping and expected arrival dates, ACI number, policy number, invoice type.
2 Shipment Invoices
Supplier invoices with items, units, and prices. Start as initial status then convert to final. Support currency exchange rate and discounts.
3 Shipment Payments
Two types: invoice payment (distributed across invoices), or expenses (customs, transport). Each payment creates a journal entry on posting.

3 Warehouse & Inventory Management

3.1 Warehouses

The system supports two warehouse types with capacity tracking and user access control:

  • regular - Regular warehouse - for all non-food product types.
  • food - Food warehouse - dedicated to food products with expiry tracking and alerts.
💡 On creation, a sub-account is automatically created under the main inventory account (reference: 1103). Supports negative balance (allow_negative) and capacity tracking with alerts at 80%.

3.2 Inventory Records

Each inventory record tracks: Product + Warehouse + Unit. Supports reservation and preparation:

1 quantity
Total quantity available in the warehouse.
2 reserved_quantity
Quantity reserved for pending transfers or orders.
3 preparation_quantity
Quantity being prepared for dispatch.
4 available_quantity
Actual available quantity = quantity - reserved - preparation.

3.3 Warehouse Add Permits

The document by which products are added to a warehouse. Supports multiple sources and creates an automatic journal entry on approval.

🔢 Numbering format: ADD-YYYYMM-####
📋 Status flow: Pending → Approved → Completed → Cancelled

Add sources:

1direct
Direct addition - opening balance or inventory adjustment.
2purchase_order
Auto-created when a purchase order is created.
3invoice
Created when a purchase invoice is posted.
4import_shipment
Created when an import shipment is completed.
5sales_return
Return goods to warehouse from a sales return.
6manufacturing
Add finished manufactured products from production orders.

3.4 Warehouse Exit Permits

The document by which products are dispatched from a warehouse. Supports partial dispatch with quantity tracking per item and scanning mode for barcode confirmation.

🔢 Numbering format: EXIT-YYYYMM-#### | Partial dispatch: DSP-YYYYMM-####
📋 Status flow: Pending → Approved → Completed → Cancelled

3.5 Warehouse Transfers

Transfer goods from one warehouse to another. On approval: quantity is reserved from source. On completion: deducted from source and added to destination + journal entry. On cancellation after approval: reserved quantities are released.

🔢 Numbering format: TRN-YYYYMM-####
📋 Status flow: Pending → Approved → Rejected → Completed → Cancelled

3.6 Opening Stock

Record initial balances when starting the system or at the beginning of a new fiscal year. On approval: balance is added to inventory + journal entry + optional automatic product price update.

🔢 Numbering format: OS-YYYYMM-####
📋 Status flow: Draft → Approved

3.7 Inventory Count

Physical inventory count with multiple types: periodic, surprise, full, partial. Includes a count committee (head/member/observer) linked to employees.

🔢 Numbering format: CNT-YYYYMM-####
📋 Status flow: Draft → Pending → Approved → Cancelled
⚠️ On approval, differences are automatically processed: Surplus (actual > system) → automatic add permit. Shortage (actual < system) → automatic exit permit. Permits are linked to the count document.

3.8 Cost Center Inventory Issue

Issue raw materials to production orders and cost centers. On approval: deducted from warehouse with journal entry. Supports partial return of unused materials with a reverse entry.

🔢 Numbering format: RMIS-YYYY-M-#### | Return: RMIR-YYYY-M-####

4 Automatic Journal Entries

All following entries are created automatically as "posted" with is_automatic = true. The value is calculated from purchase price × quantity.

4.1 Warehouse Add Entry

Created when a warehouse add permit is approved. The credit account varies by source:

From purchase (order/invoice) (ref: 80)
AccountDebitCredit
Warehouse Account (1103.x)XXX-
Purchases Account (80)-XXX
Direct addition / opening balance (ref: 67)
AccountDebitCredit
Warehouse Account (1103.x)XXX-
Opening Balance Account (67)-XXX
From import shipment (ref: 158)
AccountDebitCredit
Warehouse Account (1103.x)XXX-
Import Shipments Account (158)-XXX
From sales return (ref: 83)
AccountDebitCredit
Warehouse Account (1103.x)XXX-
Cost of Goods Sold (COGS) (83)-XXX
From manufacturing (ref: 80)
AccountDebitCredit
Warehouse Account (1103.x)XXX-
Purchases Account (80)-XXX

4.2 Warehouse Exit Entry

Created on partial dispatch. The debit account varies by exit purpose:

📋 The debit account is determined by the exit purpose code:
SAMPLE (ref: 91) - Samples expense
INTERNAL (ref: 92) - Internal operational goods expense
DAMAGED (ref: 93) - Damaged goods expense
• Default (ref: 83) - Cost of Goods Sold (COGS)
Direct exit entry
AccountDebitCredit
Purpose Account (91/92/93/83)XXX-
Warehouse Account (1103.x)-XXX
Purchase return exit entry
AccountDebitCredit
Purchases Account (80)XXX-
Warehouse Account (1103.x)-XXX

4.3 Warehouse Transfer Entry

Inter-warehouse transfer
AccountDebitCredit
Destination Warehouse AccountXXX-
Source Warehouse Account-XXX

4.4 Opening Stock Entry

Opening stock (is_opening_balance = true) (ref: 67)
AccountDebitCredit
Warehouse Account (1103.x)XXX-
Opening Balance Account (67)-XXX

4.5 Material Issue Entry

Raw material issue for production order (ref: 5301)
AccountDebitCredit
Raw Material Expense (5301)XXX-
Warehouse Account (1103.x)-XXX
Raw material return (Reverse)
AccountDebitCredit
Warehouse Account (1103.x)XXX-
Raw Material Expense (5301)-XXX

4.6 Import Payment Entry

Import invoice payment (ref: 158)
AccountDebitCredit
Import Shipments Account (158)XXX-
Treasury / Bank-XXX

5 Account Reference Map

Summary of all accounting accounts used automatically in the Supply Chain module:

Reference # Account Usage
1103 Inventory (+ sub per warehouse) Inventory assets account - auto sub-account per new warehouse
67 Opening Balance Direct addition + opening stock
80 Purchases Purchase invoices + orders + returns + manufacturing
83 Cost of Goods Sold (COGS) Default exit + sales returns
91 Samples Expense Direct exit - SAMPLE purpose
92 Operational Goods Expense Direct exit - INTERNAL purpose
93 Damaged Goods Expense Direct exit - DAMAGED purpose
158 Import Shipments Import additions + import payments
5301 Raw Material Expense Material issue/return for production orders

🔧 Custom Manufacturing

guide.cm_desc_full

0 Complete Workflow Cycle

The custom manufacturing cycle consists of eight integrated main stages from inspection to final delivery:

1 guide.cm_cycle_step1_title
Customer site visit for accurate measurements and requirement assessment
2 guide.cm_cycle_step2_title
Detailed quotation including materials, services, and costs
3 guide.cm_cycle_step3_title
Estimate approval and deposit or agreed amount payment
4 guide.cm_cycle_step4_title
Create official order to start manufacturing process
5 guide.cm_cycle_step5_title
Withdraw required materials from warehouse and add to manufacturing order
6 guide.cm_cycle_step6_title
Record external services such as cutting, painting, installation
7 guide.cm_cycle_step7_title
Enter finished products to inventory and issue addition permit
8 guide.cm_cycle_step8_title
Deliver final product and create sales invoice
⚠️ All stages are interconnected and automatically documented in accounting

1 Inspections

1.1 What is an Inspection?

An inspection is a field visit to the customer to take accurate measurements and specifications before starting manufacturing. Used to obtain project details and prepare an accurate estimate.

1.2 Inspection Types

1 initial - Initial Inspection
guide.cm_ins_type_initial
2 execution - Execution Inspection
guide.cm_ins_type_execution

1.3 Inspection Data

Required data when creating an inspection:

🔢 Auto-numbering: INS-YYYYMM-####
  • guide.cm_ins_field_customer
  • guide.cm_ins_field_employee
  • guide.cm_ins_field_date
  • guide.cm_ins_field_location
  • guide.cm_ins_field_details
  • guide.cm_ins_field_products

1.4 Inspection Status Cycle

📋 scheduledin_progresscompleted | rejected | cancelled
1 scheduled - Scheduled
guide.cm_ins_status_scheduled
2 in_progress - In Progress
guide.cm_ins_status_progress
3 completed - Completed
guide.cm_ins_status_completed

1.5 Payment and Fees

Inspection fees can be collected from customer using the following payment methods:

  • cash - guide.cm_pm_cash
  • bank_transfer - guide.cm_pm_bank
  • electronic_wallet - guide.cm_pm_wallet
💡 Payment status: paid | partially_paid | unpaid: paid | partially_paid | unpaid

2 Estimates

2.1 What is an Estimate?

An estimate is a detailed quotation provided to the customer after inspection, including all materials, services, and expected costs for the project.

🔢 Auto-numbering: EST-YYYYMM-####

2.2 guide.cm_est_create

guide.cm_est_create_text

⚠️ guide.cm_est_create_rules

2.3 guide.cm_est_fields

  • guide.cm_est_field_items
  • guide.cm_est_field_exec_days
  • guide.cm_est_field_delivery_base
  • guide.cm_est_field_discount
  • guide.cm_est_field_down_payment
  • guide.cm_est_field_payment_method

2.4 Inspection Status Cycle

📋 draftapproved | rejected | cancelled
1 draft - Draft
guide.cm_est_status_draft
2 approved - Approved
guide.cm_est_status_approved

2.5 guide.cm_est_on_approve

guide.cm_est_on_approve_text

1 guide.cm_est_approve_step1
guide.cm_est_approve_step1_desc
2 guide.cm_est_approve_step2
guide.cm_est_approve_step2_desc
3 guide.cm_est_approve_step3
guide.cm_est_approve_step3_desc

3 Manufacturing Orders

3.1 guide.cm_pay_what

guide.cm_pay_what_text

3.2 guide.cm_pay_methods

1 cash - Cash
guide.cm_pay_cash
2 bank_transfer - Bank Transfer
guide.cm_pay_bank
3 cheque - Cheque
guide.cm_pay_cheque
4 electronic_wallet - E-Wallet
guide.cm_pay_wallet

3.3 guide.cm_pay_rules

⚠️ guide.cm_pay_rules_text
💡 guide.cm_pay_receipt_tip

4 Raw Materials

4.1 guide.cm_mo_what

guide.cm_mo_what_text

🔢 Auto-numbering: MFG-YYYYMM-####
⚠️ guide.cm_mo_create_rules

4.2 Inspection Status Cycle

📋 in_progresscompleted | cancelled
1 in_progress - In Progress
guide.cm_mo_status_progress
2 completed - Completed
guide.cm_mo_status_completed

4.3 guide.cm_mo_products

guide.cm_mo_products_text

📋 guide.cm_mo_product_statuses: pendingin_progresscompleted

4.4 guide.cm_mo_services

guide.cm_mo_services_text

💡 guide.cm_mo_services_note

4.5 guide.cm_mo_complete

guide.cm_mo_complete_text

1 guide.cm_mo_complete_step1
guide.cm_mo_complete_step1_desc
2 guide.cm_mo_complete_step2
guide.cm_mo_complete_step2_desc
3 guide.cm_mo_complete_step3
guide.cm_mo_complete_step3_desc

4.6 guide.cm_mo_deliver

guide.cm_mo_deliver_text

⚠️ guide.cm_mo_deliver_rules

5 Manufacturing Services

5.1 guide.cm_rmi_what

guide.cm_rmi_what_text

🔢 Auto-numbering: RMIS-YYYYMM-####

5.2 guide.cm_rmi_fields

  • guide.cm_rmi_field_estimate
  • guide.cm_rmi_field_mo
  • guide.cm_rmi_field_cc
  • guide.cm_rmi_field_warehouse
  • guide.cm_rmi_field_items

5.3 Inspection Status Cycle

📋 pendingapprovedcompleted | cancelled

guide.cm_rmi_approve_text

5.4 guide.cm_rmi_return

guide.cm_rmi_return_text

🔢 Auto-numbering Return: RMIR-YYYYMM-####

6 Finished Products

6.1 guide.cm_psis_what

guide.cm_psis_what_text

🔢 Auto-numbering: PSIS-YYYYMM-####

6.2 guide.cm_psis_auto

guide.cm_psis_auto_text

6.3 Inspection Status Cycle

📋 pendingapproved | cancelled

guide.cm_psis_approve_text

7 Journal Entries

All operations in custom manufacturing are automatically documented in accounting:

7.1 guide.cm_je_inspection

guide.cm_je_inspection_text

guide.cm_je_inspection_revenue (ref: INS-####)
guide.cm_je_accountguide.cm_je_debitguide.cm_je_credit
guide.cm_je_treasury_bankXXX-
guide.cm_je_customer_acc-XXX

7.2 guide.cm_je_est_sales

guide.cm_je_est_sales_text

guide.cm_je_est_sales_entry (ref: EST-SALES-####)
guide.cm_je_accountguide.cm_je_debitguide.cm_je_credit
guide.cm_je_customer_accXXX-
guide.cm_je_sales_acc (70)-XXX

7.3 guide.cm_je_down_payment

guide.cm_je_down_payment_entry (ref: EST-PAY-####)
guide.cm_je_accountguide.cm_je_debitguide.cm_je_credit
guide.cm_je_treasury_bankXXX-
guide.cm_je_customer_acc (with cost center)-XXX

7.4 Estimate Payment Entry

guide.cm_je_est_payment_text

guide.cm_je_est_payment_entry (ref: EST-PAY-####-{id})
guide.cm_je_accountguide.cm_je_debitguide.cm_je_credit
guide.cm_je_treasury_bank / guide.cm_je_cheque_acc (54)XXX-
guide.cm_je_customer_acc (with cost center)-XXX

7.5 Manufacturing Service Entry

guide.cm_je_service_entry (ref: MFG-SRV-####)
guide.cm_je_accountguide.cm_je_debitguide.cm_je_credit
guide.cm_je_wip_acc (1103.2)XXX-
guide.cm_je_mfg_expense (5202)-XXX

7.6 guide.cm_je_rmi

Dr: Work in Progress (1103.2) → Cr: Raw Material Warehouse (1103.x) (ref: RMIS-####)
guide.cm_je_accountguide.cm_je_debitguide.cm_je_credit
guide.cm_je_wip_acc (1103.2) - with cost centerXXX-
guide.cm_je_warehouse_acc (1103.x)-XXX
💡 guide.cm_je_rmi_return_note

7.7 guide.cm_je_psis

Dr: Product Warehouse (1103.x) → Cr: Work in Progress (1103.2) (ref: PSIS-####)
guide.cm_je_accountguide.cm_je_debitguide.cm_je_credit
guide.cm_je_warehouse_acc (1103.x)XXX-
guide.cm_je_wip_acc (1103.2)-XXX

7.8 Customer Delivery Entry

Dr: Cost of Goods Sold (5102) → Cr: Product Warehouse (1103.x) (ref: DEL-MFG-####)
guide.cm_je_accountguide.cm_je_debitguide.cm_je_credit
guide.cm_je_cogs_acc (5102)XXX-
guide.cm_je_warehouse_acc (1103.x)-XXX

8 Reports & Analytics

8.1 Comprehensive Report

The main custom manufacturing report displays:

1 guide.cm_rpt_inspections
guide.cm_rpt_inspections_desc
2 guide.cm_rpt_summary
guide.cm_rpt_summary_desc
3 guide.cm_rpt_orders
guide.cm_rpt_orders_desc
4 guide.cm_rpt_materials
guide.cm_rpt_materials_desc
5 guide.cm_rpt_services
guide.cm_rpt_services_desc
6 guide.cm_rpt_products
guide.cm_rpt_products_desc
7 guide.cm_rpt_charts
guide.cm_rpt_charts_desc

8.2 Detailed Cost Report

Detailed cost analysis:

  • guide.cm_rpt_cost_detailed
  • guide.cm_rpt_cost_product_compare
  • guide.cm_rpt_cost_stages
  • guide.cm_rpt_cost_profitability
  • guide.cm_rpt_cost_trend

8.3 Available Filters

  • guide.cm_rpt_filter_date
  • guide.cm_rpt_filter_customer
  • guide.cm_rpt_filter_product
  • guide.cm_rpt_filter_status
💡 All reports can be printed and exported

9 Accounts & Permissions

Accounts used in custom manufacturing:

guide.cm_ref_num guide.cm_ref_name guide.cm_ref_usage
1103.2guide.cm_ref_wipguide.cm_ref_wip_use
1103.3guide.cm_ref_fgguide.cm_ref_fg_use
1103.xguide.cm_ref_whguide.cm_ref_wh_use
5102guide.cm_ref_cogsguide.cm_ref_cogs_use
5202guide.cm_ref_mfg_expguide.cm_ref_mfg_exp_use
70guide.cm_ref_salesguide.cm_ref_sales_use
54guide.cm_ref_chequeguide.cm_ref_cheque_use

9.2 Permissions

Required permissions to use custom manufacturing:

📋 inspections.* | estimates.* | manufacturing_orders.* | manufacturing_reports.*:
inspections. → view, add, edit, complete, reject, cancel, delete
estimates. → view, add, edit, approve, reject, cancel, delete
estimate_payments. → view, add, delete
manufacturing_orders. → view, add, add_service, update_product, complete, cancel
manufacturing_reports. → view

Schools Management

A comprehensive school management system covering: grades and classrooms, pricing and installments, enrollment requests and student registration, subjects and exams, attendance tracking, report cards and certificates, and financial reports.

0 Complete Workflow Cycle

The school system operates in 3 sequential phases: Basic Setup → Registration & Finance → Academics. Each phase must be completed before moving to the next.

Phase 1: Basic Setup

1 Grades & Classrooms
Create academic grades (Primary/Preparatory/Secondary) then add classrooms for each grade with capacity.
2 Pricing & Discounts
Set fees for each grade (base + additional), create discount types and installment templates.
3 Subjects
Create subjects and assign them to grades per term with max score, pass score, and score divisions.
4 Areas & Transportation
Create geographic areas with bus fees for each, then add buses with their seating capacity.
5 Guardians
Register guardian information (father/mother or other guardian) before submitting enrollment requests.

Phase 2: Registration & Finance

6 Enrollment Request (ENR)
Submit an enrollment request linked to a guardian. The request goes through: pending → approved or rejected (with resubmission option).
7 Student Registration (REG)
From an approved enrollment, create the student registration: assign classroom, transportation, fees, discounts, and installments. Approval deducts a seat from classroom and bus.
8 Receipt Vouchers & Payments (SRV)
Create receipt vouchers to collect student installments. Posting auto-creates a journal entry and updates installment status.

Phase 3: Academics

9 Attendance
Record daily student attendance by classroom (present/absent/late/excused). WhatsApp notifications are sent automatically for absent students.
10 Exams & Scores
Create exams (weekly/monthly/midterm/final/makeup) and enter student scores. Makeup exams are for absent and failed students.
11 Report Cards & Certificates
Generate certificates for grade, classroom, or individual student. The system auto-calculates scores, percentages, grade levels, and rankings.
12 Reports
Comprehensive financial reports (by grade/classroom/student/guardian) + weekly/monthly attendance reports + Excel export.
⚠️ Grade, subject, and pricing setup must be completed before starting registration. Approved registrations cannot be modified.

1 Grades, Classrooms & Pricing

1.1 Academic Grades

Grades are organized by stage (Primary / Preparatory / Secondary). Each grade has a name and active status. Sorting is automatic: Primary → Preparatory → Secondary.

guide.field guide.description
grade_typeStage: Primary / Preparatory / Secondary
nameGrade name (e.g. Grade 1)
is_activeActive status

1.2 Classrooms

Each classroom belongs to a grade with a defined capacity. When a student is registered and approved, a seat is automatically deducted from available capacity. Transferring a student returns the seat.

guide.field guide.description
nameClassroom name (e.g. Class A)
grade_idParent grade
capacityTotal capacity
available_capacityAvailable seats (auto-updated on registration/transfer)

1.3 Fee Pricing

Each grade has one active pricing that includes: base price + additional fees (books, uniform, activities...). Final price is calculated automatically.

guide.field guide.description
base_priceBase tuition fee
final_priceFinal price = Base + Additional fees
additional_feesAdditional fees (name + amount) e.g. Books, Uniform, Activities

1.4 Discounts

Create discount types (siblings, staff, honors...) then link them to each grade pricing. Discounts can be percentage or fixed amount. Multiple discounts can be applied to one student during registration.

guide.field guide.description
discountDiscount type (name + status) e.g. Siblings, Staff, Honors
available_discountLink discount to pricing: percentage or fixed amount

1.5 Installment Templates

Define the number of installments, percentage of total for each, and due day/month. Percentages must sum to 100%. Templates are auto-applied when creating student registrations.

guide.field guide.description
nameInstallment name (e.g. 1st Installment)
percentagePercentage of total fees (must sum to 100%)
due_day / due_monthDue day and month
sort_orderDisplay order

2 Subjects & Score Divisions

2.1 Subjects

Create subjects of two types: basic (Arabic, Math...) and activity (Art, Music...). Each subject has a unique code.

guide.field guide.description
codeSubject code (unique)
nameSubject name
typeType: basic / activity

2.2 Assigning Subjects to Grades

Assign subjects to each grade per term (Term 1 / Term 2) with max score and pass score. The same subject cannot be duplicated in the same grade and term.

guide.field guide.description
grade_id + subject_id + termLink subject to grade for a term (1 or 2) - no duplicates
max_scoreMaximum score for subject
pass_scorePassing score

2.3 Score Divisions

Divide a subject score into parts (e.g. Written 40 + Oral 10 + Practical 10 = 60). The sum of divisions must equal the max score.

ℹ️ Score divisions are optional. If not divided, the subject is treated as a single score.

2.4 Grade Level Scale

The grading system converts percentages to grades (Excellent A / Very Good B / Good C / Acceptable D / Fail F). Ranges and colors can be customized or reset to defaults.

Grade Symbol Percentage Color
ExcellentA85% → 100%success
Very GoodB75% → 84.99%primary
GoodC65% → 74.99%info
AcceptableD50% → 64.99%warning
FailF0% → 49.99%danger

3 Teachers & Class Assignment

3.1 Teacher Data

Register teacher information: name, national ID (birth date is auto-extracted from national ID), subject, contract type (contract/hourly), salary, and photo.

guide.field guide.description
nameTeacher name
national_idNational ID (14 digits) - birth date auto-extracted
subject_idPrimary subject
contract_typeContract type: contract / hourly
basic_salaryBasic salary
photoTeacher photo

3.2 Assigning Teachers to Classes

Assign a teacher to specific classrooms to teach a subject in a given term. The system only shows grades that contain the subject in the requested term.

guide.field guide.description
grade_id + classroom_idGrade and classroom
subject_idSubject taught
termTerm (1 or 2)
academic_yearAcademic year (e.g. 2025-2026)
ℹ️ A teacher can teach the same subject in multiple classrooms, or teach different subjects in different classrooms.

4 Areas & Transportation

4.1 Geographic Areas

Create geographic areas with transportation fees for each. Area names must be unique.

guide.field guide.description
nameArea name (unique)
priceBus fee for this area

4.2 Buses

Create buses linked to areas. Each bus has total seats and available seats (auto-updated on registration/transfer). Bus capacity cannot be reduced below occupied seats.

guide.field guide.description
bus_numberBus number (unique)
area_idLinked area
total_seatsTotal seats
available_seatsAvailable seats (auto-updated)

5 Guardians

5.1 Guardian Types

The system supports two types of guardians. Required fields are validated based on type.

1 parents - Father & Mother
Father and mother details: name, national ID, phone, job, address.
2 other - Other Guardian
Other guardian details: name, relationship, national ID, phone.
ℹ️ A guardian must be created before submitting an enrollment request. One guardian can be responsible for multiple students.

6 Enrollment Requests

6.1 Creating an Enrollment Request

Create a new enrollment request with student data linked to a guardian. The request number is auto-generated and age at October 1st is auto-calculated.

guide.field guide.description
enrollment_numberAuto number: ENR-YYYY-####
student_nameFull student name
national_idNational ID (optional)
genderGender: male / female
birth_dateBirth date - age at October 1st auto-calculated
grade_type + grade_idStage and requested grade
study_typeStudy type: Arabic / Languages
guardian_idLink to guardian (must be created first)
has_special_needsSpecial needs: Yes / No
needs_transportationNeeds transportation: Yes / No

6.2 Request Status Cycle

Requests start as pending. They can be approved directly (becomes approved), or rejected with a recorded reason. Rejected requests can be resubmitted (returns to pending with incremented attempt count).

pendingapproved
pendingrejectedpending (resubmit with incremented request_count)
ℹ️ On acceptance, the request is approved directly without an intermediate "accepted" stage. Approved requests appear in the available registration list.

7 Student Registration

7.1 Creating a Registration

From the list of approved enrollments, select a student to create their registration. Student data is pulled from the enrollment with additions: classroom, transportation, fees, discounts, and installments.

guide.field guide.description
registration_numberAuto number: REG-YYYY-####
student_enrollment_idApproved enrollment (data pulled from it)
grade_id + classroom_idGrade and classroom
needs_bus + area_id + bus_idTransportation: Area → Bus (available only)
tuition_feesTuition fees
administrative_feesAdministrative fees
bus_feesBus fees (from area price)
discount_amountTotal applied discounts (multiple discounts possible)
total_feesTotal = Tuition + Admin + Bus - Discounts
installmentsInstallments (from templates): name + due date + amount
attachmentsAttachments (birth cert, photos, ...)
uniform_sizeUniform size

7.2 Registration Statuses

draftapprovedtransferred

Registration goes through three statuses: draft (editable) → approved (enrolled in class) → transferred (left school).

1 draft → approved
On approval: a seat is deducted from the classroom + a bus seat is deducted if transportation is needed. Can be approved during creation or later.
2 approved → transferred
On transfer: all installments must be fully paid first. Transfer reason, date, and destination school are recorded. Classroom and bus seats are returned automatically.
⚠️ Students with unpaid installments cannot be transferred. The full remaining amount must be paid first.

7.3 Classroom Transfer

A student can be transferred between classrooms within the same grade, provided seats are available in the new classroom. Available capacity is updated automatically in both classrooms.

8 Receipt Vouchers & Payments

8.1 Creating a Receipt Voucher

Search for a student and select the installment to pay. Amount auto-fills with the remaining balance. Select payment destination (bank/treasury/e-wallet) and student account.

guide.field guide.description
voucher_numberAuto number: SRV-YYYY-####
student_registration_idStudent (search by name or reg. number)
student_installment_idInstallment to pay (shows remaining only)
amountAmount = installment remaining (automatic)
account_idStudent/Client account (credit side)
destination_typePayment destination: bank / treasury / electronic_wallet
destination_idSpecific bank, treasury or wallet

8.2 Voucher Statuses

draftpostedcancelled
On Post
A journal entry is auto-created (debit: destination / credit: student account) + paid amount and remaining are updated + installment status is updated (paid or partial).
On Cancel
The journal entry is cancelled + the amount is returned to the installment (paid decreases, remaining increases) + installment status is updated (unpaid or partial).

8.3 Automatic Journal Entry

guide.account guide.debit guide.credit
Treasury / Bank / Wallet (destination account) Amount -
Student/Client account - Amount

9 Installment Reminders

The installment tracking system displays overdue, due today, and upcoming (within 7 days) installments, with WhatsApp notification capability and sent reminder logging.

9.1 Reminder Types

Type Description Color
overdueOverdue installments (past due date)danger
due_todayDue todayprimary
upcomingUpcoming within 7 daysinfo

9.2 WhatsApp Notifications

An auto-generated WhatsApp message contains: student name, grade, installment, due date, remaining amount, and overdue status. A WhatsApp link opens directly with the guardian phone number.

9.3 Guardian Search

Search by any guardian data (father/mother/guardian name, phone, national ID) to view all their children with installments in a consolidated view.

9.4 Reminder History

The system logs all sent reminders (date, type, sender, status) with statistics for today, this week, and this month.

10 Student Attendance

10.1 Daily Attendance Recording

Select grade, classroom, and date, then record each student status. Excuse attachments can be uploaded for excused absences. Existing records are updated if already present.

Status Description Color
presentPresent
absentAbsent
lateLate
excusedExcused absence (with reason & optional attachment)

10.2 Absence WhatsApp Notifications

After saving attendance, the system displays absent students with WhatsApp links for instant notification to their guardians.

10.3 Attendance Reports

Weekly report: table per student with weekday columns and colored symbols. Monthly report: attendance rate per student. Best/Worst students: ranked by attendance rate.

ℹ️ Weekly reports can be exported as Excel with colored formatting (green for present, red for absent, yellow for late).

11 Exams & Scores

11.1 Creating an Exam

Create a new exam specifying: subject/grade/term, type (weekly/monthly/midterm/final/makeup), max score, and scope (whole grade, specific classroom, or specific students).

guide.field guide.description
nameExam name
typeType: weekly / monthly / midterm / final / makeup
grade_subject_idSubject + Grade + Term
max_scoreMaximum score
scopeScope: grade / classroom / students
parent_exam_idOriginal exam (for makeup only)

11.2 Exam Statuses

draftpublishedcompleted
⚠️ Exams cannot be edited after completion (completed) or after scores have been entered. Only name, date, max score, and notes can be modified.

11.3 Entering Scores

Enter each student score (score must not exceed max). Students can be marked as absent. The system auto-calculates percentage and grade level.

11.4 Makeup Exam

Create a makeup exam from any completed exam. The system auto-shows eligible students: absent + failed (percentage below 50%). Makeup exams are linked to the original via parent_exam_id.

11.5 Exam Statistics

The system auto-calculates: total students, present, absent, highest score, lowest score, average, and pass rate.

12 Report Cards & Certificates

12.1 Generating Certificates

Generate certificates in bulk (for entire grade or classroom) or individually (for one student). Specific subjects can be selected, or default to all subjects.

guide.field guide.description
grade_idGrade
termTerm: 1 / 2 / full (full year)
scopeScope: grade / classroom / student
subject_idsSelect specific subjects (optional - default all)

12.2 Certificate Content

Each certificate contains subject details: exam list with scores, total score, percentage, grade level, and result (passed/failed). Result is determined by comparing with each subject pass score.

12.3 Ranking Calculation

After generating certificates, each student rank is calculated at two levels: classroom rank and grade-wide rank (grade_rank) based on overall percentage.

12.4 Approval

Certificates can be approved individually or in bulk. Approval locks the results and prevents modification or deletion.

⚠️ Approved certificates cannot be deleted. Approval must be revoked first (if permitted) before deletion.

13 Financial Reports

13.1 Comprehensive Installment Report

A multi-dimensional financial report showing installment status from 5 different perspectives. Results can be filtered and each section can be printed or exported.

1 Summary
Total fees, collected, remaining, installment count, student count, collection rate, paid/unpaid/partial installments.
2 Grades Report
Financial breakdown by grade: student count, total installments, collected, remaining, collection rate.
3 Classrooms Report
Financial breakdown by classroom with parent grade information.
4 Students Report
Financial breakdown by student: their data, grade, classroom, guardian, installments, paid and remaining.
5 Guardians Report
Consolidated report by guardian: shows all enrolled children with total fees, paid, and remaining for the whole family.

13.2 Available Filters

Filter by: grade, classroom, academic year, payment status (all/paid/unpaid/partial). Filters apply to all report sections.

13.3 Overdue Report

List of overdue installments with days overdue and guardian phone number. Direct receipt voucher creation or WhatsApp reminder available.

ℹ️ All reports support printing and Excel export with professional formatting and RTL (right-to-left) support.

14 Permissions

The system supports granular permissions for each school module section. Receipt vouchers require an additional permission (accounts-operations) from the accounting system.

Module Permissions
Grades & ClassroomsView, Add, Edit, Pricing, Discounts, Installments
SubjectsView, Add, Edit, Assign to grades, Score divisions
TeachersView, Add, Edit, Assign classes, Print
Areas & BusesView, Add, Edit
GuardiansView, Add, Edit, Print
Enrollment RequestsView, Add, Edit, Accept, Reject, Resubmit, Print
Student RegistrationView, Add, Edit, Approve, Transfer, Print
Student RecordsView, Change class, Export Excel
Receipt VouchersView, Add, Edit, Post, Cancel, Print (requires accounts-operations permission)
AttendanceView, Record, Reports, Export Excel
ExamsView, Add, Edit, Enter scores, Change status, Print
CertificatesView, Generate, Approve, Bulk approve, Delete, Print
Financial ReportsView, Print, Export Excel
Installment RemindersView, Send WhatsApp, Reminder history
📊

Accounting

The detailed guide for this module is being prepared and will be available soon.

👥

Human Resources

The detailed guide for this module is being prepared and will be available soon.

🖥️

Point of Sale

The detailed guide for this module is being prepared and will be available soon.