Outlets can now send stock back to the factory and have the credit applied to their invoice automatically. Releases moved from hand-run steps to an automated pipeline, and the last of the differences between the local and production PHP versions were ironed out.
A complete return flow for stock going back from an outlet to the factory. Raise a return against a delivered invoice, pick the items and quantities, send it in transit, and receive it at the factory. Returns are listed, searchable, and printable from their own screen.
When a return is received, the credit is posted against the original invoice and the outlet balance is reduced by the returned value — no separate adjustment entry to remember.
The outlet store home now shows returns raised for that store, so outlet staff can follow a return without needing factory access.
The invoice screen lists any returns raised against it along with the credited amount, and the invoice list flags invoices that carry a return.
Returned quantities are written back through the same stock movement trail as every other transfer, so the stock ledger stays the single place to trace where goods went.
Several screens compared record identifiers in a way that behaved differently on the production PHP version than in development. GRN entry, manufacturing orders, POS, demand calculation, and the store statement all compare identifiers strictly now.
Merging to the main branch now builds and deploys automatically instead of relying on someone running the steps by hand.
Dependency installation, migrations, and cache rebuilds run on the server as part of the release rather than being applied manually after the fact.
The application version is defined once in configuration and read by every footer and by this page, so a release only has to be bumped in one place.
The system stopped being a single admin panel. Factory and outlet staff now sign in to their own workspace, see only the stores they have been granted, and work from screens scoped to that store.
Two new portals, each with its own shell, navigation, and dashboard. Users are routed to the portal that matches their role at sign-in and are kept out of the others.
Grant a user access to specific stores from the store list. Access is enforced on every scoped screen, not just hidden from the menu.
A running ledger per store covering shipments out, payments in, and the resulting balance, with the supporting documents linked from each line.
Employee master data with designations, and the ability to issue a portal login to an employee directly from their record.
The point-of-sale entry and receipt screens were redesigned for faster item lookup, clearer totals, and a cleaner printed receipt.
Demands, challans, invoices, shipments, stock, and statements reuse the same screens across portals, filtered to the store the user is working in.
Demand creation and review were trimmed down for outlet users, and the outlet navigation reduced to the screens that portal actually uses.
Goods leaving the factory gained a documented lifecycle — priced shipment, challan, invoice, acknowledgement, settlement — and demand moved from one-off entries to a consolidated plan that feeds purchase and manufacturing orders.
Transfers to an outlet now move through dispatch, in transit, acknowledgement, and settlement, with stock recognised at the right point in the journey rather than on creation.
Shipments are priced and billed. Invoices and challans are generated from the shipment, and outlet payments are recorded against the balance.
Demands across outlets are combined into a single requirement view that nets off available stock and proposes what to buy and what to manufacture.
Configurable cost types can be added to a manufacturing order so labour and overhead land in the order cost instead of being tracked outside the system.
Both forms were rebuilt around faster line entry, live totals, and fewer round trips, with purchase orders prefilled from the demand that triggered them.
A demand now records whether a purchase order or manufacturing order has been raised from it, and the demand list can be filtered on that status.
Freight and other costs can be added to a shipment and carried into the outlet statement.
Fonts, icons, and scripts are served from the application, so the interface loads fully on a restricted or offline network.
Three early production-tracking modules were removed. They were not in use, and their screens overlapped with the manufacturing order flow that replaced them.
The initial release, covering the core factory operation from raw material purchase through production to sale, on a single admin panel.
Products, brands, categories and category types, units of measure, suppliers, drivers, banks, locations, infrastructure, stores, and work centres.
Purchase orders with supplier and store linkage, and goods receipt notes that bring received quantities into stock.
Bills of material, manufacturing orders, material issue against an order, and production receipt of the finished output.
Store-wise stock, a stock ledger tracing every movement to its source document, stock transfers between stores, and stock adjustments.
Point of sale with receipt printing and sales history.
Demand entry with a source-aware flow that distinguishes what is bought from what is made.
Application settings and maintenance tools for administrators.