Material Issue Module Manual
Comprehensive Documentation for Material Consumption & Inventory Distribution.
Module Overview
The Material Issue Module manages the reduction of products from inventory for various purposes, such as internal usage, samples, or gifts. It ensures that stock levels are correctly decremented and the corresponding financial ledgers are updated for accountability.
Step-by-Step Workflow
Access Material Issue List
Go to the 'Material Issued' menu. You will see a list of all historical records. Use filters to find specific records by date range, branch, or customer/ledger.
Create New Entry
Click the 'Add New' button. Fill in the Header details: select the Date, Branch, Cost Center, and the Ledger/Account receiving the materials.
Add Material Details
In the item section, use the search or barcode feature to select items. Specify the quantity, select the store (warehouse), and confirm the rate. The system automatically fetches cost prices from the price list.
Verify & Save
Review the sub-total and total discounts/VAT if applicable. Click 'Save'.
This triggers a transaction to update stock in item_inventories and generates
journal entries in accounts.
Print Document
After saving, you can generate a master print or a detailed print. Several templates (standard, POS, challan) are available depending on your configuration.
Configuration Settings
Customize the entry form through the 'Form Settings' modal accessible via the gear icon or settings menu.
| Setting | Description |
|---|---|
Default Inventory |
Links to the asset ledger where stock values are held. |
Material Issue Account |
The expense or consumption account used for the credit entry. |
Display VAT/Discount |
Toggles visibility of tax and discount fields in the grid. |
Barcode Integration |
Enables rapid item entry using scanning hardware. |
Show Store/Shelf |
Toggles whether the warehouse location and shelf information are displayed. |
Database Schema
The module relies on these core tables to maintain data integrity:
| Table Name | Primary Columns | Purpose |
|---|---|---|
material_issues |
_date, _order_number, _ledger_id,
_total |
Main header table for the issue document. |
material_issue_details |
_no, _item_id, _qty, _rate |
Line items for each issuance, linked to the header via _no. |
material_issue_settings |
_default_inventory, _default_sales |
Persists module-wide UI and behavioral configurations. |
material_issue_barcodes |
_no_id, _barcode, _item_id |
Tracks specific serial numbers or barcodes issued. |
item_inventories |
_transection_ref, _qty, _transection |
Records stock changes (negative qty for issues). |
accounts |
_ref_master_id, _dr_amount, _cr_amount |
Financial vouchers generated from the transaction. |
Model Relationships
Eloquent models defined in app/Models/:
- MaterialIssue:
_master_details(): 1:N relationship withMaterialIssueDetail._ledger(): BelongsToAccountLedger._master_branch(): BelongsToBranch.
- MaterialIssueDetail:
_items(): Fetches item details fromProductPriceList._units(): Fetches measurement unit fromUnits._store(): Links toStoreHouse.
View File Mapping
Located in resources/views/backend/material-issue/:
| Blade View | Action / Target |
|---|---|
index.blade.php |
The main searchable list view. |
create.blade.php |
Entry form for new material issues. |
edit.blade.php |
Modification view for existing records. |
form_setting_modal.blade.php |
Settings UI for form customization. |
print.blade.php |
Standard invoice/issue note print template. |
challan.blade.php |
Specific template for delivery challans. |
Controller Function Details
MaterialIssueController.php logic breakdown:
| Method | Route Action | Logic Breakdown |
|---|---|---|
| index | View List | Retrieves records with eager loading of relations (branch, ledger, details). |
| store | Save Data | Wraps execution in a DB Transaction. It saves the master record, iterates through items to deduct stock from price lists, logs inventory changes, and calculates ledger balances. |
| update | Modify Data | First "reverses" the previous impact (restores stock, voids old accounts) then reapplies the new details as a fresh state. |
| Settings | Update Config | Saves persistent form display and default account preferences. |