new procinf module

This commit is contained in:
Mark Gregory
2026-06-11 10:16:03 +01:00
parent 7ef94859fa
commit 0445b71f33
55 changed files with 2553 additions and 7 deletions
View File
+8
View File
@@ -0,0 +1,8 @@
<?php
return [
'name' => 'Pricing',
'features' =>
[
],
];
View File
@@ -0,0 +1,21 @@
<?php
namespace Modules\Pricing\Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class PricingDatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Model::unguard();
// $this->call("OthersTableSeeder");
}
}
View File
+12
View File
@@ -0,0 +1,12 @@
<?php
use Modules\Pricing\Support\ModuleInfo;
if (! function_exists('pricing_feature_enabled')) {
/**
* Check if a feature is enabled in the config.
*/
function pricing_feature_enabled(string $key): bool
{
return (bool) config(ModuleInfo::nameLower().".features.{$key}", false);
}
}
@@ -0,0 +1,79 @@
<?php
namespace Modules\Pricing\Http\Controllers;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
class PricingController extends Controller
{
/**
* Display a listing of the resource.
* @return Renderable
*/
public function index()
{
return view('pricing::index');
}
/**
* Show the form for creating a new resource.
* @return Renderable
*/
public function create()
{
return view('pricing::create');
}
/**
* Store a newly created resource in storage.
* @param Request $request
* @return Renderable
*/
public function store(Request $request)
{
//
}
/**
* Show the specified resource.
* @param int $id
* @return Renderable
*/
public function show($id)
{
return view('pricing::show');
}
/**
* Show the form for editing the specified resource.
* @param int $id
* @return Renderable
*/
public function edit($id)
{
return view('pricing::edit');
}
/**
* Update the specified resource in storage.
* @param Request $request
* @param int $id
* @return Renderable
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
* @param int $id
* @return Renderable
*/
public function destroy($id)
{
//
}
}
View File
View File
@@ -0,0 +1,155 @@
<?php
namespace Modules\Pricing\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Database\Eloquent\Factory;
use Illuminate\Support\Facades\File;
use Modules\Pricing\Support\ModuleInfo;
use Config;
class PricingServiceProvider extends ServiceProvider
{
/**
* @var string $moduleName
*/
protected string $moduleName = 'Pricing';
/**
* @var string $moduleNameLower
*/
protected string $moduleNameLower = 'pricing';
/**
* Get the services provided by the provider.
*
* @return array
*/
public function provides():array
{
return [];
}
/**
* Boot the application events.
*
* @return void
*/
public function boot() : void
{
$this->registerTranslations();
$this->registerConfig();
$this->registerViews();
$this->registerHelpers();
$this->registerCommands();
$this->loadMigrationsFrom(module_path(ModuleInfo::name(), 'Database/Migrations'));
}
/**
* Register the service provider.
*
* @return void
*/
public function register(): void
{
$this->app->register(RouteServiceProvider::class);
}
/**
* Register the helpers.
*
* @return void
*/
protected function registerHelpers(): void
{
foreach (glob(__DIR__.'/../Helpers/*.php') as $filename) {
require_once $filename;
}
}
/**
* Dynamically Register Commands.
*
* @return void
*/
public function registerCommands(): void
{
if (!$this->app->runningInConsole()) {
return;
}
$commandPath = __DIR__ . '/../Console';
$commands = collect(File::allFiles($commandPath))
->map(function ($file) {
$class = 'Modules\\' . $this->moduleName . '\\Console\\' . $file->getFilenameWithoutExtension();
return $class;
})
->filter(function ($class) {
return class_exists($class);
})
->values()
->all();
$this->commands($commands);
}
/**
* Register config.
*
* @return void
*/
protected function registerConfig(): void
{
$this->publishes([
module_path(ModuleInfo::name(), 'Config/config.php') => config_path( ModuleInfo::nameLower(). '.php'),
], 'config');
$this->mergeConfigFrom(
module_path(ModuleInfo::name(), 'Config/config.php'), ModuleInfo::nameLower()
);
}
/**
* Register views.
*
* @return void
*/
public function registerViews(): void
{
$viewPath = resource_path('views/modules/' . ModuleInfo::nameLower());
$sourcePath = module_path(ModuleInfo::name(), 'Resources/views');
$this->publishes([
$sourcePath => $viewPath
], ['views', ModuleInfo::nameLower() . '-module-views']);
$this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), ModuleInfo::nameLower());
}
/**
* Register translations.
*
* @return void
*/
public function registerTranslations(): void
{
$langPath = resource_path('lang/modules/' . ModuleInfo::nameLower());
if (is_dir($langPath)) {
$this->loadTranslationsFrom($langPath, ModuleInfo::nameLower());
} else {
$this->loadTranslationsFrom(module_path(ModuleInfo::name(), 'Resources/lang'), ModuleInfo::nameLower());
}
}
/**
* Regsiter View Paths
* @return array
*/
private function getPublishableViewPaths(): array
{
$paths = [];
foreach (Config::get('view.paths') as $path) {
if (is_dir($path . '/modules/' . ModuleInfo::nameLower())) {
$paths[] = $path . '/modules/' . ModuleInfo::nameLower();
}
}
return $paths;
}
}
@@ -0,0 +1,69 @@
<?php
namespace Modules\Pricing\Providers;
use Illuminate\Support\Facades\Route;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
class RouteServiceProvider extends ServiceProvider
{
/**
* The module namespace to assume when generating URLs to actions.
*
* @var string
*/
protected $moduleNamespace = 'Modules\Pricing\Http\Controllers';
/**
* Called before routes are registered.
*
* Register any model bindings or pattern based filters.
*
* @return void
*/
public function boot()
{
parent::boot();
}
/**
* Define the routes for the application.
*
* @return void
*/
public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
}
/**
* Define the "web" routes for the application.
*
* These routes all receive session state, CSRF protection, etc.
*
* @return void
*/
protected function mapWebRoutes()
{
Route::middleware('web')
->namespace($this->moduleNamespace)
->group(module_path('Pricing', '/Routes/web.php'));
}
/**
* Define the "api" routes for the application.
*
* These routes are typically stateless.
*
* @return void
*/
protected function mapApiRoutes()
{
Route::prefix('api')
->middleware('api')
->namespace($this->moduleNamespace)
->group(module_path('Pricing', '/Routes/api.php'));
}
}
@@ -0,0 +1,9 @@
@extends('pricing::layouts.master')
@section('content')
<h1>Hello World</h1>
<p>
This view is loaded from module: {!! config('pricing.name') !!}
</p>
@endsection
@@ -0,0 +1,19 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Module Pricing</title>
{{-- Laravel Mix - CSS File --}}
{{-- <link rel="stylesheet" href="{{ mix('css/pricing.css') }}"> --}}
</head>
<body>
@yield('content')
{{-- Laravel Mix - JS File --}}
{{-- <script src="{{ mix('js/pricing.js') }}"></script> --}}
</body>
</html>
View File
+18
View File
@@ -0,0 +1,18 @@
<?php
use Illuminate\Http\Request;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::middleware('auth:api')->get('/pricing', function (Request $request) {
return $request->user();
});
+16
View File
@@ -0,0 +1,16 @@
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::prefix('pricing')->group(function() {
Route::get('/', 'PricingController@index');
});
View File
+26
View File
@@ -0,0 +1,26 @@
<?php
namespace Modules\Pricing\Support;
class ModuleInfo
{
protected static string $moduleName = 'Pricing';
/**
* defines the Module Name
* @return string
*/
public static function name(): string
{
return static::$moduleName;
}
/**
* define the lowercase version
* @return string
*/
public static function nameLower(): string
{
return strtolower(static::$moduleName);
}
}
View File
View File
View File
+29
View File
@@ -0,0 +1,29 @@
{
"name": "mpba/pricing",
"description": "",
"authors": [
{
"name": "Mark Gregory",
"email": "mark.gregory@mpba.co.uk"
}
],
"extra": {
"laravel": {
"providers": [],
"aliases": {
}
}
},
"autoload": {
"psr-4": {
"Modules\\Pricing\\": ""
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/",
"Modules\\Pricing\\Tests\\": "modules/Pricing/Tests/"
}
}
}
}
+14
View File
@@ -0,0 +1,14 @@
{
"name": "Pricing",
"alias": "pricing",
"version": "1.0.0",
"description": "",
"keywords": [],
"priority": 0,
"providers": [
"Modules\\Pricing\\Providers\\PricingServiceProvider"
],
"aliases": {},
"files": [],
"requires": []
}
+17
View File
@@ -0,0 +1,17 @@
{
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"cross-env": "^7.0",
"laravel-mix": "^5.0.1",
"laravel-mix-merge-manifest": "^0.1.2"
}
}
+11
View File
@@ -0,0 +1,11 @@
const dotenvExpand = require('dotenv-expand');
dotenvExpand(require('dotenv').config({ path: '../../.env'/*, debug: true*/}));
const mix = require('laravel-mix');
mix.js(__dirname + '/Resources/assets/js/app.js', 'js/pricing.js')
.sass( __dirname + '/Resources/assets/sass/app.scss', 'css/pricing.css');
if (mix.inProduction()) {
mix.version();
}
+210 -5
View File
@@ -1,18 +1,223 @@
<?php
use mpba\Modules\Activators\DatabaseActivator;
use mpba\Modules\Activators\FileActivator;
return [
/*
|--------------------------------------------------------------------------
| Module Namespace
|--------------------------------------------------------------------------
|
| Default module namespace.
|
*/
'namespace' => 'Modules',
/*
|--------------------------------------------------------------------------
| Module Stubs
|--------------------------------------------------------------------------
|
| Default module stubs.
|
*/
'stubs' => [
'enabled' => false,
'path' => base_path() . '/Vendors/mpba/laravel-modules/src/Commands/stubs',
'files' => [
'routes/web' => 'Routes/web.php',
'routes/api' => 'Routes/api.php',
'views/index' => 'Resources/views/index.blade.php',
'views/master' => 'Resources/views/layouts/master.blade.php',
'scaffold/config' => 'Config/config.php',
'composer' => 'composer.json',
'assets/js/app' => 'Resources/assets/js/app.js',
'assets/sass/app' => 'Resources/assets/sass/app.scss',
'webpack' => 'webpack.mix.js',
'package' => 'package.json',
],
'replacements' => [
'routes/web' => ['LOWER_NAME', 'STUDLY_NAME'],
'routes/api' => ['LOWER_NAME'],
'webpack' => ['LOWER_NAME'],
'json' => ['LOWER_NAME', 'STUDLY_NAME', 'MODULE_NAMESPACE', 'PROVIDER_NAMESPACE'],
'views/index' => ['LOWER_NAME'],
'views/master' => ['LOWER_NAME', 'STUDLY_NAME'],
'scaffold/config' => ['STUDLY_NAME'],
'composer' => [
'LOWER_NAME',
'STUDLY_NAME',
'VENDOR',
'AUTHOR_NAME',
'AUTHOR_EMAIL',
'MODULE_NAMESPACE',
'PROVIDER_NAMESPACE',
],
],
'gitkeep' => true,
],
'paths' => [
'modules' => base_path('Modules'),
/*
|--------------------------------------------------------------------------
| Modules path
|--------------------------------------------------------------------------
|
| This path used for save the generated module. This path also will be added
| automatically to list of scanned folders.
|
*/
'modules' => base_path('modules'),
/*
|--------------------------------------------------------------------------
| Modules assets path
|--------------------------------------------------------------------------
|
| Here you may update the modules assets path.
|
*/
'assets' => public_path('modules'),
/*
|--------------------------------------------------------------------------
| The migrations path
|--------------------------------------------------------------------------
|
| Where you run 'module:publish-migration' command, where do you publish the
| the migration files?
|
*/
'migration' => base_path('database/migrations'),
/*
|--------------------------------------------------------------------------
| Generator path
|--------------------------------------------------------------------------
| Customise the paths where the folders will be generated.
| Set the generate key to false to not generate that folder
*/
'generator' => [
'config' => ['path' => 'Config', 'generate' => true],
'trait' => ['path' => 'Traits', 'generate' => true],
'helper' => ['path' => 'Helpers', 'generate' => true],
'command' => ['path' => 'Console', 'generate' => true],
'support' => ['path' => 'Support', 'generate' => true],
'migration' => ['path' => 'Database/Migrations', 'generate' => true],
'seeder' => ['path' => 'Database/Seeders', 'generate' => true],
'factory' => ['path' => 'Database/factories', 'generate' => true],
'model' => ['path' => 'Models', 'generate' => true],
'routes' => ['path' => 'Routes', 'generate' => true],
'controller' => ['path' => 'Http/Controllers', 'generate' => true],
'filter' => ['path' => 'Http/Middleware', 'generate' => true],
'request' => ['path' => 'Http/Requests', 'generate' => true],
'provider' => ['path' => 'Providers', 'generate' => true],
'assets' => ['path' => 'Resources/assets', 'generate' => true],
'lang' => ['path' => 'Resources/lang', 'generate' => true],
'views' => ['path' => 'Resources/views', 'generate' => true],
'test' => ['path' => 'Tests/Unit', 'generate' => true],
'test-feature' => ['path' => 'Tests/Feature', 'generate' => true],
'test-browser' => ['path' => 'Tests/Browser', 'generate' => true,],
'repository' => ['path' => 'Repositories', 'generate' => false],
'event' => ['path' => 'Events', 'generate' => false],
'listener' => ['path' => 'Listeners', 'generate' => false],
'policies' => ['path' => 'Policies', 'generate' => false],
'rules' => ['path' => 'Rules', 'generate' => false],
'jobs' => ['path' => 'Jobs', 'generate' => false],
'emails' => ['path' => 'Emails', 'generate' => false],
'notifications' => ['path' => 'Notifications', 'generate' => false],
'resource' => ['path' => 'Transformers', 'generate' => false],
'component' => ['path' => 'View', 'generate' => true],
],
],
/*
|--------------------------------------------------------------------------
| Scan Path
|--------------------------------------------------------------------------
|
| Here you define which folder will be scanned. By default will scan Vendors
| directory. This is useful if you host the package in packagist website.
|
*/
'scan' => [
'enabled' => true,
'paths' => [base_path('Modules')],
'enabled' => false,
'paths' => [
base_path('Vendors/*/*'),
],
],
/*
|--------------------------------------------------------------------------
| Composer File Template
|--------------------------------------------------------------------------
|
| Here is the config for composer.json file, generated by this package
|
*/
'composer' => [
'vendor' => 'mpba',
'author' => ['name' => 'MPBA Limited', 'email' => 'mark.gregory@mpba.co.uk'],
'Vendors' => 'mpba',
'author' => [
'name' => 'Mark Gregory',
'email' => 'mark.gregory@mpba.co.uk',
],
],
/*
|--------------------------------------------------------------------------
| Caching
|--------------------------------------------------------------------------
|
| Here is the config for setting up caching feature.
|
*/
'cache' => [
'enabled' => false,
'key' => 'laravel-modules',
'lifetime' => 60,
],
/*
|--------------------------------------------------------------------------
| Choose what laravel-modules will register as custom namespaces.
| Setting one to false will require you to register that part
| in your own Service Provider class.
|--------------------------------------------------------------------------
*/
'register' => [
'translations' => true,
/**
* load files on boot or register method
*
* @example boot|register
*/
'files' => 'register',
],
/*
|--------------------------------------------------------------------------
| Activators
|--------------------------------------------------------------------------
|
| You can define new types of activators here, file, database etc. The only
| required parameter is 'class'.
| The file activator will store the activation status in storage/installed_modules
*/
'activators' => [
'file' => [
'class' => FileActivator::class,
'statuses-file' => base_path('modules_statuses.json'),
'cache-key' => 'activator.installed',
'cache-lifetime' => 604800,
],
'database' => [
'class' => DatabaseActivator::class,
'cache-key' => 'activator.installed',
'cache-lifetime' => 604800,
],
],
'activator' => 'file',
];
+3 -2
View File
@@ -14,5 +14,6 @@
"SentinelIntegration": true,
"Shipping": true,
"Transportation": true,
"Warehouse": true
}
"Warehouse": true,
"Pricing": true
}
@@ -0,0 +1,140 @@
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Security')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
<?php $component->withName('layouts::app'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
<?php endif; ?>
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Security'))]); ?>
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
<div class="container-fluid py-4 module-page module-security">
<div class="row g-4">
<div class="col-12">
<section class="card border-0 shadow-sm overflow-hidden">
<div class="card-header border-0 text-white module-hero">
<div class="d-flex flex-column flex-lg-row align-items-lg-center justify-content-between gap-3">
<div>
<div class="small text-uppercase opacity-75 fw-semibold mb-2">Replacement module</div>
<h1 class="h2 fw-bold mb-2">Security</h1>
<p class="mb-0 opacity-75">Control roles, permissions, audit visibility, and protected administration actions.</p>
</div>
<div class="module-hero-icon" aria-hidden="true">
<i class="bi bi-shield-check"></i>
</div>
</div>
</div>
</section>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">01</div>
<h3 class="h6 mb-2">Roles</h3>
<p class="small text-muted mb-0">Placeholder area for roles.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">02</div>
<h3 class="h6 mb-2">Permissions</h3>
<p class="small text-muted mb-0">Placeholder area for permissions.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">03</div>
<h3 class="h6 mb-2">Admin Access</h3>
<p class="small text-muted mb-0">Placeholder area for admin access.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">04</div>
<h3 class="h6 mb-2">Security Audit</h3>
<p class="small text-muted mb-0">Placeholder area for security audit.</p>
</div>
</div>
</div>
<div class="col-12">
<section class="card border-0 shadow-sm">
<div class="card-header bg-white border-bottom">
<div class="d-flex flex-column flex-md-row justify-content-between gap-2">
<div>
<h2 class="h5 mb-1">Security workbench</h2>
<p class="small text-muted mb-0">Sample table layout ready to wire into controllers, queries, DataTables, or Livewire.</p>
</div>
<div class="d-flex gap-2">
<button type="button" class="btn btn-outline-secondary btn-sm">Export</button>
<button type="button" class="btn btn-primary btn-sm">Create</button>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>Area</th>
<th>Permission</th>
<th>Role</th>
<th class="text-end">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>Roles</td>
<td>Sample 1</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Permissions</td>
<td>Sample 2</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Admin Access</td>
<td>Sample 3</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Security Audit</td>
<td>Sample 4</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</div>
</div>
</div>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php /**PATH /Users/mag/Sites/WMS/Core/Modules/Security/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
@@ -0,0 +1,140 @@
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Shipping')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
<?php $component->withName('layouts::app'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
<?php endif; ?>
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Shipping'))]); ?>
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
<div class="container-fluid py-4 module-page module-shipping">
<div class="row g-4">
<div class="col-12">
<section class="card border-0 shadow-sm overflow-hidden">
<div class="card-header border-0 text-white module-hero">
<div class="d-flex flex-column flex-lg-row align-items-lg-center justify-content-between gap-3">
<div>
<div class="small text-uppercase opacity-75 fw-semibold mb-2">Replacement module</div>
<h1 class="h2 fw-bold mb-2">Shipping</h1>
<p class="mb-0 opacity-75">Monitor shipment activity, closed orders, pending loads, and dispatch status.</p>
</div>
<div class="module-hero-icon" aria-hidden="true">
<i class="bi bi-truck"></i>
</div>
</div>
</div>
</section>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">01</div>
<h3 class="h6 mb-2">Open Shipments</h3>
<p class="small text-muted mb-0">Placeholder area for open shipments.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">02</div>
<h3 class="h6 mb-2">Closed Orders</h3>
<p class="small text-muted mb-0">Placeholder area for closed orders.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">03</div>
<h3 class="h6 mb-2">Shipment Close Calls</h3>
<p class="small text-muted mb-0">Placeholder area for shipment close calls.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">04</div>
<h3 class="h6 mb-2">Dispatch Exceptions</h3>
<p class="small text-muted mb-0">Placeholder area for dispatch exceptions.</p>
</div>
</div>
</div>
<div class="col-12">
<section class="card border-0 shadow-sm">
<div class="card-header bg-white border-bottom">
<div class="d-flex flex-column flex-md-row justify-content-between gap-2">
<div>
<h2 class="h5 mb-1">Shipping workbench</h2>
<p class="small text-muted mb-0">Sample table layout ready to wire into controllers, queries, DataTables, or Livewire.</p>
</div>
<div class="d-flex gap-2">
<button type="button" class="btn btn-outline-secondary btn-sm">Export</button>
<button type="button" class="btn btn-primary btn-sm">Create</button>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>Shipment</th>
<th>Order</th>
<th>Customer</th>
<th class="text-end">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>Open Shipments</td>
<td>Sample 1</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Closed Orders</td>
<td>Sample 2</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Shipment Close Calls</td>
<td>Sample 3</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Dispatch Exceptions</td>
<td>Sample 4</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</div>
</div>
</div>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php /**PATH /Users/mag/Sites/WMS/Core/Modules/Shipping/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
@@ -0,0 +1,140 @@
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('M3 Integration')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
<?php $component->withName('layouts::app'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
<?php endif; ?>
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('M3 Integration'))]); ?>
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
<div class="container-fluid py-4 module-page module-m3-integration">
<div class="row g-4">
<div class="col-12">
<section class="card border-0 shadow-sm overflow-hidden">
<div class="card-header border-0 text-white module-hero">
<div class="d-flex flex-column flex-lg-row align-items-lg-center justify-content-between gap-3">
<div>
<div class="small text-uppercase opacity-75 fw-semibold mb-2">Replacement module</div>
<h1 class="h2 fw-bold mb-2">M3 Integration</h1>
<p class="mb-0 opacity-75">Observe M3 transactions, delivery methods, close shipment calls, and API exchanges.</p>
</div>
<div class="module-hero-icon" aria-hidden="true">
<i class="bi bi-server"></i>
</div>
</div>
</div>
</section>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">01</div>
<h3 class="h6 mb-2">M3 Transaction Log</h3>
<p class="small text-muted mb-0">Placeholder area for m3 transaction log.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">02</div>
<h3 class="h6 mb-2">M3 Delivery Methods</h3>
<p class="small text-muted mb-0">Placeholder area for m3 delivery methods.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">03</div>
<h3 class="h6 mb-2">Close Shipment API</h3>
<p class="small text-muted mb-0">Placeholder area for close shipment api.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">04</div>
<h3 class="h6 mb-2">M3 Error Queue</h3>
<p class="small text-muted mb-0">Placeholder area for m3 error queue.</p>
</div>
</div>
</div>
<div class="col-12">
<section class="card border-0 shadow-sm">
<div class="card-header bg-white border-bottom">
<div class="d-flex flex-column flex-md-row justify-content-between gap-2">
<div>
<h2 class="h5 mb-1">M3 Integration workbench</h2>
<p class="small text-muted mb-0">Sample table layout ready to wire into controllers, queries, DataTables, or Livewire.</p>
</div>
<div class="d-flex gap-2">
<button type="button" class="btn btn-outline-secondary btn-sm">Export</button>
<button type="button" class="btn btn-primary btn-sm">Create</button>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>Transaction</th>
<th>Program</th>
<th>Message</th>
<th class="text-end">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>M3 Transaction Log</td>
<td>Sample 1</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>M3 Delivery Methods</td>
<td>Sample 2</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Close Shipment API</td>
<td>Sample 3</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>M3 Error Queue</td>
<td>Sample 4</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</div>
</div>
</div>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php /**PATH /Users/mag/Sites/WMS/Core/Modules/M3Integration/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
@@ -0,0 +1,67 @@
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Platform')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
<?php $component->withName('layouts::app'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
<?php endif; ?>
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Platform'))]); ?>
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
<div class="space-y-6">
<section class="grid gap-4 sm:grid-cols-2 xl:grid-cols-4">
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::openLoop(); ?><?php endif; ?><?php $__currentLoopData = [['Companies', $companiesCount], ['Active', $activeCompaniesCount], ['Warehouses', $warehousesCount], ['Licences', $licensesCount]]; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as [$label, $value]): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::startLoopIteration(); ?><?php endif; ?>
<article class="rounded-2xl border border-zinc-200 bg-white p-5 shadow-sm dark:border-zinc-800 dark:bg-zinc-900">
<p class="text-sm text-zinc-500 dark:text-zinc-400"><?php echo e($label); ?></p>
<p class="mt-2 text-3xl font-bold text-zinc-900 dark:text-white"><?php echo e($value); ?></p>
</article>
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::endLoop(); ?><?php endif; ?><?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::closeLoop(); ?><?php endif; ?>
</section>
<section class="rounded-2xl border border-zinc-200 bg-white shadow-sm dark:border-zinc-800 dark:bg-zinc-900">
<div class="flex flex-col gap-3 border-b border-zinc-200 p-5 sm:flex-row sm:items-center sm:justify-between dark:border-zinc-800">
<div>
<h2 class="text-lg font-semibold text-zinc-900 dark:text-white">Recent companies</h2>
<p class="text-sm text-zinc-500">Tenant isolation is enforced by company ownership on every warehouse record.</p>
</div>
<a href="<?php echo e(route('platform.companies.index')); ?>" class="rounded-lg bg-zinc-900 px-4 py-2 text-sm font-semibold text-white dark:bg-white dark:text-zinc-900">Manage companies</a>
</div>
<div class="overflow-x-auto">
<table class="min-w-full divide-y divide-zinc-200 text-sm dark:divide-zinc-800">
<thead class="bg-zinc-50 dark:bg-zinc-950">
<tr>
<th class="px-5 py-3 text-left font-semibold">Company</th>
<th class="px-5 py-3 text-left font-semibold">Users</th>
<th class="px-5 py-3 text-left font-semibold">Warehouses</th>
<th class="px-5 py-3 text-left font-semibold">Licences</th>
<th class="px-5 py-3 text-left font-semibold">Status</th>
</tr>
</thead>
<tbody class="divide-y divide-zinc-200 dark:divide-zinc-800">
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::openLoop(); ?><?php endif; ?><?php $__currentLoopData = $companies; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $company): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::startLoopIteration(); ?><?php endif; ?>
<tr>
<td class="px-5 py-4 font-medium"><?php echo e($company->name); ?></td>
<td class="px-5 py-4"><?php echo e($company->users_count); ?></td>
<td class="px-5 py-4"><?php echo e($company->warehouses_count); ?></td>
<td class="px-5 py-4"><?php echo e($company->license_keys_count); ?></td>
<td class="px-5 py-4"><?php echo e($company->is_system_company ? 'System' : ucfirst($company->status)); ?></td>
</tr>
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::endLoop(); ?><?php endif; ?><?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::closeLoop(); ?><?php endif; ?>
</tbody>
</table>
</div>
</section>
</div>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php /**PATH /Users/mag/Sites/WMS/Core/Modules/Platform/Providers/../resources/views/dashboard/index.blade.php ENDPATH**/ ?>
@@ -0,0 +1,140 @@
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Document Archive')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
<?php $component->withName('layouts::app'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
<?php endif; ?>
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Document Archive'))]); ?>
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
<div class="container-fluid py-4 module-page module-document-archive">
<div class="row g-4">
<div class="col-12">
<section class="card border-0 shadow-sm overflow-hidden">
<div class="card-header border-0 text-white module-hero">
<div class="d-flex flex-column flex-lg-row align-items-lg-center justify-content-between gap-3">
<div>
<div class="small text-uppercase opacity-75 fw-semibold mb-2">Replacement module</div>
<h1 class="h2 fw-bold mb-2">Document Archive</h1>
<p class="mb-0 opacity-75">Search cached Sentinel documents, shipment PDFs, labels, and BOL records.</p>
</div>
<div class="module-hero-icon" aria-hidden="true">
<i class="bi bi-file-earmark-text"></i>
</div>
</div>
</div>
</section>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">01</div>
<h3 class="h6 mb-2">Sentinel Doc Archive</h3>
<p class="small text-muted mb-0">Placeholder area for sentinel doc archive.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">02</div>
<h3 class="h6 mb-2">Shipment PDFs</h3>
<p class="small text-muted mb-0">Placeholder area for shipment pdfs.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">03</div>
<h3 class="h6 mb-2">Bill of Lading</h3>
<p class="small text-muted mb-0">Placeholder area for bill of lading.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">04</div>
<h3 class="h6 mb-2">Document Search</h3>
<p class="small text-muted mb-0">Placeholder area for document search.</p>
</div>
</div>
</div>
<div class="col-12">
<section class="card border-0 shadow-sm">
<div class="card-header bg-white border-bottom">
<div class="d-flex flex-column flex-md-row justify-content-between gap-2">
<div>
<h2 class="h5 mb-1">Document Archive workbench</h2>
<p class="small text-muted mb-0">Sample table layout ready to wire into controllers, queries, DataTables, or Livewire.</p>
</div>
<div class="d-flex gap-2">
<button type="button" class="btn btn-outline-secondary btn-sm">Export</button>
<button type="button" class="btn btn-primary btn-sm">Create</button>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>Document</th>
<th>Shipment</th>
<th>Type</th>
<th class="text-end">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>Sentinel Doc Archive</td>
<td>Sample 1</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Shipment PDFs</td>
<td>Sample 2</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Bill of Lading</td>
<td>Sample 3</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Document Search</td>
<td>Sample 4</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</div>
</div>
</div>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php /**PATH /Users/mag/Sites/WMS/Core/Modules/DocumentArchive/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
@@ -0,0 +1,140 @@
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Replenishment')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
<?php $component->withName('layouts::app'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
<?php endif; ?>
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Replenishment'))]); ?>
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
<div class="container-fluid py-4 module-page module-replenishment">
<div class="row g-4">
<div class="col-12">
<section class="card border-0 shadow-sm overflow-hidden">
<div class="card-header border-0 text-white module-hero">
<div class="d-flex flex-column flex-lg-row align-items-lg-center justify-content-between gap-3">
<div>
<div class="small text-uppercase opacity-75 fw-semibold mb-2">Replacement module</div>
<h1 class="h2 fw-bold mb-2">Replenishment</h1>
<p class="mb-0 opacity-75">Configure replenishment thresholds, review stock gaps, and monitor refill activity.</p>
</div>
<div class="module-hero-icon" aria-hidden="true">
<i class="bi bi-arrow-repeat"></i>
</div>
</div>
</div>
</section>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">01</div>
<h3 class="h6 mb-2">Replenishment Rules</h3>
<p class="small text-muted mb-0">Placeholder area for replenishment rules.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">02</div>
<h3 class="h6 mb-2">Minimum Stock</h3>
<p class="small text-muted mb-0">Placeholder area for minimum stock.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">03</div>
<h3 class="h6 mb-2">Suggested Transfers</h3>
<p class="small text-muted mb-0">Placeholder area for suggested transfers.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">04</div>
<h3 class="h6 mb-2">Exception Queue</h3>
<p class="small text-muted mb-0">Placeholder area for exception queue.</p>
</div>
</div>
</div>
<div class="col-12">
<section class="card border-0 shadow-sm">
<div class="card-header bg-white border-bottom">
<div class="d-flex flex-column flex-md-row justify-content-between gap-2">
<div>
<h2 class="h5 mb-1">Replenishment workbench</h2>
<p class="small text-muted mb-0">Sample table layout ready to wire into controllers, queries, DataTables, or Livewire.</p>
</div>
<div class="d-flex gap-2">
<button type="button" class="btn btn-outline-secondary btn-sm">Export</button>
<button type="button" class="btn btn-primary btn-sm">Create</button>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>Item</th>
<th>Minimum</th>
<th>Current</th>
<th class="text-end">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>Replenishment Rules</td>
<td>Sample 1</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Minimum Stock</td>
<td>Sample 2</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Suggested Transfers</td>
<td>Sample 3</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Exception Queue</td>
<td>Sample 4</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</div>
</div>
</div>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php /**PATH /Users/mag/Sites/WMS/Core/Modules/Replenishment/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
@@ -0,0 +1,140 @@
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Carrier Management')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
<?php $component->withName('layouts::app'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
<?php endif; ?>
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Carrier Management'))]); ?>
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
<div class="container-fluid py-4 module-page module-carrier-management">
<div class="row g-4">
<div class="col-12">
<section class="card border-0 shadow-sm overflow-hidden">
<div class="card-header border-0 text-white module-hero">
<div class="d-flex flex-column flex-lg-row align-items-lg-center justify-content-between gap-3">
<div>
<div class="small text-uppercase opacity-75 fw-semibold mb-2">Replacement module</div>
<h1 class="h2 fw-bold mb-2">Carrier Management</h1>
<p class="mb-0 opacity-75">Maintain carriers, services, and shipment routing master data.</p>
</div>
<div class="module-hero-icon" aria-hidden="true">
<i class="bi bi-person-vcard"></i>
</div>
</div>
</div>
</section>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">01</div>
<h3 class="h6 mb-2">Carrier Directory</h3>
<p class="small text-muted mb-0">Placeholder area for carrier directory.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">02</div>
<h3 class="h6 mb-2">Carrier Service Levels</h3>
<p class="small text-muted mb-0">Placeholder area for carrier service levels.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">03</div>
<h3 class="h6 mb-2">Carrier Rules</h3>
<p class="small text-muted mb-0">Placeholder area for carrier rules.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">04</div>
<h3 class="h6 mb-2">Carrier Audit</h3>
<p class="small text-muted mb-0">Placeholder area for carrier audit.</p>
</div>
</div>
</div>
<div class="col-12">
<section class="card border-0 shadow-sm">
<div class="card-header bg-white border-bottom">
<div class="d-flex flex-column flex-md-row justify-content-between gap-2">
<div>
<h2 class="h5 mb-1">Carrier Management workbench</h2>
<p class="small text-muted mb-0">Sample table layout ready to wire into controllers, queries, DataTables, or Livewire.</p>
</div>
<div class="d-flex gap-2">
<button type="button" class="btn btn-outline-secondary btn-sm">Export</button>
<button type="button" class="btn btn-primary btn-sm">Create</button>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>Carrier</th>
<th>Service</th>
<th>Enabled</th>
<th class="text-end">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>Carrier Directory</td>
<td>Sample 1</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Carrier Service Levels</td>
<td>Sample 2</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Carrier Rules</td>
<td>Sample 3</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Carrier Audit</td>
<td>Sample 4</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</div>
</div>
</div>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php /**PATH /Users/mag/Sites/WMS/Core/Modules/CarrierManagement/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
@@ -0,0 +1,140 @@
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Transportation')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
<?php $component->withName('layouts::app'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
<?php endif; ?>
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Transportation'))]); ?>
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
<div class="container-fluid py-4 module-page module-transportation">
<div class="row g-4">
<div class="col-12">
<section class="card border-0 shadow-sm overflow-hidden">
<div class="card-header border-0 text-white module-hero">
<div class="d-flex flex-column flex-lg-row align-items-lg-center justify-content-between gap-3">
<div>
<div class="small text-uppercase opacity-75 fw-semibold mb-2">Replacement module</div>
<h1 class="h2 fw-bold mb-2">Transportation</h1>
<p class="mb-0 opacity-75">Manage truck closure, freight terms, trailers, and transport operations.</p>
</div>
<div class="module-hero-icon" aria-hidden="true">
<i class="bi bi-map"></i>
</div>
</div>
</div>
</section>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">01</div>
<h3 class="h6 mb-2">Pending Truck Closure</h3>
<p class="small text-muted mb-0">Placeholder area for pending truck closure.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">02</div>
<h3 class="h6 mb-2">Trailer Activity</h3>
<p class="small text-muted mb-0">Placeholder area for trailer activity.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">03</div>
<h3 class="h6 mb-2">Freight Terms</h3>
<p class="small text-muted mb-0">Placeholder area for freight terms.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">04</div>
<h3 class="h6 mb-2">Transport Exceptions</h3>
<p class="small text-muted mb-0">Placeholder area for transport exceptions.</p>
</div>
</div>
</div>
<div class="col-12">
<section class="card border-0 shadow-sm">
<div class="card-header bg-white border-bottom">
<div class="d-flex flex-column flex-md-row justify-content-between gap-2">
<div>
<h2 class="h5 mb-1">Transportation workbench</h2>
<p class="small text-muted mb-0">Sample table layout ready to wire into controllers, queries, DataTables, or Livewire.</p>
</div>
<div class="d-flex gap-2">
<button type="button" class="btn btn-outline-secondary btn-sm">Export</button>
<button type="button" class="btn btn-primary btn-sm">Create</button>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>Trailer</th>
<th>Carrier</th>
<th>Close Status</th>
<th class="text-end">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>Pending Truck Closure</td>
<td>Sample 1</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Trailer Activity</td>
<td>Sample 2</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Freight Terms</td>
<td>Sample 3</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Transport Exceptions</td>
<td>Sample 4</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</div>
</div>
</div>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php /**PATH /Users/mag/Sites/WMS/Core/Modules/Transportation/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
@@ -0,0 +1,48 @@
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('WMS Dashboard')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
<?php $component->withName('layouts::app'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
<?php endif; ?>
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('WMS Dashboard'))]); ?>
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
<div class="space-y-6">
<section class="overflow-hidden rounded-3xl bg-gradient-to-br from-slate-950 via-slate-900 to-cyan-950 p-6 text-white shadow-xl sm:p-8">
<div class="flex flex-col gap-6 lg:flex-row lg:items-center lg:justify-between">
<div>
<p class="text-sm font-semibold uppercase tracking-[0.3em] text-cyan-300">Warehouse management</p>
<h1 class="mt-3 text-3xl font-bold tracking-tight sm:text-5xl"><?php echo e(auth()->user()->company->name); ?></h1>
<p class="mt-3 max-w-2xl text-slate-300">High-performance tenant-isolated warehouse operations with per-warehouse validation and licence-aware access.</p>
</div>
<div class="grid grid-cols-2 gap-3 sm:min-w-80">
<div class="rounded-2xl bg-white/10 p-4 backdrop-blur"><p class="text-sm text-slate-300">Warehouses</p><p class="mt-2 text-3xl font-bold"><?php echo e($warehousesCount); ?></p></div>
<div class="rounded-2xl bg-white/10 p-4 backdrop-blur"><p class="text-sm text-slate-300">Rules</p><p class="mt-2 text-3xl font-bold"><?php echo e($rulesCount); ?></p></div>
</div>
</div>
</section>
<section class="grid gap-4 md:grid-cols-2 xl:grid-cols-3">
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::openLoop(); ?><?php endif; ?><?php $__empty_1 = true; $__currentLoopData = $warehouses; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $warehouse): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::startLoopIteration(); ?><?php endif; ?>
<article class="rounded-2xl border border-zinc-200 bg-white p-5 shadow-sm dark:border-zinc-800 dark:bg-zinc-900">
<div class="flex items-start justify-between gap-4"><div><p class="text-sm font-semibold text-cyan-600"><?php echo e($warehouse->code); ?></p><h2 class="mt-1 text-xl font-bold"><?php echo e($warehouse->name); ?></h2></div><span class="rounded-full bg-emerald-100 px-3 py-1 text-xs font-semibold text-emerald-800"><?php echo e($warehouse->status); ?></span></div>
<p class="mt-4 text-sm text-zinc-500"><?php echo e($warehouse->validation_rules_count); ?> validation rules configured.</p>
</article>
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::endLoop(); ?><?php endif; ?><?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::closeLoop(); ?><?php endif; ?>
<article class="rounded-2xl border border-dashed border-zinc-300 bg-white p-8 text-center dark:border-zinc-800 dark:bg-zinc-900 md:col-span-2 xl:col-span-3"><h2 class="text-xl font-bold">Create your first warehouse</h2><p class="mt-2 text-zinc-500">Warehouses are isolated to your company tenant.</p><a href="<?php echo e(route('warehouses.index')); ?>" class="mt-5 inline-flex rounded-xl bg-zinc-900 px-4 py-2 font-semibold text-white dark:bg-white dark:text-zinc-900">Add warehouse</a></article>
<?php endif; ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php endif; ?>
</section>
</div>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php /**PATH /Users/mag/Sites/WMS/Core/Modules/Warehouse/Providers/../resources/views/warehouses/dashboard.blade.php ENDPATH**/ ?>
@@ -0,0 +1,140 @@
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Configuration')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
<?php $component->withName('layouts::app'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
<?php endif; ?>
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Configuration'))]); ?>
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
<div class="container-fluid py-4 module-page module-configuration">
<div class="row g-4">
<div class="col-12">
<section class="card border-0 shadow-sm overflow-hidden">
<div class="card-header border-0 text-white module-hero">
<div class="d-flex flex-column flex-lg-row align-items-lg-center justify-content-between gap-3">
<div>
<div class="small text-uppercase opacity-75 fw-semibold mb-2">Replacement module</div>
<h1 class="h2 fw-bold mb-2">Configuration</h1>
<p class="mb-0 opacity-75">Centralise system settings, warehouse defaults, interface flags, and feature switches.</p>
</div>
<div class="module-hero-icon" aria-hidden="true">
<i class="bi bi-gear"></i>
</div>
</div>
</div>
</section>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">01</div>
<h3 class="h6 mb-2">System Settings</h3>
<p class="small text-muted mb-0">Placeholder area for system settings.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">02</div>
<h3 class="h6 mb-2">Feature Flags</h3>
<p class="small text-muted mb-0">Placeholder area for feature flags.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">03</div>
<h3 class="h6 mb-2">Warehouse Defaults</h3>
<p class="small text-muted mb-0">Placeholder area for warehouse defaults.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">04</div>
<h3 class="h6 mb-2">Interface Settings</h3>
<p class="small text-muted mb-0">Placeholder area for interface settings.</p>
</div>
</div>
</div>
<div class="col-12">
<section class="card border-0 shadow-sm">
<div class="card-header bg-white border-bottom">
<div class="d-flex flex-column flex-md-row justify-content-between gap-2">
<div>
<h2 class="h5 mb-1">Configuration workbench</h2>
<p class="small text-muted mb-0">Sample table layout ready to wire into controllers, queries, DataTables, or Livewire.</p>
</div>
<div class="d-flex gap-2">
<button type="button" class="btn btn-outline-secondary btn-sm">Export</button>
<button type="button" class="btn btn-primary btn-sm">Create</button>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>Setting</th>
<th>Value</th>
<th>Scope</th>
<th class="text-end">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>System Settings</td>
<td>Sample 1</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Feature Flags</td>
<td>Sample 2</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Warehouse Defaults</td>
<td>Sample 3</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Interface Settings</td>
<td>Sample 4</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</div>
</div>
</div>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php /**PATH /Users/mag/Sites/WMS/Core/Modules/Configuration/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
@@ -0,0 +1,140 @@
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Reporting')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
<?php $component->withName('layouts::app'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
<?php endif; ?>
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Reporting'))]); ?>
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
<div class="container-fluid py-4 module-page module-reporting">
<div class="row g-4">
<div class="col-12">
<section class="card border-0 shadow-sm overflow-hidden">
<div class="card-header border-0 text-white module-hero">
<div class="d-flex flex-column flex-lg-row align-items-lg-center justify-content-between gap-3">
<div>
<div class="small text-uppercase opacity-75 fw-semibold mb-2">Replacement module</div>
<h1 class="h2 fw-bold mb-2">Reporting</h1>
<p class="mb-0 opacity-75">Provide operational reports for closed orders, user efficiency, and transaction history.</p>
</div>
<div class="module-hero-icon" aria-hidden="true">
<i class="bi bi-bar-chart"></i>
</div>
</div>
</div>
</section>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">01</div>
<h3 class="h6 mb-2">Closed Order Lines</h3>
<p class="small text-muted mb-0">Placeholder area for closed order lines.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">02</div>
<h3 class="h6 mb-2">Daily User Efficiency</h3>
<p class="small text-muted mb-0">Placeholder area for daily user efficiency.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">03</div>
<h3 class="h6 mb-2">Export Centre</h3>
<p class="small text-muted mb-0">Placeholder area for export centre.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">04</div>
<h3 class="h6 mb-2">Report Filters</h3>
<p class="small text-muted mb-0">Placeholder area for report filters.</p>
</div>
</div>
</div>
<div class="col-12">
<section class="card border-0 shadow-sm">
<div class="card-header bg-white border-bottom">
<div class="d-flex flex-column flex-md-row justify-content-between gap-2">
<div>
<h2 class="h5 mb-1">Reporting workbench</h2>
<p class="small text-muted mb-0">Sample table layout ready to wire into controllers, queries, DataTables, or Livewire.</p>
</div>
<div class="d-flex gap-2">
<button type="button" class="btn btn-outline-secondary btn-sm">Export</button>
<button type="button" class="btn btn-primary btn-sm">Create</button>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>Report</th>
<th>Period</th>
<th>Rows</th>
<th class="text-end">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>Closed Order Lines</td>
<td>Sample 1</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Daily User Efficiency</td>
<td>Sample 2</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Export Centre</td>
<td>Sample 3</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Report Filters</td>
<td>Sample 4</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</div>
</div>
</div>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php /**PATH /Users/mag/Sites/WMS/Core/Modules/Reporting/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
@@ -0,0 +1,140 @@
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Audit')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
<?php $component->withName('layouts::app'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
<?php endif; ?>
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Audit'))]); ?>
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
<div class="container-fluid py-4 module-page module-audit">
<div class="row g-4">
<div class="col-12">
<section class="card border-0 shadow-sm overflow-hidden">
<div class="card-header border-0 text-white module-hero">
<div class="d-flex flex-column flex-lg-row align-items-lg-center justify-content-between gap-3">
<div>
<div class="small text-uppercase opacity-75 fw-semibold mb-2">Replacement module</div>
<h1 class="h2 fw-bold mb-2">Audit</h1>
<p class="mb-0 opacity-75">Review activity logs, data changes, interface events, and administrative actions.</p>
</div>
<div class="module-hero-icon" aria-hidden="true">
<i class="bi bi-clipboard-check"></i>
</div>
</div>
</div>
</section>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">01</div>
<h3 class="h6 mb-2">Activity Log</h3>
<p class="small text-muted mb-0">Placeholder area for activity log.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">02</div>
<h3 class="h6 mb-2">Data Changes</h3>
<p class="small text-muted mb-0">Placeholder area for data changes.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">03</div>
<h3 class="h6 mb-2">API Audit</h3>
<p class="small text-muted mb-0">Placeholder area for api audit.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">04</div>
<h3 class="h6 mb-2">User Actions</h3>
<p class="small text-muted mb-0">Placeholder area for user actions.</p>
</div>
</div>
</div>
<div class="col-12">
<section class="card border-0 shadow-sm">
<div class="card-header bg-white border-bottom">
<div class="d-flex flex-column flex-md-row justify-content-between gap-2">
<div>
<h2 class="h5 mb-1">Audit workbench</h2>
<p class="small text-muted mb-0">Sample table layout ready to wire into controllers, queries, DataTables, or Livewire.</p>
</div>
<div class="d-flex gap-2">
<button type="button" class="btn btn-outline-secondary btn-sm">Export</button>
<button type="button" class="btn btn-primary btn-sm">Create</button>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>When</th>
<th>User</th>
<th>Action</th>
<th class="text-end">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>Activity Log</td>
<td>Sample 1</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Data Changes</td>
<td>Sample 2</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>API Audit</td>
<td>Sample 3</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>User Actions</td>
<td>Sample 4</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</div>
</div>
</div>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php /**PATH /Users/mag/Sites/WMS/Core/Modules/Audit/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
@@ -0,0 +1,42 @@
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Warehouses')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
<?php $component->withName('layouts::app'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
<?php endif; ?>
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Warehouses'))]); ?>
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
<div class="space-y-6">
<div class="rounded-3xl bg-white p-6 shadow-sm ring-1 ring-zinc-200 dark:bg-zinc-900 dark:ring-zinc-800">
<h1 class="text-2xl font-bold">Warehouses</h1>
<form method="POST" action="<?php echo e(route('warehouses.store')); ?>" class="mt-5 grid gap-4 md:grid-cols-4">
<?php echo csrf_field(); ?>
<input name="code" placeholder="Code" class="rounded-xl border-zinc-300 dark:border-zinc-700 dark:bg-zinc-950" required>
<input name="name" placeholder="Warehouse name" class="rounded-xl border-zinc-300 dark:border-zinc-700 dark:bg-zinc-950" required>
<input name="address" placeholder="Address" class="rounded-xl border-zinc-300 dark:border-zinc-700 dark:bg-zinc-950">
<button class="rounded-xl bg-zinc-900 px-4 py-2 font-semibold text-white dark:bg-white dark:text-zinc-900">Create</button>
</form>
</div>
<div class="grid gap-4 md:grid-cols-2 xl:grid-cols-3">
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if BLOCK]><![endif]--><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::openLoop(); ?><?php endif; ?><?php $__currentLoopData = $warehouses; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $warehouse): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::startLoopIteration(); ?><?php endif; ?>
<article class="rounded-2xl border border-zinc-200 bg-white p-5 shadow-sm dark:border-zinc-800 dark:bg-zinc-900"><p class="text-sm text-cyan-600"><?php echo e($warehouse->code); ?></p><h2 class="mt-1 text-xl font-bold"><?php echo e($warehouse->name); ?></h2><p class="mt-3 text-sm text-zinc-500"><?php echo e($warehouse->validation_rules_count); ?> rules</p></article>
<?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::endLoop(); ?><?php endif; ?><?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?><?php if(\Livewire\Mechanisms\ExtendBlade\ExtendBlade::isRenderingLivewireComponent()): ?><!--[if ENDBLOCK]><![endif]--><?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::closeLoop(); ?><?php endif; ?>
</div>
<?php echo e($warehouses->links()); ?>
</div>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php /**PATH /Users/mag/Sites/WMS/Core/Modules/Warehouse/Providers/../resources/views/warehouses/index.blade.php ENDPATH**/ ?>
@@ -0,0 +1,140 @@
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Sentinel Integration')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
<?php $component->withName('layouts::app'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
<?php endif; ?>
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Sentinel Integration'))]); ?>
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
<div class="container-fluid py-4 module-page module-sentinel-integration">
<div class="row g-4">
<div class="col-12">
<section class="card border-0 shadow-sm overflow-hidden">
<div class="card-header border-0 text-white module-hero">
<div class="d-flex flex-column flex-lg-row align-items-lg-center justify-content-between gap-3">
<div>
<div class="small text-uppercase opacity-75 fw-semibold mb-2">Replacement module</div>
<h1 class="h2 fw-bold mb-2">Sentinel Integration</h1>
<p class="mb-0 opacity-75">Track Sentinel API activity, inbound receiver events, and interface status.</p>
</div>
<div class="module-hero-icon" aria-hidden="true">
<i class="bi bi-broadcast"></i>
</div>
</div>
</div>
</section>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">01</div>
<h3 class="h6 mb-2">Sentinel Receiver</h3>
<p class="small text-muted mb-0">Placeholder area for sentinel receiver.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">02</div>
<h3 class="h6 mb-2">API Activity</h3>
<p class="small text-muted mb-0">Placeholder area for api activity.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">03</div>
<h3 class="h6 mb-2">Interface Health</h3>
<p class="small text-muted mb-0">Placeholder area for interface health.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">04</div>
<h3 class="h6 mb-2">Payload Archive</h3>
<p class="small text-muted mb-0">Placeholder area for payload archive.</p>
</div>
</div>
</div>
<div class="col-12">
<section class="card border-0 shadow-sm">
<div class="card-header bg-white border-bottom">
<div class="d-flex flex-column flex-md-row justify-content-between gap-2">
<div>
<h2 class="h5 mb-1">Sentinel Integration workbench</h2>
<p class="small text-muted mb-0">Sample table layout ready to wire into controllers, queries, DataTables, or Livewire.</p>
</div>
<div class="d-flex gap-2">
<button type="button" class="btn btn-outline-secondary btn-sm">Export</button>
<button type="button" class="btn btn-primary btn-sm">Create</button>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>Endpoint</th>
<th>Reference</th>
<th>HTTP</th>
<th class="text-end">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>Sentinel Receiver</td>
<td>Sample 1</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>API Activity</td>
<td>Sample 2</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Interface Health</td>
<td>Sample 3</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Payload Archive</td>
<td>Sample 4</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</div>
</div>
</div>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php /**PATH /Users/mag/Sites/WMS/Core/Modules/SentinelIntegration/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>
@@ -0,0 +1,140 @@
<?php if (isset($component)) { $__componentOriginal81a506f898233b9e7d58286e6bea3c18 = $component; } ?>
<?php if (isset($attributes)) { $__attributesOriginal81a506f898233b9e7d58286e6bea3c18 = $attributes; } ?>
<?php $component = Illuminate\View\AnonymousComponent::resolve(['view' => 'f4ac99e09542ff494432bc959d4fee61::app','data' => ['title' => __('Inventory Management')]] + (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag ? $attributes->all() : [])); ?>
<?php $component->withName('layouts::app'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php if (isset($attributes) && $attributes instanceof Illuminate\View\ComponentAttributeBag): ?>
<?php $attributes = $attributes->except(\Illuminate\View\AnonymousComponent::ignoredParameterNames()); ?>
<?php endif; ?>
<?php $component->withAttributes(['title' => \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute(__('Inventory Management'))]); ?>
<?php \Livewire\Features\SupportCompiledWireKeys\SupportCompiledWireKeys::processComponentKey($component); ?>
<div class="container-fluid py-4 module-page module-inventory-management">
<div class="row g-4">
<div class="col-12">
<section class="card border-0 shadow-sm overflow-hidden">
<div class="card-header border-0 text-white module-hero">
<div class="d-flex flex-column flex-lg-row align-items-lg-center justify-content-between gap-3">
<div>
<div class="small text-uppercase opacity-75 fw-semibold mb-2">Replacement module</div>
<h1 class="h2 fw-bold mb-2">Inventory Management</h1>
<p class="mb-0 opacity-75">Track inventory movement, stock visibility, pallet quantities, and product availability.</p>
</div>
<div class="module-hero-icon" aria-hidden="true">
<i class="bi bi-boxes"></i>
</div>
</div>
</div>
</section>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">01</div>
<h3 class="h6 mb-2">Stock Overview</h3>
<p class="small text-muted mb-0">Placeholder area for stock overview.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">02</div>
<h3 class="h6 mb-2">Pallet Quantity Rules</h3>
<p class="small text-muted mb-0">Placeholder area for pallet quantity rules.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">03</div>
<h3 class="h6 mb-2">Inventory Exceptions</h3>
<p class="small text-muted mb-0">Placeholder area for inventory exceptions.</p>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3">
<div class="card h-100 border-0 shadow-sm module-metric-card">
<div class="card-body">
<div class="small text-uppercase text-muted fw-semibold mb-2">04</div>
<h3 class="h6 mb-2">Product Movement</h3>
<p class="small text-muted mb-0">Placeholder area for product movement.</p>
</div>
</div>
</div>
<div class="col-12">
<section class="card border-0 shadow-sm">
<div class="card-header bg-white border-bottom">
<div class="d-flex flex-column flex-md-row justify-content-between gap-2">
<div>
<h2 class="h5 mb-1">Inventory Management workbench</h2>
<p class="small text-muted mb-0">Sample table layout ready to wire into controllers, queries, DataTables, or Livewire.</p>
</div>
<div class="d-flex gap-2">
<button type="button" class="btn btn-outline-secondary btn-sm">Export</button>
<button type="button" class="btn btn-primary btn-sm">Create</button>
</div>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>Part Number</th>
<th>Description</th>
<th>Pallet Qty</th>
<th class="text-end">Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>Stock Overview</td>
<td>Sample 1</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Pallet Quantity Rules</td>
<td>Sample 2</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Inventory Exceptions</td>
<td>Sample 3</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
<tr>
<td>Product Movement</td>
<td>Sample 4</td>
<td><span class="badge bg-success-subtle text-success border border-success-subtle">Active</span></td>
<td class="text-end"><a href="#" class="btn btn-sm btn-outline-primary">Open</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</div>
</div>
</div>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?>
<?php if (isset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $attributes = $__attributesOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__attributesOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php if (isset($__componentOriginal81a506f898233b9e7d58286e6bea3c18)): ?>
<?php $component = $__componentOriginal81a506f898233b9e7d58286e6bea3c18; ?>
<?php unset($__componentOriginal81a506f898233b9e7d58286e6bea3c18); ?>
<?php endif; ?>
<?php /**PATH /Users/mag/Sites/WMS/Core/Modules/InventoryManagement/Providers/../Resources/views/index.blade.php ENDPATH**/ ?>