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

Storing Service

Warehouses, Receiving, Storage & Dispensing

Financial Accounts

Manage accounts, journals, and financial operations

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

A comprehensive module for managing custom manufacturing operations from inspection to final delivery, with cost tracking and automatic journal entries.

0 Complete Workflow Cycle

The custom manufacturing process goes through the following stages in order:

1 Initial Inspection
A visit is scheduled to the customer's site to inspect the location and determine requirements and measurements.
2 Prepare Estimate
Based on the inspection, a detailed estimate is prepared with products, prices, and execution timeline.
3 Approve Estimate
The customer approves the estimate, the down payment is recorded, and a manufacturing order is created automatically.
4 Issue Raw Materials
Raw materials are issued from the warehouse for the manufacturing order with automatic journal entries.
5 Manufacturing & Production
The manufacturing process is carried out, each product status is updated, and manufacturing services are added.
6 Add Finished Products
When a product is completed, a production stage inventory issue is created to add it to the warehouse.
7 Customer Delivery
Finished products are delivered to the customer with a cost of goods sold journal entry recorded.
8 Final Payment
The remaining balance is collected from the customer and the estimate is closed.
⚠️ The correct order of stages must be followed. No stage can be skipped.

1 Inspections

1.1 What is an Inspection?

An inspection is a field visit by a company employee to the customer's site to assess requirements, take measurements, and determine the scope of work.

1.2 Inspection Types

1 initial - Initial Inspection
First visit to the customer to assess the site and determine requirements before preparing an estimate.
2 execution - Execution Inspection
A visit during execution to verify that work matches the agreed specifications.

1.3 Inspection Data

Each inspection contains the following data:

🔢 Auto Numbering: INS-YYYYMM-####
  • Customer - selected from the registered customers list
  • Responsible Employee - the employee who will conduct the inspection
  • Inspection date and time
  • Address and GPS location of the inspection
  • Notes and inspection details
  • Required products with quantity and specifications

1.4 Status Flow

📋 scheduledin_progresscompleted | rejected | cancelled
1 scheduled - Scheduled
The inspection has been scheduled and the appointment is set with the customer.
2 in_progress - In Progress
The employee is on-site and currently conducting the inspection.
3 completed - Completed
The inspection is completed successfully and an estimate can be created from it.

1.5 Payment & Fees

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

  • cash - Cash - cash payment
  • bank_transfer - Bank Transfer - payment via bank transfer
  • electronic_wallet - Electronic Wallet - payment via e-wallets
💡 Payment statuses: paid | partially_paid | unpaid

2 Estimates

2.1 What is an Estimate?

An estimate is a detailed price quotation presented to the customer that includes the required products, prices, execution timeline, and payment terms.

🔢 Auto Numbering: EST-YYYYMM-####

2.2 Create from Inspection

An estimate can be created directly from a completed inspection, where customer and product data are transferred automatically.

⚠️ The inspection must be in "completed" status to create an estimate from it. Only one estimate can be created per inspection.

2.3 Estimate Data

  • Estimate Items - products with quantity, price, and total
  • Execution Days - expected duration to complete manufacturing
  • Delivery Base - start date for calculating execution period
  • Discount - discount on estimate total (amount or percentage)
  • Down Payment - amount required to be paid upfront upon approval
  • Payment Method - method for paying the down payment

2.4 Status Flow

📋 draftapproved | rejected | cancelled
1 draft - Draft
The estimate is being prepared and can be modified.
2 approved - Approved
The estimate has been approved by the customer and execution has started.

2.5 What happens upon approval?

When an estimate is approved, the following steps are executed automatically:

1 Create Manufacturing Order
A new manufacturing order is automatically created linked to the estimate containing all required products.
2 Record Sales Entry
A journal entry is recorded for the estimate total (Debit: Customer / Credit: Sales).
3 Record Down Payment
If there is a down payment, a payment entry is recorded (Debit: Treasury / Credit: Customer).

3 Estimate Payments

3.1 What is an Estimate Payment?

Payments are recorded from the customer against the approved estimate to track collected and remaining amounts.

3.2 Payment Methods

1 cash - Cash
Cash payment, and the entry is recorded to the treasury account.
2 bank_transfer - Bank Transfer
Bank transfer, and the entry is recorded to the bank account.
3 cheque - Cheque
Cheque payment, and the entry is recorded to the notes receivable account (54).
4 electronic_wallet - E-Wallet
E-wallet payment, and the entry is recorded to the wallet account.

3.3 Payment Rules

⚠️ Total payments cannot exceed the remaining balance on the estimate. The estimate must be in "approved" status to accept payments.
💡 A receipt can be printed for each payment to give to the customer.

4 Manufacturing Orders

4.1 What is a Manufacturing Order?

A manufacturing order is a work order automatically created when an estimate is approved, containing the products to be manufactured and each product's status.

🔢 Auto Numbering: MFG-YYYYMM-####
⚠️ The manufacturing order is created automatically when the estimate is approved and cannot be created manually.

4.2 Status Flow

📋 in_progresscompleted | cancelled
1 in_progress - In Progress
The manufacturing order is in progress and products are being worked on.
2 completed - Completed
All products have been completed and the manufacturing order is finished.

4.3 Required Products

The manufacturing order contains a list of required products with each product's status that can be updated separately.

📋 Product Statuses: pendingin_progresscompleted

4.4 Add Services

Manufacturing services (such as installation, painting, transportation) can be added to the manufacturing order with their costs recorded.

💡 Each service creates an automatic journal entry (Debit: Work in Progress / Credit: Manufacturing Expenses).

4.5 Complete Manufacturing Order

When completing a manufacturing order, the following steps are executed:

1 Verify Products
Ensure all products are in "completed" status.
2 Create Inventory Issues
A production stage inventory issue is created for each completed product to add it to the warehouse.
3 Update Order Status
The manufacturing order status is changed to "completed".

4.6 Customer Delivery

After completing the manufacturing order, finished products can be delivered to the customer with a cost of goods sold entry recorded.

⚠️ The manufacturing order must be in "completed" status and products must be in the warehouse before delivery.

5 Raw Material Issues

5.1 What is a Raw Material Issue?

A raw material issue is a document used to issue materials from the warehouse for a specific manufacturing order with automatic journal entries.

🔢 Auto Numbering: RMIS-YYYYMM-####

5.2 Issue Data

  • Estimate - the linked estimate
  • Manufacturing Order - the linked manufacturing order
  • Cost Center - the cost center linked to the estimate
  • Warehouse - the warehouse to issue from
  • Items - materials to be issued with quantities

5.3 Status Flow

📋 pendingapprovedcompleted | cancelled

When the issue is approved, quantities are deducted from the warehouse and a journal entry is recorded (Debit: Work in Progress / Credit: Warehouse).

5.4 Raw Material Return

Unused raw materials can be returned to the warehouse by creating a raw material return that reverses the journal entry.

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

6 Production Stage Inventory Issue

6.1 What is an Inventory Issue?

A production stage inventory issue is a document used to add finished products to the warehouse after manufacturing is completed.

🔢 Auto Numbering: PSIS-YYYYMM-####

6.2 Automatic Creation

The inventory issue is created automatically when the manufacturing order is completed for each finished product.

6.3 Status Flow

📋 pendingapproved | cancelled

When the inventory issue is approved, the finished product is added to the warehouse and a journal entry is recorded (Debit: Finished Goods Warehouse / Credit: Work in Progress).

7 Automatic Journal Entries

The system automatically creates journal entries at each stage of the manufacturing process to ensure accounting accuracy.

7.1 Inspection Entry

When a payment is recorded for inspection fees, the following entry is created:

Inspection Revenue Entry (ref: INS-####)
AccountDebitCredit
Treasury / BankXXX-
Customer Account-XXX

7.2 Estimate Approval Entry (Sales)

When the estimate is approved, a sales entry is recorded for the estimate total:

Estimate Sales Entry (ref: EST-SALES-####)
AccountDebitCredit
Customer AccountXXX-
Sales Account (70)-XXX

7.3 Down Payment Entry

Down Payment Entry (ref: EST-PAY-####)
AccountDebitCredit
Treasury / BankXXX-
Customer Account (with cost center)-XXX

7.4 Estimate Payment Entry

When a payment is recorded against the estimate, the following entry is created:

Estimate Payment Entry (ref: EST-PAY-####-{id})
AccountDebitCredit
Treasury / Bank / Notes Receivable Account (54)XXX-
Customer Account (with cost center)-XXX

7.5 Manufacturing Service Entry

Manufacturing Service Entry (ref: MFG-SRV-####)
AccountDebitCredit
Work in Progress (1103.2)XXX-
Manufacturing Expenses (5202)-XXX

7.6 Raw Material Issue Entry

Raw Material Issue Entry (ref: RMIS-####)
AccountDebitCredit
Work in Progress (1103.2) - with cost centerXXX-
Warehouse Account (1103.x)-XXX
💡 When raw materials are returned, a reverse entry is created (Debit: Warehouse / Credit: Work in Progress).

7.7 Inventory Issue Entry (Finished Product)

Production Stage Inventory Issue Entry (ref: PSIS-####)
AccountDebitCredit
Warehouse Account (1103.x)XXX-
Work in Progress (1103.2)-XXX

7.8 Customer Delivery Entry

Customer Delivery Entry (ref: DEL-MFG-####)
AccountDebitCredit
Cost of Goods Sold (5102)XXX-
Warehouse Account (1103.x)-XXX

8 Reports & Analytics

8.1 Comprehensive Manufacturing Report

A comprehensive report that displays all manufacturing data in one place, including the following sections:

1 Inspections
A list of all inspections with their statuses, dates, and customer data.
2 Estimates Summary
Total estimates, collected amounts, remaining amounts, and collection rates.
3 Manufacturing Orders
A list of manufacturing orders with their statuses and completion rates.
4 Issued Raw Materials
Details of raw materials issued for each manufacturing order with costs.
5 Manufacturing Services
A list of added manufacturing services with their costs.
6 Products
Details of manufactured products, their statuses, and completion rates.
7 Charts
Visual charts for analyzing manufacturing performance and costs.

8.2 Detailed Cost Report

A detailed report for analyzing manufacturing costs, including:

  • Detailed costs for each manufacturing order (raw materials + services)
  • Comparison of actual cost vs expected cost for each product
  • Costs for each manufacturing stage
  • Profitability analysis for each estimate
  • Cost trends over time periods

8.3 Filters

  • Date Range - filter by specific date
  • Customer - filter by specific customer
  • Product - filter by specific product
  • Status - filter by manufacturing order status
💡 Reports can be printed or exported as PDF.

9 Account Reference Map

The following table shows the accounting accounts used in the custom manufacturing module:

Account No. Account Name Usage
1103.2Work in ProgressAccumulates manufacturing costs (raw materials + services) until product completion
1103.3Finished Goods InventoryFinished products ready for delivery
1103.xWarehouse AccountThe specific warehouse account for issuing from or adding to
5102Cost of Goods SoldRecords product costs upon delivery to the customer
5202Manufacturing ExpensesRecords manufacturing service costs
70Sales AccountRecords revenue from approved estimates
54Notes ReceivableRecords cheques received from customers

9.2 Permissions

User permissions are controlled separately for each section of the module.

📋 Permissions List:
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

Storing Service

Comprehensive guide for managing storing services including: creating and managing warehouses, areas & racks, receiving shipments and confirming them, storing pallets (LPN), dispensing goods and transferring pallets between warehouses, expiry tracking, inventory management & audit, with comprehensive reports and data export.

1 Service Stores | المخازن

1.1 Create Store | إنشاء مخزن

A service store is the primary unit in the storing system. Each store has a defined capacity in pallets and can contain areas and racks.

1Store Name
Enter the store name - required text, max 255 characters. Should be clear and distinctive.
2Capacity
Total store capacity in pallet count - positive integer. Defines the maximum pallets allowed for storage.
3Store Manager
Select the user responsible for managing the store (optional). Address and notes can also be added.

1.2 Capacity Management | إدارة السعة

The system calculates capacity automatically based on confirmed receivings only. Dispensed pallets are excluded from used capacity.

📊 Capacity is calculated from confirmed receivings only - pending receivings do not affect capacity calculations.
1Used Capacity
Number of confirmed pallets currently in the store = count of confirmed (not dispensed) LPNs.
2Available Capacity
Available capacity = Total capacity - Used capacity. This is the number of pallets that can be added.
3Usage Percentage
Usage percentage = (Used / Total) x 100. Displayed as a visual indicator on the dashboard.
⚠️ Cannot reduce store capacity below the currently used capacity. You must dispense or transfer pallets first.

1.3 Store Dashboard | لوحة المعلومات

Store details page shows comprehensive statistics: capacity and usage, areas and racks count, confirmed and pending pallets, total quantities. With inventory filtering by area, rack, and customer.

💡 You can search store inventory by SN Code, LPN number, or item name directly from the details page.

2 Areas & Racks | المناطق والرفوف

2.1 Areas | المناطق

An area is a section within a store. Each area has its own capacity and can contain racks. An area belongs to exactly one store.

1Create Area
From store details > Areas section > Add Area. Enter name, capacity, and notes. The system automatically verifies that area capacity does not exceed available store capacity.
2Area Capacity
Capacity in pallets. Sum of area capacities must not exceed store capacity. Can be updated later provided it does not go below the currently used amount.
3Stage Area
When confirming receiving, a "Stage Area" is auto-created named "Stage - [Store Name]" with capacity 1000 pallets. Used as temporary receiving zone before final storage.
📋 Hierarchy: Service Store > Area > Rack. Each level has independent capacity that is validated.

2.2 Racks | الرفوف

A rack is the smallest storage unit within an area. Pallets can be placed directly in an area or in a specific rack within the area.

1Create Rack
From store page > Add Rack. Select area and enter name and capacity. The system verifies rack capacity does not exceed available area capacity.
2Rack Capacity
Sum of rack capacities within an area must not exceed area capacity. Available = Area capacity - Sum of other racks capacity.
⚠️ When editing rack capacity, it cannot be reduced below the number of pallets currently stored in it.

2.3 LPN Operations | عمليات الباليتات

Pallets can be managed within areas and racks via quick AJAX operations without leaving the page.

1Move to Area
Move a pallet from rack to area directly (remove from rack). Available area capacity is verified before the move.
2Move to Rack
Move a pallet from area to a specific rack. The rack must belong to the same area and have available capacity.
3Rack to Rack
Move a pallet from one rack to another within the same area. The movement is automatically recorded.
4Remove from Rack
Remove the pallet from rack and return it to the area. Updates rack_id = null in the receiving record.
💡 You can search for pallets in an area by LPN or SN Code, with details and current location displayed.

3 Shipments & Items | الشحنات والأصناف

3.1 Create Shipment | إنشاء شحنة

A shipment is the primary unit for incoming goods. Contains customer info, policy number, and items. Must be created before receiving.

1Basic Information
Customer (from list), Policy Number (unique), Marine Number, pallet and unit counts, expected delivery date, PO Number and Form 56 (optional).
2Pallet Type
Two types: "standard" single-item pallet with name, production and expiry dates. "mix" multi-item pallet where each item has its own dates.
3Shipment Items
Per item: item name, production date, expiry date. SN Code and barcode are auto-generated upon saving.
📋 SN Code is auto-generated from last 4 digits of policy + first 3 chars of item name + random number. Barcode = "BC" + SN + random number.

3.2 Manage Shipment Items | إدارة الأصناف

Item data can be edited after creation: change name, update barcode (must be unique), modify production and expiry dates.

1Search Items
Search by name, SN Code, barcode, policy number, marine number, or customer name.
2Item Status
Each item links to its latest confirmed receiving showing current storage status.
💡 You can print an ID card for each item with all its data and shipment information.

4 Receiving | الاستلام

4.1 Receiving Workflow | سير العمل

Receiving records pallet arrival at the warehouse. Creates a Receiving record per LPN and a ReceivingSummary grouping all receivings.

1Search by Policy
Search by policy number to auto-fetch shipment data. Shows items and customer info for selection.
2Select Store & Area
Select receiving store then area. Shows available areas with capacities. Capacity verified before allowing.
3Receiving Data
Per LPN: LPN number (unique in store), item name, quantity, pallet count, batch code, production and expiry dates. Multiple LPNs per operation.
4Save Receiving
Creates Receiving per LPN (status=received) + ReceivingSummary (status=pending). Notification sent to managers.
📋 LPN must be unique within confirmed receivings in the same store. Duplicates are auto-detected and rejected.

4.2 Confirm Receiving | تأكيد الاستلام

After review, receiving is confirmed. Changes summary from "pending" to "confirmed" which starts capacity calculation.

1Review Summary
Verify each LPN: items, quantities, batch, expiry dates. Individual receivings can be deleted before confirmation.
2Confirm Action
On confirm: capacity verified, status updated, confirmer and date recorded, Stage area auto-created if needed.
⚠️ After confirmation, pallets count toward used capacity. Confirmation cannot be directly reversed.

4.3 Receiving Tools | أدوات الاستلام

Helper tools for efficient receiving management.

1Print Labels
Print labels with LPN barcode, item data, and shipment details. Individual or batch printing.
2Export Pending
Export all pending receivings to Excel for external review before confirmation.
3Receiving Statistics
Dashboard: total summaries, LPNs, items, confirmed/pending counts with date, store, and status filters.

5 Storage | التسكين

5.1 Storage Workflow | سير العمل

Storage moves confirmed pallets from Stage to final locations. Each movement recorded in Storage table.

1Scan/Enter LPN
Scan or enter LPN. Shows: item name, quantity, shipment, policy, current location, last movement.
2Select Destination
Choose target area or rack. Shows available capacity. Movement blocked if destination is full.
3Execute Storage
Creates movement record (status=pending), updates pallet location (area_id, rack_id, is_stored=true).
📋 Types: receiving_to_storage, area_to_rack, rack_to_rack, area_to_area.

5.2 Movement Types | أنواع الحركات

Multiple movement types supported with capacity validation on each.

1Area to Rack
Move pallet from area to rack. Rack must be in same area. Capacity verified.
2Rack to Rack
Move pallet between racks (same or different area). Target capacity verified.
3Area to Area
Move pallet between areas. Target capacity verified and location updated.

5.3 Storage Confirmation | تأكيد التسكين

Storage operations start as "pending" and can be confirmed or undone.

1Single Confirm
Confirm one operation. Destination capacity verified and LPN location updated.
2Bulk Confirm
Select and confirm multiple operations. Each validated individually. Failures listed in error report.
3Undo Storage
Undo last storage for a pallet. Returns it to previous location and deletes the record.
💡 Filter by store, date, policy, area, rack, status. Search by LPN number.

6 Dispensing | الصرف

6.1 Dispensing Workflow | سير العمل

Dispensing releases pallets from warehouse via a DispensingOrder. Order number auto-generated as DISP-YYYY-MM-DD-###.

1Select Store
Select store to dispense from. Only active stores shown.
2Search by Policy or LPN
Search by policy for all pallets, or by LPN for specific pallet. Shows details and location.
3Dispensing Data
Booking number, PO number, policy number, batch code, notes. Select pallets to dispense.
4Submit Order
Creates order (status=pending), links each LPN in Dispensing table. Notification sent.

6.2 Confirm & Manage | تأكيد وإدارة

Order lifecycle: pending > confirmed > approved > in_progress > completed. Can be cancelled before completion.

1Confirm Order
Changes status to confirmed. Each LPN marked "dispensed" and removed from capacity.
2Edit Order
Only pending orders editable. Add/remove pallets, change basic data.
3Delete Order
Only pending orders deletable. All records removed and pallet statuses restored.
⚠️ Confirmed dispensing removes pallets from capacity. Return requires new receiving.

6.3 Export & Search | تصدير وبحث

Advanced search and export for dispensing orders.

1Advanced Search
Filter by store, date, booking, PO, policy, batch, or free text.
2Export Orders
Export filtered orders to Excel: order number, date, policy, pallets, status, confirmer.
💡 Statistics: total orders, items, quantities, today's orders, completed orders.

7 LPN Transfers | نقل الباليتات

7.1 Transfer Workflow | سير العمل

Transfer pallets between stores via LpnTransfer. Number auto-generated as TRF-YYYYMMDD-####. Changes service_store_id and area_id.

1Scan LPNs
Scan or enter LPN numbers. Each verified: must be confirmed and exist in source store.
2Target Store
Select destination store (must be different and active). Available capacity verified.
3Execute Transfer
Creates transfer order (status=pending). Updates each pallet: store = target, area = target Stage area.
📋 Transferred pallets are placed in the target store's Stage area. They can be stored to final locations later.

7.2 Transfer Actions | إجراءات النقل

Managing transfer orders after creation.

1Complete Transfer
Changes transfer status to "completed". Confirms pallet arrival at target store.
2Cancel Transfer
Cancel pending transfers only. Pallets returned to source store and original location.
⚠️ Completed transfers cannot be cancelled. Create a reverse transfer instead.

8 Inventory & Tracking | المخزون والتتبع

8.1 Inventory View | عرض المخزون

Inventory page shows all currently stored items with advanced search and filtering.

1Filtering
Filter by store, area, rack, customer name, status (stored/preparing_exit). Multiple filters combinable.
2Search
Quick search by SN Code, barcode, item name, or customer name. Shows top 10 results.
3Transfer
Transfer inventory item to another area/rack. Specify quantity (max = current) and destination.

8.2 Storage Stock | مخزون التسكين

Additional pallet tracking system based on LPN number with movement history.

1Search by LPN
Search by LPN shows: pallet data, current location, shipment info, and available areas with capacities.
2Update Location
Update pallet area directly. New area capacity verified (current_stock < capacity).
💡 Inventory stats: total items, stored, preparing exit, in areas, in racks, total quantities.

9 Audit | الجرد

9.1 Audit Workflow | سير عمل الجرد

Audit system allows reviewing actual inventory against records. Audit by policy, batch, or store with export.

1Audit by Policy
Search by policy to show all related receivings with statuses and locations. Includes confirmed and dispensed.
2Audit by Batch
Search by batch code to show all pallets with same batch across all stores.
3Audit by Store
Select store to view full contents with each pallet status. Filter by area and receiving date.

9.2 Audit Results | نتائج الجرد

View and export audit results in multiple ways.

1Audit Statistics
Summary: total pallets, confirmed, pending, dispensed, compared with records.
2Export Excel
Export audit to Excel: LPN, SN Code, item name, quantity, batch, policy, store, area, status.
3Print Audit
Print detailed audit report with header, statistics, and detail table. Auto-prints on page load.
💡 Audit shows real-time database data. For field comparison, export and match on-site.

10 Expiry Tracking | تتبع الصلاحية

10.1 Expiry Search | البحث

Expiry tracking system searches items by expiry dates with danger level classification.

1Search by SN
Search by SN Code for a specific item showing its expiry date, location, and status.
2Filter by Store
Select store to show all near-expiry or expired items within it.

10.2 Expiry Levels | المستويات

The system classifies items into 4 danger levels based on expiry proximity:

1Expired
Items past expiry date. Immediate action required (withdraw or dispose).
2Critical - Less than 7 days
Items expiring within a week. Must be dispensed or moved urgently.
3Warning - 7 to 30 days
Items expiring within a month. Plan dispensing before expiry.
4Normal - More than 30 days
Items with more than 30 days until expiry. No action needed.
⚠️ Expiry report shows only non-dispensed items (status != dispensed) that have an expiry date recorded.

11 Handling | التحميل والتفريغ

11.1 Handling Types | الأنواع

Physical loading/unloading operations tracking linked to shipments and pallets.

1Receiving
Record incoming shipment unloading: vehicle, driver, load info, worker count, start/end times.
2Dispatch
Record outgoing shipment loading: vehicle, dispensing order, loaded quantities.

11.2 Handling Data | البيانات

Each handling operation contains the following data:

  • PO Number - links operation to purchase order.
  • Policy Number - links operation to shipment.
  • Batch Code - links operation to pallet group.
  • Vehicle Info - license plate and vehicle type.
  • Driver Info - driver name and phone number.
  • Booking Number - links to booking system.

12 External Labor Reports | العمالة الخارجية

12.1 Create Report | إنشاء تقرير

Track external labor used in warehouse operations (loading, unloading, sorting, moving).

1Basic Data
Store, report date, work type (loading/unloading/sorting/moving/other), worker count.
2Shift Data
Start and end times. System auto-calculates work hours. Add cost per worker or total.
3Link to Operations
Link report to a specific shipment or dispensing order for per-operation cost tracking.

12.2 Manage Reports | إدارة التقارير

View, edit, and export external labor reports.

1Report Status
Reports can be: draft, submitted, approved. Each status has different edit permissions.
2Filtering
Filter by store, date, work type, status. Search by vendor name or shipment number.
3Export
Export to CSV: date, store, work type, workers, hours, cost, status.
💡 System auto-calculates total hours from start/end times. Monthly cost summary available.

13 Reports | التقارير

13.1 Reports Dashboard | لوحة التقارير

Main dashboard with 9 stat cards: receiving (today/total), storage (today/total), dispensing (today/total), items (total/active), warehouses (total/active), shipments (total/pending), expiry (expired/near-expiry within 30 days).

13.2 Report Types | أنواع التقارير

9 main report types. Each supports multi-filter, Excel export, and printing:

1Receiving Report
Receiving summaries with filters: store, area, date, status, policy, batch. Stats: summaries, LPNs, items, confirmed/pending. Exportable.
2Storage Report
Storage movements: LPN, from/to locations, user. Filter by store, user, date, area, batch, policy. Movement statistics.
3Dispensing Report
Dispensing orders with filters: store, status, date, booking, PO, policy, batch. Stats: orders, items, quantities.
4Items Report
Detailed per-item (Receiving) with status, location, expiry. Filter by store, status, expiry. Stats: total, stored, dispensed, expired.
5Warehouses Report
All stores with stats: LPNs (total/stored/dispensed), areas, racks, last activity. Filter by status.
6Shipments Report
Shipments with completion percentage (dispensed/total). Filter by customer, date. Shows first receiving, last dispensing, completion %.
7Tracking Report
Track specific item by SN or LPN. Shows: receiving data, storage movements, dispensing status, current state with full timeline.
8Expiry Report
Items by expiry level: expired, critical (<7 days), warning (7-30 days), normal. Filter by store and level. Exportable.
9Inventory Report
Current inventory from confirmed non-dispensed receivings. Filter by store, area, rack, storage status, batch, policy, customer, expiry. Exportable.
💡 All reports support: Excel export (UTF-8 with BOM), direct printing (auto-print HTML). Apply filters before export to reduce data size.

14 Movements Hub | مركز الحركات

Central page combining all core operations in one place with quick shortcuts to key tasks.

1Quick Receive
Shortcut for new receiving. Select store and record incoming pallets with policy search.
2Quick Store
Shortcut for storage. Scan LPN and select target area/rack directly.
3Quick Exit
Shortcut for dispensing. Search by policy and select pallets to dispense.
📋 Movements Hub provides a simplified interface for warehouse workers. Accessible from each store's main screen.

Financial Accounts

The Financial Accounts module is the core of Hunt ERP's financial system. It includes the Chart of Accounts, Journal Entries, Fiscal Years, Treasury & Bank management, Card Machines & Electronic Wallets, Receipt & Payment Vouchers, Cost Centers, Employee Custody, Cheques, Fixed Assets, Products & Price Lists, and comprehensive financial reports.

1 Chart of Accounts

1.1 Chart of Accounts Overview

The Chart of Accounts is the hierarchical tree structure containing all financial accounts in the system. Accounts are organized from main (parent) accounts down to sub-accounts.

1Tree Structure
Accounts are displayed as a multi-level tree. You can expand and collapse branches to navigate between main and sub-accounts.
2Account Types
Account types include: Assets, Liabilities, Equity, Revenue, and Expenses.
3Account Levels
The system supports up to 5 account levels. Level 1 for main accounts and Level 5 for detail accounts where transactions are posted.
📋 Some accounts are created automatically when adding a Treasury, Bank, Card Machine, Electronic Wallet, or Fixed Asset.

1.2 Add a New Account

To add a new account to the Chart of Accounts, follow these steps:

1Account Name
Enter the account name. It should be clear and descriptive of the account's nature.
2Account Number
The account number is auto-generated based on the parent account. You can modify it if needed, ensuring no duplicates.
3Parent Account
Select the parent account under which this new account will be listed. The parent determines the level and classification.
4Account Type
The account type (Assets, Liabilities, Revenue, Expenses) is automatically determined based on the parent account.
⚠️ You cannot delete an account that has financial transactions or sub-accounts. You can only deactivate it.

1.3 Search Accounts

You can search the Chart of Accounts by name, account number, or type. Results are filtered instantly as you type.

💡 Use the account number for quick access. For example: 110101 for Treasury accounts, 110102 for Bank accounts.

2 Journal Entries

2.1 Journal Entries Overview

Journal entries are the foundation of the financial system. Every financial transaction is recorded as a journal entry with debit and credit sides that must be equal.

1Draft
A draft journal entry does not affect account balances. It can be edited or deleted freely.
2Posted
Once posted, the journal entry affects the actual balances of the related accounts. It cannot be edited after posting.
3Cancelled
A cancelled journal entry does not affect balances and is kept for documentation only.

2.2 Create a Manual Journal Entry

To create a new manual journal entry:

1Journal Date
Select the journal date. It must fall within an open (unlocked) fiscal period.
2Journal Lines
Add journal lines specifying the account and the debit or credit amount for each line. Multiple lines can be added.
3Balance Check
Total debit amounts must equal total credit amounts. The entry cannot be saved without balance.
4Post the Entry
After review, click "Post" to confirm the entry and update account balances.
⚠️ A posted journal entry cannot be edited or deleted. In case of error, create a reversing entry or cancel the journal.

2.3 Automatic Journal Entries

The system automatically creates journal entries for certain operations such as: Receipt & Payment Vouchers, Internal Transfers, Currency Exchanges, Card Machine Settlements, Fixed Asset Depreciation, and Opening Balances.

📋 Automatic journal entries are posted immediately and marked as "automatic". They cannot be edited manually.

3 Fiscal Years

3.1 Overview

Fiscal years organize accounting operations into defined time periods. Each fiscal year consists of 12 monthly periods.

1Create a Fiscal Year
Set the start and end dates of the fiscal year. The system automatically creates 12 monthly periods.
2Fiscal Periods
Each monthly period has a status: Open (transactions can be posted) or Closed (no journal entries allowed).
3Close the Fiscal Year
When closing the year, closing balances are calculated and carried forward as opening balances for the next year.

3.2 Close Periods

Monthly periods can be closed individually to prevent any modifications to journal entries in that period.

1Close a Period
Select the period and click "Close". All account balances for that period will be calculated and saved.
2Reopen a Period
If modifications are needed, a closed period can be reopened with special permissions.
⚠️ Closing a fiscal year is an operation that cannot be easily reversed. Ensure all journal entries are reviewed before closing.
💡 It is recommended to close monthly periods progressively to ensure balance accuracy and prevent unintended modifications.

4 Currencies

4.1 Currency Setup

The system supports multiple currencies with a default local currency and updatable exchange rates.

1Default Currency
Set the main local currency. All consolidated reports are displayed in this currency.
2Add a Currency
Enter the currency name, symbol (e.g., EGP, $, €), and international code (e.g., EGP, USD).
3Exchange Rate
Set the exchange rate against the local currency. Used for calculating balances in local currency and transfers.
📋 When creating a Treasury, Bank, or Electronic Wallet, it is linked to a specific currency and cannot be changed later.

4.2 Currency Exchange

You can perform currency exchange operations between Treasuries or Banks with different currencies.

1Create an Exchange
Select the source, destination, and amounts in both currencies. The difference is automatically calculated based on the exchange rate.
2Execute the Exchange
Upon execution, an automatic journal entry is created debiting the source and crediting the destination with exchange differences recorded.
💡 Exchange voucher numbers follow the format: EX-YYYY-00001 and are auto-sequenced per year.

5 Treasuries

5.1 Create a Treasury

Treasuries represent cash on hand in the company. Each treasury has an automatically created accounting account.

1Treasury Name
Enter a distinctive name (e.g., Main Treasury, Branch Treasury). An account "Treasury - [Name]" is created automatically.
2Currency
Select the treasury currency. It cannot be changed after creation. The account is auto-numbered (110101xx).
3Opening Balance
Enter the initial balance. An automatic opening journal entry is created (Debit: Treasury / Credit: Capital).

5.2 Treasury Operations

You can view treasury transactions and perform various operations.

1View Transactions
Displays all financial transactions on the treasury with the running balance. Balance is calculated from posted entries only.
2Activate / Deactivate
A treasury can be deactivated to temporarily stop transactions. The linked account is also deactivated automatically.
📋 Treasury balance is calculated dynamically from the sum of posted journal entries (Debit - Credit) and is never stored directly.
💡 You can filter treasuries by currency to view total balances for each currency separately.

6 Banks

6.1 Create a Bank Account

Each bank account in the system has a dedicated record with bank details and an automatically created accounting account.

1Bank Name
Enter the bank name (e.g., National Bank - Current Account). An account "Bank - [Name]" is created automatically.
2Bank Account Number
Enter the account number as it appears in the bank. Used for reconciliation and documentation.
3IBAN Number
Enter the international IBAN number (optional). Used for international transfers.
4Opening Balance
Enter the initial balance. An automatic opening entry is created. The accounting account is auto-numbered (110102xx).

6.2 Bank Operations

You can view bank financial transactions and track balances.

1View Transactions
Displays all posted journal entries for the bank account with running balance and details.
2Filter by Currency
You can view banks by a specific currency with total balances for that currency.
💡 When creating a bank with a foreign currency, the account is linked to the same currency to ensure balance accuracy.

7 Card Machines

7.1 Create a Card Machine

Card machines (POS) are registered in the system to track collected amounts and their settlements with banks.

1Machine Name
Enter a distinctive name (e.g., Cashier POS 1). An account "Card Machine - [Name]" is created automatically.
2Commission Rate
Set the bank commission percentage on transactions (e.g., 2.5%). It is automatically deducted during settlement.
3Terminal ID
Enter the terminal ID number (optional). Used for reconciliation with bank statements.

7.2 Machine Settlement

Settlement is the process of transferring collected amounts from the machine to the bank account minus the commission.

1Settlement Amount
Enter the amount to settle. It must not exceed the current machine balance.
2Receiving Bank
Select the bank to transfer funds to. It must be in the same currency as the machine.
3Automatic Journal Entry
An automatic entry is created: Debit Bank (net amount) + Debit Commissions / Credit Card Machine (full amount).
📋 Settlement formula: Net = Amount - (Amount × Commission%). Example: settling 10,000 with 2.5% commission = Net 9,750 + Commission 250.
⚠️ A card machine with financial transactions cannot be deleted. It can only be deactivated.

8 Electronic Wallets

8.1 Create an Electronic Wallet

Electronic wallets are used to track balances in electronic payment services (e.g., Vodafone Cash, Fawry, etc.).

1Wallet Name
Enter the wallet name (e.g., Vodafone Cash - Main). An account "Electronic Wallet - [Name]" is created automatically.
2Wallet Number
Enter the wallet number (phone number or identifier). Must be unique for each wallet.
3Opening Balance
Enter the initial wallet balance. An automatic opening entry is created if a balance exists.

8.2 Wallet Operations

You can view and manage electronic wallet transactions.

1View Transactions
Displays all posted entries with running balance. Balance is calculated from posted entries only.
2Change Status
The wallet can be activated or deactivated. Deactivation also deactivates the linked account.
💡 Electronic wallet accounts are created under the "Cash & Banks" group with auto-numbering (110102xx).

9 Receipt & Payment Vouchers

9.1 Receipt Voucher

A receipt voucher records the receipt of funds from customers or any other sources.

1Source (From)
Select the source: Treasury, Bank, or another account. This is the debit side of the journal entry.
2Contra Account
Select the credit account (e.g., customer account, other revenue). Multiple accounts can be selected.
3Amount
Enter the received amount. It can be split across multiple credit accounts.
4Post the Voucher
After review, click "Post" to confirm the voucher and create the automatic journal entry.

9.2 Payment Voucher

A payment voucher records the payment of funds to suppliers or for expenses. It works the same way as receipt vouchers with reversed sides (credit is the source, debit is the destination).

📋 Voucher numbering: Receipt Voucher RV-YYYY-00001, Payment Voucher PV-YYYY-00001. Numbers are auto-sequenced per year.

9.3 Internal Transfers

Internal transfers are used to move funds between Treasuries, Banks, and Electronic Wallets.

1Source (From)
Select the sending Treasury, Bank, or Wallet.
2Destination (To)
Select the receiving Treasury, Bank, or Wallet. Must be in the same currency.
3Amount
Enter the transfer amount. It must not exceed the available balance in the source.
⚠️ A posted voucher cannot be edited. In case of error, create a reversing voucher. Transfer numbering: TR-YYYY-00001.
💡 You can print the voucher immediately after posting. Each voucher has a unique reference number for tracking.

10 Cost Centers

10.1 Create a Cost Center

Cost centers are used to track expenses and revenues associated with a specific project, department, or activity.

1Center Name
Enter a clear name for the cost center (e.g., New Building Construction Project, Marketing Department).
2Allocated Budget
Set the allocated amount for this center. Used to track spending percentage against the budget.
3Allowed Close Percentage
Set the percentage at which the center is automatically closed (e.g., 100% when the budget is exhausted).

10.2 Automatic Closure

The cost center is automatically closed when the debit reaches the specified percentage of the credit.

1Close Condition
The center is automatically closed when: Total Debit ≥ (Total Credit × Allowed Percentage / 100).
2Reopen
An administrator can reopen a closed cost center if needed.
📋 Cost centers can be linked to journal entries to accurately track expenses and revenues for each project.
⚠️ A closed center does not accept new journal entries until it is reopened.

11 Employee Custody

11.1 Create a Custody

Custody is a financial amount given to an employee to make purchases or expenses on behalf of the company.

1Employee
Select the employee responsible for the custody. A dedicated custody account is created automatically (1107.xxx).
2Custody Amount
Set the requested amount. It should comply with company policies.
3Purpose
Write a clear description of the custody purpose (e.g., office supplies purchase, travel expenses).

11.2 Workflow

Custody goes through several stages from creation to final settlement.

1Approval
The custody request is reviewed and approved by the authorized person.
2Disbursement
After approval, the amount is disbursed from a Treasury or Bank. Journal entry: Debit Custody / Credit Source.
3Record Expenses
The employee records actual expenses with supporting documents.
4Settlement
Custody settlement: if expenses are less, the difference is returned; if more, the difference is paid out. An automatic settlement entry is created.
📋 Each employee has an independent custody account in the Chart of Accounts with automatically tracked balance.
⚠️ Custody must be settled before issuing a new custody for the same employee (per company policy).

12 Cheques

12.1 Cheque Types

The system supports three types of cheques to cover all financial operations.

1Incoming Cheque
A cheque received from a customer or external party. Recorded as an asset until collected.
2Outgoing Cheque
A cheque issued by the company to pay obligations. Recorded as a liability until cashed.
3Payment Order
A bank payment order to transfer a specific amount. Treated as an outgoing cheque in accounting.

12.2 Cheque Workflow

A cheque goes through several stages from registration to collection or cancellation.

1Pending
The cheque is registered in the system and its due date has not arrived yet.
2Available
The cheque's due date has arrived and it can be presented for collection or allocated.
3Collected
The cheque has been successfully collected and the amount added to the bank. An automatic journal entry is created.
4Returned
The cheque was returned by the bank (insufficient funds or other reason). The journal entry is reversed.
⚠️ A collected cheque cannot be reversed except through an official return process.
💡 You can search cheques by number, due date, or status to track upcoming cheques.

13 Fixed Assets

13.1 Add a Fixed Asset

Fixed assets include long-term properties such as equipment, devices, and real estate.

1Asset Information
Enter the asset name, category, purchase date, and annual depreciation rate.
2Branch
Select the branch the asset belongs to. Account numbering is automatic (1200xx for branch account, branch.xxx for asset).
3Value
Enter the purchase value (asset cost). An accounting account and accumulated depreciation account are created automatically.

13.2 Depreciation

Monthly depreciation is calculated automatically: Monthly Depreciation = (Asset Value × Depreciation Rate) ÷ 12.

1Single Asset Depreciation
Click "Depreciate" from the asset page to execute one month's depreciation. Journal entry: Debit Depreciation Expense / Credit Accumulated Depreciation.
2Bulk Depreciation
You can run depreciation for all active assets at once from the bulk depreciation screen.
📋 Book Value = Purchase Value - Accumulated Depreciation. When it reaches zero, automatic depreciation stops.

13.3 Asset Statuses

The asset status can be changed based on its actual condition.

1Active
The asset is operating normally and is depreciated monthly.
2Under Maintenance
The asset is under maintenance. Depreciation continues but it is flagged in reports.
3Sold
The asset has been sold. Depreciation stops and a sale entry is recorded with profit or loss.
💡 Review the fixed assets report periodically to track book values and identify assets nearing full depreciation.

14 Products & Price Lists

14.1 Create a Product

Products are items that are sold, purchased, or manufactured in the system.

1Basic Information
Enter the product name, code, description, and category. A product image can be added.
2Units of Measurement
Set the main unit (e.g., Piece) and add sub-units with conversion factor (e.g., Carton = 12 Pieces). Independent units have their own inventory records.
3Barcode
Enter the product barcode or let the system generate it automatically. Multiple barcodes can be added for the same product.
4Tax
Specify if the product is taxable and the rate. It is automatically applied to sales and purchase invoices.

14.2 Product Types

The system supports several product types:

  • Inventory: A product with tracked quantities in warehouses
  • Service: A service with no inventory (e.g., maintenance service)
  • Food: A food product with expiry date tracking
  • Composite: A product composed of multiple other products
  • Raw Material: A material used in manufacturing
  • Manufactured: A finished product resulting from a manufacturing process

14.3 Price Lists

You can create multiple price lists to apply based on customer type or season.

1Sale Price
The default selling price for the product on sales invoices.
2Commercial Price
A special price for commercial clients and wholesale quantities.
3Offer Price
A discounted price applied during promotion and discount periods.
4Wholesale Price
A special price for wholesale sales operations.
📋 A default price list can be assigned to each customer. When creating an invoice, prices are applied automatically.

14.4 Import Prices

You can import and update product prices from an Excel file.

1Download Template
Download the ready-made Excel template containing the required columns (product code, price, list type).
2Upload File
Upload the Excel file after filling in the data. The system supports xlsx and csv formats.
3Preview and Apply
The system shows a preview of changes before applying them. Review the prices then click "Apply".
💡 When updating prices in bulk, use the import feature instead of editing each product manually to save time.

15 Financial Dashboard

15.1 Overview

The Financial Dashboard provides a comprehensive and quick view of the financial status.

1Statistics
Displays total balances for Treasuries, Banks, Machines, and Wallets with comparison to the previous period.
2Recent Vouchers
Shows the latest Receipt, Payment, and Transfer vouchers with the status of each.
3Quick Search
You can search for any voucher or entry by reference number, date, or amount.
💡 Use the Financial Dashboard as your daily starting point to review financial status and make decisions.

16 Accounting Reports

16.1 Report Types

The system provides a comprehensive set of accounting reports to monitor financial performance.

1Treasury Report
Displays all treasury balances grouped by currency with transaction statistics.
2Bank Report
Displays bank account balances with transaction details and totals by currency.
3Card Machine Report
Displays machine balances, total commissions, and settlements per machine.
4Cost Center Report
Displays expenses and revenues for each cost center with budget consumption percentage.
5Custody Report
Displays employee custody status: amounts spent, remaining, and pending custodies.
6Cheque Report
Displays cheque status: pending, available, collected, returned, with due dates.
7Fixed Assets Report
Displays asset list with book values, accumulated depreciation, and status for each asset.
8Journal Entry Report
Displays all journal entries with filtering by date, status, and account.

16.2 Report Tools

All reports feature common tools for ease of use.

1Advanced Filtering
You can filter results by date, currency, branch, status, and more.
2Export
Export the report to Excel or PDF for sharing or archiving.
3Print
Print the report directly in a professional format including company logo and date.
💡 Set the appropriate time period before generating the report. You can save preferred filter settings for later use.
👥

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.