Editing product and enabled updating the accounting field
This commit is contained in:
parent
8d920e1ba1
commit
8955df84cd
@ -5,6 +5,7 @@ namespace App\Http\Controllers;
|
|||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
|
|
||||||
|
use App\Http\Requests\ProductAddEdit;
|
||||||
use App\Models\{Product,ProductTranslate};
|
use App\Models\{Product,ProductTranslate};
|
||||||
|
|
||||||
class ProductController extends Controller
|
class ProductController extends Controller
|
||||||
@ -65,37 +66,6 @@ class ProductController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function details(Request $request,Product $o)
|
public function details(Request $request,Product $o)
|
||||||
{
|
{
|
||||||
if ($request->post()) {
|
|
||||||
$validation = $request->validate([
|
|
||||||
'description.name' => 'required|string|min:2|max:255',
|
|
||||||
'active' => 'sometimes|accepted',
|
|
||||||
'model' => 'sometimes|string', // @todo Check that it is a valid model type
|
|
||||||
'model_id' => 'sometimes|int', // @todo Check that it is a valid model type
|
|
||||||
]);
|
|
||||||
|
|
||||||
foreach (collect($validation)->except('description') as $key => $item)
|
|
||||||
$o->{$key} = $item;
|
|
||||||
|
|
||||||
$o->active = (bool)$request->active;
|
|
||||||
|
|
||||||
try {
|
|
||||||
$o->save();
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
return redirect()->back()->withErrors($e->getMessage())->withInput();
|
|
||||||
}
|
|
||||||
|
|
||||||
$o->load(['description']);
|
|
||||||
$oo = $o->description ?: new ProductTranslate;
|
|
||||||
|
|
||||||
foreach (collect($validation)->get('description',[]) as $key => $item)
|
|
||||||
$oo->{$key} = $item;
|
|
||||||
|
|
||||||
$o->description()->save($oo);
|
|
||||||
|
|
||||||
return redirect()->back()
|
|
||||||
->with('success','Product saved');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! $o->exists && $request->name)
|
if (! $o->exists && $request->name)
|
||||||
$o = Product::where('name',$request->name)->firstOrNew();
|
$o = Product::where('name',$request->name)->firstOrNew();
|
||||||
|
|
||||||
@ -104,6 +74,31 @@ class ProductController extends Controller
|
|||||||
->with('o',$o);
|
->with('o',$o);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function details_addedit(ProductAddEdit $request,Product $o)
|
||||||
|
{
|
||||||
|
foreach ($request->except(['_token','submit','description']) as $key => $item)
|
||||||
|
$o->{$key} = $item;
|
||||||
|
|
||||||
|
$o->active = (bool)$request->active;
|
||||||
|
|
||||||
|
try {
|
||||||
|
$o->save();
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return redirect()->back()->withErrors($e->getMessage())->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
$o->load(['description']);
|
||||||
|
$oo = $o->description ?: new ProductTranslate;
|
||||||
|
|
||||||
|
foreach ($request->get('description',[]) as $key => $item)
|
||||||
|
$oo->{$key} = $item;
|
||||||
|
|
||||||
|
$o->description()->save($oo);
|
||||||
|
|
||||||
|
return redirect()->back()
|
||||||
|
->with('success','Product saved');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Manage products for a site
|
* Manage products for a site
|
||||||
*
|
*
|
||||||
|
38
app/Http/Requests/ProductAddEdit.php
Normal file
38
app/Http/Requests/ProductAddEdit.php
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Editing Suppliers
|
||||||
|
*/
|
||||||
|
class ProductAddEdit extends FormRequest
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Determine if the user is authorized to make this request.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function authorize()
|
||||||
|
{
|
||||||
|
return Auth::user()->isWholesaler();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the validation rules that apply to the request.
|
||||||
|
*
|
||||||
|
* @return array<string, mixed>
|
||||||
|
*/
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'description.name' => 'required|string|min:2|max:100',
|
||||||
|
'active' => 'sometimes|accepted',
|
||||||
|
'model' => 'sometimes|string', // @todo Check that it is a valid model type
|
||||||
|
'model_id' => 'sometimes|int', // @todo Check that it is a valid model type
|
||||||
|
'accounting' => 'sometimes|string',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
54
composer.lock
generated
54
composer.lock
generated
@ -2546,16 +2546,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "lcobucci/jwt",
|
"name": "lcobucci/jwt",
|
||||||
"version": "4.1.5",
|
"version": "4.2.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/lcobucci/jwt.git",
|
"url": "https://github.com/lcobucci/jwt.git",
|
||||||
"reference": "fe2d89f2eaa7087af4aa166c6f480ef04e000582"
|
"reference": "72ac6d807ee51a70ad376ee03a2387e8646e10f3"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/lcobucci/jwt/zipball/fe2d89f2eaa7087af4aa166c6f480ef04e000582",
|
"url": "https://api.github.com/repos/lcobucci/jwt/zipball/72ac6d807ee51a70ad376ee03a2387e8646e10f3",
|
||||||
"reference": "fe2d89f2eaa7087af4aa166c6f480ef04e000582",
|
"reference": "72ac6d807ee51a70ad376ee03a2387e8646e10f3",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -2571,12 +2571,12 @@
|
|||||||
"infection/infection": "^0.21",
|
"infection/infection": "^0.21",
|
||||||
"lcobucci/coding-standard": "^6.0",
|
"lcobucci/coding-standard": "^6.0",
|
||||||
"mikey179/vfsstream": "^1.6.7",
|
"mikey179/vfsstream": "^1.6.7",
|
||||||
"phpbench/phpbench": "^1.0",
|
"phpbench/phpbench": "^1.2",
|
||||||
"phpstan/extension-installer": "^1.0",
|
"phpstan/extension-installer": "^1.0",
|
||||||
"phpstan/phpstan": "^0.12",
|
"phpstan/phpstan": "^1.4",
|
||||||
"phpstan/phpstan-deprecation-rules": "^0.12",
|
"phpstan/phpstan-deprecation-rules": "^1.0",
|
||||||
"phpstan/phpstan-phpunit": "^0.12",
|
"phpstan/phpstan-phpunit": "^1.0",
|
||||||
"phpstan/phpstan-strict-rules": "^0.12",
|
"phpstan/phpstan-strict-rules": "^1.0",
|
||||||
"phpunit/php-invoker": "^3.1",
|
"phpunit/php-invoker": "^3.1",
|
||||||
"phpunit/phpunit": "^9.5"
|
"phpunit/phpunit": "^9.5"
|
||||||
},
|
},
|
||||||
@ -2604,7 +2604,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/lcobucci/jwt/issues",
|
"issues": "https://github.com/lcobucci/jwt/issues",
|
||||||
"source": "https://github.com/lcobucci/jwt/tree/4.1.5"
|
"source": "https://github.com/lcobucci/jwt/tree/4.2.1"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -2616,7 +2616,7 @@
|
|||||||
"type": "patreon"
|
"type": "patreon"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2021-09-28T19:34:56+00:00"
|
"time": "2022-08-19T23:14:07+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "league/commonmark",
|
"name": "league/commonmark",
|
||||||
@ -3411,11 +3411,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "leenooks/laravel",
|
"name": "leenooks/laravel",
|
||||||
"version": "9.2.6",
|
"version": "9.2.7",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://dev.leenooks.net/leenooks/laravel",
|
"url": "https://dev.leenooks.net/leenooks/laravel",
|
||||||
"reference": "e3ebef90d94e8f04dfeafd1cff3607204bd5e989"
|
"reference": "05d3caddf49818098a691706df64f1decff08a84"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"creativeorange/gravatar": "^1.0",
|
"creativeorange/gravatar": "^1.0",
|
||||||
@ -3454,7 +3454,7 @@
|
|||||||
"laravel",
|
"laravel",
|
||||||
"leenooks"
|
"leenooks"
|
||||||
],
|
],
|
||||||
"time": "2022-08-19T05:11:09+00:00"
|
"time": "2022-08-20T13:06:26+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "leenooks/laravel-theme",
|
"name": "leenooks/laravel-theme",
|
||||||
@ -9191,23 +9191,23 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/php-code-coverage",
|
"name": "phpunit/php-code-coverage",
|
||||||
"version": "9.2.15",
|
"version": "9.2.16",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
||||||
"reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f"
|
"reference": "2593003befdcc10db5e213f9f28814f5aa8ac073"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2e9da11878c4202f97915c1cb4bb1ca318a63f5f",
|
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2593003befdcc10db5e213f9f28814f5aa8ac073",
|
||||||
"reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f",
|
"reference": "2593003befdcc10db5e213f9f28814f5aa8ac073",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"ext-dom": "*",
|
"ext-dom": "*",
|
||||||
"ext-libxml": "*",
|
"ext-libxml": "*",
|
||||||
"ext-xmlwriter": "*",
|
"ext-xmlwriter": "*",
|
||||||
"nikic/php-parser": "^4.13.0",
|
"nikic/php-parser": "^4.14",
|
||||||
"php": ">=7.3",
|
"php": ">=7.3",
|
||||||
"phpunit/php-file-iterator": "^3.0.3",
|
"phpunit/php-file-iterator": "^3.0.3",
|
||||||
"phpunit/php-text-template": "^2.0.2",
|
"phpunit/php-text-template": "^2.0.2",
|
||||||
@ -9256,7 +9256,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
|
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
|
||||||
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.15"
|
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.16"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -9264,7 +9264,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-03-07T09:28:20+00:00"
|
"time": "2022-08-20T05:26:47+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/php-file-iterator",
|
"name": "phpunit/php-file-iterator",
|
||||||
@ -9509,16 +9509,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/phpunit",
|
"name": "phpunit/phpunit",
|
||||||
"version": "9.5.21",
|
"version": "9.5.22",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||||
"reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1"
|
"reference": "e329ac6e8744f461518272612a479fde958752fe"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0e32b76be457de00e83213528f6bb37e2a38fcb1",
|
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e329ac6e8744f461518272612a479fde958752fe",
|
||||||
"reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1",
|
"reference": "e329ac6e8744f461518272612a479fde958752fe",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -9595,7 +9595,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
||||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.21"
|
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.22"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -9607,7 +9607,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-06-19T12:14:25+00:00"
|
"time": "2022-08-20T08:25:46+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/cli-parser",
|
"name": "sebastian/cli-parser",
|
||||||
|
@ -14,12 +14,6 @@
|
|||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('main-content')
|
@section('main-content')
|
||||||
<div class="row">
|
|
||||||
<div class="col-12">
|
|
||||||
@include('adminlte::widget.status')
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
<!-- $o = Product::class -->
|
<!-- $o = Product::class -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<h3>Product Details</h3>
|
<h3>Product Details @include('adminlte::widget.success_button')</h3>
|
||||||
<hr>
|
<hr>
|
||||||
@if(session()->has('success'))
|
|
||||||
<span class="ml-3 pt-0 pb-0 pr-1 pl-1 btn btn-outline-success"><small>{{ session()->get('success') }}</small></span>
|
|
||||||
@endif
|
|
||||||
|
|
||||||
<form class="g-0 needs-validation" method="POST" enctype="multipart/form-data" role="form">
|
<form class="g-0 needs-validation" method="POST" enctype="multipart/form-data" role="form">
|
||||||
@csrf
|
@csrf
|
||||||
@ -16,7 +14,7 @@
|
|||||||
@include('adminlte::widget.form_text',[
|
@include('adminlte::widget.form_text',[
|
||||||
'label'=>'Product Name',
|
'label'=>'Product Name',
|
||||||
'icon'=>'fas fa-atom',
|
'icon'=>'fas fa-atom',
|
||||||
'id'=>'name',
|
'id'=>'description.name',
|
||||||
'old'=>'description.name',
|
'old'=>'description.name',
|
||||||
'name'=>'description[name]',
|
'name'=>'description[name]',
|
||||||
'value'=>$o->name ?? '',
|
'value'=>$o->name ?? '',
|
||||||
@ -70,6 +68,20 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<!-- Accounting -->
|
||||||
|
<div class="col-12 col-sm-9 col-md-12 col-xl-6">
|
||||||
|
@include('adminlte::widget.form_text',[
|
||||||
|
'label'=>'Accounting',
|
||||||
|
'icon'=>'fas fa-calculator',
|
||||||
|
'id'=>'accounting',
|
||||||
|
'old'=>'accounting',
|
||||||
|
'name'=>'accounting',
|
||||||
|
'value'=>$o->accounting ?? '',
|
||||||
|
])
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<!-- Buttons -->
|
<!-- Buttons -->
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
|
@ -74,7 +74,9 @@ Route::group(['middleware'=>['theme:adminlte-be','auth','role:wholesaler'],'pref
|
|||||||
|
|
||||||
// Product Setup
|
// Product Setup
|
||||||
Route::match(['get'],'product',[ProductController::class,'home']);
|
Route::match(['get'],'product',[ProductController::class,'home']);
|
||||||
Route::match(['get','post'],'product/details/{o?}',[ProductController::class,'details'])
|
Route::get('product/details/{o?}',[ProductController::class,'details'])
|
||||||
|
->where('o','[0-9]+');
|
||||||
|
Route::post('product/details/{o?}',[ProductController::class,'details_addedit'])
|
||||||
->where('o','[0-9]+');
|
->where('o','[0-9]+');
|
||||||
|
|
||||||
// Supplier Setup
|
// Supplier Setup
|
||||||
|
Loading…
Reference in New Issue
Block a user