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 departmentThis 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 stagesE.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 typeTypes: Production / Packaging / Quality / Support
3Enter purchase price and expected life yearsThe system will automatically calculate depreciation per operating hour
4Enter operating cost per hourThis 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 FormulationThe system will auto-generate a unique batch number
2Select the final productThis is the product you want to manufacture
3Set the unit and base quantity for the formulationE.g., This formulation produces 100 kg of the product
4Add raw materialsFor each material: product, quantity, unit, unit price. E.g., 50 kg flour + 20 liters water + 5 kg sugar
5Add packaging materialsE.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 costsE.g., Labor 500 EGP, Energy 200 EGP, Rent 100 EGP
8Define the manufacturing stages in orderE.g., Mixing Dept (initial + final mixing) → Filling Dept (filling + sealing)
9Click SaveThe 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 formulationThe system will automatically display the final product and its unit
3Enter the required quantityThe 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 orderOnly shows orders with remaining quantity
3Set the target quantityMust be less than or equal to the remaining quantity
4Set the maximum allowed wasteE.g., If manufacturing 200 kg, you may allow 10 kg waste
5Assign components to departmentsFor each component, select the responsible department. E.g., Raw materials → Mixing Dept, Packaging → Packaging Dept
6Select the starting departmentThe first department to start work. Remaining departments work in sequence
7Set the priorityNormal / High / Urgent / Emergency
8Click SaveThe 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 dashboardThey 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 componentsFor 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 CheckDepartment 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 automaticallyWith all components, quantities, and correct units
2The warehouse manager reviews and approves
3Actual issuance takes placeMaterials 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 dashboardThey 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 machineE.g., Mixers Group → Mixer #3
3Select the operator (worker)
4Enter the input quantityThe 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 StageThe 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 cycleMaterial 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 automaticallyWhen 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 typePreventive / 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 requiredWithin range = Passed (Green) / Out of range = Failed (Red)
3The system calculates variance automaticallyE.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 itemsThe 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.
1 Introduction: What is the Legal Affairs Module?
The Legal Affairs Module in Hunt ERP is an integrated system for managing all contracts in your company. It helps you create ready-made contract templates, customize them for each client, employee, supplier, or contractor, and approve them with secure electronic signatures.
The Concept Simply
Imagine you want to create a contract for a new client. The cycle goes as follows:
- Create a contract template with standard clauses (one time)
- Create electronic signatures for authorized personnel (one time)
- Select the client and customize the contract, modifying clauses if needed
- Save the contract and start the signature cycle
- Each signer enters their personal signature password
- When all signatures are complete, the contract is approved and the client moves to the next stage
Contract Types in the System
- Primary Client Contract: The first contract made with a new client
- Final Client Contract: The official contract after primary approval
- Estimation Contract: A contract linked to a specific estimation
- Employee Contract: Employment contract with employees
- Supplier Contract: Supply contract with suppliers
- Contractor Contract: Contract with contractors
General Workflow for Any Contract
- Create the contract or select a ready template
- Edit the first party description and clauses
- Save and approve the contract
- Signature cycle (one or more signatures)
- All signatures complete = automatic action is triggered
- Print the contract with signatures
2 Setting Up Contract Groups & Templates
Before creating contracts, you need to prepare the base templates. These templates serve as the foundation for all contracts.
First: Create Contract Groups
A group is a classification for contracts. E.g., Sale contracts, Rental contracts, Employment contracts.
1Go to: Legal Affairs → Contract Templates
2Click Add New Group
3Enter the group name (e.g., Construction Contracts)
4Click Save
📌 You can create multiple groups based on your business nature. Each group contains contract templates.
Second: Create a Contract Template
A template is the base contract with its clauses. You copy and customize it for each client or employee.
1Go to: Legal Affairs → Contract Templates → Create New Template
2Enter the contract title (e.g., Construction Works Contract)
3Select the group (Construction Contracts)
4Add clauses one by one in orderEach clause has a number and text. E.g., Clause 1: The first party commits to delivering the site...
5Click Save
💡 Take your time writing the clauses. A good template saves significant time later as you'll copy it for every contract.
3 Setting Up Electronic Signatures
An electronic signature is what makes a contract official and approved. Each authorized person has their own signature in the system.
1Go to: Legal Affairs → Signatures → Add New Signature
2Enter the signer's name
3Upload the signature imageA PNG or JPG image of the person's actual signature - this will appear on the printed contract
4Select the user linked to this signatureThis user is the one who can use this signature in the system
5Enter the position (e.g., General Manager)
6Enter and confirm the signature passwordA password specific to signing (minimum 8 characters) - different from the login password
7Set signature permissionsChoose which contract types this person can sign: Estimations / Employees / Suppliers / Contractors
8Click Save
📌 Each signature has an independent password. Even if someone accesses the user's account, they cannot sign without the signature password.
⚠️ The signature password is highly confidential. Do not share it with anyone. If lost, it can be changed from signature settings.
💡 The number of signatures required to approve a contract = the number of people who have signing permission for that type. So if 3 people have estimation signing permission, all 3 must sign.
4 Primary Client Contract
The primary contract is the first contract made with a client. It represents the initial agreement before the final contract.
Viewing Client List
1Go to: Legal Affairs → Primary ContractsYou will find clients in the primary and final contract stages
Creating a Primary Contract
1Click on the client from the list
2Click Create Contract or Edit Contract
3Select a template from available contract groupsClauses will load automatically from the template. You can modify them per client
4Enter the first party descriptionCompany information as the first party in the contract
5Modify clauses if needed (add / delete / edit)
6Click Save ClausesContract status changes to (Approved) and ready for signing
Signing the Primary Contract
1From the client view page, click Sign Contract
2Enter your personal signature password
3Click Confirm SignatureThe system verifies: your signing permission + password + that you haven't signed before
After all signatures are complete:
- Client status changes from (Primary Contract) to (Final Contract)
- The client appears in the Final Contracts list
- The contract can be printed with signatures
📌 If 3 people are required to sign, all 3 must sign. Each person signs only once. The system tracks signature order.
5 Final Client Contract
After the primary contract is signed, the client automatically moves to the final contract stage. The final contract is the official approved contract.
1Go to: Legal Affairs → Final ContractsYou will find clients whose primary contracts are complete
Creating the Final Contract
Same steps as the primary contract: select template → edit clauses → save → signatures.
After all signatures are complete:
- Client status changes to (Transferred to Estimations)
- The client is now ready for creating estimations
- The final contract can be printed with signatures
Complete Client Journey
New client → Primary contract → Signatures → Final contract → Signatures → Transfer to estimations
📌 Each stage must be completed before moving to the next. The system prevents skipping.
6 Estimation Contracts
An estimation contract is linked to a specific Estimation in draft status. It includes client data, estimation details, and payment information.
1Go to: Legal Affairs → Estimation ContractsYou will find a list of all estimations in draft status
2Click on the required estimation
3The system displays estimation data: client, currency, items, payments
4Click Create Contract or Edit Contract
5Same cycle: select template → edit clauses → save
6Start the signature cycle
Estimation Contract Statuses
- No contract (no_contract): Contract not yet created
- Draft (draft): Saved as editable draft
- Approved (approved): Clauses saved and ready for signing
7 Employee Contracts
Employment contracts for employees. Shows all active employees with their departments and positions.
1Go to: Legal Affairs → Employee ContractsList of all active employees - with department and position
2Click on the required employee
3Click Create Contract
4Select a template from contract groups
5Edit the first party description and clauses
6Click Save Clauses
7Start the signature cycle (signers with employee permission)
📌 Employee contracts include contract start and end dates in addition to clauses.
8 Supplier Contracts
Supply contracts with active suppliers. Same contract cycle but with supplier signing permission.
1Go to: Legal Affairs → Supplier ContractsList of all active suppliers
2Click on the supplier and follow the same cycleSelect template → edit clauses → save → signatures
📌 Supplier contracts include contract start and end dates.
9 Contractor Contracts
Contracting contracts with active contractors. Signing permission is (contractor).
1Go to: Legal Affairs → Contractor ContractsList of all active contractors
2Click on the contractor and follow the same cycleSelect template → edit clauses → save → signatures
📌 Contractor contracts include contract start and end dates.
10 Multi-Signature System
All contracts share the same signature system. Understanding this system is very important.
How Does the Signature System Work?
- Each contract type has a group of signers (based on signature permission)
- Required signatures = number of people with that permission
- Each signer enters their personal signature password
- The system verifies: permission + password + no duplicate signing
- Each signature is recorded in order (1st, 2nd, 3rd...)
- When all signatures are complete = automatic action executes
Automatic Actions After Signature Completion
- Primary contract: Client moves to final contract stage
- Final contract: Client moves to estimations stage
- Estimation/Employee/Supplier/Contractor contracts: Contract completion confirmed
Security Checks
- Does the person have signing permission for this type?
- Is the signature password correct?
- Haven't they signed this contract before?
- Is the client in the correct stage? (for primary and final contracts)
11 Printing Contracts
After contract approval and signature completion, it can be printed.
1From the contract view page, click the Print button
2The system verifies the contract is approved
3Displays the contract in printable formatIncludes: party details, numbered clauses, signatures in order with signature images and dates
4Click Print or Save as PDF
⚠️ Printing is only available for approved contracts. Draft contracts cannot be printed.
The printed contract includes:
- First party description (company information)
- Second party details (client/employee/supplier/contractor)
- Contract clauses numbered sequentially
- Signatures section: signer name, position, signature image, signing date
12 Permissions & Security
The system has two layers of security: general system permissions + specific signature permissions.
System Permissions
- view: View contracts and lists
- add: Create new signatures
- edit: Edit clauses and contracts
- approve: Approve contracts
- print: Print contracts
- delete: Delete signatures
Signature Permissions
Each signature has specific permissions for contract types:
- estimation: Sign estimation contracts
- employee: Sign employee contracts
- supplier: Sign supplier contracts
- contractor: Sign contractor contracts
💡 One person can be a signer for multiple contract types. E.g., The General Manager can sign all contract types.
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 daysLimited 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 orderYou 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 daysSystem auto-calculates expiry date. Serial number format: QT-2025-0001
4Add products: select product, unit, quantity, and priceFor 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 discountsSystem 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)
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:
1directDirect addition - opening balance or inventory adjustment.
2purchase_orderAuto-created when a purchase order is created.
3invoiceCreated when a purchase invoice is posted.
4import_shipmentCreated when an import shipment is completed.
5sales_returnReturn goods to warehouse from a sales return.
6manufacturingAdd 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)
| Account | Debit | Credit |
| Warehouse Account (1103.x) | XXX | - |
| Purchases Account (80) | - | XXX |
Direct addition / opening balance (ref: 67)
| Account | Debit | Credit |
| Warehouse Account (1103.x) | XXX | - |
| Opening Balance Account (67) | - | XXX |
From import shipment (ref: 158)
| Account | Debit | Credit |
| Warehouse Account (1103.x) | XXX | - |
| Import Shipments Account (158) | - | XXX |
From sales return (ref: 83)
| Account | Debit | Credit |
| Warehouse Account (1103.x) | XXX | - |
| Cost of Goods Sold (COGS) (83) | - | XXX |
From manufacturing (ref: 80)
| Account | Debit | Credit |
| 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
| Account | Debit | Credit |
| Purpose Account (91/92/93/83) | XXX | - |
| Warehouse Account (1103.x) | - | XXX |
Purchase return exit entry
| Account | Debit | Credit |
| Purchases Account (80) | XXX | - |
| Warehouse Account (1103.x) | - | XXX |
4.3 Warehouse Transfer Entry
Inter-warehouse transfer
| Account | Debit | Credit |
| Destination Warehouse Account | XXX | - |
| Source Warehouse Account | - | XXX |
4.4 Opening Stock Entry
Opening stock (is_opening_balance = true) (ref: 67)
| Account | Debit | Credit |
| Warehouse Account (1103.x) | XXX | - |
| Opening Balance Account (67) | - | XXX |
4.5 Material Issue Entry
Raw material issue for production order (ref: 5301)
| Account | Debit | Credit |
| Raw Material Expense (5301) | XXX | - |
| Warehouse Account (1103.x) | - | XXX |
Raw material return (Reverse)
| Account | Debit | Credit |
| Warehouse Account (1103.x) | XXX | - |
| Raw Material Expense (5301) | - | XXX |
4.6 Import Payment Entry
Import invoice payment (ref: 158)
| Account | Debit | Credit |
| 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 |
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
📋 scheduled → in_progress → completed | 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
📋 draft → approved | 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_progress → completed | 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: pending → in_progress → completed
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
📋 pending → approved → completed | 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
📋 pending → approved | 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-####)
| Account | Debit | Credit |
| Treasury / Bank | XXX | - |
| 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-####)
| Account | Debit | Credit |
| Customer Account | XXX | - |
| Sales Account (70) | - | XXX |
7.3 Down Payment Entry
Down Payment Entry (ref: EST-PAY-####)
| Account | Debit | Credit |
| Treasury / Bank | XXX | - |
| 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})
| Account | Debit | Credit |
| Treasury / Bank / Notes Receivable Account (54) | XXX | - |
| Customer Account (with cost center) | - | XXX |
7.5 Manufacturing Service Entry
Manufacturing Service Entry (ref: MFG-SRV-####)
| Account | Debit | Credit |
| Work in Progress (1103.2) | XXX | - |
| Manufacturing Expenses (5202) | - | XXX |
7.6 Raw Material Issue Entry
Raw Material Issue Entry (ref: RMIS-####)
| Account | Debit | Credit |
| Work in Progress (1103.2) - with cost center | XXX | - |
| 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-####)
| Account | Debit | Credit |
| Warehouse Account (1103.x) | XXX | - |
| Work in Progress (1103.2) | - | XXX |
7.8 Customer Delivery Entry
Customer Delivery Entry (ref: DEL-MFG-####)
| Account | Debit | Credit |
| 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.2 | Work in Progress | Accumulates manufacturing costs (raw materials + services) until product completion |
| 1103.3 | Finished Goods Inventory | Finished products ready for delivery |
| 1103.x | Warehouse Account | The specific warehouse account for issuing from or adding to |
| 5102 | Cost of Goods Sold | Records product costs upon delivery to the customer |
| 5202 | Manufacturing Expenses | Records manufacturing service costs |
| 70 | Sales Account | Records revenue from approved estimates |
| 54 | Notes Receivable | Records 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
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_type | Stage: Primary / Preparatory / Secondary |
| name | Grade name (e.g. Grade 1) |
| is_active | Active 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 |
| name | Classroom name (e.g. Class A) |
| grade_id | Parent grade |
| capacity | Total capacity |
| available_capacity | Available 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_price | Base tuition fee |
| final_price | Final price = Base + Additional fees |
| additional_fees | Additional 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 |
| discount | Discount type (name + status) e.g. Siblings, Staff, Honors |
| available_discount | Link 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 |
| name | Installment name (e.g. 1st Installment) |
| percentage | Percentage of total fees (must sum to 100%) |
| due_day / due_month | Due day and month |
| sort_order | Display 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 |
| code | Subject code (unique) |
| name | Subject name |
| type | Type: 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 + term | Link subject to grade for a term (1 or 2) - no duplicates |
| max_score | Maximum score for subject |
| pass_score | Passing 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 |
| Excellent | A | 85% → 100% | success |
| Very Good | B | 75% → 84.99% | primary |
| Good | C | 65% → 74.99% | info |
| Acceptable | D | 50% → 64.99% | warning |
| Fail | F | 0% → 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 |
| name | Teacher name |
| national_id | National ID (14 digits) - birth date auto-extracted |
| subject_id | Primary subject |
| contract_type | Contract type: contract / hourly |
| basic_salary | Basic salary |
| photo | Teacher 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_id | Grade and classroom |
| subject_id | Subject taught |
| term | Term (1 or 2) |
| academic_year | Academic 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 |
| name | Area name (unique) |
| price | Bus 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_number | Bus number (unique) |
| area_id | Linked area |
| total_seats | Total seats |
| available_seats | Available 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_number | Auto number: ENR-YYYY-#### |
| student_name | Full student name |
| national_id | National ID (optional) |
| gender | Gender: male / female |
| birth_date | Birth date - age at October 1st auto-calculated |
| grade_type + grade_id | Stage and requested grade |
| study_type | Study type: Arabic / Languages |
| guardian_id | Link to guardian (must be created first) |
| has_special_needs | Special needs: Yes / No |
| needs_transportation | Needs 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).
pending →
approved
pending →
rejected →
pending (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_number | Auto number: REG-YYYY-#### |
| student_enrollment_id | Approved enrollment (data pulled from it) |
| grade_id + classroom_id | Grade and classroom |
| needs_bus + area_id + bus_id | Transportation: Area → Bus (available only) |
| tuition_fees | Tuition fees |
| administrative_fees | Administrative fees |
| bus_fees | Bus fees (from area price) |
| discount_amount | Total applied discounts (multiple discounts possible) |
| total_fees | Total = Tuition + Admin + Bus - Discounts |
| installments | Installments (from templates): name + due date + amount |
| attachments | Attachments (birth cert, photos, ...) |
| uniform_size | Uniform size |
7.2 Registration Statuses
draft →
approved →
transferred
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_number | Auto number: SRV-YYYY-#### |
| student_registration_id | Student (search by name or reg. number) |
| student_installment_id | Installment to pay (shows remaining only) |
| amount | Amount = installment remaining (automatic) |
| account_id | Student/Client account (credit side) |
| destination_type | Payment destination: bank / treasury / electronic_wallet |
| destination_id | Specific bank, treasury or wallet |
8.2 Voucher Statuses
draft →
posted →
cancelled
✓
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 |
| overdue | Overdue installments (past due date) | danger |
| due_today | Due today | primary |
| upcoming | Upcoming within 7 days | info |
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 |
| present | Present | ✓ |
| absent | Absent | ✗ |
| late | Late | ● |
| excused | Excused 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 |
| name | Exam name |
| type | Type: weekly / monthly / midterm / final / makeup |
| grade_subject_id | Subject + Grade + Term |
| max_score | Maximum score |
| scope | Scope: grade / classroom / students |
| parent_exam_id | Original exam (for makeup only) |
11.2 Exam Statuses
draft →
published →
completed
⚠️ 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_id | Grade |
| term | Term: 1 / 2 / full (full year) |
| scope | Scope: grade / classroom / student |
| subject_ids | Select 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 & Classrooms | View, Add, Edit, Pricing, Discounts, Installments |
| Subjects | View, Add, Edit, Assign to grades, Score divisions |
| Teachers | View, Add, Edit, Assign classes, Print |
| Areas & Buses | View, Add, Edit |
| Guardians | View, Add, Edit, Print |
| Enrollment Requests | View, Add, Edit, Accept, Reject, Resubmit, Print |
| Student Registration | View, Add, Edit, Approve, Transfer, Print |
| Student Records | View, Change class, Export Excel |
| Receipt Vouchers | View, Add, Edit, Post, Cancel, Print (requires accounts-operations permission) |
| Attendance | View, Record, Reports, Export Excel |
| Exams | View, Add, Edit, Enter scores, Change status, Print |
| Certificates | View, Generate, Approve, Bulk approve, Delete, Print |
| Financial Reports | View, Print, Export Excel |
| Installment Reminders | View, Send WhatsApp, Reminder history |
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 NameEnter the store name - required text, max 255 characters. Should be clear and distinctive.
2CapacityTotal store capacity in pallet count - positive integer. Defines the maximum pallets allowed for storage.
3Store ManagerSelect 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 CapacityNumber of confirmed pallets currently in the store = count of confirmed (not dispensed) LPNs.
2Available CapacityAvailable capacity = Total capacity - Used capacity. This is the number of pallets that can be added.
3Usage PercentageUsage 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 AreaFrom 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 CapacityCapacity 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 AreaWhen 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 RackFrom store page > Add Rack. Select area and enter name and capacity. The system verifies rack capacity does not exceed available area capacity.
2Rack CapacitySum 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 AreaMove a pallet from rack to area directly (remove from rack). Available area capacity is verified before the move.
2Move to RackMove a pallet from area to a specific rack. The rack must belong to the same area and have available capacity.
3Rack to RackMove a pallet from one rack to another within the same area. The movement is automatically recorded.
4Remove from RackRemove 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 InformationCustomer (from list), Policy Number (unique), Marine Number, pallet and unit counts, expected delivery date, PO Number and Form 56 (optional).
2Pallet TypeTwo types: "standard" single-item pallet with name, production and expiry dates. "mix" multi-item pallet where each item has its own dates.
3Shipment ItemsPer 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 ItemsSearch by name, SN Code, barcode, policy number, marine number, or customer name.
2Item StatusEach 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 PolicySearch by policy number to auto-fetch shipment data. Shows items and customer info for selection.
2Select Store & AreaSelect receiving store then area. Shows available areas with capacities. Capacity verified before allowing.
3Receiving DataPer LPN: LPN number (unique in store), item name, quantity, pallet count, batch code, production and expiry dates. Multiple LPNs per operation.
4Save ReceivingCreates 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 SummaryVerify each LPN: items, quantities, batch, expiry dates. Individual receivings can be deleted before confirmation.
2Confirm ActionOn 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 LabelsPrint labels with LPN barcode, item data, and shipment details. Individual or batch printing.
2Export PendingExport all pending receivings to Excel for external review before confirmation.
3Receiving StatisticsDashboard: 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 LPNScan or enter LPN. Shows: item name, quantity, shipment, policy, current location, last movement.
2Select DestinationChoose target area or rack. Shows available capacity. Movement blocked if destination is full.
3Execute StorageCreates 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 RackMove pallet from area to rack. Rack must be in same area. Capacity verified.
2Rack to RackMove pallet between racks (same or different area). Target capacity verified.
3Area to AreaMove 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 ConfirmConfirm one operation. Destination capacity verified and LPN location updated.
2Bulk ConfirmSelect and confirm multiple operations. Each validated individually. Failures listed in error report.
3Undo StorageUndo 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 StoreSelect store to dispense from. Only active stores shown.
2Search by Policy or LPNSearch by policy for all pallets, or by LPN for specific pallet. Shows details and location.
3Dispensing DataBooking number, PO number, policy number, batch code, notes. Select pallets to dispense.
4Submit OrderCreates 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 OrderChanges status to confirmed. Each LPN marked "dispensed" and removed from capacity.
2Edit OrderOnly pending orders editable. Add/remove pallets, change basic data.
3Delete OrderOnly 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 SearchFilter by store, date, booking, PO, policy, batch, or free text.
2Export OrdersExport 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 LPNsScan or enter LPN numbers. Each verified: must be confirmed and exist in source store.
2Target StoreSelect destination store (must be different and active). Available capacity verified.
3Execute TransferCreates 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 TransferChanges transfer status to "completed". Confirms pallet arrival at target store.
2Cancel TransferCancel 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.
1FilteringFilter by store, area, rack, customer name, status (stored/preparing_exit). Multiple filters combinable.
2SearchQuick search by SN Code, barcode, item name, or customer name. Shows top 10 results.
3TransferTransfer 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 LPNSearch by LPN shows: pallet data, current location, shipment info, and available areas with capacities.
2Update LocationUpdate 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 PolicySearch by policy to show all related receivings with statuses and locations. Includes confirmed and dispensed.
2Audit by BatchSearch by batch code to show all pallets with same batch across all stores.
3Audit by StoreSelect 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 StatisticsSummary: total pallets, confirmed, pending, dispensed, compared with records.
2Export ExcelExport audit to Excel: LPN, SN Code, item name, quantity, batch, policy, store, area, status.
3Print AuditPrint 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 SNSearch by SN Code for a specific item showing its expiry date, location, and status.
2Filter by StoreSelect 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:
1ExpiredItems past expiry date. Immediate action required (withdraw or dispose).
2Critical - Less than 7 daysItems expiring within a week. Must be dispensed or moved urgently.
3Warning - 7 to 30 daysItems expiring within a month. Plan dispensing before expiry.
4Normal - More than 30 daysItems 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.
1ReceivingRecord incoming shipment unloading: vehicle, driver, load info, worker count, start/end times.
2DispatchRecord 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 DataStore, report date, work type (loading/unloading/sorting/moving/other), worker count.
2Shift DataStart and end times. System auto-calculates work hours. Add cost per worker or total.
3Link to OperationsLink 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 StatusReports can be: draft, submitted, approved. Each status has different edit permissions.
2FilteringFilter by store, date, work type, status. Search by vendor name or shipment number.
3ExportExport 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 ReportReceiving summaries with filters: store, area, date, status, policy, batch. Stats: summaries, LPNs, items, confirmed/pending. Exportable.
2Storage ReportStorage movements: LPN, from/to locations, user. Filter by store, user, date, area, batch, policy. Movement statistics.
3Dispensing ReportDispensing orders with filters: store, status, date, booking, PO, policy, batch. Stats: orders, items, quantities.
4Items ReportDetailed per-item (Receiving) with status, location, expiry. Filter by store, status, expiry. Stats: total, stored, dispensed, expired.
5Warehouses ReportAll stores with stats: LPNs (total/stored/dispensed), areas, racks, last activity. Filter by status.
6Shipments ReportShipments with completion percentage (dispensed/total). Filter by customer, date. Shows first receiving, last dispensing, completion %.
7Tracking ReportTrack specific item by SN or LPN. Shows: receiving data, storage movements, dispensing status, current state with full timeline.
8Expiry ReportItems by expiry level: expired, critical (<7 days), warning (7-30 days), normal. Filter by store and level. Exportable.
9Inventory ReportCurrent 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 ReceiveShortcut for new receiving. Select store and record incoming pallets with policy search.
2Quick StoreShortcut for storage. Scan LPN and select target area/rack directly.
3Quick ExitShortcut 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.
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 StructureAccounts are displayed as a multi-level tree. You can expand and collapse branches to navigate between main and sub-accounts.
2Account TypesAccount types include: Assets, Liabilities, Equity, Revenue, and Expenses.
3Account LevelsThe 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 NameEnter the account name. It should be clear and descriptive of the account's nature.
2Account NumberThe account number is auto-generated based on the parent account. You can modify it if needed, ensuring no duplicates.
3Parent AccountSelect the parent account under which this new account will be listed. The parent determines the level and classification.
4Account TypeThe 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.
1DraftA draft journal entry does not affect account balances. It can be edited or deleted freely.
2PostedOnce posted, the journal entry affects the actual balances of the related accounts. It cannot be edited after posting.
3CancelledA 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 DateSelect the journal date. It must fall within an open (unlocked) fiscal period.
2Journal LinesAdd journal lines specifying the account and the debit or credit amount for each line. Multiple lines can be added.
3Balance CheckTotal debit amounts must equal total credit amounts. The entry cannot be saved without balance.
4Post the EntryAfter 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 YearSet the start and end dates of the fiscal year. The system automatically creates 12 monthly periods.
2Fiscal PeriodsEach monthly period has a status: Open (transactions can be posted) or Closed (no journal entries allowed).
3Close the Fiscal YearWhen 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 PeriodSelect the period and click "Close". All account balances for that period will be calculated and saved.
2Reopen a PeriodIf 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 CurrencySet the main local currency. All consolidated reports are displayed in this currency.
2Add a CurrencyEnter the currency name, symbol (e.g., EGP, $, €), and international code (e.g., EGP, USD).
3Exchange RateSet 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 ExchangeSelect the source, destination, and amounts in both currencies. The difference is automatically calculated based on the exchange rate.
2Execute the ExchangeUpon 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 NameEnter a distinctive name (e.g., Main Treasury, Branch Treasury). An account "Treasury - [Name]" is created automatically.
2CurrencySelect the treasury currency. It cannot be changed after creation. The account is auto-numbered (110101xx).
3Opening BalanceEnter 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 TransactionsDisplays all financial transactions on the treasury with the running balance. Balance is calculated from posted entries only.
2Activate / DeactivateA 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 NameEnter the bank name (e.g., National Bank - Current Account). An account "Bank - [Name]" is created automatically.
2Bank Account NumberEnter the account number as it appears in the bank. Used for reconciliation and documentation.
3IBAN NumberEnter the international IBAN number (optional). Used for international transfers.
4Opening BalanceEnter 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 TransactionsDisplays all posted journal entries for the bank account with running balance and details.
2Filter by CurrencyYou 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 NameEnter a distinctive name (e.g., Cashier POS 1). An account "Card Machine - [Name]" is created automatically.
2Commission RateSet the bank commission percentage on transactions (e.g., 2.5%). It is automatically deducted during settlement.
3Terminal IDEnter 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 AmountEnter the amount to settle. It must not exceed the current machine balance.
2Receiving BankSelect the bank to transfer funds to. It must be in the same currency as the machine.
3Automatic Journal EntryAn 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 NameEnter the wallet name (e.g., Vodafone Cash - Main). An account "Electronic Wallet - [Name]" is created automatically.
2Wallet NumberEnter the wallet number (phone number or identifier). Must be unique for each wallet.
3Opening BalanceEnter 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 TransactionsDisplays all posted entries with running balance. Balance is calculated from posted entries only.
2Change StatusThe 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 AccountSelect the credit account (e.g., customer account, other revenue). Multiple accounts can be selected.
3AmountEnter the received amount. It can be split across multiple credit accounts.
4Post the VoucherAfter 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.
3AmountEnter 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 NameEnter a clear name for the cost center (e.g., New Building Construction Project, Marketing Department).
2Allocated BudgetSet the allocated amount for this center. Used to track spending percentage against the budget.
3Allowed Close PercentageSet 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 ConditionThe center is automatically closed when: Total Debit ≥ (Total Credit × Allowed Percentage / 100).
2ReopenAn 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.
1EmployeeSelect the employee responsible for the custody. A dedicated custody account is created automatically (1107.xxx).
2Custody AmountSet the requested amount. It should comply with company policies.
3PurposeWrite 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.
1ApprovalThe custody request is reviewed and approved by the authorized person.
2DisbursementAfter approval, the amount is disbursed from a Treasury or Bank. Journal entry: Debit Custody / Credit Source.
3Record ExpensesThe employee records actual expenses with supporting documents.
4SettlementCustody 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 ChequeA cheque received from a customer or external party. Recorded as an asset until collected.
2Outgoing ChequeA cheque issued by the company to pay obligations. Recorded as a liability until cashed.
3Payment OrderA 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.
1PendingThe cheque is registered in the system and its due date has not arrived yet.
2AvailableThe cheque's due date has arrived and it can be presented for collection or allocated.
3CollectedThe cheque has been successfully collected and the amount added to the bank. An automatic journal entry is created.
4ReturnedThe 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 InformationEnter the asset name, category, purchase date, and annual depreciation rate.
2BranchSelect the branch the asset belongs to. Account numbering is automatic (1200xx for branch account, branch.xxx for asset).
3ValueEnter 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 DepreciationClick "Depreciate" from the asset page to execute one month's depreciation. Journal entry: Debit Depreciation Expense / Credit Accumulated Depreciation.
2Bulk DepreciationYou 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.
1ActiveThe asset is operating normally and is depreciated monthly.
2Under MaintenanceThe asset is under maintenance. Depreciation continues but it is flagged in reports.
3SoldThe 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 InformationEnter the product name, code, description, and category. A product image can be added.
2Units of MeasurementSet 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.
3BarcodeEnter the product barcode or let the system generate it automatically. Multiple barcodes can be added for the same product.
4TaxSpecify 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 PriceThe default selling price for the product on sales invoices.
2Commercial PriceA special price for commercial clients and wholesale quantities.
3Offer PriceA discounted price applied during promotion and discount periods.
4Wholesale PriceA 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 TemplateDownload the ready-made Excel template containing the required columns (product code, price, list type).
2Upload FileUpload the Excel file after filling in the data. The system supports xlsx and csv formats.
3Preview and ApplyThe 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.
1StatisticsDisplays total balances for Treasuries, Banks, Machines, and Wallets with comparison to the previous period.
2Recent VouchersShows the latest Receipt, Payment, and Transfer vouchers with the status of each.
3Quick SearchYou 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 ReportDisplays all treasury balances grouped by currency with transaction statistics.
2Bank ReportDisplays bank account balances with transaction details and totals by currency.
3Card Machine ReportDisplays machine balances, total commissions, and settlements per machine.
4Cost Center ReportDisplays expenses and revenues for each cost center with budget consumption percentage.
5Custody ReportDisplays employee custody status: amounts spent, remaining, and pending custodies.
6Cheque ReportDisplays cheque status: pending, available, collected, returned, with due dates.
7Fixed Assets ReportDisplays asset list with book values, accumulated depreciation, and status for each asset.
8Journal Entry ReportDisplays all journal entries with filtering by date, status, and account.
16.2 Report Tools
All reports feature common tools for ease of use.
1Advanced FilteringYou can filter results by date, currency, branch, status, and more.
2ExportExport the report to Excel or PDF for sharing or archiving.
3PrintPrint 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.