diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..a0177d4 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "Modules/CetakLabel/cetaklabel-module"] + path = Modules/CetakLabel/cetaklabel-module + url = https://git.putrakuningan.com/putrakuningan/cetaklabel-module diff --git a/app/DataTables/DocumentDataTable.php b/Modules/CetakLabel/DataTables/DocumentDataTable.php similarity index 94% rename from app/DataTables/DocumentDataTable.php rename to Modules/CetakLabel/DataTables/DocumentDataTable.php index d26aa2a..b5244b9 100644 --- a/app/DataTables/DocumentDataTable.php +++ b/Modules/CetakLabel/DataTables/DocumentDataTable.php @@ -1,15 +1,12 @@ sub_sub_job->name; }) ->addIndexColumn() - ->addColumn('action', 'pages.app.document._action') + ->addColumn('action', 'cetaklabel::app.document._action') ->setRowId('id'); } diff --git a/app/DataTables/DocumentTypeDataTable.php b/Modules/CetakLabel/DataTables/DocumentTypeDataTable.php similarity index 90% rename from app/DataTables/DocumentTypeDataTable.php rename to Modules/CetakLabel/DataTables/DocumentTypeDataTable.php index f4b9d41..9a04245 100644 --- a/app/DataTables/DocumentTypeDataTable.php +++ b/Modules/CetakLabel/DataTables/DocumentTypeDataTable.php @@ -1,15 +1,12 @@ addIndexColumn() - ->addColumn('action', 'pages.app.document-type._action') + ->addColumn('action', 'cetaklabel::masters.document-type._action') ->setRowId('id'); } diff --git a/app/DataTables/JobDataTable.php b/Modules/CetakLabel/DataTables/JobDataTable.php similarity index 92% rename from app/DataTables/JobDataTable.php rename to Modules/CetakLabel/DataTables/JobDataTable.php index fffd4a2..8596c11 100644 --- a/app/DataTables/JobDataTable.php +++ b/Modules/CetakLabel/DataTables/JobDataTable.php @@ -1,15 +1,12 @@ addColumn('sub_directorat', function ($job) { return $job->subDirectorat->name; }) - ->addColumn('action', 'pages.masters.job._action') + ->addColumn('action', 'cetaklabel::masters.job._action') ->setRowId('id'); } diff --git a/app/DataTables/SpecialCodeDataTable.php b/Modules/CetakLabel/DataTables/SpecialCodeDataTable.php similarity index 90% rename from app/DataTables/SpecialCodeDataTable.php rename to Modules/CetakLabel/DataTables/SpecialCodeDataTable.php index 65056c6..695c24a 100644 --- a/app/DataTables/SpecialCodeDataTable.php +++ b/Modules/CetakLabel/DataTables/SpecialCodeDataTable.php @@ -1,15 +1,12 @@ addIndexColumn() - ->addColumn('action', 'pages.masters.special-code._action') + ->addColumn('action', 'cetaklabel::masters.special-code._action') ->setRowId('id'); } diff --git a/app/DataTables/SubDirectoratDataTable.php b/Modules/CetakLabel/DataTables/SubDirectoratDataTable.php similarity index 91% rename from app/DataTables/SubDirectoratDataTable.php rename to Modules/CetakLabel/DataTables/SubDirectoratDataTable.php index cbab504..5eb4559 100644 --- a/app/DataTables/SubDirectoratDataTable.php +++ b/Modules/CetakLabel/DataTables/SubDirectoratDataTable.php @@ -1,15 +1,12 @@ addColumn('directorat', function ($subDirectorat) { return $subDirectorat->directorat->name; }) - ->addColumn('action', 'pages.masters.sub-directorat._action') + ->addColumn('action', 'cetaklabel::masters.sub-directorat._action') ->setRowId('id'); } diff --git a/app/DataTables/SubJobDataTable.php b/Modules/CetakLabel/DataTables/SubJobDataTable.php similarity index 90% rename from app/DataTables/SubJobDataTable.php rename to Modules/CetakLabel/DataTables/SubJobDataTable.php index 7b80948..39737f0 100644 --- a/app/DataTables/SubJobDataTable.php +++ b/Modules/CetakLabel/DataTables/SubJobDataTable.php @@ -1,15 +1,12 @@ where('kode', 'like', "%" . $search['value'] . "%") ->orWhere('name', 'like', "%" . $search['value'] . "%") ->orWhereRelation('directorat', 'name', 'like', '%'.$search['value'].'%') - ->orWhereRelation('subDirectorat', 'name', 'like', '%'.$search['value'].'%') + ->orWhereRelation('sub_directorat', 'name', 'like', '%'.$search['value'].'%') ->orWhereRelation('job', 'name', 'like', '%'.$search['value'].'%'); } }) @@ -42,7 +39,7 @@ class SubJobDataTable extends DataTable ->addColumn('job', function ($subJob) { return $subJob->job->name; }) - ->addColumn('action', 'pages.masters.sub-job._action') + ->addColumn('action', 'cetaklabel::masters.sub-job._action') ->setRowId('id'); } diff --git a/app/DataTables/SubSubJobDataTable.php b/Modules/CetakLabel/DataTables/SubSubJobDataTable.php similarity index 90% rename from app/DataTables/SubSubJobDataTable.php rename to Modules/CetakLabel/DataTables/SubSubJobDataTable.php index 6edc8e0..b1787ed 100644 --- a/app/DataTables/SubSubJobDataTable.php +++ b/Modules/CetakLabel/DataTables/SubSubJobDataTable.php @@ -1,15 +1,12 @@ where('kode', 'like', "%" . $search['value'] . "%") ->orWhere('name', 'like', "%" . $search['value'] . "%") ->orWhereRelation('directorat', 'name', 'like', '%'.$search['value'].'%') - ->orWhereRelation('subDirectorat', 'name', 'like', '%'.$search['value'].'%') + ->orWhereRelation('sub_directorat', 'name', 'like', '%'.$search['value'].'%') ->orWhereRelation('job', 'name', 'like', '%'.$search['value'].'%') ->orWhereRelation('subJob', 'name', 'like', '%'.$search['value'].'%'); } @@ -46,7 +43,7 @@ class SubSubJobDataTable extends DataTable ->addColumn('sub_job', function ($subJob) { return $subJob->subJob->name; }) - ->addColumn('action', 'pages.masters.sub-sub-job._action') + ->addColumn('action', 'cetaklabel::masters.sub-sub-job._action') ->setRowId('id'); } diff --git a/database/migrations/2023_04_10_024731_create_sub_directorats_table.php b/Modules/CetakLabel/Database/Migrations/2023_04_10_024731_create_sub_directorats_table.php similarity index 100% rename from database/migrations/2023_04_10_024731_create_sub_directorats_table.php rename to Modules/CetakLabel/Database/Migrations/2023_04_10_024731_create_sub_directorats_table.php diff --git a/database/migrations/2023_04_10_024809_create_jobs_table.php b/Modules/CetakLabel/Database/Migrations/2023_04_10_024809_create_jobs_table.php similarity index 100% rename from database/migrations/2023_04_10_024809_create_jobs_table.php rename to Modules/CetakLabel/Database/Migrations/2023_04_10_024809_create_jobs_table.php diff --git a/database/migrations/2023_04_10_024820_create_sub_jobs_table.php b/Modules/CetakLabel/Database/Migrations/2023_04_10_024820_create_sub_jobs_table.php similarity index 100% rename from database/migrations/2023_04_10_024820_create_sub_jobs_table.php rename to Modules/CetakLabel/Database/Migrations/2023_04_10_024820_create_sub_jobs_table.php diff --git a/database/migrations/2023_04_14_034926_create_sub_sub_jobs_table.php b/Modules/CetakLabel/Database/Migrations/2023_04_14_034926_create_sub_sub_jobs_table.php similarity index 100% rename from database/migrations/2023_04_14_034926_create_sub_sub_jobs_table.php rename to Modules/CetakLabel/Database/Migrations/2023_04_14_034926_create_sub_sub_jobs_table.php diff --git a/database/migrations/2023_04_17_130450_create_document_types_table.php b/Modules/CetakLabel/Database/Migrations/2023_04_17_130450_create_document_types_table.php similarity index 100% rename from database/migrations/2023_04_17_130450_create_document_types_table.php rename to Modules/CetakLabel/Database/Migrations/2023_04_17_130450_create_document_types_table.php diff --git a/database/migrations/2023_04_17_130450_create_special_codes_table.php b/Modules/CetakLabel/Database/Migrations/2023_04_17_130450_create_special_codes_table.php similarity index 100% rename from database/migrations/2023_04_17_130450_create_special_codes_table.php rename to Modules/CetakLabel/Database/Migrations/2023_04_17_130450_create_special_codes_table.php diff --git a/database/migrations/2023_04_17_135901_create_documents_table.php b/Modules/CetakLabel/Database/Migrations/2023_04_17_135901_create_documents_table.php similarity index 77% rename from database/migrations/2023_04_17_135901_create_documents_table.php rename to Modules/CetakLabel/Database/Migrations/2023_04_17_135901_create_documents_table.php index 769d506..c8a9ec1 100644 --- a/database/migrations/2023_04_17_135901_create_documents_table.php +++ b/Modules/CetakLabel/Database/Migrations/2023_04_17_135901_create_documents_table.php @@ -1,16 +1,16 @@ '01', - 'name' => 'Direktorat Jenderal Perhubungan Darat', - ]); + /** + * Run the database seeds. + * + * @return void + */ + public function run(Generator $faker) + { + $direktorat = Directorat::create ([ + 'kode' => '01', + 'name' => 'Direktorat Jenderal Perhubungan Darat', + ]); - $subdirektorat = SubDirectorat::create([ - 'kode' => '01', - 'name' => 'Subdirektorat Jenderal Perhubungan Darat', - 'directorat_id' => $direktorat->id, - ]); + $subdirektorat = SubDirectorat::create ([ + 'kode' => '01', + 'name' => 'Subdirektorat Jenderal Perhubungan Darat', + 'directorat_id' => $direktorat->id, + ]); - $job = Job::create([ - 'kode' => '01', - 'name' => 'Kepala Subdirektorat Jenderal Perhubungan Darat', - 'sub_directorat_id' => $subdirektorat->id, - 'directorat_id' => $direktorat->id, - ]); + $job = Job::create ([ + 'kode' => '01', + 'name' => 'Kepala Subdirektorat Jenderal Perhubungan Darat', + 'sub_directorat_id' => $subdirektorat->id, + 'directorat_id' => $direktorat->id, + ]); - $subjob = SubJob::create([ - 'kode' => '01', - 'name' => 'Kepala Subdirektorat Jenderal Perhubungan Darat', - 'job_id' => $job->id, - 'sub_directorat_id' => $subdirektorat->id, - 'directorat_id' => $direktorat->id, - ]); + $subjob = SubJob::create ([ + 'kode' => '01', + 'name' => 'Kepala Subdirektorat Jenderal Perhubungan Darat', + 'job_id' => $job->id, + 'sub_directorat_id' => $subdirektorat->id, + 'directorat_id' => $direktorat->id, + ]); - $subsubjob = SubSubJob::create([ - 'kode' => '01', - 'name' => 'Kepala Subdirektorat Jenderal Perhubungan Darat', - 'sub_job_id' => $subjob->id, - 'job_id' => $job->id, - 'sub_directorat_id' => $subdirektorat->id, - 'directorat_id' => $direktorat->id, - ]); + $subsubjob = SubSubJob::create ([ + 'kode' => '01', + 'name' => 'Kepala Subdirektorat Jenderal Perhubungan Darat', + 'sub_job_id' => $subjob->id, + 'job_id' => $job->id, + 'sub_directorat_id' => $subdirektorat->id, + 'directorat_id' => $direktorat->id, + ]); - $SpecialCode = SpecialCode::create([ - 'kode' => '00', - 'name' => 'Archive' - ]); + $SpecialCode = SpecialCode::create ([ + 'kode' => '00', + 'name' => 'Archive' + ]); - $SpecialCode = SpecialCode::create([ - 'kode' => '98', - 'name' => 'Softcopy' - ]); + $SpecialCode = SpecialCode::create ([ + 'kode' => '98', + 'name' => 'Softcopy' + ]); + } } -} diff --git a/Modules/CetakLabel/Entities/Directorat.php b/Modules/CetakLabel/Entities/Directorat.php index c1110af..5f5068f 100644 --- a/Modules/CetakLabel/Entities/Directorat.php +++ b/Modules/CetakLabel/Entities/Directorat.php @@ -2,18 +2,13 @@ namespace Modules\CetakLabel\Entities; - use App\Models\SubDirectorat; - class Directorat extends BaseModel { - protected $fillable = [ - 'kode', - 'name' - ]; + protected $fillable = ['kode', 'name']; - public function subDirectorat() + public function sub_directorat() { - return $this->hasMany(SubDirectorat::class); + return $this->hasMany (SubDirectorat::class); } } diff --git a/Modules/CetakLabel/Entities/Document.php b/Modules/CetakLabel/Entities/Document.php new file mode 100644 index 0000000..5da45c5 --- /dev/null +++ b/Modules/CetakLabel/Entities/Document.php @@ -0,0 +1,55 @@ +belongsTo (Directorat::class); + } + + public function sub_directorat() + { + return $this->belongsTo (SubDirectorat::class); + } + + public function job() + { + return $this->belongsTo (Job::class); + } + + public function sub_job() + { + return $this->belongsTo (SubJob::class); + } + + public function sub_sub_job() + { + return $this->belongsTo (SubSubJob::class); + } + + public function special_code() + { + return $this->belongsTo (SpecialCode::class); + } + + public function document_details() + { + return $this->hasMany (DocumentDetail::class); + } + } diff --git a/Modules/CetakLabel/Entities/DocumentDetail.php b/Modules/CetakLabel/Entities/DocumentDetail.php new file mode 100644 index 0000000..240c74e --- /dev/null +++ b/Modules/CetakLabel/Entities/DocumentDetail.php @@ -0,0 +1,36 @@ +belongsTo (Document::class); + } + + public function document_type() + { + return $this->belongsTo (DocumentType::class); + } + } diff --git a/Modules/CetakLabel/Entities/DocumentType.php b/Modules/CetakLabel/Entities/DocumentType.php new file mode 100644 index 0000000..481091a --- /dev/null +++ b/Modules/CetakLabel/Entities/DocumentType.php @@ -0,0 +1,16 @@ +hasMany (DocumentDetail::class); + } + } diff --git a/Modules/CetakLabel/Entities/Job.php b/Modules/CetakLabel/Entities/Job.php new file mode 100644 index 0000000..5d7fbc4 --- /dev/null +++ b/Modules/CetakLabel/Entities/Job.php @@ -0,0 +1,30 @@ +belongsTo (Directorat::class); + } + + public function sub_directorat() + { + return $this->belongsTo (SubDirectorat::class); + } + + public function sub_job() + { + return $this->hasMany (SubJob::class); + } + } diff --git a/Modules/CetakLabel/Entities/SpecialCode.php b/Modules/CetakLabel/Entities/SpecialCode.php new file mode 100644 index 0000000..00c00f5 --- /dev/null +++ b/Modules/CetakLabel/Entities/SpecialCode.php @@ -0,0 +1,17 @@ +hasMany (Document::class); + } + + } diff --git a/Modules/CetakLabel/Entities/SubDirectorat.php b/Modules/CetakLabel/Entities/SubDirectorat.php new file mode 100644 index 0000000..798beb2 --- /dev/null +++ b/Modules/CetakLabel/Entities/SubDirectorat.php @@ -0,0 +1,27 @@ +belongsTo (Directorat::class); + } + + public function sub_jobs() + { + return $this->hasMany (SubJob::class); + } + + public function jobs() + { + return $this->hasManyThrough (Job::class, SubJob::class); + } + } diff --git a/Modules/CetakLabel/Entities/SubJob.php b/Modules/CetakLabel/Entities/SubJob.php new file mode 100644 index 0000000..bb7d1f3 --- /dev/null +++ b/Modules/CetakLabel/Entities/SubJob.php @@ -0,0 +1,35 @@ +belongsTo (Directorat::class); + } + + public function sub_directorat() + { + return $this->belongsTo (SubDirectorat::class); + } + + public function job() + { + return $this->belongsTo (Job::class); + } + + public function sub_sub_job() + { + return $this->hasMany (SubSubJob::class); + } + } diff --git a/Modules/CetakLabel/Entities/SubSubJob.php b/Modules/CetakLabel/Entities/SubSubJob.php new file mode 100644 index 0000000..97a0cd4 --- /dev/null +++ b/Modules/CetakLabel/Entities/SubSubJob.php @@ -0,0 +1,36 @@ +belongsTo (Directorat::class); + } + + public function sub_directorat() + { + return $this->belongsTo (SubDirectorat::class); + } + + public function job() + { + return $this->belongsTo (Job::class); + } + + public function sub_job() + { + return $this->belongsTo (SubJob::class); + } + } diff --git a/Modules/CetakLabel/Http/Controllers/Api/DirectoratController.php b/Modules/CetakLabel/Http/Controllers/Api/DirectoratController.php index 27772a7..5e94461 100644 --- a/Modules/CetakLabel/Http/Controllers/Api/DirectoratController.php +++ b/Modules/CetakLabel/Http/Controllers/Api/DirectoratController.php @@ -11,16 +11,14 @@ class DirectoratController extends ApiController { - public function index() - : JsonResponse + public function index(): JsonResponse { $directorats = Directorat::all(); return $this->sendResponse($directorats, 'Directorats retrieved successfully.'); } - public function show($directorat) - : JsonResponse + public function show($directorat): JsonResponse { $directorat = Directorat::find($directorat); if (is_null($directorat)) { @@ -30,8 +28,7 @@ return $this->sendResponse($directorat, 'Directorat retrieved successfully.'); } - public function store(StoreDirectoratRequest $request) - : JsonResponse + public function store(StoreDirectoratRequest $request): JsonResponse { // Validate the request... $validated = $request->validated(); @@ -50,8 +47,7 @@ return $this->sendError('Directorat created failed.', 400); } - public function update(UpdateDirectoratRequest $request, Directorat $directorat) - : JsonResponse + public function update(UpdateDirectoratRequest $request, Directorat $directorat): JsonResponse { // Validate the request... $validated = $request->validated(); @@ -70,8 +66,7 @@ return $this->sendError('Directorat created failed.', 400); } - public function destroy($id) - : JsonResponse + public function destroy($id): JsonResponse { $directorat = Directorat::find($id); if (is_null($directorat)) { diff --git a/Modules/CetakLabel/Http/Controllers/Api/JobController.php b/Modules/CetakLabel/Http/Controllers/Api/JobController.php new file mode 100644 index 0000000..3dca47a --- /dev/null +++ b/Modules/CetakLabel/Http/Controllers/Api/JobController.php @@ -0,0 +1,84 @@ +sendResponse($jobs, 'Jobs retrieved successfully.'); + } + + public function show($job): JsonResponse + { + $job = Job::find($job); + if (is_null($job)) { + return $this->sendError('Job not found.'); + } + + return $this->sendResponse($job, 'Job retrieved successfully.'); + } + + public function store(StoreJobRequest $request): JsonResponse + { + // Validate the request... + $validated = $request->validated(); + + // Store the Job... + if ($validated) { + try { + $data = Job::create($validated); + + return $this->sendResponse($data, 'Job created successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + + return $this->sendError('Job created failed.', 400); + } + + public function update(UpdateJobRequest $request, Job $job): JsonResponse + { + // Validate the request... + $validated = $request->validated(); + + // Store the Job... + if ($validated) { + try { + $data = $job->update($validated); + + return $this->sendResponse($data, 'Job updated successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + + return $this->sendError('Job created failed.', 400); + } + + public function destroy($id): JsonResponse + { + $job = Job::find($id); + if (is_null($job)) { + return $this->sendError('Job not found.'); + } + + try { + $job->delete(); + + return $this->sendResponse($job, 'Job deleted successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + } diff --git a/Modules/CetakLabel/Http/Controllers/Api/SpecialCodeController.php b/Modules/CetakLabel/Http/Controllers/Api/SpecialCodeController.php new file mode 100644 index 0000000..ad0aafe --- /dev/null +++ b/Modules/CetakLabel/Http/Controllers/Api/SpecialCodeController.php @@ -0,0 +1,84 @@ +sendResponse($special_codes, 'Special Codes retrieved successfully.'); + } + + public function show($special_code): JsonResponse + { + $special_code = SpecialCode::find($special_code); + if (is_null($special_code)) { + return $this->sendError('Special Code not found.'); + } + + return $this->sendResponse($special_code, 'Special Code retrieved successfully.'); + } + + public function store(StoreSpecialCodeRequest $request): JsonResponse + { + // Validate the request... + $validated = $request->validated(); + + // Store the SpecialCode... + if ($validated) { + try { + $data = SpecialCode::create($validated); + + return $this->sendResponse($data, 'Special Code created successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + + return $this->sendError('Special Code created failed.', 400); + } + + public function update(UpdateSpecialCodeRequest $request, SpecialCode $special_code): JsonResponse + { + // Validate the request... + $validated = $request->validated(); + + // Store the SpecialCode... + if ($validated) { + try { + $data = $special_code->update($validated); + + return $this->sendResponse($data, 'Special Code updated successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + + return $this->sendError('Special Code created failed.', 400); + } + + public function destroy($id): JsonResponse + { + $special_code = SpecialCode::find($id); + if (is_null($special_code)) { + return $this->sendError('Special Code not found.'); + } + + try { + $special_code->delete(); + + return $this->sendResponse($special_code, 'Special Code deleted successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + } diff --git a/Modules/CetakLabel/Http/Controllers/Api/SubDirectoratController.php b/Modules/CetakLabel/Http/Controllers/Api/SubDirectoratController.php new file mode 100644 index 0000000..df00d3f --- /dev/null +++ b/Modules/CetakLabel/Http/Controllers/Api/SubDirectoratController.php @@ -0,0 +1,84 @@ +sendResponse($sub_directorats, 'Sub Directorats retrieved successfully.'); + } + + public function show($sub_directorat): JsonResponse + { + $sub_directorat = SubDirectorat::find($sub_directorat); + if (is_null($sub_directorat)) { + return $this->sendError('Sub Directorat not found.'); + } + + return $this->sendResponse($sub_directorat, 'Sub Directorat retrieved successfully.'); + } + + public function store(StoreSubDirectoratRequest $request): JsonResponse + { + // Validate the request... + $validated = $request->validated(); + + // Store the SubDirectorat... + if ($validated) { + try { + $data = SubDirectorat::create($validated); + + return $this->sendResponse($data, 'Sub Directorat created successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + + return $this->sendError('Sub Directorat created failed.', 400); + } + + public function update(UpdateSubDirectoratRequest $request, SubDirectorat $sub_directorat): JsonResponse + { + // Validate the request... + $validated = $request->validated(); + + // Store the SubDirectorat... + if ($validated) { + try { + $data = $sub_directorat->update($validated); + + return $this->sendResponse($data, 'Sub Directorat updated successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + + return $this->sendError('Sub Directorat created failed.', 400); + } + + public function destroy($id): JsonResponse + { + $sub_directorat = SubDirectorat::find($id); + if (is_null($sub_directorat)) { + return $this->sendError('Sub Directorat not found.'); + } + + try { + $sub_directorat->delete(); + + return $this->sendResponse($sub_directorat, 'Sub Directorat deleted successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + } diff --git a/Modules/CetakLabel/Http/Controllers/Api/SubJobController.php b/Modules/CetakLabel/Http/Controllers/Api/SubJobController.php new file mode 100644 index 0000000..8e403ff --- /dev/null +++ b/Modules/CetakLabel/Http/Controllers/Api/SubJobController.php @@ -0,0 +1,84 @@ +sendResponse($sub_jobs, 'Sub Jobs retrieved successfully.'); + } + + public function show($sub_job): JsonResponse + { + $sub_job = SubJob::find($sub_job); + if (is_null($sub_job)) { + return $this->sendError('Sub Job not found.'); + } + + return $this->sendResponse($sub_job, 'Sub Job retrieved successfully.'); + } + + public function store(StoreSubJobRequest $request): JsonResponse + { + // Validate the request... + $validated = $request->validated(); + + // Store the SubJob... + if ($validated) { + try { + $data = SubJob::create($validated); + + return $this->sendResponse($data, 'Sub Job created successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + + return $this->sendError('Sub Job created failed.', 400); + } + + public function update(UpdateSubJobRequest $request, SubJob $sub_job): JsonResponse + { + // Validate the request... + $validated = $request->validated(); + + // Store the SubJob... + if ($validated) { + try { + $data = $sub_job->update($validated); + + return $this->sendResponse($data, 'Sub Job updated successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + + return $this->sendError('Sub Job created failed.', 400); + } + + public function destroy($id): JsonResponse + { + $sub_job = SubJob::find($id); + if (is_null($sub_job)) { + return $this->sendError('Sub Job not found.'); + } + + try { + $sub_job->delete(); + + return $this->sendResponse($sub_job, 'Sub Job deleted successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + } diff --git a/Modules/CetakLabel/Http/Controllers/Api/SubSubJobController.php b/Modules/CetakLabel/Http/Controllers/Api/SubSubJobController.php new file mode 100644 index 0000000..66c2750 --- /dev/null +++ b/Modules/CetakLabel/Http/Controllers/Api/SubSubJobController.php @@ -0,0 +1,84 @@ +sendResponse($sub_sub_jobs, 'Sub Sub Jobs retrieved successfully.'); + } + + public function show($sub_sub_job): JsonResponse + { + $sub_sub_job = SubSubJob::find($sub_sub_job); + if (is_null($sub_sub_job)) { + return $this->sendError('Sub Sub Job not found.'); + } + + return $this->sendResponse($sub_sub_job, 'Sub Sub Job retrieved successfully.'); + } + + public function store(StoreSubSubJobRequest $request): JsonResponse + { + // Validate the request... + $validated = $request->validated(); + + // Store the SubSubJob... + if ($validated) { + try { + $data = SubSubJob::create($validated); + + return $this->sendResponse($data, 'Sub Sub Job created successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + + return $this->sendError('Sub Sub Job created failed.', 400); + } + + public function update(UpdateSubSubJobRequest $request, SubSubJob $sub_sub_job): JsonResponse + { + // Validate the request... + $validated = $request->validated(); + + // Store the SubSubJob... + if ($validated) { + try { + $data = $sub_sub_job->update($validated); + + return $this->sendResponse($data, 'Sub Sub Job updated successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + + return $this->sendError('Sub Sub Job created failed.', 400); + } + + public function destroy($id): JsonResponse + { + $sub_sub_job = SubSubJob::find($id); + if (is_null($sub_sub_job)) { + return $this->sendError('Sub Sub Job not found.'); + } + + try { + $sub_sub_job->delete(); + + return $this->sendResponse($sub_sub_job, 'Sub Sub Job deleted successfully.'); + } catch (Exception $e) { + return $this->sendError($e->getMessage(), $e->getCode()); + } + } + } diff --git a/Modules/CetakLabel/Http/Controllers/DirectoratController.php b/Modules/CetakLabel/Http/Controllers/DirectoratController.php index 8b0479d..615a45e 100644 --- a/Modules/CetakLabel/Http/Controllers/DirectoratController.php +++ b/Modules/CetakLabel/Http/Controllers/DirectoratController.php @@ -10,7 +10,6 @@ use Modules\CetakLabel\Entities\Directorat; use Modules\CetakLabel\Http\Requests\Directorat\StoreDirectoratRequest; use Modules\CetakLabel\Http\Requests\Directorat\UpdateDirectoratRequest; - use Spatie\Activitylog\Facades\CauserResolver; class DirectoratController extends Controller { @@ -79,7 +78,7 @@ abort(403, 'Sorry !! You are Unauthorized to create any master data !'); } - show_404(); + abort(404); } /** diff --git a/app/Http/Controllers/DocumentController.php b/Modules/CetakLabel/Http/Controllers/DocumentController.php similarity index 71% rename from app/Http/Controllers/DocumentController.php rename to Modules/CetakLabel/Http/Controllers/DocumentController.php index 91639f9..af719a6 100644 --- a/app/Http/Controllers/DocumentController.php +++ b/Modules/CetakLabel/Http/Controllers/DocumentController.php @@ -1,21 +1,23 @@ middleware(function ($request, $next) { - //$this->user = Auth::guard('web')->user(); + $this->user = Auth::guard('web')->user(); return $next($request); }); - //CauserResolver::setCauser($this->user); } /** @@ -36,27 +37,11 @@ */ public function index(DocumentDataTable $dataTable) { - /*if (is_null($this->user) || !$this->user->can('app.read')) { + if (is_null($this->user) || !$this->user->can('app.read')) { abort(403, 'Sorry !! You are Unauthorized to view any master data !'); - }*/ + } - return $dataTable->render('pages.app.document.index'); - } - - /** - * Show the form for creating a new resource. - */ - public function create() - { - /*if (is_null($this->user) || !$this->user->can('app.create')) { - abort(403, 'Sorry !! You are Unauthorized to create any master data !'); - }*/ - addVendor('chained-select'); - - $directorat = Directorat::all(); - $special_code = SpecialCode::all(); - $document_type = DocumentType::all(); - return view('pages.app.document.create', compact('directorat', 'special_code', 'document_type')); + return $dataTable->render('cetaklabel::app.document.index'); } /** @@ -64,9 +49,9 @@ */ public function store(StoreDocumentRequest $request) { - /*if (is_null($this->user) || !$this->user->can('app.create')) { + if (is_null($this->user) || !$this->user->can('app.create')) { abort(403, 'Sorry !! You are Unauthorized to create any master data !'); - }*/ + } // Validate the request... @@ -112,12 +97,32 @@ return false; } + /** + * Show the form for creating a new resource. + */ + public function create() + { + if (is_null($this->user) || !$this->user->can('app.create')) { + abort(403, 'Sorry !! You are Unauthorized to create any master data !'); + } + addVendor('chained-select'); + + $directorat = Directorat::all(); + $special_code = SpecialCode::all(); + $document_type = DocumentType::all(); + return view('cetaklabel::app.document.create', compact('directorat', 'special_code', 'document_type')); + } + /** * Display the specified resource. */ public function show(Document $documents) { + if (is_null($this->user) || !$this->user->can('app.read')) { + abort(403, 'Sorry !! You are Unauthorized to view any master data !'); + } + abort(404, 'Page not found !'); } /** @@ -125,6 +130,10 @@ */ public function edit($id) { + if (is_null($this->user) || !$this->user->can('app.update')) { + abort(403, 'Sorry !! You are Unauthorized to update any master data !'); + } + $document = Document::find($id); $directorat = Directorat::all(); $sub_directorat = SubDirectorat::where('directorat_id', $document->directorat_id)->get(); @@ -134,7 +143,7 @@ $special_code = SpecialCode::all(); $document_type = DocumentType::all(); - return view('pages.app.document.edit', compact('document', 'directorat', 'sub_directorat', 'job', 'sub_job', 'sub_sub_job', 'special_code', 'document_type')); + return view('cetaklabel::app.document.edit', compact('document', 'directorat', 'sub_directorat', 'job', 'sub_job', 'sub_sub_job', 'special_code', 'document_type')); } @@ -143,9 +152,9 @@ */ public function update(UpdateDocumentRequest $request, Document $documents) { - /*if (is_null($this->user) || !$this->user->can('app.update')) { + if (is_null($this->user) || !$this->user->can('app.update')) { abort(403, 'Sorry !! You are Unauthorized to update any master data !'); - }*/ + } // Validate the request... $validated = $request->validated(); @@ -171,6 +180,10 @@ */ public function destroy(Request $request) { + if (is_null($this->user) || !$this->user->can('app.delete')) { + abort(403, 'Sorry !! You are Unauthorized to delete any master data !'); + } + $documents = Document::find($request->document); $documents->delete(); echo json_encode(['status' => 'success', 'message' => 'Document deleted successfully.']); diff --git a/Modules/CetakLabel/Http/Controllers/DocumentTypeController.php b/Modules/CetakLabel/Http/Controllers/DocumentTypeController.php new file mode 100644 index 0000000..20cf08e --- /dev/null +++ b/Modules/CetakLabel/Http/Controllers/DocumentTypeController.php @@ -0,0 +1,143 @@ +middleware(function ($request, $next) { + $this->user = Auth::guard('web')->user(); + return $next($request); + }); + + } + + /** + * Display a listing of the resource. + */ + public function index(DocumentTypeDataTable $dataTable) + { + if (is_null($this->user) || !$this->user->can('masters.read')) { + abort(403, 'Sorry !! You are Unauthorized to view any master data !'); + } + + return $dataTable->render('cetaklabel::masters.document-type.index'); + } + + /** + * Store a newly created resource in storage. + */ + public function store(StoreDocumentTypeRequest $request) + { + if (is_null($this->user) || !$this->user->can('masters.create')) { + abort(403, 'Sorry !! You are Unauthorized to create any master data !'); + } + + + // Validate the request... + $validated = $request->validated(); + + // Store the Document Type... + if ($validated) { + try { + DocumentType::create($validated); + echo json_encode(['status' => 'success', 'message' => 'Document Type created successfully.']); + } catch (Exception $e) { + echo json_encode(['status' => 'error', 'message' => 'Document Type created failed.']); + } + + return; + } + + echo json_encode(['status' => 'error', 'message' => 'Document Type created failed.']); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + /*if (is_null($this->user) || !$this->user->can('masters.create')) { + abort(403, 'Sorry !! You are Unauthorized to create any master data !'); + }*/ + + abort(404); + } + + /** + * Display the specified resource. + */ + public function show(DocumentType $document_type) + { + if (is_null($this->user) || !$this->user->can('masters.read')) { + abort(403, 'Sorry !! You are Unauthorized to view any master data !'); + } + + abort(404); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit($id) + { + if (is_null($this->user) || !$this->user->can('masters.update')) { + abort(403, 'Sorry !! You are Unauthorized to update any master data !'); + } + + $document_type = DocumentType::find($id); + echo json_encode($document_type); + } + + /** + * Update the specified resource in storage. + */ + public function update(UpdateDocumentTypeRequest $request, DocumentType $document_type) + { + if (is_null($this->user) || !$this->user->can('masters.update')) { + abort(403, 'Sorry !! You are Unauthorized to update any master data !'); + } + + // Validate the request... + $validated = $request->validated(); + + // Update the Directorat... + if ($validated) { + try { + $document_type->update($validated); + + echo json_encode(['status' => 'success', 'message' => 'Document Type updated successfully.']); + } catch (Exception $e) { + echo json_encode(['status' => 'error', 'message' => 'Document Type updated failed.']); + } + + return; + } + + echo json_encode(['status' => 'error', 'message' => 'Document Type updated failed.']); + } + + /** + * Remove the specified resource from storage. + */ + public function destroy(DocumentType $document_type) + { + if (is_null($this->user) || !$this->user->can('masters.delete')) { + abort(403, 'Sorry !! You are Unauthorized to delete any master data !'); + } + + $document_type->delete(); + echo json_encode(['status' => 'success', 'message' => 'Document Type deleted successfully.']); + } + } diff --git a/app/Http/Controllers/JobController.php b/Modules/CetakLabel/Http/Controllers/JobController.php similarity index 84% rename from app/Http/Controllers/JobController.php rename to Modules/CetakLabel/Http/Controllers/JobController.php index cd87fdf..eaab663 100644 --- a/app/Http/Controllers/JobController.php +++ b/Modules/CetakLabel/Http/Controllers/JobController.php @@ -1,14 +1,16 @@ render('pages.masters.job.index', compact('directorat')); + return $dataTable->render('cetaklabel::masters.job.index', compact('directorat')); } /** @@ -78,7 +80,7 @@ /** * Store a newly created Job in storage. * - * @param \App\Http\Requests\StoreJobRequest $request + * @param \Modules\CetakLabel\Http\Requests\Job\StoreJobRequest $request * * @return void */ @@ -99,6 +101,7 @@ } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => 'Job created failed.']); } + return; } echo json_encode(['status' => 'error', 'message' => 'Job created failed.']); @@ -113,7 +116,7 @@ abort(403, 'Sorry !! You are Unauthorized to create any master data !'); } - show_404(); + abort(404); } /** @@ -136,8 +139,8 @@ /** * Update the specified Job in storage. * - * @param \App\Http\Requests\UpdateJobRequest $request - * @param \App\Models\Job $job + * @param \Modules\CetakLabel\Http\Requests\Job\UpdateJobRequest $request + * @param \Modules\CetakLabel\Entities\Job $job * * @return void */ @@ -158,6 +161,7 @@ } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => 'Job updated failed.']); } + return; } echo json_encode(['status' => 'error', 'message' => 'Job updated failed.']); @@ -166,7 +170,7 @@ /** * Remove the specified Job from storage. * - * @param \App\Models\Job $job + * @param \Modules\CetakLabel\Entities\Job $job * * @return void */ diff --git a/Modules/CetakLabel/Http/Controllers/SpecialCodeController.php b/Modules/CetakLabel/Http/Controllers/SpecialCodeController.php new file mode 100644 index 0000000..135e837 --- /dev/null +++ b/Modules/CetakLabel/Http/Controllers/SpecialCodeController.php @@ -0,0 +1,142 @@ +middleware(function ($request, $next) { + $this->user = Auth::guard('web')->user(); + return $next($request); + }); + } + + /** + * Display a listing of the resource. + */ + public function index(SpecialCodeDataTable $dataTable) + { + if (is_null($this->user) || !$this->user->can('masters.read')) { + abort(403, 'Sorry !! You are Unauthorized to view any master data !'); + } + + return $dataTable->render('cetaklabel::masters.special-code.index'); + } + + /** + * Store a newly created resource in storage. + */ + public function store(StoreSpecialCodeRequest $request) + { + if (is_null($this->user) || !$this->user->can('masters.create')) { + abort(403, 'Sorry !! You are Unauthorized to create any master data !'); + } + + + // Validate the request... + $validated = $request->validated(); + + // Store the Special Code... + if ($validated) { + try { + SpecialCode::create($validated); + echo json_encode(['status' => 'success', 'message' => 'Special Code created successfully.']); + } catch (Exception $e) { + echo json_encode(['status' => 'error', 'message' => 'Special Code created failed.']); + } + + return; + } + + echo json_encode(['status' => 'error', 'message' => 'Special Code created failed.']); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + if (is_null($this->user) || !$this->user->can('masters.create')) { + abort(403, 'Sorry !! You are Unauthorized to create any master data !'); + } + + abort(404); + } + + /** + * Display the specified resource. + */ + public function show(SpecialCode $special_code) + { + if (is_null($this->user) || !$this->user->can('masters.read')) { + abort(403, 'Sorry !! You are Unauthorized to view any master data !'); + } + + abort(404); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit($id) + { + if (is_null($this->user) || !$this->user->can('masters.update')) { + abort(403, 'Sorry !! You are Unauthorized to update any master data !'); + } + + $special_code = SpecialCode::find($id); + echo json_encode($special_code); + } + + /** + * Update the specified resource in storage. + */ + public function update(UpdateSpecialCodeRequest $request, SpecialCode $special_code) + { + if (is_null($this->user) || !$this->user->can('masters.update')) { + abort(403, 'Sorry !! You are Unauthorized to update any master data !'); + } + + // Validate the request... + $validated = $request->validated(); + + // Update the Directorat... + if ($validated) { + try { + $special_code->update($validated); + + echo json_encode(['status' => 'success', 'message' => 'Special Code updated successfully.']); + } catch (Exception $e) { + echo json_encode(['status' => 'error', 'message' => 'Special Code updated failed.']); + } + + return; + } + + echo json_encode(['status' => 'error', 'message' => 'Special Code updated failed.']); + } + + /** + * Remove the specified resource from storage. + */ + public function destroy(SpecialCode $special_code) + { + if (is_null($this->user) || !$this->user->can('masters.delete')) { + abort(403, 'Sorry !! You are Unauthorized to delete any master data !'); + } + + $special_code->delete(); + echo json_encode(['status' => 'success', 'message' => 'Special Code deleted successfully.']); + } + } diff --git a/Modules/CetakLabel/Http/Controllers/SubDirectoratController.php b/Modules/CetakLabel/Http/Controllers/SubDirectoratController.php index a7268f0..3944fe1 100644 --- a/Modules/CetakLabel/Http/Controllers/SubDirectoratController.php +++ b/Modules/CetakLabel/Http/Controllers/SubDirectoratController.php @@ -2,16 +2,15 @@ namespace Modules\CetakLabel\Http\Controllers; - use App\DataTables\SubDirectoratDataTable; - use App\Http\Controllers\Auth; use App\Http\Controllers\Controller; - use App\Http\Requests\StoreSubDirectoratRequest; - use App\Http\Requests\UpdateSubDirectoratRequest; - use App\Models\SubDirectorat; use Exception; use Illuminate\Http\Request; + use Illuminate\Support\Facades\Auth; + use Modules\CetakLabel\DataTables\SubDirectoratDataTable; use Modules\CetakLabel\Entities\Directorat; - use function App\Http\Controllers\show_404; + use Modules\CetakLabel\Entities\SubDirectorat; + use Modules\CetakLabel\Http\Requests\SubDirectorat\StoreSubDirectoratRequest; + use Modules\CetakLabel\Http\Requests\SubDirectorat\UpdateSubDirectoratRequest; class SubDirectoratController extends Controller { @@ -28,8 +27,8 @@ /** * Display a listing of the Sub Directorats. * - * @param \App\DataTables\SubDirectoratDataTable $dataTable - * @param \Illuminate\Http\Request $request + * @param \Modules\CetakLabel\DataTables\SubDirectoratDataTable $dataTable + * @param \Illuminate\Http\Request $request * * @return mixed|void */ @@ -45,7 +44,7 @@ } $directorat = Directorat::all(); - return $dataTable->render('pages.masters.sub-directorat.index', compact('directorat')); + return $dataTable->render('cetaklabel::masters.sub-directorat.index', compact('directorat')); } /** @@ -74,7 +73,7 @@ /** * Store a newly created Sub Directorat in storage. * - * @param \App\Http\Requests\StoreSubDirectoratRequest $request + * @param \Modules\CetakLabel\Http\Requests\SubDirectorat\StoreSubDirectoratRequest $request * * @return void */ @@ -95,6 +94,7 @@ } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => 'Sub Directorat created failed.']); } + return; } echo json_encode(['status' => 'error', 'message' => 'Sub Directorat created failed.']); @@ -109,7 +109,7 @@ abort(403, 'Sorry !! You are Unauthorized to create any master data !'); } - show_404(); + abort(404); } /** @@ -132,8 +132,8 @@ /** * Update the specified Sub Directorat in storage. * - * @param \App\Http\Requests\UpdateSubDirectoratRequest $request - * @param \App\Models\SubDirectorat $subDirectorat + * @param \Modules\CetakLabel\Http\Requests\SubDirectorat\UpdateSubDirectoratRequest $request + * @param \Modules\CetakLabel\Entities\SubDirectorat $subDirectorat * * @return void */ @@ -154,6 +154,7 @@ } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => 'Sub Directorat updated failed.']); } + return; } echo json_encode(['status' => 'error', 'message' => 'Sub Directorat updated failed.']); @@ -162,7 +163,7 @@ /** * Remove the specified Sub Directorat from storage. * - * @param \App\Models\SubDirectorat $subDirectorat + * @param \Modules\CetakLabel\Entities\SubDirectorat $subDirectorat * * @return void */ diff --git a/app/Http/Controllers/SubJobController.php b/Modules/CetakLabel/Http/Controllers/SubJobController.php similarity index 80% rename from app/Http/Controllers/SubJobController.php rename to Modules/CetakLabel/Http/Controllers/SubJobController.php index 60b9543..e455557 100644 --- a/app/Http/Controllers/SubJobController.php +++ b/Modules/CetakLabel/Http/Controllers/SubJobController.php @@ -1,14 +1,16 @@ render('pages.masters.sub-job.index', compact('directorat')); + return $dataTable->render('cetaklabel::masters.sub-job.index', compact('directorat')); } /** @@ -56,6 +58,10 @@ */ public function show(Request $request) { + if (is_null($this->user) || !$this->user->can('masters.read')) { + abort(403, 'Sorry !! You are Unauthorized to view any master data !'); + } + $subJob = SubJob::where('job_id', $request->job_id)->get(); $data = []; @@ -73,7 +79,7 @@ /** * Store a newly created Sub Job in storage. * - * @param \App\Http\Requests\StoreSubJobRequest $request + * @param \Modules\CetakLabel\Http\Requests\SubJob\StoreSubJobRequest $request * * @return void */ @@ -94,6 +100,7 @@ } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => 'Sub Job created failed.']); } + return; } echo json_encode(['status' => 'error', 'message' => 'Sub Job created failed.']); @@ -110,7 +117,7 @@ abort(403, 'Sorry !! You are Unauthorized to create any master data !'); } - show_404(); + abort(404); } /** @@ -133,8 +140,8 @@ /** * Update the specified Sub Job in storage. * - * @param \App\Http\Requests\UpdateSubJobRequest $request - * @param \App\Models\SubJob $subJob + * @param \Modules\CetakLabel\Http\Requests\SubJob\UpdateSubJobRequest $request + * @param \Modules\CetakLabel\Entities\SubJob $subJob * * @return false */ @@ -155,6 +162,7 @@ } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => 'Sub Job updated failed.']); } + return; } echo json_encode(['status' => 'error', 'message' => 'Sub Job updated failed.']); @@ -163,7 +171,7 @@ /** * Remove the specified Sub Job from storage. * - * @param \App\Models\SubJob $subJob + * @param \Modules\CetakLabel\Entities\SubJob $subJob * * @return void */ diff --git a/app/Http/Controllers/SubSubjobController.php b/Modules/CetakLabel/Http/Controllers/SubSubjobController.php similarity index 71% rename from app/Http/Controllers/SubSubjobController.php rename to Modules/CetakLabel/Http/Controllers/SubSubjobController.php index 33923ba..f56b4fb 100644 --- a/app/Http/Controllers/SubSubjobController.php +++ b/Modules/CetakLabel/Http/Controllers/SubSubjobController.php @@ -1,14 +1,16 @@ render('pages.masters.sub-sub-job.index', compact('directorat')); + return $dataTable->render('cetaklabel::masters.sub-sub-job.index', compact('directorat')); } /** @@ -56,6 +58,10 @@ */ public function show(Request $request) { + if (is_null($this->user) || !$this->user->can('masters.read')) { + abort(403, 'Sorry !! You are Unauthorized to view any master data !'); + } + $subSubJob = SubSubJob::where('sub_job_id', $request->sub_job_id)->get(); $data = []; @@ -73,15 +79,15 @@ /** * Store a newly created Sub Sub Job in storage. * - * @param \App\Http\Requests\StoreSubSubJobRequest $request + * @param \Modules\CetakLabel\Http\Requests\SubSubJob\StoreSubSubJobRequest $request * * @return false */ public function store(StoreSubSubJobRequest $request) { - /*if (is_null($this->user) || !$this->user->can('masters.create')) { + if (is_null($this->user) || !$this->user->can('masters.create')) { abort(403, 'Sorry !! You are Unauthorized to create any master data !'); - }*/ + } // Validate the request... @@ -91,27 +97,37 @@ if ($validated) { try { SubSubJob::create($validated); - //return redirect()->route('job.index')->with('success', 'SubSubJob created successfully.'); echo json_encode(['status' => 'success', 'message' => 'Sub Sub Job created successfully.']); } catch (Exception $e) { - //return redirect()->route('job.index')->with('error', 'SubSubJob created failed.'); echo json_encode(['status' => 'error', 'message' => 'Sub Sub Job created failed.']); } + return; } - return false; + echo json_encode(['status' => 'error', 'message' => 'Sub Sub Job created failed.']); } /** * Show the form for creating a new resource. */ - public function create() { } + public function create() + { + if (is_null($this->user) || !$this->user->can('masters.create')) { + abort(403, 'Sorry !! You are Unauthorized to create any master data !'); + } + + abort(404); + } /** * Show the form for editing the specified resource. */ public function edit($id) { + if (is_null($this->user) || !$this->user->can('masters.update')) { + abort(403, 'Sorry !! You are Unauthorized to update any master data !'); + } + $subJob = SubSubJob::find($id); echo json_encode($subJob); } @@ -121,9 +137,9 @@ */ public function update(UpdateSubSubJobRequest $request, SubSubJob $subSubJob) { - /*if (is_null($this->user) || !$this->user->can('masters.update')) { + if (is_null($this->user) || !$this->user->can('masters.update')) { abort(403, 'Sorry !! You are Unauthorized to update any master data !'); - }*/ + } // Validate the request... $validated = $request->validated(); @@ -149,6 +165,5 @@ { $subSubJob->delete(); echo json_encode(['status' => 'success', 'message' => 'Sub Sub Job deleted successfully.']); - //return redirect()->route('sub-job.index')->with('success', 'Sub Sub Job deleted successfully.'); } } diff --git a/Modules/CetakLabel/Http/Requests/Directorat/StoreDirectoratRequest.php b/Modules/CetakLabel/Http/Requests/Directorat/StoreDirectoratRequest.php index 156fbb3..25ee3c2 100644 --- a/Modules/CetakLabel/Http/Requests/Directorat/StoreDirectoratRequest.php +++ b/Modules/CetakLabel/Http/Requests/Directorat/StoreDirectoratRequest.php @@ -13,8 +13,7 @@ /** * Determine if the user is authorized to make this request. */ - public function authorize() - : bool + public function authorize(): bool { return true; } @@ -24,8 +23,7 @@ * * @return array */ - public function rules() - : array + public function rules(): array { return [ 'kode' => 'required|string|max:2|min:2|unique:directorats,kode', @@ -36,30 +34,30 @@ /** * Configure the validator instance. */ - public function withValidator(Validator $validator) - : void + public function withValidator(Validator $validator): void { - $validator->after(function (Validator $validator) { - if ($validator->errors()->any()) { - $errors = json_decode($validator->errors()->toJson(), true); + $validator->after (function (Validator $validator) { + if ($validator->errors ()->any ()) { + $errors = json_decode ($validator->errors ()->toJson (), true); foreach ($errors as $key => $value) { - flash($value[0]); + flash ($value[0]); } - return redirect()->route('directorat.index')->with('error', 'Directorat created failed.'); + return redirect ()->route ('directorat.index')->with ('error', 'Directorat created failed.'); } }); } - protected function failedValidation(Validator|\Illuminate\Contracts\Validation\Validator $validator) - : JsonResponse + protected function failedValidation(Validator|\Illuminate\Contracts\Validation\Validator $validator): JsonResponse { - $errors = (new ValidationException($validator))->errors(); + $errors = (new ValidationException($validator))->errors (); - throw new HttpResponseException( - response()->json(['success' => false, 'errors' => $errors, 'messages' => 'Directorat created failed.'], JsonResponse::HTTP_UNPROCESSABLE_ENTITY) - ); + throw new HttpResponseException(response ()->json ([ + 'success' => false, + 'errors' => $errors, + 'messages' => 'Directorat created failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); } } diff --git a/Modules/CetakLabel/Http/Requests/Directorat/UpdateDirectoratRequest.php b/Modules/CetakLabel/Http/Requests/Directorat/UpdateDirectoratRequest.php index 7eba857..0bca10e 100644 --- a/Modules/CetakLabel/Http/Requests/Directorat/UpdateDirectoratRequest.php +++ b/Modules/CetakLabel/Http/Requests/Directorat/UpdateDirectoratRequest.php @@ -51,13 +51,14 @@ }); } - protected function failedValidation(Validator|\Illuminate\Contracts\Validation\Validator $validator) - : JsonResponse + protected function failedValidation(Validator|\Illuminate\Contracts\Validation\Validator $validator): JsonResponse { - $errors = (new ValidationException($validator))->errors(); + $errors = (new ValidationException($validator))->errors (); - throw new HttpResponseException( - response()->json(['success' => false, 'errors' => $errors, 'messages' => 'Directorat updated failed.'], JsonResponse::HTTP_UNPROCESSABLE_ENTITY) - ); + throw new HttpResponseException(response ()->json ([ + 'success' => false, + 'errors' => $errors, + 'messages' => 'Directorat updated failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); } } diff --git a/app/Http/Requests/StoreDocumentRequest.php b/Modules/CetakLabel/Http/Requests/Document/StoreDocumentRequest.php similarity index 55% rename from app/Http/Requests/StoreDocumentRequest.php rename to Modules/CetakLabel/Http/Requests/Document/StoreDocumentRequest.php index af99453..40a5284 100644 --- a/app/Http/Requests/StoreDocumentRequest.php +++ b/Modules/CetakLabel/Http/Requests/Document/StoreDocumentRequest.php @@ -1,17 +1,19 @@ */ - public function rules() - : array + public function rules(): array { return [ 'kode' => 'required|string|unique:documents,kode', @@ -33,7 +34,7 @@ 'sub_sub_job_id' => 'required|integer|exists:sub_sub_jobs,id', 'special_code_id' => 'nullable|integer|exists:special_codes,id', 'no_urut' => 'nullable|integer|min:1|max:999', - 'sequence' => 'nullable|integer|min:1|max:999', + 'sequence' => 'nullable|integer|min:1|max:999', 'status' => 'nullable|integer', 'keterangan' => 'nullable|string|max:255', 'jenis_dokumen' => 'nullable|string|max:255', @@ -43,18 +44,28 @@ /** * Configure the validator instance. */ - public function withValidator(Validator $validator) - : void + public function withValidator(Validator $validator): void { - $validator->after(function (Validator $validator) { - if ($validator->errors()->any()) { - $error = json_decode($validator->errors()->toJson(), true); + $validator->after (function (Validator $validator) { + if ($validator->errors ()->any ()) { + $error = json_decode ($validator->errors ()->toJson (), true); foreach ($error as $key => $value) { - flash($value[0]); + flash ($value[0]); } - return redirect()->route('document.index')->with('error', 'Document created failed.'); + return redirect ()->route ('document.index')->with ('error', 'Document 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' => 'Document created failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); + } } diff --git a/app/Http/Requests/UpdateDocumentRequest.php b/Modules/CetakLabel/Http/Requests/Document/UpdateDocumentRequest.php similarity index 57% rename from app/Http/Requests/UpdateDocumentRequest.php rename to Modules/CetakLabel/Http/Requests/Document/UpdateDocumentRequest.php index 89c477f..643b959 100644 --- a/app/Http/Requests/UpdateDocumentRequest.php +++ b/Modules/CetakLabel/Http/Requests/Document/UpdateDocumentRequest.php @@ -1,8 +1,11 @@ */ - public function rules() - : array + public function rules(): array { return [ - 'kode' => 'required|string|unique:documents,kode,' . $this->id, + 'kode' => 'required|string|unique:documents,kode,' . $this->document->id, 'directorat_id' => 'required|integer|exists:directorats,id', 'sub_directorat_id' => 'required|integer|exists:sub_directorats,id', 'job_id' => 'required|integer|exists:jobs,id', @@ -43,18 +44,28 @@ /** * Configure the validator instance. */ - public function withValidator(Validator $validator) - : void + public function withValidator(Validator $validator): void { - $validator->after(function (Validator $validator) { - if ($validator->errors()->any()) { - $error = json_decode($validator->errors()->toJson(), true); + $validator->after (function (Validator $validator) { + if ($validator->errors ()->any ()) { + $error = json_decode ($validator->errors ()->toJson (), true); foreach ($error as $key => $value) { - flash($value[0]); + flash ($value[0]); } - return redirect()->route('document.index')->with('error', 'Document updated failed.'); + return redirect ()->route ('document.index')->with ('error', 'Document 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' => 'Document updated failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); + } } diff --git a/Modules/CetakLabel/Http/Requests/DocumentType/StoreDocumentTypeRequest.php b/Modules/CetakLabel/Http/Requests/DocumentType/StoreDocumentTypeRequest.php new file mode 100644 index 0000000..37e6865 --- /dev/null +++ b/Modules/CetakLabel/Http/Requests/DocumentType/StoreDocumentTypeRequest.php @@ -0,0 +1,61 @@ + + */ + public function rules(): array + { + return [ + 'kode' => 'required|string|max:2|min:2|unique:document_types,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 ()) { + $error = json_decode ($validator->errors ()->toJson (), true); + foreach ($error as $key => $value) { + flash ($value[0]); + } + + return redirect ()->route ('document-type.index')->with ('error', 'Document Type 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' => 'Document Type created failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); + } + } diff --git a/Modules/CetakLabel/Http/Requests/DocumentType/UpdateDocumentTypeRequest.php b/Modules/CetakLabel/Http/Requests/DocumentType/UpdateDocumentTypeRequest.php new file mode 100644 index 0000000..1e64d37 --- /dev/null +++ b/Modules/CetakLabel/Http/Requests/DocumentType/UpdateDocumentTypeRequest.php @@ -0,0 +1,61 @@ + + */ + public function rules(): array + { + return [ + 'kode' => 'required|string|max:2|min:2|unique:document_types,kode,' . $this->document_type->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 ('document-type.index')->with ('error', 'Document Type 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' => 'Document Type updated failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); + } + } diff --git a/Modules/CetakLabel/Http/Requests/Job/StoreJobRequest.php b/Modules/CetakLabel/Http/Requests/Job/StoreJobRequest.php new file mode 100644 index 0000000..a9b3c03 --- /dev/null +++ b/Modules/CetakLabel/Http/Requests/Job/StoreJobRequest.php @@ -0,0 +1,63 @@ + + */ + public function rules(): array + { + return [ + 'directorat_id' => 'required|exists:directorats,id', + 'sub_directorat_id' => 'required|exists:sub_directorats,id', + 'kode' => 'required|string|max:2|min:2|unique:jobs,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 ()) { + $error = json_decode ($validator->errors ()->toJson (), true); + foreach ($error as $key => $value) { + flash ($value[0]); + } + + return redirect ()->route ('job.index')->with ('error', 'Job 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' => 'Job created failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); + } + } diff --git a/Modules/CetakLabel/Http/Requests/Job/UpdateJobRequest.php b/Modules/CetakLabel/Http/Requests/Job/UpdateJobRequest.php new file mode 100644 index 0000000..cc90190 --- /dev/null +++ b/Modules/CetakLabel/Http/Requests/Job/UpdateJobRequest.php @@ -0,0 +1,63 @@ + + */ + public function rules(): array + { + return [ + 'directorat_id' => 'required|exists:directorats,id', + 'sub_directorat_id' => 'required|exists:sub_directorats,id', + 'kode' => 'required|string|max:2|min:2|unique:jobs,kode,' . $this->job->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 ('jobs.index')->with ('error', 'Job 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' => 'Job updated failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); + } + } diff --git a/Modules/CetakLabel/Http/Requests/SpecialCode/StoreSpecialCodeRequest.php b/Modules/CetakLabel/Http/Requests/SpecialCode/StoreSpecialCodeRequest.php new file mode 100644 index 0000000..bfe6a18 --- /dev/null +++ b/Modules/CetakLabel/Http/Requests/SpecialCode/StoreSpecialCodeRequest.php @@ -0,0 +1,61 @@ + + */ + public function rules(): array + { + return [ + 'kode' => 'required|string|max:2|min:2|unique:special_codes,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 ()) { + $error = json_decode ($validator->errors ()->toJson (), true); + foreach ($error as $key => $value) { + flash ($value[0]); + } + + return redirect ()->route ('special-code.index')->with ('error', 'Special Code 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' => 'Special Code created failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); + } + } diff --git a/Modules/CetakLabel/Http/Requests/SpecialCode/UpdateSpecialCodeRequest.php b/Modules/CetakLabel/Http/Requests/SpecialCode/UpdateSpecialCodeRequest.php new file mode 100644 index 0000000..3253563 --- /dev/null +++ b/Modules/CetakLabel/Http/Requests/SpecialCode/UpdateSpecialCodeRequest.php @@ -0,0 +1,61 @@ + + */ + public function rules(): array + { + return [ + 'kode' => 'required|string|max:2|min:2|unique:special_codes,kode,' . $this->special_code->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 ('special-code.index')->with ('error', 'Special Code 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' => 'Special Code updated failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); + } + } diff --git a/Modules/CetakLabel/Http/Requests/SubDirectorat/StoreSubDirectoratRequest.php b/Modules/CetakLabel/Http/Requests/SubDirectorat/StoreSubDirectoratRequest.php new file mode 100644 index 0000000..7911c27 --- /dev/null +++ b/Modules/CetakLabel/Http/Requests/SubDirectorat/StoreSubDirectoratRequest.php @@ -0,0 +1,62 @@ + + */ + public function rules(): array + { + return [ + 'directorat_id' => 'required', + 'kode' => 'required|string|max:2|min:2|unique:sub_directorats', + '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 ('sub-directorat.index')->with ('error', 'Sub Directorat 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' => 'Sub Directorat created failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); + } + } diff --git a/Modules/CetakLabel/Http/Requests/SubDirectorat/UpdateSubDirectoratRequest.php b/Modules/CetakLabel/Http/Requests/SubDirectorat/UpdateSubDirectoratRequest.php new file mode 100644 index 0000000..4eb3e0b --- /dev/null +++ b/Modules/CetakLabel/Http/Requests/SubDirectorat/UpdateSubDirectoratRequest.php @@ -0,0 +1,62 @@ + + */ + public function rules(): array + { + return [ + 'directorat_id' => 'required|exists:directorats,id', + 'kode' => 'required|string|max:2|min:2|unique:sub_directorats,kode,' . $this->sub_directorat->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 ('sub-directorat.index')->with ('error', 'Sub Directorat 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' => 'Sub Directorat updated failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); + } + } diff --git a/Modules/CetakLabel/Http/Requests/SubJob/StoreSubJobRequest.php b/Modules/CetakLabel/Http/Requests/SubJob/StoreSubJobRequest.php new file mode 100644 index 0000000..6b20277 --- /dev/null +++ b/Modules/CetakLabel/Http/Requests/SubJob/StoreSubJobRequest.php @@ -0,0 +1,64 @@ + + */ + public function rules(): array + { + return [ + 'directorat_id' => 'required|exists:directorats,id', + 'sub_directorat_id' => 'required|exists:sub_directorats,id', + 'job_id' => 'required|exists:jobs,id', + 'kode' => 'required|string|max:2|min:2|unique:sub_jobs,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 ()) { + $error = json_decode ($validator->errors ()->toJson (), true); + foreach ($error as $key => $value) { + flash ($value[0]); + } + + return redirect ()->route ('job.index')->with ('error', 'Sub Job 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' => 'Sub Job created failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); + } + } diff --git a/Modules/CetakLabel/Http/Requests/SubJob/UpdateSubJobRequest.php b/Modules/CetakLabel/Http/Requests/SubJob/UpdateSubJobRequest.php new file mode 100644 index 0000000..4c7594f --- /dev/null +++ b/Modules/CetakLabel/Http/Requests/SubJob/UpdateSubJobRequest.php @@ -0,0 +1,64 @@ + + */ + public function rules(): array + { + return [ + 'directorat_id' => 'required|exists:directorats,id', + 'sub_directorat_id' => 'required|exists:sub_directorats,id', + 'job_id' => 'required|exists:jobs,id', + 'kode' => 'required|string|max:2|min:2|unique:sub_jobs,kode,' . $this->sub_job->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 ('jobs.index')->with ('error', 'Sub Job 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' => 'Sub Job updated failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); + } + } diff --git a/Modules/CetakLabel/Http/Requests/SubSubJob/StoreSubSubJobRequest.php b/Modules/CetakLabel/Http/Requests/SubSubJob/StoreSubSubJobRequest.php new file mode 100644 index 0000000..541629e --- /dev/null +++ b/Modules/CetakLabel/Http/Requests/SubSubJob/StoreSubSubJobRequest.php @@ -0,0 +1,66 @@ + + */ + public function rules(): array + { + return [ + 'directorat_id' => 'required|exists:directorats,id', + 'sub_directorat_id' => 'required|exists:sub_directorats,id', + 'job_id' => 'required|exists:jobs,id', + 'sub_job_id' => 'required|exists:sub_jobs,id', + 'kode' => 'required|string|max:2|min:2|unique:sub_sub_jobs,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 ()) { + $error = json_decode ($validator->errors ()->toJson (), true); + foreach ($error as $key => $value) { + flash ($value[0]); + } + + return redirect ()->route ('job.index')->with ('error', 'Sub Sub Job 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' => 'Sub Sub Job created failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); + } + } diff --git a/Modules/CetakLabel/Http/Requests/SubSubJob/UpdateSubSubJobRequest.php b/Modules/CetakLabel/Http/Requests/SubSubJob/UpdateSubSubJobRequest.php new file mode 100644 index 0000000..5831ec2 --- /dev/null +++ b/Modules/CetakLabel/Http/Requests/SubSubJob/UpdateSubSubJobRequest.php @@ -0,0 +1,66 @@ + + */ + public function rules(): array + { + return [ + 'directorat_id' => 'required|exists:directorats,id', + 'sub_directorat_id' => 'required|exists:sub_directorats,id', + 'job_id' => 'required|exists:jobs,id', + 'sub_job_id' => 'required|exists:sub_jobs,id', + 'kode' => 'required|string|max:2|min:2|unique:sub_sub_jobs,kode,' . $this->sub_sub_job->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 ('jobs.index')->with ('error', 'Sub Sub Job 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' => 'Sub Sub Job updated failed.' + ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); + } + } diff --git a/resources/views/pages/app/document/_action.blade.php b/Modules/CetakLabel/Resources/views/app/document/_action.blade.php similarity index 100% rename from resources/views/pages/app/document/_action.blade.php rename to Modules/CetakLabel/Resources/views/app/document/_action.blade.php diff --git a/resources/views/pages/app/document/_edit.blade.php b/Modules/CetakLabel/Resources/views/app/document/_edit.blade.php similarity index 100% rename from resources/views/pages/app/document/_edit.blade.php rename to Modules/CetakLabel/Resources/views/app/document/_edit.blade.php diff --git a/resources/views/pages/app/document/_form.blade.php b/Modules/CetakLabel/Resources/views/app/document/_form.blade.php similarity index 100% rename from resources/views/pages/app/document/_form.blade.php rename to Modules/CetakLabel/Resources/views/app/document/_form.blade.php diff --git a/resources/views/pages/app/document/_table.blade.php b/Modules/CetakLabel/Resources/views/app/document/_table.blade.php similarity index 100% rename from resources/views/pages/app/document/_table.blade.php rename to Modules/CetakLabel/Resources/views/app/document/_table.blade.php diff --git a/resources/views/pages/app/document/create.blade.php b/Modules/CetakLabel/Resources/views/app/document/create.blade.php similarity index 88% rename from resources/views/pages/app/document/create.blade.php rename to Modules/CetakLabel/Resources/views/app/document/create.blade.php index 206c5bd..b30acb4 100644 --- a/resources/views/pages/app/document/create.blade.php +++ b/Modules/CetakLabel/Resources/views/app/document/create.blade.php @@ -8,7 +8,7 @@
- @include('pages.app.document._form') + @include('cetaklabel::app.document._form')
diff --git a/resources/views/pages/app/document/edit.blade.php b/Modules/CetakLabel/Resources/views/app/document/edit.blade.php similarity index 90% rename from resources/views/pages/app/document/edit.blade.php rename to Modules/CetakLabel/Resources/views/app/document/edit.blade.php index f0009e9..306c356 100644 --- a/resources/views/pages/app/document/edit.blade.php +++ b/Modules/CetakLabel/Resources/views/app/document/edit.blade.php @@ -8,7 +8,7 @@
- @include('pages.app.document._edit') + @include('app.document._edit')
diff --git a/resources/views/pages/app/document/index.blade.php b/Modules/CetakLabel/Resources/views/app/document/index.blade.php similarity index 98% rename from resources/views/pages/app/document/index.blade.php rename to Modules/CetakLabel/Resources/views/app/document/index.blade.php index 334f709..2b99046 100644 --- a/resources/views/pages/app/document/index.blade.php +++ b/Modules/CetakLabel/Resources/views/app/document/index.blade.php @@ -83,7 +83,7 @@
- @include('pages.app.document._table') + @include('cetaklabel::app.document._table')
diff --git a/resources/views/pages/masters/document-type/_action.blade.php b/Modules/CetakLabel/Resources/views/masters/document-type/_action.blade.php similarity index 100% rename from resources/views/pages/masters/document-type/_action.blade.php rename to Modules/CetakLabel/Resources/views/masters/document-type/_action.blade.php diff --git a/resources/views/pages/masters/document-type/_form.blade.php b/Modules/CetakLabel/Resources/views/masters/document-type/_form.blade.php similarity index 100% rename from resources/views/pages/masters/document-type/_form.blade.php rename to Modules/CetakLabel/Resources/views/masters/document-type/_form.blade.php diff --git a/resources/views/pages/masters/document-type/_table.blade.php b/Modules/CetakLabel/Resources/views/masters/document-type/_table.blade.php similarity index 100% rename from resources/views/pages/masters/document-type/_table.blade.php rename to Modules/CetakLabel/Resources/views/masters/document-type/_table.blade.php diff --git a/resources/views/pages/masters/document-type/index.blade.php b/Modules/CetakLabel/Resources/views/masters/document-type/index.blade.php similarity index 92% rename from resources/views/pages/masters/document-type/index.blade.php rename to Modules/CetakLabel/Resources/views/masters/document-type/index.blade.php index 7c5ca8b..753aad0 100644 --- a/resources/views/pages/masters/document-type/index.blade.php +++ b/Modules/CetakLabel/Resources/views/masters/document-type/index.blade.php @@ -16,8 +16,8 @@ + d="M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z" + fill="currentColor"> @@ -88,8 +88,8 @@
- @include('pages.masters.document-type._table') - @include('pages.masters.document-type._form') + @include('cetaklabel::masters.document-type._table') + @include('cetaklabel::masters.document-type._form')
diff --git a/resources/views/pages/masters/job/_action.blade.php b/Modules/CetakLabel/Resources/views/masters/job/_action.blade.php similarity index 100% rename from resources/views/pages/masters/job/_action.blade.php rename to Modules/CetakLabel/Resources/views/masters/job/_action.blade.php diff --git a/resources/views/pages/masters/job/_form.blade.php b/Modules/CetakLabel/Resources/views/masters/job/_form.blade.php similarity index 100% rename from resources/views/pages/masters/job/_form.blade.php rename to Modules/CetakLabel/Resources/views/masters/job/_form.blade.php diff --git a/resources/views/pages/masters/job/_table.blade.php b/Modules/CetakLabel/Resources/views/masters/job/_table.blade.php similarity index 100% rename from resources/views/pages/masters/job/_table.blade.php rename to Modules/CetakLabel/Resources/views/masters/job/_table.blade.php diff --git a/resources/views/pages/masters/job/index.blade.php b/Modules/CetakLabel/Resources/views/masters/job/index.blade.php similarity index 98% rename from resources/views/pages/masters/job/index.blade.php rename to Modules/CetakLabel/Resources/views/masters/job/index.blade.php index 447ffb5..ebe236c 100644 --- a/resources/views/pages/masters/job/index.blade.php +++ b/Modules/CetakLabel/Resources/views/masters/job/index.blade.php @@ -83,8 +83,8 @@
- @include('pages.masters.job._table') - @include('pages.masters.job._form') + @include('cetaklabel::masters.job._table') + @include('cetaklabel::masters.job._form')
diff --git a/resources/views/pages/masters/special-code/_action.blade.php b/Modules/CetakLabel/Resources/views/masters/special-code/_action.blade.php similarity index 100% rename from resources/views/pages/masters/special-code/_action.blade.php rename to Modules/CetakLabel/Resources/views/masters/special-code/_action.blade.php diff --git a/resources/views/pages/masters/special-code/_form.blade.php b/Modules/CetakLabel/Resources/views/masters/special-code/_form.blade.php similarity index 100% rename from resources/views/pages/masters/special-code/_form.blade.php rename to Modules/CetakLabel/Resources/views/masters/special-code/_form.blade.php diff --git a/resources/views/pages/masters/special-code/_table.blade.php b/Modules/CetakLabel/Resources/views/masters/special-code/_table.blade.php similarity index 100% rename from resources/views/pages/masters/special-code/_table.blade.php rename to Modules/CetakLabel/Resources/views/masters/special-code/_table.blade.php diff --git a/resources/views/pages/masters/special-code/index.blade.php b/Modules/CetakLabel/Resources/views/masters/special-code/index.blade.php similarity index 97% rename from resources/views/pages/masters/special-code/index.blade.php rename to Modules/CetakLabel/Resources/views/masters/special-code/index.blade.php index b4ca668..9ddbb00 100644 --- a/resources/views/pages/masters/special-code/index.blade.php +++ b/Modules/CetakLabel/Resources/views/masters/special-code/index.blade.php @@ -88,8 +88,8 @@
- @include('pages.masters.special-code._table') - @include('pages.masters.special-code._form') + @include('cetaklabel::masters.special-code._table') + @include('cetaklabel::masters.special-code._form')
diff --git a/resources/views/pages/masters/sub-directorat/_action.blade.php b/Modules/CetakLabel/Resources/views/masters/sub-directorat/_action.blade.php similarity index 100% rename from resources/views/pages/masters/sub-directorat/_action.blade.php rename to Modules/CetakLabel/Resources/views/masters/sub-directorat/_action.blade.php diff --git a/resources/views/pages/masters/sub-directorat/_form.blade.php b/Modules/CetakLabel/Resources/views/masters/sub-directorat/_form.blade.php similarity index 100% rename from resources/views/pages/masters/sub-directorat/_form.blade.php rename to Modules/CetakLabel/Resources/views/masters/sub-directorat/_form.blade.php diff --git a/resources/views/pages/masters/sub-directorat/_table.blade.php b/Modules/CetakLabel/Resources/views/masters/sub-directorat/_table.blade.php similarity index 100% rename from resources/views/pages/masters/sub-directorat/_table.blade.php rename to Modules/CetakLabel/Resources/views/masters/sub-directorat/_table.blade.php diff --git a/resources/views/pages/masters/sub-directorat/index.blade.php b/Modules/CetakLabel/Resources/views/masters/sub-directorat/index.blade.php similarity index 97% rename from resources/views/pages/masters/sub-directorat/index.blade.php rename to Modules/CetakLabel/Resources/views/masters/sub-directorat/index.blade.php index 777c856..0ae6658 100644 --- a/resources/views/pages/masters/sub-directorat/index.blade.php +++ b/Modules/CetakLabel/Resources/views/masters/sub-directorat/index.blade.php @@ -88,8 +88,8 @@
- @include('pages.masters.sub-directorat._table') - @include('pages.masters.sub-directorat._form') + @include('cetaklabel::masters.sub-directorat._table') + @include('cetaklabel::masters.sub-directorat._form')
diff --git a/resources/views/pages/masters/sub-job/_action.blade.php b/Modules/CetakLabel/Resources/views/masters/sub-job/_action.blade.php similarity index 100% rename from resources/views/pages/masters/sub-job/_action.blade.php rename to Modules/CetakLabel/Resources/views/masters/sub-job/_action.blade.php diff --git a/resources/views/pages/masters/sub-job/_form.blade.php b/Modules/CetakLabel/Resources/views/masters/sub-job/_form.blade.php similarity index 100% rename from resources/views/pages/masters/sub-job/_form.blade.php rename to Modules/CetakLabel/Resources/views/masters/sub-job/_form.blade.php diff --git a/resources/views/pages/masters/sub-job/_table.blade.php b/Modules/CetakLabel/Resources/views/masters/sub-job/_table.blade.php similarity index 100% rename from resources/views/pages/masters/sub-job/_table.blade.php rename to Modules/CetakLabel/Resources/views/masters/sub-job/_table.blade.php diff --git a/resources/views/pages/masters/sub-job/index.blade.php b/Modules/CetakLabel/Resources/views/masters/sub-job/index.blade.php similarity index 98% rename from resources/views/pages/masters/sub-job/index.blade.php rename to Modules/CetakLabel/Resources/views/masters/sub-job/index.blade.php index 18c2e9e..d58dd35 100644 --- a/resources/views/pages/masters/sub-job/index.blade.php +++ b/Modules/CetakLabel/Resources/views/masters/sub-job/index.blade.php @@ -83,8 +83,8 @@
- @include('pages.masters.sub-job._table') - @include('pages.masters.sub-job._form') + @include('cetaklabel::masters.sub-job._table') + @include('cetaklabel::masters.sub-job._form')
diff --git a/resources/views/pages/masters/sub-sub-job/_action.blade.php b/Modules/CetakLabel/Resources/views/masters/sub-sub-job/_action.blade.php similarity index 100% rename from resources/views/pages/masters/sub-sub-job/_action.blade.php rename to Modules/CetakLabel/Resources/views/masters/sub-sub-job/_action.blade.php diff --git a/resources/views/pages/masters/sub-sub-job/_form.blade.php b/Modules/CetakLabel/Resources/views/masters/sub-sub-job/_form.blade.php similarity index 100% rename from resources/views/pages/masters/sub-sub-job/_form.blade.php rename to Modules/CetakLabel/Resources/views/masters/sub-sub-job/_form.blade.php diff --git a/resources/views/pages/masters/sub-sub-job/_table.blade.php b/Modules/CetakLabel/Resources/views/masters/sub-sub-job/_table.blade.php similarity index 100% rename from resources/views/pages/masters/sub-sub-job/_table.blade.php rename to Modules/CetakLabel/Resources/views/masters/sub-sub-job/_table.blade.php diff --git a/resources/views/pages/masters/sub-sub-job/index.blade.php b/Modules/CetakLabel/Resources/views/masters/sub-sub-job/index.blade.php similarity index 98% rename from resources/views/pages/masters/sub-sub-job/index.blade.php rename to Modules/CetakLabel/Resources/views/masters/sub-sub-job/index.blade.php index 3f7f3f7..c0d2872 100644 --- a/resources/views/pages/masters/sub-sub-job/index.blade.php +++ b/Modules/CetakLabel/Resources/views/masters/sub-sub-job/index.blade.php @@ -83,8 +83,8 @@
- @include('pages.masters.sub-sub-job._table') - @include('pages.masters.sub-sub-job._form') + @include('cetaklabel::masters.sub-sub-job._table') + @include('cetaklabel::masters.sub-sub-job._form')
diff --git a/Modules/CetakLabel/Routes/api.php b/Modules/CetakLabel/Routes/api.php index a0fcd32..ad65f4b 100644 --- a/Modules/CetakLabel/Routes/api.php +++ b/Modules/CetakLabel/Routes/api.php @@ -1,6 +1,11 @@ domain)->group(function (){ Route::middleware('auth:sanctum')->group(function (){ Route::resource('directorats', DirectoratController::class); - - Route::get('test-sama', function(){ - return 'cetaklabel-api'; - }); + Route::resource('sub-directorats', SubDirectoratController::class); + Route::resource('jobs', JobController::class); + Route::resource('sub-jobs', SubJobController::class); + Route::resource('sub-sub-jobs', SubSubJobController::class); + Route::resource('special-codes', SpecialCodeController::class); }); }); diff --git a/Modules/CetakLabel/Routes/web.php b/Modules/CetakLabel/Routes/web.php index 60a05fd..d207928 100644 --- a/Modules/CetakLabel/Routes/web.php +++ b/Modules/CetakLabel/Routes/web.php @@ -11,11 +11,20 @@ | */ -use Modules\CetakLabel\Http\Controllers\DirectoratController; + use Modules\CetakLabel\Http\Controllers\DirectoratController; Route::domain('cetaklabel.io')->group(function () { Route::group(['middleware' => ['auth', 'verified']], function () { Route::resource('directorat', DirectoratController::class); + Route::resource('sub-directorat', SubDirectoratController::class); + Route::resource('job', JobController::class); + Route::resource('sub-job', SubJobController::class); + Route::resource('sub-sub-job', SubSubJobController::class); + Route::resource('special-code', SpecialCodeController::class); + Route::resource('document-type', DocumentTypeController::class); + + Route::resource('document', DocumentController::class); + //Route::resource('document-detail', DOcumentDetailController::class); }); }); diff --git a/Modules/CetakLabel/cetaklabel-module b/Modules/CetakLabel/cetaklabel-module new file mode 160000 index 0000000..b9b8b18 --- /dev/null +++ b/Modules/CetakLabel/cetaklabel-module @@ -0,0 +1 @@ +Subproject commit b9b8b1853974b6bf7dfe3ecb8da9d8a410757f77 diff --git a/Modules/UserManager/Config/.gitkeep b/Modules/UserManager/Config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/UserManager/Config/config.php b/Modules/UserManager/Config/config.php new file mode 100644 index 0000000..c055c3f --- /dev/null +++ b/Modules/UserManager/Config/config.php @@ -0,0 +1,5 @@ + 'UserManager' +]; diff --git a/Modules/UserManager/Console/.gitkeep b/Modules/UserManager/Console/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/UserManager/Database/Migrations/.gitkeep b/Modules/UserManager/Database/Migrations/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/UserManager/Database/Seeders/.gitkeep b/Modules/UserManager/Database/Seeders/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/UserManager/Database/Seeders/UserManagerDatabaseSeeder.php b/Modules/UserManager/Database/Seeders/UserManagerDatabaseSeeder.php new file mode 100644 index 0000000..1f2eb4a --- /dev/null +++ b/Modules/UserManager/Database/Seeders/UserManagerDatabaseSeeder.php @@ -0,0 +1,21 @@ +call("OthersTableSeeder"); + } +} diff --git a/Modules/UserManager/Database/factories/.gitkeep b/Modules/UserManager/Database/factories/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/UserManager/Entities/.gitkeep b/Modules/UserManager/Entities/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/UserManager/Http/Controllers/.gitkeep b/Modules/UserManager/Http/Controllers/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/UserManager/Http/Controllers/UserManagerController.php b/Modules/UserManager/Http/Controllers/UserManagerController.php new file mode 100644 index 0000000..7a8c0ee --- /dev/null +++ b/Modules/UserManager/Http/Controllers/UserManagerController.php @@ -0,0 +1,79 @@ +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('UserManager', '/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('UserManager', '/Routes/api.php')); + } +} diff --git a/Modules/UserManager/Providers/UserManagerServiceProvider.php b/Modules/UserManager/Providers/UserManagerServiceProvider.php new file mode 100644 index 0000000..59830b7 --- /dev/null +++ b/Modules/UserManager/Providers/UserManagerServiceProvider.php @@ -0,0 +1,114 @@ +registerTranslations(); + $this->registerConfig(); + $this->registerViews(); + $this->loadMigrationsFrom(module_path($this->moduleName, 'Database/Migrations')); + } + + /** + * Register the service provider. + * + * @return void + */ + public function register() + { + $this->app->register(RouteServiceProvider::class); + } + + /** + * Register config. + * + * @return void + */ + protected function registerConfig() + { + $this->publishes([ + module_path($this->moduleName, 'Config/config.php') => config_path($this->moduleNameLower . '.php'), + ], 'config'); + $this->mergeConfigFrom( + module_path($this->moduleName, 'Config/config.php'), $this->moduleNameLower + ); + } + + /** + * Register views. + * + * @return void + */ + public function registerViews() + { + $viewPath = resource_path('views/modules/' . $this->moduleNameLower); + + $sourcePath = module_path($this->moduleName, 'Resources/views'); + + $this->publishes([ + $sourcePath => $viewPath + ], ['views', $this->moduleNameLower . '-module-views']); + + $this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), $this->moduleNameLower); + } + + /** + * Register translations. + * + * @return void + */ + public function registerTranslations() + { + $langPath = resource_path('lang/modules/' . $this->moduleNameLower); + + if (is_dir($langPath)) { + $this->loadTranslationsFrom($langPath, $this->moduleNameLower); + $this->loadJsonTranslationsFrom($langPath); + } else { + $this->loadTranslationsFrom(module_path($this->moduleName, 'Resources/lang'), $this->moduleNameLower); + $this->loadJsonTranslationsFrom(module_path($this->moduleName, 'Resources/lang')); + } + } + + /** + * Get the services provided by the provider. + * + * @return array + */ + public function provides() + { + return []; + } + + private function getPublishableViewPaths(): array + { + $paths = []; + foreach (\Config::get('view.paths') as $path) { + if (is_dir($path . '/modules/' . $this->moduleNameLower)) { + $paths[] = $path . '/modules/' . $this->moduleNameLower; + } + } + return $paths; + } +} diff --git a/Modules/UserManager/Resources/assets/.gitkeep b/Modules/UserManager/Resources/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/UserManager/Resources/assets/js/app.js b/Modules/UserManager/Resources/assets/js/app.js new file mode 100644 index 0000000..e69de29 diff --git a/Modules/UserManager/Resources/assets/sass/app.scss b/Modules/UserManager/Resources/assets/sass/app.scss new file mode 100644 index 0000000..e69de29 diff --git a/Modules/UserManager/Resources/lang/.gitkeep b/Modules/UserManager/Resources/lang/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/UserManager/Resources/views/.gitkeep b/Modules/UserManager/Resources/views/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/UserManager/Resources/views/index.blade.php b/Modules/UserManager/Resources/views/index.blade.php new file mode 100644 index 0000000..6df7865 --- /dev/null +++ b/Modules/UserManager/Resources/views/index.blade.php @@ -0,0 +1,9 @@ +@extends('usermanager::layouts.master') + +@section('content') +

Hello World

+ +

+ This view is loaded from module: {!! config('usermanager.name') !!} +

+@endsection diff --git a/Modules/UserManager/Resources/views/layouts/master.blade.php b/Modules/UserManager/Resources/views/layouts/master.blade.php new file mode 100644 index 0000000..0761772 --- /dev/null +++ b/Modules/UserManager/Resources/views/layouts/master.blade.php @@ -0,0 +1,19 @@ + + + + + + + Module UserManager + + {{-- Laravel Vite - CSS File --}} + {{-- {{ module_vite('build-usermanager', 'Resources/assets/sass/app.scss') }} --}} + + + + @yield('content') + + {{-- Laravel Vite - JS File --}} + {{-- {{ module_vite('build-usermanager', 'Resources/assets/js/app.js') }} --}} + + diff --git a/Modules/UserManager/Routes/.gitkeep b/Modules/UserManager/Routes/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/UserManager/Routes/api.php b/Modules/UserManager/Routes/api.php new file mode 100644 index 0000000..2ebed69 --- /dev/null +++ b/Modules/UserManager/Routes/api.php @@ -0,0 +1,18 @@ +get('/usermanager', function (Request $request) { + return $request->user(); +}); \ No newline at end of file diff --git a/Modules/UserManager/Routes/web.php b/Modules/UserManager/Routes/web.php new file mode 100644 index 0000000..76cc057 --- /dev/null +++ b/Modules/UserManager/Routes/web.php @@ -0,0 +1,16 @@ +group(function() { + Route::get('/', 'UserManagerController@index'); +}); diff --git a/Modules/UserManager/Tests/Feature/.gitkeep b/Modules/UserManager/Tests/Feature/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/UserManager/Tests/Unit/.gitkeep b/Modules/UserManager/Tests/Unit/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/UserManager/composer.json b/Modules/UserManager/composer.json new file mode 100644 index 0000000..fd30ff4 --- /dev/null +++ b/Modules/UserManager/composer.json @@ -0,0 +1,23 @@ +{ + "name": "nwidart/usermanager", + "description": "", + "authors": [ + { + "name": "Nicolas Widart", + "email": "n.widart@gmail.com" + } + ], + "extra": { + "laravel": { + "providers": [], + "aliases": { + + } + } + }, + "autoload": { + "psr-4": { + "Modules\\UserManager\\": "" + } + } +} diff --git a/Modules/UserManager/module.json b/Modules/UserManager/module.json new file mode 100644 index 0000000..c35c07f --- /dev/null +++ b/Modules/UserManager/module.json @@ -0,0 +1,11 @@ +{ + "name": "UserManager", + "alias": "usermanager", + "description": "", + "keywords": [], + "priority": 99, + "providers": [ + "Modules\\UserManager\\Providers\\UserManagerServiceProvider" + ], + "files": [] +} diff --git a/Modules/UserManager/package.json b/Modules/UserManager/package.json new file mode 100644 index 0000000..30c1a80 --- /dev/null +++ b/Modules/UserManager/package.json @@ -0,0 +1,16 @@ +{ + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build" + }, + "devDependencies": { + "axios": "^0.21.4", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "laravel-vite-plugin": "^0.6.0", + "lodash": "^4.17.21", + "postcss": "^8.3.7", + "vite": "^3.0.9" + } +} diff --git a/Modules/UserManager/vite.config.js b/Modules/UserManager/vite.config.js new file mode 100644 index 0000000..26c165a --- /dev/null +++ b/Modules/UserManager/vite.config.js @@ -0,0 +1,24 @@ +const dotenvExpand = require('dotenv-expand'); +dotenvExpand(require('dotenv').config({ path: '../../.env'/*, debug: true*/})); + +import { defineConfig } from 'vite'; +import laravel from 'laravel-vite-plugin'; + +export default defineConfig({ + build: { + outDir: '../../public/build-usermanager', + emptyOutDir: true, + manifest: true, + }, + plugins: [ + laravel({ + publicDirectory: '../../public', + buildDirectory: 'build-usermanager', + input: [ + __dirname + '/Resources/assets/sass/app.scss', + __dirname + '/Resources/assets/js/app.js' + ], + refresh: true, + }), + ], +}); diff --git a/app/Http/Controllers/DocumentTypeController.php b/app/Http/Controllers/DocumentTypeController.php deleted file mode 100644 index 966026c..0000000 --- a/app/Http/Controllers/DocumentTypeController.php +++ /dev/null @@ -1,118 +0,0 @@ -middleware(function ($request, $next) { - //$this->user = Auth::guard('web')->user(); - return $next($request); - }); - - //CauserResolver::setCauser($this->user); - } - - /** - * Display a listing of the resource. - */ - public function index(DocumentTypeDataTable $dataTable) - { - /*if (is_null($this->user) || !$this->user->can('masters.read')) { - abort(403, 'Sorry !! You are Unauthorized to view any master data !'); - }*/ - - return $dataTable->render('pages.masters.document-type.index'); - } - - /** - * Show the form for creating a new resource. - */ - public function create(){} - - /** - * Store a newly created resource in storage. - */ - public function store(StoreDocumentTypeRequest $request) - { - /*if (is_null($this->user) || !$this->user->can('masters.create')) { - abort(403, 'Sorry !! You are Unauthorized to create any master data !'); - }*/ - - - // Validate the request... - $validated = $request->validated(); - - // Store the Document Type... - if($validated){ - try{ - DocumentType::create($validated); - echo json_encode(['status' => 'success', 'message' => 'Document Type created successfully.']); - }catch(\Exception $e){ - echo json_encode(['status' => 'error', 'message' => 'Document Type created failed.']); - } - } - - return false; - } - - /** - * Display the specified resource. - */ - public function show(DocumentType $document_type) - { - - } - - /** - * Show the form for editing the specified resource. - */ - public function edit($id){ - $document_type = DocumentType::find($id); - echo json_encode($document_type); - } - - /** - * Update the specified resource in storage. - */ - public function update(UpdateDocumentTypeRequest $request, DocumentType $document_type) - { - /*if (is_null($this->user) || !$this->user->can('masters.update')) { - abort(403, 'Sorry !! You are Unauthorized to update any master data !'); - }*/ - - // Validate the request... - $validated = $request->validated(); - - // Update the Directorat... - if($validated){ - try{ - $document_type->update($validated); - - echo json_encode(['status' => 'success', 'message' => 'Document Type updated successfully.']); - }catch(\Exception $e){ - echo json_encode(['status' => 'error', 'message' => 'Document Type updated failed.']); - } - } - - return false; - } - - /** - * Remove the specified resource from storage. - */ - public function destroy(DocumentType $document_type){ - $document_type->delete(); - echo json_encode(['status' => 'success', 'message' => 'Document Type deleted successfully.']); - } -} diff --git a/app/Http/Controllers/SpecialCodeController.php b/app/Http/Controllers/SpecialCodeController.php deleted file mode 100644 index 33c0ada..0000000 --- a/app/Http/Controllers/SpecialCodeController.php +++ /dev/null @@ -1,118 +0,0 @@ -middleware(function ($request, $next) { - //$this->user = Auth::guard('web')->user(); - return $next($request); - }); - - //CauserResolver::setCauser($this->user); - } - - /** - * Display a listing of the resource. - */ - public function index(SpecialCodeDataTable $dataTable) - { - /*if (is_null($this->user) || !$this->user->can('masters.read')) { - abort(403, 'Sorry !! You are Unauthorized to view any master data !'); - }*/ - - return $dataTable->render('pages.masters.special-code.index'); - } - - /** - * Show the form for creating a new resource. - */ - public function create(){} - - /** - * Store a newly created resource in storage. - */ - public function store(StoreSpecialCodeRequest $request) - { - /*if (is_null($this->user) || !$this->user->can('masters.create')) { - abort(403, 'Sorry !! You are Unauthorized to create any master data !'); - }*/ - - - // Validate the request... - $validated = $request->validated(); - - // Store the Special Code... - if($validated){ - try{ - SpecialCode::create($validated); - echo json_encode(['status' => 'success', 'message' => 'Special Code created successfully.']); - }catch(\Exception $e){ - echo json_encode(['status' => 'error', 'message' => 'Special Code created failed.']); - } - } - - return false; - } - - /** - * Display the specified resource. - */ - public function show(SpecialCode $special_code) - { - - } - - /** - * Show the form for editing the specified resource. - */ - public function edit($id){ - $special_code = SpecialCode::find($id); - echo json_encode($special_code); - } - - /** - * Update the specified resource in storage. - */ - public function update(UpdateSpecialCodeRequest $request, SpecialCode $special_code) - { - /*if (is_null($this->user) || !$this->user->can('masters.update')) { - abort(403, 'Sorry !! You are Unauthorized to update any master data !'); - }*/ - - // Validate the request... - $validated = $request->validated(); - - // Update the Directorat... - if($validated){ - try{ - $special_code->update($validated); - - echo json_encode(['status' => 'success', 'message' => 'Special Code updated successfully.']); - }catch(\Exception $e){ - echo json_encode(['status' => 'error', 'message' => 'Special Code updated failed.']); - } - } - - return false; - } - - /** - * Remove the specified resource from storage. - */ - public function destroy(SpecialCode $special_code){ - $special_code->delete(); - echo json_encode(['status' => 'success', 'message' => 'Special Code deleted successfully.']); - } -} diff --git a/app/Http/Controllers/SubDirectoratController.php b/app/Http/Controllers/SubDirectoratController.php deleted file mode 100644 index e63c9b8..0000000 --- a/app/Http/Controllers/SubDirectoratController.php +++ /dev/null @@ -1,175 +0,0 @@ -middleware(function ($request, $next) { - $this->user = Auth::guard('web')->user(); - return $next($request); - }); - } - - /** - * Display a listing of the Sub Directorats. - * - * @param \App\DataTables\SubDirectoratDataTable $dataTable - * @param \Illuminate\Http\Request $request - * - * @return mixed|void - */ - public function index(SubDirectoratDataTable $dataTable, Request $request) - { - if (is_null($this->user) || !$this->user->can('masters.read')) { - abort(403, 'Sorry !! You are Unauthorized to view any master data !'); - } - - if (isset($request->directorat_id) && !empty($request->directorat_id)) { - $this->show($request); - return; - } - - $directorat = Directorat::all(); - return $dataTable->render('pages.masters.sub-directorat.index', compact('directorat')); - } - - /** - * Lists the specified Sub Directorat by Directorat ID. - * - * @param \Illuminate\Http\Request $request - * - * @return void - */ - public function show(Request $request) - { - $subdirectorats = SubDirectorat::where('directorat_id', $request->directorat_id)->get(); - - $data = []; - foreach ($subdirectorats as $row) { - $result = [ - $row->id => $row->name, - ]; - - $data[] = $result; - } - - echo json_encode($data); - } - - /** - * Store a newly created Sub Directorat in storage. - * - * @param \App\Http\Requests\StoreSubDirectoratRequest $request - * - * @return void - */ - public function store(StoreSubDirectoratRequest $request) - { - if (is_null($this->user) || !$this->user->can('masters.create')) { - abort(403, 'Sorry !! You are Unauthorized to create any master data !'); - } - - // Validate the request... - $validated = $request->validated(); - - // Store the SubDirectorat... - if ($validated) { - try { - SubDirectorat::create($validated); - echo json_encode(['status' => 'success', 'message' => 'Sub Directorat created successfully.']); - } catch (Exception $e) { - echo json_encode(['status' => 'error', 'message' => 'Sub Directorat created failed.']); - } - } - - echo json_encode(['status' => 'error', 'message' => 'Sub Directorat created failed.']); - } - - /** - * Show the form for creating a new Sub Directorat. - */ - public function create() - { - if (is_null($this->user) || !$this->user->can('masters.create')) { - abort(403, 'Sorry !! You are Unauthorized to create any master data !'); - } - - show_404(); - } - - /** - * Show the form for editing the specified Sub Directorat. - * - * @param $id - * - * @return void - */ - public function edit($id) - { - if (is_null($this->user) || !$this->user->can('masters.update')) { - abort(403, 'Sorry !! You are Unauthorized to update any master data !'); - } - - $subDirectorat = SubDirectorat::find($id); - echo json_encode($subDirectorat); - } - - /** - * Update the specified Sub Directorat in storage. - * - * @param \App\Http\Requests\UpdateSubDirectoratRequest $request - * @param \App\Models\SubDirectorat $subDirectorat - * - * @return void - */ - public function update(UpdateSubDirectoratRequest $request, SubDirectorat $subDirectorat) - { - if (is_null($this->user) || !$this->user->can('masters.update')) { - abort(403, 'Sorry !! You are Unauthorized to update any master data !'); - } - - // Validate the request... - $validated = $request->validated(); - - // Update the SubDirectorat... - if ($validated) { - try { - $subDirectorat->update($validated); - echo json_encode(['status' => 'success', 'message' => 'Sub Directorat updated successfully.']); - } catch (Exception $e) { - echo json_encode(['status' => 'error', 'message' => 'Sub Directorat updated failed.']); - } - } - - echo json_encode(['status' => 'error', 'message' => 'Sub Directorat updated failed.']); - } - - /** - * Remove the specified Sub Directorat from storage. - * - * @param \App\Models\SubDirectorat $subDirectorat - * - * @return void - */ - public function destroy(SubDirectorat $subDirectorat) - { - if (is_null($this->user) || !$this->user->can('masters.delete')) { - abort(403, 'Sorry !! You are Unauthorized to delete any master data !'); - } - - $subDirectorat->delete(); - echo json_encode(['status' => 'success', 'message' => 'Sub Directorat deleted successfully.']); - } - } diff --git a/app/Http/Requests/StoreDocumentTypeRequest.php b/app/Http/Requests/StoreDocumentTypeRequest.php deleted file mode 100644 index 962e2c2..0000000 --- a/app/Http/Requests/StoreDocumentTypeRequest.php +++ /dev/null @@ -1,47 +0,0 @@ - - */ - public function rules(): array - { - return [ - 'kode' => 'required|string|max:2|min:2|unique:document_types,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()) { - $error = json_decode($validator->errors()->toJson(), true); - foreach ($error as $key => $value) { - flash( $value[0]); - } - - return redirect()->route('document-type.index')->with('error', 'Document Type created failed.'); - } - }); - } -} diff --git a/app/Http/Requests/StoreJobRequest.php b/app/Http/Requests/StoreJobRequest.php deleted file mode 100644 index 836f406..0000000 --- a/app/Http/Requests/StoreJobRequest.php +++ /dev/null @@ -1,49 +0,0 @@ - - */ - public function rules(): array - { - return [ - 'directorat_id' => 'required|exists:directorats,id', - 'sub_directorat_id' => 'required|exists:sub_directorats,id', - 'kode' => 'required|string|max:2|min:2|unique:jobs,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()) { - $error = json_decode($validator->errors()->toJson(), true); - foreach ($error as $key => $value) { - flash( $value[0]); - } - - return redirect()->route('job.index')->with('error', 'Job created failed.'); - } - }); - } -} diff --git a/app/Http/Requests/StoreSpecialCodeRequest.php b/app/Http/Requests/StoreSpecialCodeRequest.php deleted file mode 100644 index 79794fe..0000000 --- a/app/Http/Requests/StoreSpecialCodeRequest.php +++ /dev/null @@ -1,47 +0,0 @@ - - */ - public function rules(): array - { - return [ - 'kode' => 'required|string|max:2|min:2|unique:special_codes,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()) { - $error = json_decode($validator->errors()->toJson(), true); - foreach ($error as $key => $value) { - flash( $value[0]); - } - - return redirect()->route('special-code.index')->with('error', 'Special Code created failed.'); - } - }); - } -} diff --git a/app/Http/Requests/StoreSubDirectoratRequest.php b/app/Http/Requests/StoreSubDirectoratRequest.php deleted file mode 100644 index f1a725c..0000000 --- a/app/Http/Requests/StoreSubDirectoratRequest.php +++ /dev/null @@ -1,48 +0,0 @@ - - */ - public function rules(): array - { - return [ - 'directorat_id' => 'required', - 'kode' => 'required|string|max:2|min:2|unique:sub_directorats', - '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('sub-directorat.index')->with('error', 'Sub Directorat created failed.'); - } - }); - } -} diff --git a/app/Http/Requests/StoreSubJobRequest.php b/app/Http/Requests/StoreSubJobRequest.php deleted file mode 100644 index 296c5bf..0000000 --- a/app/Http/Requests/StoreSubJobRequest.php +++ /dev/null @@ -1,50 +0,0 @@ - - */ - public function rules(): array - { - return [ - 'directorat_id' => 'required|exists:directorats,id', - 'sub_directorat_id' => 'required|exists:sub_directorats,id', - 'job_id' => 'required|exists:jobs,id', - 'kode' => 'required|string|max:2|min:2|unique:sub_jobs,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()) { - $error = json_decode($validator->errors()->toJson(), true); - foreach ($error as $key => $value) { - flash( $value[0]); - } - - return redirect()->route('job.index')->with('error', 'Sub Job created failed.'); - } - }); - } -} diff --git a/app/Http/Requests/StoreSubSubJobRequest.php b/app/Http/Requests/StoreSubSubJobRequest.php deleted file mode 100644 index 5c77fb1..0000000 --- a/app/Http/Requests/StoreSubSubJobRequest.php +++ /dev/null @@ -1,52 +0,0 @@ - - */ - public function rules(): array - { - return [ - 'directorat_id' => 'required|exists:directorats,id', - 'sub_directorat_id' => 'required|exists:sub_directorats,id', - 'job_id' => 'required|exists:jobs,id', - 'sub_job_id' => 'required|exists:sub_jobs,id', - 'kode' => 'required|string|max:2|min:2|unique:sub_sub_jobs,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()) { - $error = json_decode($validator->errors()->toJson(), true); - foreach ($error as $key => $value) { - flash($value[0]); - } - - return redirect()->route('job.index')->with('error', 'Sub Sub Job created failed.'); - } - }); - } -} diff --git a/app/Http/Requests/UpdateDocumentTypeRequest.php b/app/Http/Requests/UpdateDocumentTypeRequest.php deleted file mode 100644 index b52bfdb..0000000 --- a/app/Http/Requests/UpdateDocumentTypeRequest.php +++ /dev/null @@ -1,47 +0,0 @@ - - */ - public function rules(): array - { - return [ - 'kode' => 'required|string|max:2|min:2|unique:document_types,kode,'.$this->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('document-type.index')->with('error', 'Document Type updated failed.'); - } - }); - } -} diff --git a/app/Http/Requests/UpdateJobRequest.php b/app/Http/Requests/UpdateJobRequest.php deleted file mode 100644 index cb31973..0000000 --- a/app/Http/Requests/UpdateJobRequest.php +++ /dev/null @@ -1,49 +0,0 @@ - - */ - public function rules(): array - { - return [ - 'directorat_id' => 'required|exists:directorats,id', - 'sub_directorat_id' => 'required|exists:sub_directorats,id', - 'kode' => 'required|string|max:2|min:2|unique:jobs,kode,'.$this->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('jobs.index')->with('error', 'Job updated failed.'); - } - }); - } -} diff --git a/app/Http/Requests/UpdateSpecialCodeRequest.php b/app/Http/Requests/UpdateSpecialCodeRequest.php deleted file mode 100644 index 41c231b..0000000 --- a/app/Http/Requests/UpdateSpecialCodeRequest.php +++ /dev/null @@ -1,47 +0,0 @@ - - */ - public function rules(): array - { - return [ - 'kode' => 'required|string|max:2|min:2|unique:special_codes,kode,'.$this->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('special-code.index')->with('error', 'Special Code updated failed.'); - } - }); - } -} diff --git a/app/Http/Requests/UpdateSubDirectoratRequest.php b/app/Http/Requests/UpdateSubDirectoratRequest.php deleted file mode 100644 index fdd6abc..0000000 --- a/app/Http/Requests/UpdateSubDirectoratRequest.php +++ /dev/null @@ -1,48 +0,0 @@ - - */ - public function rules(): array - { - return [ - 'directorat_id' => 'required|exists:directorats,id', - 'kode' => 'required|string|max:2|min:2|unique:sub_directorats,kode,'.$this->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('sub-directorat.index')->with('error', 'Sub Directorat updated failed.'); - } - }); - } -} diff --git a/app/Http/Requests/UpdateSubJobRequest.php b/app/Http/Requests/UpdateSubJobRequest.php deleted file mode 100644 index cc05295..0000000 --- a/app/Http/Requests/UpdateSubJobRequest.php +++ /dev/null @@ -1,50 +0,0 @@ - - */ - public function rules(): array - { - return [ - 'directorat_id' => 'required|exists:directorats,id', - 'sub_directorat_id' => 'required|exists:sub_directorats,id', - 'job_id' => 'required|exists:jobs,id', - 'kode' => 'required|string|max:2|min:2|unique:sub_jobs,kode,'.$this->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('jobs.index')->with('error', 'Sub Job updated failed.'); - } - }); - } -} diff --git a/app/Http/Requests/UpdateSubSubJobRequest.php b/app/Http/Requests/UpdateSubSubJobRequest.php deleted file mode 100644 index 80f3e0e..0000000 --- a/app/Http/Requests/UpdateSubSubJobRequest.php +++ /dev/null @@ -1,52 +0,0 @@ - - */ - public function rules(): array - { - return [ - 'directorat_id' => 'required|exists:directorats,id', - 'sub_directorat_id' => 'required|exists:sub_directorats,id', - 'job_id' => 'required|exists:jobs,id', - 'sub_job_id' => 'required|exists:sub_jobs,id', - 'kode' => 'required|string|max:2|min:2|unique:sub_sub_jobs,kode,' . $this->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('jobs.index')->with('error', 'Sub Sub Job updated failed.'); - } - }); - } -} diff --git a/app/Models/Document.php b/app/Models/Document.php deleted file mode 100644 index e1c6472..0000000 --- a/app/Models/Document.php +++ /dev/null @@ -1,70 +0,0 @@ -logAll() - ->useLogName('master data'); - } - - public function directorat() - { - return $this->belongsTo(Directorat::class); - } - - public function sub_directorat() - { - return $this->belongsTo(SubDirectorat::class); - } - - public function job() - { - return $this->belongsTo(Job::class); - } - - public function sub_job() - { - return $this->belongsTo(SubJob::class); - } - - public function sub_sub_job() - { - return $this->belongsTo(SubSubJob::class); - } - - public function special_code() - { - return $this->belongsTo(SpecialCode::class); - } - - public function document_details() - { - return $this->hasMany(DocumentDetail::class); - } -} diff --git a/app/Models/DocumentDetail.php b/app/Models/DocumentDetail.php deleted file mode 100644 index e059e25..0000000 --- a/app/Models/DocumentDetail.php +++ /dev/null @@ -1,44 +0,0 @@ -logAll() - ->useLogName('master data'); - } -} diff --git a/app/Models/DocumentType.php b/app/Models/DocumentType.php deleted file mode 100644 index bacfacc..0000000 --- a/app/Models/DocumentType.php +++ /dev/null @@ -1,26 +0,0 @@ -logAll() - ->useLogName('master data'); - } -} diff --git a/app/Models/Job.php b/app/Models/Job.php deleted file mode 100644 index 480077d..0000000 --- a/app/Models/Job.php +++ /dev/null @@ -1,42 +0,0 @@ -logAll() - ->useLogName('system'); - } - public function directorat() - { - return $this->belongsTo(Directorat::class); - } - - public function subDirectorat() - { - return $this->belongsTo(SubDirectorat::class); - } - - public function subJob() - { - return $this->hasMany(SubJob::class); - } -} diff --git a/app/Models/SpecialCode.php b/app/Models/SpecialCode.php deleted file mode 100644 index 26f9598..0000000 --- a/app/Models/SpecialCode.php +++ /dev/null @@ -1,26 +0,0 @@ -logAll() - ->useLogName('master data'); - } -} diff --git a/app/Models/SubDirectorat.php b/app/Models/SubDirectorat.php deleted file mode 100644 index 11b9d3d..0000000 --- a/app/Models/SubDirectorat.php +++ /dev/null @@ -1,42 +0,0 @@ -logAll() - ->useLogName('system'); - } - - public function directorat() - { - return $this->belongsTo(Directorat::class); - } - - public function subJobs() - { - return $this->hasMany(SubJob::class); - } - - public function jobs() - { - return $this->hasManyThrough(Job::class, SubJob::class); - } -} diff --git a/app/Models/SubJob.php b/app/Models/SubJob.php deleted file mode 100644 index 27536d3..0000000 --- a/app/Models/SubJob.php +++ /dev/null @@ -1,49 +0,0 @@ -logAll() - ->useLogName('system'); - } - - public function directorat() - { - return $this->belongsTo(Directorat::class); - } - - public function subDirectorat() - { - return $this->belongsTo(SubDirectorat::class); - } - - public function job() - { - return $this->belongsTo(Job::class); - } - - public function subSubJob() - { - return $this->hasMany(SubSubJob::class); - } -} diff --git a/app/Models/SubSubJob.php b/app/Models/SubSubJob.php deleted file mode 100644 index 61e727a..0000000 --- a/app/Models/SubSubJob.php +++ /dev/null @@ -1,50 +0,0 @@ -logAll() - ->useLogName('system'); - } - - public function directorat() - { - return $this->belongsTo(Directorat::class); - } - - public function subDirectorat() - { - return $this->belongsTo(SubDirectorat::class); - } - - public function job() - { - return $this->belongsTo(Job::class); - } - - public function subJob() - { - return $this->belongsTo(SubJob::class); - } -} diff --git a/composer.json b/composer.json index d0e9c0b..31962fb 100644 --- a/composer.json +++ b/composer.json @@ -10,6 +10,7 @@ "guzzlehttp/guzzle": "^7.2", "haruncpi/laravel-id-generator": "^1.1", "jackiedo/log-reader": "2.*", + "joshbrw/laravel-module-installer": "^2.0", "laracasts/flash": "^3.2", "laravel/framework": "^10.0", "laravel/octane": "^1.5", @@ -71,9 +72,16 @@ "preferred-install": "dist", "sort-packages": true, "allow-plugins": { - "pestphp/pest-plugin": true + "pestphp/pest-plugin": true, + "joshbrw/laravel-module-installer": true } }, "minimum-stability": "dev", - "prefer-stable": true + "prefer-stable": true, + "repositories": [ + { + "type": "vcs", + "url": "https://git.putrakuningan.com/putrakuningan/cetaklabel-module" + } + ] } diff --git a/composer.lock b/composer.lock index 58c05c9..e3e576f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "1313a0e38fcd70f76c758237b1b91d79", + "content-hash": "6e4b7a5d95ae071c96a379148defd16e", "packages": [ { "name": "anlutro/l4-settings", @@ -691,16 +691,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.5.1", + "version": "7.6.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "b964ca597e86b752cd994f27293e9fa6b6a95ed9" + "reference": "733dd89533dd371a0987172727df15f500dab0ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b964ca597e86b752cd994f27293e9fa6b6a95ed9", - "reference": "b964ca597e86b752cd994f27293e9fa6b6a95ed9", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/733dd89533dd371a0987172727df15f500dab0ef", + "reference": "733dd89533dd371a0987172727df15f500dab0ef", "shasum": "" }, "require": { @@ -731,9 +731,6 @@ "bamarni-bin": { "bin-links": true, "forward-command": false - }, - "branch-alias": { - "dev-master": "7.5-dev" } }, "autoload": { @@ -799,7 +796,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.5.1" + "source": "https://github.com/guzzle/guzzle/tree/7.6.0" }, "funding": [ { @@ -815,7 +812,7 @@ "type": "tidelift" } ], - "time": "2023-04-17T16:30:08+00:00" + "time": "2023-05-14T11:23:39+00:00" }, { "name": "guzzlehttp/promises", @@ -1214,6 +1211,48 @@ }, "time": "2023-02-18T21:01:57+00:00" }, + { + "name": "joshbrw/laravel-module-installer", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/joshbrw/laravel-module-installer.git", + "reference": "667820efd0652df8ed61420cd0dec8df1b3ecdd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/joshbrw/laravel-module-installer/zipball/667820efd0652df8ed61420cd0dec8df1b3ecdd2", + "reference": "667820efd0652df8ed61420cd0dec8df1b3ecdd2", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.0", + "php": "7.* || 8.*" + }, + "require-dev": { + "composer/composer": "^2.0", + "mockery/mockery": "~1.0", + "phpunit/phpunit": "~8.0 || ~9.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Joshbrw\\LaravelModuleInstaller\\LaravelModuleInstallerPlugin" + }, + "autoload": { + "psr-4": { + "Joshbrw\\LaravelModuleInstaller\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "support": { + "issues": "https://github.com/joshbrw/laravel-module-installer/issues", + "source": "https://github.com/joshbrw/laravel-module-installer/tree/v2.0.1" + }, + "time": "2021-01-17T21:51:00+00:00" + }, { "name": "laminas/laminas-diactoros", "version": "2.25.2", @@ -1370,16 +1409,16 @@ }, { "name": "laravel/framework", - "version": "v10.10.0", + "version": "v10.10.1", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "0da22a8d179f79b49d4e71f4822f759651f35012" + "reference": "be0478dea96a6619bb77676f36f67c1500846b17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/0da22a8d179f79b49d4e71f4822f759651f35012", - "reference": "0da22a8d179f79b49d4e71f4822f759651f35012", + "url": "https://api.github.com/repos/laravel/framework/zipball/be0478dea96a6619bb77676f36f67c1500846b17", + "reference": "be0478dea96a6619bb77676f36f67c1500846b17", "shasum": "" }, "require": { @@ -1566,7 +1605,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2023-05-09T13:08:05+00:00" + "time": "2023-05-11T13:20:25+00:00" }, { "name": "laravel/octane", @@ -7757,16 +7796,16 @@ }, { "name": "laravel/breeze", - "version": "v1.20.2", + "version": "v1.21.0", "source": { "type": "git", "url": "https://github.com/laravel/breeze.git", - "reference": "b010ff3f8cd8e9ae2a2023ca323fba9987157f60" + "reference": "a7e7e2acfb2fd332183aae41c445be7a2329e93e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/breeze/zipball/b010ff3f8cd8e9ae2a2023ca323fba9987157f60", - "reference": "b010ff3f8cd8e9ae2a2023ca323fba9987157f60", + "url": "https://api.github.com/repos/laravel/breeze/zipball/a7e7e2acfb2fd332183aae41c445be7a2329e93e", + "reference": "a7e7e2acfb2fd332183aae41c445be7a2329e93e", "shasum": "" }, "require": { @@ -7815,7 +7854,7 @@ "issues": "https://github.com/laravel/breeze/issues", "source": "https://github.com/laravel/breeze" }, - "time": "2023-04-16T20:27:51+00:00" + "time": "2023-05-04T15:02:53+00:00" }, { "name": "laravel/pint", @@ -7885,23 +7924,23 @@ }, { "name": "laravel/sail", - "version": "v1.21.5", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "27af207bb1c53faddcba34c7528b3e969f6a646d" + "reference": "923e1e112b6a8598664dbb0ee79dd3137f1c9d56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/27af207bb1c53faddcba34c7528b3e969f6a646d", - "reference": "27af207bb1c53faddcba34c7528b3e969f6a646d", + "url": "https://api.github.com/repos/laravel/sail/zipball/923e1e112b6a8598664dbb0ee79dd3137f1c9d56", + "reference": "923e1e112b6a8598664dbb0ee79dd3137f1c9d56", "shasum": "" }, "require": { "illuminate/console": "^8.0|^9.0|^10.0", "illuminate/contracts": "^8.0|^9.0|^10.0", "illuminate/support": "^8.0|^9.0|^10.0", - "php": "^7.3|^8.0", + "php": "^8.0", "symfony/yaml": "^6.0" }, "require-dev": { @@ -7946,7 +7985,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2023-04-24T13:29:38+00:00" + "time": "2023-05-04T14:52:56+00:00" }, { "name": "mockery/mockery", @@ -8608,16 +8647,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.1.2", + "version": "10.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "6f0cd95be71add539f8fd2be25b2a4a29789000b" + "reference": "2379ebafc1737e71cdc84f402acb6b7f04198b9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6f0cd95be71add539f8fd2be25b2a4a29789000b", - "reference": "6f0cd95be71add539f8fd2be25b2a4a29789000b", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2379ebafc1737e71cdc84f402acb6b7f04198b9d", + "reference": "2379ebafc1737e71cdc84f402acb6b7f04198b9d", "shasum": "" }, "require": { @@ -8689,7 +8728,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.1.2" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.1.3" }, "funding": [ { @@ -8705,7 +8744,7 @@ "type": "tidelift" } ], - "time": "2023-04-22T07:38:19+00:00" + "time": "2023-05-11T05:16:22+00:00" }, { "name": "sebastian/cli-parser", diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php index c12d856..17b28da 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -1,10 +1,10 @@ id(); $table->foreignIdFor('Modules\CetakLabel\Entities\Directorat', 'directorat_id')->nullable(); - $table->foreignIdFor('App\Models\SubDirectorat', 'sub_directorat_id')->nullable(); + $table->foreignIdFor('Modules\CetakLabel\Entities\SubDirectorat', 'sub_directorat_id')->nullable(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); diff --git a/routes/web.php b/routes/web.php index b669080..f14a54f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -36,16 +36,6 @@ Route::group(['middleware' => ['auth', 'verified']], function () { }); - Route::resource('sub-directorat', SubDirectoratController::class); - Route::resource('job', JobController::class); - Route::resource('sub-job', SubJobController::class); - Route::resource('sub-sub-job', SubSubJobController::class); - Route::resource('special-code', SpecialCodeController::class); - Route::resource('document-type', DocumentTypeController::class); - - Route::resource('document', DocumentController::class); - //Route::resource('document-detail', DOcumentDetailController::class); - // Users Management Route::prefix('user')->name('user.')->group(function(){ Route::resource('roles', RolesController::class);