azaharizaman / nexus-manufacturing-operations
Production-ready orchestrator for manufacturing operations - coordinates production lifecycles, BOM reconciliation, costing, quality control, and work center management across multiple user groups
Package info
github.com/azaharizaman/nexus-manufacturing-operations
pkg:composer/azaharizaman/nexus-manufacturing-operations
Requires
- php: ^8.3
- ext-bcmath: *
- azaharizaman/nexus-common: dev-main
- psr/event-dispatcher: ^1.0
- psr/log: ^3.0
Requires (Dev)
- phpunit/phpunit: ^10.5
This package is auto-updated.
Last update: 2026-05-05 03:33:01 UTC
README
Production-ready orchestrator for manufacturing operations. Coordinates production lifecycles, BOM reconciliation, costing, quality control, and work center management.
Features
- Production Planning: Create planned orders with BOM validation and cost estimation.
- Order Release: Automatic stock availability checks and reservation.
- Production Execution: Track progress and consume materials.
- Quality Integration: Enforce quality inspections before completion.
- Completion & Costing: Receive finished goods and record actual costs.
Architecture
This package follows the Nexus Architecture Layer 2 (Orchestrator) pattern.
It defines its own required interfaces (Providers) in src/Contracts/Providers/.
Interfaces
ManufacturingProviderInterface: Work Order and Operation management.BomProviderInterface: BOM explosion and validation.InventoryProviderInterface: Stock checks, reservations, issues, and receipts.QualityProviderInterface: Inspection management and compliance.CostingProviderInterface: Cost estimation and recording (material, labor, overhead).
Usage
use Nexus\ManufacturingOperations\Services\ManufacturingOrchestrator; use Nexus\ManufacturingOperations\DTOs\ProductionOrderRequest; // 1. Plan Production $request = new ProductionOrderRequest( productId: 'P-100', quantity: 50.0, dueDate: new \DateTimeImmutable('+2 weeks') ); $order = $orchestrator->planProduction($tenantId, $request); // 2. Release Order (Reserves Stock) $releasedOrder = $orchestrator->releaseOrder($tenantId, $order->id); // 3. Complete Order (Check Quality, Issue Stock, Receive Goods) $completedOrder = $orchestrator->completeOrder($tenantId, $releasedOrder->id);
Testing
Run tests from the project root:
vendor/bin/phpunit orchestrators/ManufacturingOperations/tests