/home2/mshostin/public_html/routes/web.php
<?php
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| 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::get('/register', function () {
// return redirect()->route('login');
// })->name('register');
Auth::routes();
Route::get('/', [App\Http\Controllers\HomeController::class, 'index'])->name('home')->middleware('auth');
Route::group(['middleware' => 'auth'], function () {
Route::resources([
'users' => 'App\Http\Controllers\UserController',
'providers' => 'App\Http\Controllers\ProviderController',
'inventory/products' => 'App\Http\Controllers\ProductController',
'clients' => 'App\Http\Controllers\ClientController',
'reference' => 'App\Http\Controllers\ReferenceController',
'inventory/categories' => 'App\Http\Controllers\ProductCategoryController',
'transactions/transfer' => 'App\Http\Controllers\TransferController',
'methods' => 'App\Http\Controllers\MethodController',
]);
Route::resource('transactions', 'App\Http\Controllers\TransactionController')->except(['create', 'show']);
Route::get('transactions/stats/{year?}/{month?}/{day?}', [App\Http\Controllers\TransactionController::class,'stats'])->name('transactions.stats');
Route::get('transactions/{type}', [App\Http\Controllers\TransactionController::class,'type'])->name('transactions.type');
Route::get('transactions/{type}/create', [App\Http\Controllers\TransactionController::class,'create'])->name('transactions.create');
Route::get('transactions/{transaction}/edit', [App\Http\Controllers\TransactionController::class,'edit'])->name('transactions.edit');
Route::get('inventory/stats/{year?}/{month?}/{day?}', [App\Http\Controllers\InventoryController::class,'stats'])->name('inventory.stats');
Route::resource('inventory/receipts', 'App\Http\Controllers\ReceiptController')->except(['edit', 'update']);
Route::get('inventory/receipts/{receipt}/finalize', [App\Http\Controllers\ReceiptController::class,'finalize'])->name('receipts.finalize');
Route::get('inventory/receipts/{receipt}/product/add', [App\Http\Controllers\ReceiptController::class,'addproduct'])->name('receipts.product.add');
Route::get('inventory/receipts/{receipt}/product/{receivedproduct}/edit', [App\Http\Controllers\ReceiptController::class,'editproduct'])->name('receipts.product.edit');
Route::post('inventory/receipts/{receipt}/product', [App\Http\Controllers\ReceiptController::class,'storeproduct'])->name('receipts.product.store');
Route::match(['put', 'patch'], 'inventory/receipts/{receipt}/product/{receivedproduct}', [App\Http\Controllers\ReceiptController::class,'updateproduct'])->name('receipts.product.update');
Route::delete('inventory/receipts/{receipt}/product/{receivedproduct}', [App\Http\Controllers\ReceiptController::class,'destroyproduct'])->name('receipts.product.destroy');
Route::resource('sales', 'App\Http\Controllers\SaleController')->except(['edit', 'update']);
Route::get('sales/{sale}/finalize', [App\Http\Controllers\SaleController::class,'finalize'])->name('sales.finalize');
Route::get('sales/{sale}/product/add', [App\Http\Controllers\SaleController::class,'addproduct'])->name('sales.product.add');
Route::get('sales/{sale}/product/{soldproduct}/edit', [App\Http\Controllers\SaleController::class,'editproduct'])->name('sales.product.edit');
Route::post('sales/{sale}/product', [App\Http\Controllers\SaleController::class,'storeproduct'])->name('sales.product.store');
Route::match(['put', 'patch'], 'sales/{sale}/product/{soldproduct}', [App\Http\Controllers\SaleController::class,'updateproduct'])->name('sales.product.update');
Route::delete('sales/{sale}/product/{soldproduct}', [App\Http\Controllers\SaleController::class,'destroyproduct'])->name('sales.product.destroy');
Route::get('clients/{client}/transactions/add', [App\Http\Controllers\ClientController::class,'addtransaction'])->name('clients.transactions.add');
// Print Ledger
Route::get('reference/{id}/print/report', [App\Http\Controllers\ReferenceController::class,'printReport'])->name('reference.print.report');
Route::get('reference/{id}/print/ledger', [App\Http\Controllers\ReferenceController::class,'printLedger'])->name('reference.print.ledger');
Route::get('profile', [App\Http\Controllers\ProfileController::class,'edit'])->name('profile.edit');
Route::match(['put', 'patch'], 'profile', [App\Http\Controllers\ProfileController::class,'update'])->name('profile.update');
Route::match(['put', 'patch'], 'profile/password', [App\Http\Controllers\ProfileController::class,'password'])->name('profile.password');
});
Route::group(['middleware' => 'auth'], function () {
Route::get('icons', [App\Http\Controllers\PageController::class,'icons'])->name('pages.icons');
Route::get('notifications', [App\Http\Controllers\PageController::class,'notifications'])->name('pages.notifications');
Route::get('tables', [App\Http\Controllers\PageController::class,'tables'])->name('pages.tables');
Route::get('typography', [App\Http\Controllers\PageController::class,'typography'])->name('ages.typography');
});