Commit 3359f6d3 by Hussain Mohamed

Products Store

parent 052812e4
......@@ -3,9 +3,86 @@
namespace App\Http\Controllers\Backend;
use App\Http\Controllers\Controller;
use App\Models\CategoryModel;
use App\Models\ProductAttributeModel;
use App\Models\ProductBrandModel;
use App\Models\ProductIndustryModel;
use App\Models\ProductModel;
use App\Models\ProductTypeModel;
use App\Models\SizeModel;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\URL;
class ProductController extends Controller
{
//
public function products()
{
$records = ProductModel::orderBy('id', 'ASC')->get();
return view('backend.products.list', compact('records'));
}
public function addProduct($id = '')
{
$categoryData = CategoryModel::Where('status', 1)->get();
$sizeData = SizeModel::Where('status', 1)->get();
$industryData = ProductIndustryModel::Where('status', 1)->get();
$typeData = ProductTypeModel::Where('status', 1)->get();
$brandData = ProductBrandModel::Where('status', 1)->get();
if ($id > 0) {
$record = ProductModel::Where('id', $id)->first();
return view('backend.products.edit', compact('record', 'categoryData', 'sizeData', 'brandData', 'typeData', 'industryData'));
} else {
return view('backend.products.add', compact('categoryData', 'sizeData', 'typeData', 'brandData', 'industryData'));
}
}
public function storeUpdateproducts(Request $request)
{
$input = $request->all();
$id = $input['id'];
$product_name = isset($input['product_name']) ? $input['product_name'] : '';
$category_id = isset($input['category_id']) ? $input['category_id'] : '';
$industry_id = isset($input['industry_id']) ? $input['industry_id'] : '';
$brand_id = isset($input['brand_id']) ? $input['brand_id'] : '';
$type_id = isset($input['type_id']) ? $input['type_id'] : '';
$product_description = isset($input['product_description']) ? $input['product_description'] : '';
$product_type = isset($input['size_type']) ? $input['size_type'] : '';
$product_size = isset($input['size']) ? $input['size'] : '';
if ($id == "") {
/* Insert */
$insertArr = array(
'product_name' => $product_name,
'category_id' => implode(",",$category_id),
'industry_id' => implode(",",$industry_id),
'brand_id' => implode(",",$brand_id),
'type_id' => $type_id,
'product_description' => $product_description,
);
$insert = ProductModel::create($insertArr);
if($insert['id'] > 0)
{
if ($request->hasFile('product_image')) {
$images = $request->file('product_image');
foreach($images as $key=>$image)
{
$imageName = 'product_image' . time() . '_' . str_replace(' ', '_', $image->getClientOriginalName());
$image->move(public_path('/uploads/product_image/'), $imageName);
$imageUrl = URL::to('/') . '/uploads/product_image/' . $imageName;
$insertAr = array(
'product_id' => $insert['id'],
'product_image' => $imageUrl,
'product_type' => $product_type[$key],
'product_size' => $product_size[$key]
);
ProductAttributeModel::create($insertAr);
}
}
return redirect()->route('products')->with('success', 'Pages Saved Successfully');
}
}
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ProductAttributeModel extends Model
{
use HasFactory;
protected $table = 'product_attributes';
protected $guarded = ['id'];
}
......@@ -8,4 +8,7 @@
class ProductModel extends Model
{
use HasFactory;
protected $table = 'products';
protected $guarded = ['id'];
}
......@@ -306,6 +306,12 @@
</a>
</li>
<li class="pe-slide-item">
<a href="<?= route('products') ?>" class="pe-nav-link @if(request()->routeIs(['products', 'addProduct'])) active @endif">
Products
</a>
</li>
</ul>
</li>
......
@extends('backend.app_template')
@section('title','Product List')
@section('content')
<main class="app-wrapper">
<div class="container-fluid">
<div class="d-flex align-items-center mt-2 mb-2">
<div class="flex-shrink-0">
<nav aria-label="breadcrumb">
<ol class="breadcrumb justify-content-end mb-0">
<li class="breadcrumb-item"><a href="javascript:void(0)">Product</a></li>
<li class="breadcrumb-item active" aria-current="page">List</li>
</ol>
</nav>
</div>
</div>
<div class="row">
<div class="d-flex justify-content-end mb-4">
<a href="<?php echo route('addProduct') ?>" class="btn btn-primary">Add Product</a>
</div>
<table id="datatables" class="table table-nowrap table-hover table-bordered w-100 mt-5">
<thead>
<tr>
<th>S.No</th>
<th>Category Name</th>
<th>Product Name</th>
<th>Product Type</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php if (isset($records)) {
$i = 1;
foreach ($records as $key => $row) {
?>
<tr>
<td><?php echo $i ?></td>
<td><?php echo $row->category_name ?></td>
<td><?php echo $row->product_name ?></td>
<td><?php echo $row->type ?></td>
<td><a data-placement="top" title="Status" data-original-title="Status" href="javascript:void(0)" onclick="changeStatus('<?php echo $row->id ?>','<?php echo ($row->status == 1) ? 0 : 1 ?>','ProductModel')" class="badge bg-pill bg-<?php echo ($row->status == 1) ? 'success' : 'danger' ?>"><?php echo ($row->status == 1) ? 'Active' : 'In-Active' ?></a></td>
<td>
<a data-toggle="tooltip" data-placement="top" title="Edit" href="<?php echo route('addProduct', [$row->id]) ?>" class="btn btn-sm btn-warning"><i class="bi bi-pencil-fill"></i></a>
<a data-toggle="tooltip" data-placement="top" title="Delete" data-original-title="Delete" href="javascript:void(0)" onclick="commonDelete('<?php echo $row->id ?>','ProductModel')" class="btn btn-sm btn-danger"><i class="bi bi-trash-fill"></i></a>
</td>
</tr>
<?php $i++;
}
} ?>
</tbody>
</table>
</div>
<!-- Submit Section -->
</div>
</main>
@endsection
\ No newline at end of file
......@@ -14,6 +14,7 @@
use App\Http\Controllers\Backend\MetaController;
use App\Http\Controllers\Backend\OrientationController;
use App\Http\Controllers\Backend\PageController;
use App\Http\Controllers\Backend\ProductController;
use App\Http\Controllers\Backend\ReportsController;
use App\Http\Controllers\Backend\UserController;
use App\Http\Controllers\Backend\SettingsController;
......@@ -59,6 +60,10 @@
Route::get('addCategory/{id?}', [CategoryController::class, 'addCategory'])->name('addCategory');
Route::post('storeUpdateCategory', [CategoryController::class, 'storeUpdateCategory'])->name('storeUpdateCategory');
Route::get('products', [ProductController::class, 'products'])->name('products');
Route::get('addProduct/{id?}', [ProductController::class, 'addProduct'])->name('addProduct');
Route::post('storeUpdateproducts', [ProductController::class, 'storeUpdateproducts'])->name('storeUpdateproducts');
Route::get('size', [SizeController::class, 'size'])->name('size');
Route::get('addSize/{id?}', [SizeController::class, 'addSize'])->name('addSize');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment