from home
This commit is contained in:
parent
fe0eded740
commit
5663666328
91
DataTables/CardboardDataTable.php
Normal file
91
DataTables/CardboardDataTable.php
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Cetaklabel\DataTables;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Builder as QueryBuilder;
|
||||||
|
use Modules\Cetaklabel\Entities\Cardboard;
|
||||||
|
use Yajra\DataTables\EloquentDataTable;
|
||||||
|
use Yajra\DataTables\Html\Builder as HtmlBuilder;
|
||||||
|
use Yajra\DataTables\Html\Column;
|
||||||
|
use Yajra\DataTables\Services\DataTable;
|
||||||
|
|
||||||
|
class CardboardDataTable extends DataTable
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Build the DataTable class.
|
||||||
|
*
|
||||||
|
* @param QueryBuilder $query Results from query() method.
|
||||||
|
*/
|
||||||
|
public function dataTable(QueryBuilder $query)
|
||||||
|
: EloquentDataTable
|
||||||
|
{
|
||||||
|
return (new EloquentDataTable($query))
|
||||||
|
->filter(function ($query) {
|
||||||
|
if (request()->has('search')) {
|
||||||
|
$search = request()->get('search');
|
||||||
|
$query->where('kode', 'like', "%" . $search['value'] . "%")
|
||||||
|
->orWhere('name', 'like', "%" . $search['value'] . "%");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
->addIndexColumn()
|
||||||
|
->addColumn('action', 'cetaklabel::cardboard._action')
|
||||||
|
->setRowId('id');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the query source of dataTable.
|
||||||
|
*/
|
||||||
|
public function query(Cardboard $model)
|
||||||
|
: QueryBuilder
|
||||||
|
{
|
||||||
|
return $model->newQuery();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Optional method if you want to use the html builder.
|
||||||
|
*/
|
||||||
|
public function html()
|
||||||
|
: HtmlBuilder
|
||||||
|
{
|
||||||
|
return $this->builder()
|
||||||
|
->setTableId('cardboard-table')
|
||||||
|
->columns($this->getColumns())
|
||||||
|
->minifiedAjax()
|
||||||
|
->stateSave(false)
|
||||||
|
->responsive()
|
||||||
|
->autoWidth(true)
|
||||||
|
->orderBy(1)
|
||||||
|
->parameters([
|
||||||
|
'scrollX' => true,
|
||||||
|
'drawCallback' => 'function() { KTMenu.createInstances(); }',
|
||||||
|
])
|
||||||
|
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the dataTable columns definition.
|
||||||
|
*/
|
||||||
|
public function getColumns()
|
||||||
|
: array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false),
|
||||||
|
Column::make('kode'),
|
||||||
|
Column::make('name'),
|
||||||
|
Column::computed('action')
|
||||||
|
->exportable(false)
|
||||||
|
->printable(false)
|
||||||
|
->width(60)
|
||||||
|
->addClass('text-center'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the filename for export.
|
||||||
|
*/
|
||||||
|
protected function filename()
|
||||||
|
: string
|
||||||
|
{
|
||||||
|
return 'Cardboard_' . date('YmdHis');
|
||||||
|
}
|
||||||
|
}
|
@ -17,13 +17,13 @@
|
|||||||
$table->string('name', 50);
|
$table->string('name', 50);
|
||||||
$table->string('status', 1)->default(0);
|
$table->string('status', 1)->default(0);
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
$table->timestamp('authorized_at')->nullable();
|
$table->timestamp('approved_at')->nullable();
|
||||||
$table->softDeletes();
|
$table->softDeletes();
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
$table->unsignedBigInteger('created_by')->nullable();
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
$table->unsignedBigInteger('updated_by')->nullable();
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
$table->unsignedBigInteger('deleted_by')->nullable();
|
||||||
$table->unsignedBigInteger('authorized_by')->nullable();
|
$table->unsignedBigInteger('approved_by')->nullable();
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -18,13 +18,13 @@
|
|||||||
$table->string('name', 50);
|
$table->string('name', 50);
|
||||||
$table->string('status', 1)->default(0);
|
$table->string('status', 1)->default(0);
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
$table->timestamp('authorized_at')->nullable();
|
$table->timestamp('approved_at')->nullable();
|
||||||
$table->softDeletes();
|
$table->softDeletes();
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
$table->unsignedBigInteger('created_by')->nullable();
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
$table->unsignedBigInteger('updated_by')->nullable();
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
$table->unsignedBigInteger('deleted_by')->nullable();
|
||||||
$table->unsignedBigInteger('authorized_by')->nullable();
|
$table->unsignedBigInteger('approved_by')->nullable();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,13 +19,13 @@
|
|||||||
$table->string('name', 50);
|
$table->string('name', 50);
|
||||||
$table->string('status', 1)->default(0);
|
$table->string('status', 1)->default(0);
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
$table->timestamp('authorized_at')->nullable();
|
$table->timestamp('approved_at')->nullable();
|
||||||
$table->softDeletes();
|
$table->softDeletes();
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
$table->unsignedBigInteger('created_by')->nullable();
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
$table->unsignedBigInteger('updated_by')->nullable();
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
$table->unsignedBigInteger('deleted_by')->nullable();
|
||||||
$table->unsignedBigInteger('authorized_by')->nullable();
|
$table->unsignedBigInteger('approved_by')->nullable();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,13 +20,13 @@
|
|||||||
$table->string('name', 50);
|
$table->string('name', 50);
|
||||||
$table->string('status', 1)->default(0);
|
$table->string('status', 1)->default(0);
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
$table->timestamp('authorized_at')->nullable();
|
$table->timestamp('approved_at')->nullable();
|
||||||
$table->softDeletes();
|
$table->softDeletes();
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
$table->unsignedBigInteger('created_by')->nullable();
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
$table->unsignedBigInteger('updated_by')->nullable();
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
$table->unsignedBigInteger('deleted_by')->nullable();
|
||||||
$table->unsignedBigInteger('authorized_by')->nullable();
|
$table->unsignedBigInteger('approved_by')->nullable();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,13 +21,13 @@
|
|||||||
$table->string('name');
|
$table->string('name');
|
||||||
$table->string('status', 1)->default(0);
|
$table->string('status', 1)->default(0);
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
$table->timestamp('authorized_at')->nullable();
|
$table->timestamp('approved_at')->nullable();
|
||||||
$table->softDeletes();
|
$table->softDeletes();
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
$table->unsignedBigInteger('created_by')->nullable();
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
$table->unsignedBigInteger('updated_by')->nullable();
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
$table->unsignedBigInteger('deleted_by')->nullable();
|
||||||
$table->unsignedBigInteger('authorized_by')->nullable();
|
$table->unsignedBigInteger('approved_by')->nullable();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,13 +17,13 @@
|
|||||||
$table->string('name');
|
$table->string('name');
|
||||||
$table->string('status', 1)->default(0);
|
$table->string('status', 1)->default(0);
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
$table->timestamp('authorized_at')->nullable();
|
$table->timestamp('approved_at')->nullable();
|
||||||
$table->softDeletes();
|
$table->softDeletes();
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
$table->unsignedBigInteger('created_by')->nullable();
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
$table->unsignedBigInteger('updated_by')->nullable();
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
$table->unsignedBigInteger('deleted_by')->nullable();
|
||||||
$table->unsignedBigInteger('authorized_by')->nullable();
|
$table->unsignedBigInteger('approved_by')->nullable();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,13 +18,13 @@
|
|||||||
$table->string('description')->nullable();
|
$table->string('description')->nullable();
|
||||||
$table->string('status', 1)->default(0);
|
$table->string('status', 1)->default(0);
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
$table->timestamp('authorized_at')->nullable();
|
$table->timestamp('approved_at')->nullable();
|
||||||
$table->softDeletes();
|
$table->softDeletes();
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
$table->unsignedBigInteger('created_by')->nullable();
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
$table->unsignedBigInteger('updated_by')->nullable();
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
$table->unsignedBigInteger('deleted_by')->nullable();
|
||||||
$table->unsignedBigInteger('authorized_by')->nullable();
|
$table->unsignedBigInteger('approved_by')->nullable();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,13 +32,13 @@
|
|||||||
$table->string('kode_odner', 8);
|
$table->string('kode_odner', 8);
|
||||||
$table->string('status')->default(0)->nullable();
|
$table->string('status')->default(0)->nullable();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
$table->timestamp('authorized_at')->nullable();
|
$table->timestamp('approved_at')->nullable();
|
||||||
$table->softDeletes();
|
$table->softDeletes();
|
||||||
|
|
||||||
$table->unsignedBigInteger('created_by')->nullable();
|
$table->unsignedBigInteger('created_by')->nullable();
|
||||||
$table->unsignedBigInteger('updated_by')->nullable();
|
$table->unsignedBigInteger('updated_by')->nullable();
|
||||||
$table->unsignedBigInteger('deleted_by')->nullable();
|
$table->unsignedBigInteger('deleted_by')->nullable();
|
||||||
$table->unsignedBigInteger('authorized_by')->nullable();
|
$table->unsignedBigInteger('approved_by')->nullable();
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Modules\Cetaklabel\Entities\Directorat;
|
||||||
|
use Modules\Cetaklabel\Entities\SubDirectorat;
|
||||||
|
|
||||||
|
return new class extends Migration {
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('cardboards', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->foreignIdFor(Directorat::class)->constrained()->onDelete('cascade');
|
||||||
|
$table->foreignIdFor(SubDirectorat::class)->constrained()->onDelete('cascade');
|
||||||
|
$table->string('kode', 15);
|
||||||
|
$table->string('sequence', 3)->nullable();
|
||||||
|
$table->string('name', 100)->nullable();
|
||||||
|
$table->string('status')->default(0)->nullable();
|
||||||
|
$table->timestamps();
|
||||||
|
$table->timestamp('approved_at')->nullable();
|
||||||
|
$table->softDeletes();
|
||||||
|
|
||||||
|
$table->unsignedBigInteger('created_by')->nullable();
|
||||||
|
$table->unsignedBigInteger('updated_by')->nullable();
|
||||||
|
$table->unsignedBigInteger('deleted_by')->nullable();
|
||||||
|
$table->unsignedBigInteger('approved_by')->nullable();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('cardboards');
|
||||||
|
}
|
||||||
|
};
|
@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Modules\Cetaklabel\Entities\Document;
|
||||||
|
|
||||||
|
return new class extends Migration {
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('cardboard_details', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->foreignId('cardboard_id')->constrained('cardboards')->onDelete('cascade');
|
||||||
|
$table->foreignIdFor(Document::class)->constrained()->onDelete('cascade');
|
||||||
|
$table->string('status', 1)->default(0)->nullable();
|
||||||
|
$table->timestamps();
|
||||||
|
$table->timestamp('approved_at')->nullable();
|
||||||
|
$table->softDeletes();
|
||||||
|
|
||||||
|
$table->unsignedBigInteger('created_by')->nullable();
|
||||||
|
$table->unsignedBigInteger('updated_by')->nullable();
|
||||||
|
$table->unsignedBigInteger('deleted_by')->nullable();
|
||||||
|
$table->unsignedBigInteger('approved_by')->nullable();
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('cardboard_details');
|
||||||
|
}
|
||||||
|
};
|
33
Entities/Cardboard.php
Normal file
33
Entities/Cardboard.php
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Cetaklabel\Entities;
|
||||||
|
|
||||||
|
class Cardboard extends BaseModel
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $table = 'cardboards';
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'directorat_id',
|
||||||
|
'sub_directorat_id',
|
||||||
|
'kode',
|
||||||
|
'name',
|
||||||
|
'sequence',
|
||||||
|
'status',
|
||||||
|
];
|
||||||
|
|
||||||
|
public function directorat()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Directorat::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sub_directorat()
|
||||||
|
{
|
||||||
|
return $this->hasMany(SubDirectorat::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function cardboard_detail()
|
||||||
|
{
|
||||||
|
return $this->hasMany(CardboardDetail::class);
|
||||||
|
}
|
||||||
|
}
|
24
Entities/CardboardDetail.php
Normal file
24
Entities/CardboardDetail.php
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Cetaklabel\Entities;
|
||||||
|
|
||||||
|
class CardboardDetail extends BaseModel
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $table = 'cardboard_details';
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'cardboard_id',
|
||||||
|
'document_id'
|
||||||
|
];
|
||||||
|
|
||||||
|
public function cardboard()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Cardboard::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function document()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Document::class);
|
||||||
|
}
|
||||||
|
}
|
@ -5,8 +5,8 @@
|
|||||||
use App\Http\Controllers\ApiController;
|
use App\Http\Controllers\ApiController;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Modules\Cetaklabel\Entities\Directorat;
|
use Modules\Cetaklabel\Entities\Directorat;
|
||||||
use Modules\Cetaklabel\Http\Requests\Directorat\StoreDirectoratRequest;
|
use Modules\Cetaklabel\Http\Requests\Directorat\StoreCardboardRequest;
|
||||||
use Modules\Cetaklabel\Http\Requests\Directorat\UpdateDirectoratRequest;
|
use Modules\Cetaklabel\Http\Requests\Directorat\UpdateCardboardRequest;
|
||||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||||
|
|
||||||
class DirectoratController extends ApiController
|
class DirectoratController extends ApiController
|
||||||
@ -30,7 +30,7 @@
|
|||||||
return $this->sendResponse($directorat, 'Directorat retrieved successfully.');
|
return $this->sendResponse($directorat, 'Directorat retrieved successfully.');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function store(StoreDirectoratRequest $request)
|
public function store(StoreCardboardRequest $request)
|
||||||
: JsonResponse
|
: JsonResponse
|
||||||
{
|
{
|
||||||
// Validate the request...
|
// Validate the request...
|
||||||
@ -50,7 +50,7 @@
|
|||||||
return $this->sendError('Directorat created failed.', 400);
|
return $this->sendError('Directorat created failed.', 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function update(UpdateDirectoratRequest $request, Directorat $directorat)
|
public function update(UpdateCardboardRequest $request, Directorat $directorat)
|
||||||
: JsonResponse
|
: JsonResponse
|
||||||
{
|
{
|
||||||
// Validate the request...
|
// Validate the request...
|
||||||
|
161
Http/Controllers/CardboardController.php
Normal file
161
Http/Controllers/CardboardController.php
Normal file
@ -0,0 +1,161 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Cetaklabel\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Exception;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Modules\Cetaklabel\DataTables\CardboardDataTable;
|
||||||
|
use Modules\Cetaklabel\Entities\Cardboard;
|
||||||
|
use Modules\Cetaklabel\Http\Requests\Cardboard\StoreCardboardRequest;
|
||||||
|
use Modules\Cetaklabel\Http\Requests\Cardboard\UpdateCardboardRequest;
|
||||||
|
|
||||||
|
class CardboardController extends Controller
|
||||||
|
{
|
||||||
|
public $user;
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->middleware(function ($request, $next) {
|
||||||
|
$this->user = Auth::guard('web')->user();
|
||||||
|
return $next($request);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display a listing of the Cardboards.
|
||||||
|
*
|
||||||
|
* @param \App\DataTables\CardboardDataTable $dataTable
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function index(CardboardDataTable $dataTable, Request $request)
|
||||||
|
{
|
||||||
|
if (is_null($this->user) || !$this->user->can('document.read')) {
|
||||||
|
abort(403, 'Sorry !! You are Unauthorized to view any document data !');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $dataTable->render('cetaklabel::directorat.index');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created Cardboard in storage.
|
||||||
|
*
|
||||||
|
* @param \App\Http\Requests\StoreCardboardRequest $request
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function store(StoreCardboardRequest $request)
|
||||||
|
{
|
||||||
|
if (is_null($this->user) || !$this->user->can('document.create')) {
|
||||||
|
abort(403, 'Sorry !! You are Unauthorized to create any document data !');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate the request...
|
||||||
|
$validated = $request->validated();
|
||||||
|
|
||||||
|
// Store the Cardboard...
|
||||||
|
if ($validated) {
|
||||||
|
try {
|
||||||
|
Cardboard::create($validated);
|
||||||
|
echo json_encode(['status' => 'success', 'message' => 'Cardboard created successfully.']);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo json_encode(['status' => 'error', 'message' => 'Cardboard created failed.']);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo json_encode(['status' => 'error', 'message' => 'Cardboard created failed.']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new Cardboard.
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
if (is_null($this->user) || !$this->user->can('document.create')) {
|
||||||
|
abort(403, 'Sorry !! You are Unauthorized to create any document data !');
|
||||||
|
}
|
||||||
|
|
||||||
|
abort(404);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the specified Cardboard.
|
||||||
|
*
|
||||||
|
* @param \Modules\Cetaklabel\Entities\Cardboard $cardboard
|
||||||
|
*/
|
||||||
|
public function show(Cardboard $cardboard)
|
||||||
|
{
|
||||||
|
if (is_null($this->user) || !$this->user->can('document.read')) {
|
||||||
|
abort(403, 'Sorry !! You are Unauthorized to view any document data !');
|
||||||
|
}
|
||||||
|
abort(404);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified Cardboard.
|
||||||
|
*
|
||||||
|
* @param $id
|
||||||
|
*/
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
if (is_null($this->user) || !$this->user->can('document.update')) {
|
||||||
|
abort(403, 'Sorry !! You are Unauthorized to update any document data !');
|
||||||
|
}
|
||||||
|
|
||||||
|
$cardboard = Cardboard::find($id);
|
||||||
|
echo json_encode($cardboard);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified Cardboard in storage.
|
||||||
|
*
|
||||||
|
* @param \App\Http\Requests\UpdateCardboardRequest $request
|
||||||
|
* @param \Modules\Cetaklabel\Entities\Cardboard $cardboard
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function update(UpdateCardboardRequest $request, Cardboard $cardboard)
|
||||||
|
{
|
||||||
|
if (is_null($this->user) || !$this->user->can('document.update')) {
|
||||||
|
abort(403, 'Sorry !! You are Unauthorized to update any document data !');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate the request...
|
||||||
|
$validated = $request->validated();
|
||||||
|
|
||||||
|
// Update the Cardboard...
|
||||||
|
if ($validated) {
|
||||||
|
try {
|
||||||
|
$cardboard->update($validated);
|
||||||
|
|
||||||
|
echo json_encode(['status' => 'success', 'message' => 'Cardboard updated successfully.']);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo json_encode(['status' => 'error', 'message' => 'Cardboard updated failed.']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo json_encode(['status' => 'error', 'message' => 'Cardboard updated failed.']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified Cardboard from storage.
|
||||||
|
*
|
||||||
|
* @param \Modules\Cetaklabel\Entities\Cardboard $cardboard
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function destroy(Cardboard $cardboard)
|
||||||
|
{
|
||||||
|
if (is_null($this->user) || !$this->user->can('document.delete')) {
|
||||||
|
abort(403, 'Sorry !! You are Unauthorized to delete any document data !');
|
||||||
|
}
|
||||||
|
|
||||||
|
$cardboard->delete();
|
||||||
|
echo json_encode(['status' => 'success', 'message' => 'Cardboard deleted successfully.']);
|
||||||
|
}
|
||||||
|
}
|
@ -8,8 +8,8 @@
|
|||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Modules\Cetaklabel\DataTables\DirectoratDataTable;
|
use Modules\Cetaklabel\DataTables\DirectoratDataTable;
|
||||||
use Modules\Cetaklabel\Entities\Directorat;
|
use Modules\Cetaklabel\Entities\Directorat;
|
||||||
use Modules\Cetaklabel\Http\Requests\Directorat\StoreDirectoratRequest;
|
use Modules\Cetaklabel\Http\Requests\Directorat\StoreCardboardRequest;
|
||||||
use Modules\Cetaklabel\Http\Requests\Directorat\UpdateDirectoratRequest;
|
use Modules\Cetaklabel\Http\Requests\Directorat\UpdateCardboardRequest;
|
||||||
|
|
||||||
class DirectoratController extends Controller
|
class DirectoratController extends Controller
|
||||||
{
|
{
|
||||||
@ -46,7 +46,7 @@
|
|||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function store(StoreDirectoratRequest $request)
|
public function store(StoreCardboardRequest $request)
|
||||||
{
|
{
|
||||||
if (is_null($this->user) || !$this->user->can('master.create')) {
|
if (is_null($this->user) || !$this->user->can('master.create')) {
|
||||||
abort(403, 'Sorry !! You are Unauthorized to create any master data !');
|
abort(403, 'Sorry !! You are Unauthorized to create any master data !');
|
||||||
@ -116,7 +116,7 @@
|
|||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function update(UpdateDirectoratRequest $request, Directorat $directorat)
|
public function update(UpdateCardboardRequest $request, Directorat $directorat)
|
||||||
{
|
{
|
||||||
if (is_null($this->user) || !$this->user->can('master.update')) {
|
if (is_null($this->user) || !$this->user->can('master.update')) {
|
||||||
abort(403, 'Sorry !! You are Unauthorized to update any master data !');
|
abort(403, 'Sorry !! You are Unauthorized to update any master data !');
|
||||||
|
67
Http/Requests/Cardboard/StoreCardboardRequest.php
Normal file
67
Http/Requests/Cardboard/StoreCardboardRequest.php
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Cetaklabel\Http\Requests\Cardboard;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Http\Exceptions\HttpResponseException;
|
||||||
|
use Illuminate\Validation\ValidationException;
|
||||||
|
use Illuminate\Validation\Validator;
|
||||||
|
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||||
|
|
||||||
|
class StoreCardboardRequest extends FormRequest
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Determine if the user is authorized to make this request.
|
||||||
|
*/
|
||||||
|
public function authorize()
|
||||||
|
: bool
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the validation rules that apply to the request.
|
||||||
|
*
|
||||||
|
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
|
||||||
|
*/
|
||||||
|
public function rules()
|
||||||
|
: array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'kode' => 'required|stringunique:cardboards,kode',
|
||||||
|
'name' => 'required|string|max:50'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configure the validator instance.
|
||||||
|
*/
|
||||||
|
public function withValidator(Validator $validator)
|
||||||
|
: void
|
||||||
|
{
|
||||||
|
$validator->after(function (Validator $validator) {
|
||||||
|
if ($validator->errors()->any()) {
|
||||||
|
$errors = json_decode($validator->errors()->toJson(), true);
|
||||||
|
|
||||||
|
|
||||||
|
foreach ($errors as $key => $value) {
|
||||||
|
flash($value[0]);
|
||||||
|
}
|
||||||
|
return redirect()->route('cardboard.index')->with('error', 'Cardboard created failed.');
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function failedValidation(Validator|\Illuminate\Contracts\Validation\Validator $validator)
|
||||||
|
: JsonResponse
|
||||||
|
{
|
||||||
|
$errors = (new ValidationException($validator))->errors();
|
||||||
|
|
||||||
|
throw new HttpResponseException(response()->json([
|
||||||
|
'success' => false,
|
||||||
|
'errors' => $errors,
|
||||||
|
'messages' => 'Cardboard created failed.'
|
||||||
|
], JsonResponse::HTTP_UNPROCESSABLE_ENTITY));
|
||||||
|
}
|
||||||
|
}
|
65
Http/Requests/Cardboard/UpdateCardboardRequest.php
Normal file
65
Http/Requests/Cardboard/UpdateCardboardRequest.php
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Cetaklabel\Http\Requests\Cardboard;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Http\Exceptions\HttpResponseException;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use Illuminate\Validation\ValidationException;
|
||||||
|
use Illuminate\Validation\Validator;
|
||||||
|
|
||||||
|
class UpdateCardboardRequest extends FormRequest
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Determine if the user is authorized to make this request.
|
||||||
|
*/
|
||||||
|
public function authorize()
|
||||||
|
: bool
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the validation rules that apply to the request.
|
||||||
|
*
|
||||||
|
* @return array<string, \Illuminate\Contracts\Validation\Rule|array|string>
|
||||||
|
*/
|
||||||
|
public function rules()
|
||||||
|
: array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'kode' => 'required|string|unique:cardboards,kode,' . $this->cardboard->id,
|
||||||
|
'name' => 'required|string|max:50'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configure the validator instance.
|
||||||
|
*/
|
||||||
|
public function withValidator(Validator $validator)
|
||||||
|
: void
|
||||||
|
{
|
||||||
|
$validator->after(function (Validator $validator) {
|
||||||
|
if ($validator->errors()->any()) {
|
||||||
|
$error = json_decode($validator->errors()->toJson(), true);
|
||||||
|
foreach ($error as $key => $value) {
|
||||||
|
flash($value[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('cardboard.index')->with('error', 'Cardboard updated failed.');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function failedValidation(Validator|\Illuminate\Contracts\Validation\Validator $validator)
|
||||||
|
: JsonResponse
|
||||||
|
{
|
||||||
|
$errors = (new ValidationException($validator))->errors();
|
||||||
|
|
||||||
|
throw new HttpResponseException(response()->json([
|
||||||
|
'success' => false,
|
||||||
|
'errors' => $errors,
|
||||||
|
'messages' => 'Cardboard updated failed.'
|
||||||
|
], JsonResponse::HTTP_UNPROCESSABLE_ENTITY));
|
||||||
|
}
|
||||||
|
}
|
@ -36,6 +36,7 @@
|
|||||||
Route::resource('document-type', DocumentTypeController::class);
|
Route::resource('document-type', DocumentTypeController::class);
|
||||||
|
|
||||||
Route::resource('document', DocumentController::class);
|
Route::resource('document', DocumentController::class);
|
||||||
|
Route::resource('dus', DocumentController::class);
|
||||||
Route::get('document-download/{id}', [DocumentController::class, 'download'])->name('document.download');
|
Route::get('document-download/{id}', [DocumentController::class, 'download'])->name('document.download');
|
||||||
Route::get('document-label/{id}', [DocumentController::class, 'label'])->name('document.label');
|
Route::get('document-label/{id}', [DocumentController::class, 'label'])->name('document.label');
|
||||||
Route::get('document-odner/{id}', [DocumentController::class, 'odner'])->name('document.odner');
|
Route::get('document-odner/{id}', [DocumentController::class, 'odner'])->name('document.odner');
|
||||||
|
Loading…
Reference in New Issue
Block a user