Merge branch 'dev' into feat/load-map-from-kmz
This commit is contained in:
@@ -199,7 +199,7 @@ class AdvertisementController extends Controller
|
||||
|
||||
public function downloadExcelAdvertisement()
|
||||
{
|
||||
$filePath = storage_path('app/public/templates/template_reklame.xlsx');
|
||||
$filePath = public_path('templates/template_reklame.xlsx');
|
||||
|
||||
// Cek apakah file ada
|
||||
if (!file_exists($filePath)) {
|
||||
|
||||
130
app/Http/Controllers/Api/CustomersController.php
Normal file
130
app/Http/Controllers/Api/CustomersController.php
Normal file
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\CustomersRequest;
|
||||
use App\Http\Requests\ExcelUploadRequest;
|
||||
use App\Http\Resources\CustomersResource;
|
||||
use App\Imports\CustomersImport;
|
||||
use App\Models\Customer;
|
||||
use Illuminate\Http\Request;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
|
||||
class CustomersController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$query = Customer::query()->orderBy('id', 'desc');
|
||||
if ($request->has('search') &&!empty($request->get('search'))) {
|
||||
$query = $query->where('nomor_pelanggan', 'LIKE', '%'.$request->get('search').'%')
|
||||
->orWhere('nama', 'LIKE', '%'.$request->get('search').'%')
|
||||
->orWhere('kota_palayanan', 'LIKE', '%'.$request->get('search').'%');
|
||||
}
|
||||
return CustomersResource::collection($query->paginate());
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(CustomersRequest $request)
|
||||
{
|
||||
try{
|
||||
$customer = Customer::create($request->validated());
|
||||
return response()->json(['message' => 'Successfully created', new CustomersResource($customer)]);
|
||||
}catch(\Exception $e){
|
||||
return response()->json([
|
||||
'message' => 'Failed to create customer',
|
||||
'error' => $e->getMessage()
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*/
|
||||
public function show(string $id)
|
||||
{
|
||||
try{
|
||||
$customer = Customer::find($id);
|
||||
if($customer){
|
||||
return new CustomersResource($customer);
|
||||
} else {
|
||||
return response()->json(['message' => 'Customer not found'], 404);
|
||||
}
|
||||
}catch(\Exception $e){
|
||||
return response()->json([
|
||||
'message' => 'Failed to retrieve customer',
|
||||
'error' => $e->getMessage()
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(CustomersRequest $request, string $id)
|
||||
{
|
||||
try{
|
||||
$customer = Customer::find($id);
|
||||
if($customer){
|
||||
$customer->update($request->validated());
|
||||
return response()->json(['message' => 'Successfully updated', new CustomersResource($customer)]);
|
||||
} else {
|
||||
return response()->json(['message' => 'Customer not found'], 404);
|
||||
}
|
||||
}catch(\Exception $e) {
|
||||
return response()->json([
|
||||
'message' => 'Failed to update customer',
|
||||
'error' => $e->getMessage()
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(string $id)
|
||||
{
|
||||
try{
|
||||
$customer = Customer::find($id);
|
||||
if($customer){
|
||||
$customer->delete();
|
||||
return response()->json(['message' => 'Successfully deleted']);
|
||||
}else {
|
||||
return response()->json(['message' => 'Customer not found'], 404);
|
||||
}
|
||||
}catch(\Exception $e) {
|
||||
return response()->json([
|
||||
'message' => 'Failed to delete customer',
|
||||
'error' => $e->getMessage()
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
public function upload(ExcelUploadRequest $request){
|
||||
try{
|
||||
if(!$request->hasFile('file')){
|
||||
return response()->json([
|
||||
'error' => 'No file provided'
|
||||
], 400);
|
||||
}
|
||||
|
||||
$file = $request->file('file');
|
||||
Excel::import(new CustomersImport, $file);
|
||||
|
||||
return response()->json([
|
||||
'message' => 'File uploaded successfully',
|
||||
]);
|
||||
}catch(\Exception $e){
|
||||
\Log::info($e->getMessage());
|
||||
return response()->json([
|
||||
'error' => 'Failed to upload file',
|
||||
'message' => $e->getMessage()
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
146
app/Http/Controllers/Api/SpatialPlanningController.php
Normal file
146
app/Http/Controllers/Api/SpatialPlanningController.php
Normal file
@@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Models\SpatialPlanning;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Requests\SpatialPlanningRequest;
|
||||
use Illuminate\Http\Response;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Resources\SpatialPlanningResource;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use App\Imports\SpatialPlanningImport;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class SpatialPlanningController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
info($request);
|
||||
$perPage = $request->input('per_page', 15);
|
||||
$search = $request->input('search', '');
|
||||
|
||||
$query = SpatialPlanning::query();
|
||||
if ($search) {
|
||||
$query->where(function ($q) use ($search) {
|
||||
$q->where('name', 'like', "%$search%")
|
||||
->orWhere('kbli', 'like', "%$search%")
|
||||
->orWhere('activities', 'like', "%$search%")
|
||||
->orWhere('area', 'like', "%$search%")
|
||||
->orWhere('location', 'like', "%$search%")
|
||||
->orWhere('number', 'like', "%$search%");
|
||||
});
|
||||
}
|
||||
|
||||
$spatialPlannings = $query->paginate($perPage);
|
||||
|
||||
// Menambhakan nomor urut (No)
|
||||
$start = ($spatialPlannings->currentPage()-1) * $perPage + 1;
|
||||
|
||||
// Tambahkan nomor urut ke dalam data
|
||||
$data = $spatialPlannings->map(function ($item, $index) use ($start) {
|
||||
return array_merge($item->toArray(), ['no' => $start + $index]);
|
||||
});
|
||||
|
||||
info($data);
|
||||
|
||||
return response()->json([
|
||||
'data' => $data,
|
||||
'meta' => [
|
||||
'total' => $spatialPlannings->total(),
|
||||
'per_page' => $spatialPlannings->perPage(),
|
||||
'current_page' => $spatialPlannings->currentPage(),
|
||||
'last_page'=>$spatialPlannings->lastPage(),
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(SpatialPlanningRequest $request): SpatialPlanning
|
||||
{
|
||||
$data = $request->validated();
|
||||
return SpatialPlanning::create($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* import spatial planning from excel
|
||||
*/
|
||||
public function importFromFile(Request $request)
|
||||
{
|
||||
info($request);
|
||||
//validasi file
|
||||
$validator = Validator::make($request->all(), [
|
||||
'file' => 'required|mimes:xlsx, xls|max:10240'
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json([
|
||||
'message'=>'File vaildation failed.',
|
||||
"errors"=>$validator->errors()
|
||||
], 400);
|
||||
}
|
||||
|
||||
try {
|
||||
$file = $request->file('file');
|
||||
Excel::import(new SpatialPlanningImport, $file);
|
||||
return response()->json([
|
||||
'message'=>'File uploaded and imported successfully!'
|
||||
], 200);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'message'=>'Error during file import.',
|
||||
'error'=>$e->getMessage()
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*/
|
||||
public function show(SpatialPlanning $spatialPlanning): SpatialPlanning
|
||||
{
|
||||
return $spatialPlanning;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(SpatialPlanningRequest $request, SpatialPlanning $spatialPlanning): SpatialPlanning
|
||||
{
|
||||
info($request);
|
||||
$data = $request->validated();
|
||||
info($data);
|
||||
|
||||
$spatialPlanning->update($data);
|
||||
|
||||
return $spatialPlanning;
|
||||
}
|
||||
|
||||
public function destroy(SpatialPlanning $spatialPlanning): Response
|
||||
{
|
||||
$spatialPlanning->delete();
|
||||
|
||||
return response()->noContent();
|
||||
}
|
||||
|
||||
public function downloadExcelSpatialPlanning()
|
||||
{
|
||||
$filePath = public_path('templates/template_spatial_planning.xlsx');
|
||||
info(sprintf("File Path: %s | Exists: %s", $filePath, file_exists($filePath) ? 'Yes' : 'No'));
|
||||
|
||||
// Cek apakah file ada
|
||||
if (!file_exists($filePath)) {
|
||||
return response()-> json(['message' => 'File tidak ditemukan!'], Response::HTTP_NOT_FOUND);
|
||||
}
|
||||
|
||||
// Return file to download
|
||||
return response()->download($filePath);
|
||||
}
|
||||
}
|
||||
@@ -25,6 +25,13 @@ class TourismController extends Controller
|
||||
$search = $request->input('search', '');
|
||||
|
||||
$query = Tourism::query();
|
||||
if ($search) {
|
||||
$query->where(function ($q) use ($search) {
|
||||
$q->where('business_name', 'like', "%$search%")
|
||||
->orWhere('project_name', 'like', "%$search%")
|
||||
->orWhere('business_address', 'like', "%$search%");
|
||||
});
|
||||
}
|
||||
$tourisms = $query->paginate($perPage);
|
||||
|
||||
$tourisms->getCollection()->transform(function ($tourisms) {
|
||||
@@ -36,8 +43,14 @@ class TourismController extends Controller
|
||||
return $tourisms;
|
||||
});
|
||||
|
||||
$start = ($tourisms->currentPage()-1) * $perPage + 1;
|
||||
|
||||
$data = $tourisms->map(function ($item, $index) use ($start) {
|
||||
return array_merge($item->toArray(), ['no' => $start + $index]);
|
||||
});
|
||||
|
||||
return response()->json([
|
||||
'data' => TourismResource::collection($tourisms),
|
||||
'data' => $data,
|
||||
'meta' => [
|
||||
'total' => $tourisms->total(),
|
||||
'per_page' => $tourisms->perPage(),
|
||||
@@ -127,4 +140,18 @@ class TourismController extends Controller
|
||||
|
||||
return response()->noContent();
|
||||
}
|
||||
|
||||
public function downloadExcelTourism()
|
||||
{
|
||||
$filePath = public_path('templates/template_pariwisata.xlsx');
|
||||
info(sprintf("File Path: %s | Exists: %s", $filePath, file_exists($filePath) ? 'Yes' : 'No'));
|
||||
|
||||
// Cek apakah file ada
|
||||
if (!file_exists($filePath)) {
|
||||
return response()-> json(['message' => 'File tidak ditemukan!'], Response::HTTP_NOT_FOUND);
|
||||
}
|
||||
|
||||
// Return file to download
|
||||
return response()->download($filePath);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,17 @@ class UmkmController extends Controller
|
||||
|
||||
$query = Umkm::query();
|
||||
|
||||
if ($search) {
|
||||
$query->where(function ($q) use ($search) {
|
||||
$q->where('business_name', 'like', "%$search%")
|
||||
->orWhere('business_address', 'like', "%$search%")
|
||||
->orWhere('business_desc', 'like', "%$search%")
|
||||
->orWhere('business_id_number', 'like', "%$search%")
|
||||
->orWhere('owner_id', 'like', "%$search%")
|
||||
->orWhere('owner_name', 'like', "%$search%");
|
||||
});
|
||||
}
|
||||
|
||||
$umkm = $query->paginate($perPage);
|
||||
|
||||
$umkm->getCollection()->transform(function ($umkm) {
|
||||
@@ -47,8 +58,14 @@ class UmkmController extends Controller
|
||||
return $umkm;
|
||||
});
|
||||
|
||||
$start = ($umkm->currentPage()-1) * $perPage + 1;
|
||||
|
||||
$data = $umkm->map(function ($item, $index) use ($start) {
|
||||
return array_merge($item->toArray(), ['no' => $start + $index]);
|
||||
});
|
||||
|
||||
return response()->json([
|
||||
'data' => UmkmResource::collection($umkm),
|
||||
'data' => $data,
|
||||
'meta' => [
|
||||
'total' => $umkm->total(),
|
||||
'per_page' => $umkm->perPage(),
|
||||
@@ -176,7 +193,7 @@ class UmkmController extends Controller
|
||||
|
||||
public function downloadExcelUmkm()
|
||||
{
|
||||
$filePath = storage_path('app/public/templates/template_umkm.xlsx');
|
||||
$filePath = public_path('templates/template_umkm.xlsx');
|
||||
|
||||
// Cek apakah file ada
|
||||
if (!file_exists($filePath)) {
|
||||
|
||||
26
app/Http/Controllers/CustomersController.php
Normal file
26
app/Http/Controllers/CustomersController.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Customer;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CustomersController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
return view('customers.index');
|
||||
}
|
||||
public function create()
|
||||
{
|
||||
return view('customers.create');
|
||||
}
|
||||
public function edit(string $id)
|
||||
{
|
||||
$data = Customer::findOrFail($id);
|
||||
return view('customers.edit', compact('data'));
|
||||
}
|
||||
public function upload(){
|
||||
return view('customers.upload');
|
||||
}
|
||||
}
|
||||
125
app/Http/Controllers/Data/SpatialPlanningController.php
Normal file
125
app/Http/Controllers/Data/SpatialPlanningController.php
Normal file
@@ -0,0 +1,125 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Data;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\SpatialPlanning;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class SpatialPlanningController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view('data.spatialPlannings.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* show the form for creating a new resource.
|
||||
*/
|
||||
public function bulkCreate()
|
||||
{
|
||||
return view('data.spatialPlannings.form-upload');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$title = 'Rencana Tata Ruang';
|
||||
$subtitle = "Create Data";
|
||||
|
||||
// Mengambil data untuk dropdown
|
||||
$dropdownOptions = [];
|
||||
|
||||
$fields = $this->getFields();
|
||||
$fieldTypes = $this->getFieldTypes();
|
||||
|
||||
$apiUrl = url('/api/spatial-plannings');
|
||||
return view('data.spatialPlannings.form', compact('title', 'subtitle', 'fields', 'fieldTypes', 'apiUrl', 'dropdownOptions'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*/
|
||||
public function show(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit(string $id)
|
||||
{
|
||||
$title = 'Rencana Tata Ruang';
|
||||
$subtitle = 'Update Data';
|
||||
|
||||
$modelInstance = SpatialPlanning::find($id);
|
||||
// Pastikan model ditemukan
|
||||
if (!$modelInstance) {
|
||||
return redirect()->route('spatialPlanning.index') ->with('error', 'Rencana tata ruang tidak ditemukan');
|
||||
}
|
||||
|
||||
$dropdownOptions = [];
|
||||
|
||||
$fields = $this->getFields();
|
||||
$fieldTypes = $this->getFieldTypes();
|
||||
|
||||
$apiUrl = url('/api/spatial-plannings');
|
||||
return view('data.spatialPlannings.form', compact('title', 'subtitle', 'modelInstance', 'fields', 'fieldTypes', 'apiUrl', 'dropdownOptions'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
private function getFields()
|
||||
{
|
||||
return [
|
||||
"name"=> "Nama",
|
||||
"kbli"=> "KBLI",
|
||||
"activities"=> "Kegiatan",
|
||||
"area"=> "Luas (m2)",
|
||||
"location"=> "Lokasi",
|
||||
"number"=> "Nomor",
|
||||
"date"=> "Tanggal",
|
||||
];
|
||||
}
|
||||
|
||||
private function getFieldTypes()
|
||||
{
|
||||
return [
|
||||
"name"=> "text",
|
||||
"kbli"=> "text",
|
||||
"activities"=> "text",
|
||||
"area"=> "text",
|
||||
"location"=> "text",
|
||||
"number"=> "text",
|
||||
"date"=> "date",
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -53,7 +53,7 @@ class TourismController extends Controller
|
||||
public function edit($id)
|
||||
{
|
||||
$title = 'Pariwisata';
|
||||
$subtitle = 'Create Data';
|
||||
$subtitle = 'Update Data';
|
||||
|
||||
$modelInstance = Tourism::find($id);
|
||||
// Pastikan model ditemukan
|
||||
|
||||
@@ -40,4 +40,40 @@ class AdvertisementRequest extends FormRequest
|
||||
'contact' => 'required|string',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* pesan error validasi
|
||||
*/
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'no.required' => 'Nomor harus diisi.',
|
||||
'business_name.required' => 'Nama usaha harus diisi.',
|
||||
'business_name.string' => 'Nama usaha harus berupa teks.',
|
||||
'npwpd.required' => 'NPWPD harus diisi.',
|
||||
'npwpd.string' => 'NPWPD harus berupa teks.',
|
||||
'advertisement_type.required' => 'Jenis reklame harus diisi.',
|
||||
'advertisement_type.string' => 'Jenis reklame harus berupa teks.',
|
||||
'advertisement_content.required' => 'Isi reklame harus diisi.',
|
||||
'advertisement_content.string' => 'Isi reklame harus berupa teks.',
|
||||
'business_address.required' => 'Alamat usaha harus diisi.',
|
||||
'business_address.string' => 'Alamat usaha harus berupa teks.',
|
||||
'advertisement_location.required' => 'Lokasi reklame harus diisi.',
|
||||
'advertisement_location.string' => 'Lokasi reklame harus berupa teks.',
|
||||
'village_name.required' => 'Nama desa harus diisi.',
|
||||
'district_name.required' => 'Nama kecamatan harus diisi.',
|
||||
'length.required' => 'Panjang harus diisi.',
|
||||
'width.required' => 'Lebar harus diisi.',
|
||||
'viewing_angle.required' => 'Sudut pandang harus diisi.',
|
||||
'viewing_angle.string' => 'Sudut pandang harus berupa teks.',
|
||||
'face.required' => 'Jumlah sisi harus diisi.',
|
||||
'face.string' => 'Jumlah sisi harus berupa teks.',
|
||||
'area.required' => 'Luas harus diisi.',
|
||||
'area.string' => 'Luas harus berupa teks.',
|
||||
'angle.required' => 'Sudut harus diisi.',
|
||||
'angle.string' => 'Sudut harus berupa teks.',
|
||||
'contact.required' => 'Kontak harus diisi.',
|
||||
'contact.string' => 'Kontak harus berupa teks.',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
33
app/Http/Requests/CustomersRequest.php
Normal file
33
app/Http/Requests/CustomersRequest.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class CustomersRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'nomor_pelanggan' => ['required', 'string'],
|
||||
'kota_pelayanan' => ['required', 'string'],
|
||||
'nama' => ['required', 'string'],
|
||||
'alamat' => ['required', 'string'],
|
||||
'latitude' => ['required', 'numeric', 'between:-90,90'],
|
||||
'longitude' => ['required', 'numeric', 'between:-180,180'],
|
||||
];
|
||||
}
|
||||
}
|
||||
28
app/Http/Requests/ExcelUploadRequest.php
Normal file
28
app/Http/Requests/ExcelUploadRequest.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class ExcelUploadRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
"file" => "required|file|mimes:xlsx,xls|max:102400"
|
||||
];
|
||||
}
|
||||
}
|
||||
52
app/Http/Requests/SpatialPlanningRequest.php
Normal file
52
app/Http/Requests/SpatialPlanningRequest.php
Normal file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class SpatialPlanningRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'name' => 'string',
|
||||
'kbli' => 'string',
|
||||
'activities' => 'string',
|
||||
'area' => 'string',
|
||||
'location' => 'string',
|
||||
'number' => 'string',
|
||||
'date' => 'date_format:Y-m-d',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation messages for the defined validation rules.
|
||||
*
|
||||
* @return array<string, string>
|
||||
*/
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'name.string' => 'Kolom Nama harus berupa teks.',
|
||||
'kbli.string' => 'Kolom KBLI harus berupa teks.',
|
||||
'activities.string' => 'Kolom Kegiatan harus berupa teks.',
|
||||
'area.string' => 'Kolom Area harus berupa teks.',
|
||||
'location.string' => 'Kolom Lokasi harus berupa teks.',
|
||||
'number.string' => 'Kolom Nomor harus berupa teks.',
|
||||
'date.date_format' => 'Format tanggal tidak valid, gunakan format Y-m-d H:i:s.',
|
||||
];
|
||||
}
|
||||
}
|
||||
35
app/Http/Requests/SpatialPlanningsRequest.php
Normal file
35
app/Http/Requests/SpatialPlanningsRequest.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class SpatialPlanningsRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'name' => ['required','string','max:255'],
|
||||
'kbli' => ['required','string','max:255'],
|
||||
'kegiatan' => ['required','string'],
|
||||
'luas' => ['required','numeric','regex:/^\d{1,16}(\.\d{1,2})?$/'],
|
||||
'lokasi' => ['required','string'],
|
||||
'nomor' => ['required','string','max:255',Rule::unique('spatial_plannings')->ignore($this->id)],
|
||||
'sp_date' => ['required','date'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -49,4 +49,85 @@ class TourismRequest extends FormRequest
|
||||
'tki' => 'required|string',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation messages for the defined validation rules.
|
||||
*
|
||||
* @return array<string, string>
|
||||
*/
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'project_id.required' => 'ID proyek harus diisi.',
|
||||
'project_id.string' => 'ID proyek harus berupa teks.',
|
||||
|
||||
'project_type_id.required' => 'ID tipe proyek harus diisi.',
|
||||
'project_type_id.string' => 'ID tipe proyek harus berupa teks.',
|
||||
|
||||
'nib.required' => 'NIB harus diisi.',
|
||||
'nib.string' => 'NIB harus berupa teks.',
|
||||
|
||||
'business_name.required' => 'Nama usaha harus diisi.',
|
||||
'business_name.string' => 'Nama usaha harus berupa teks.',
|
||||
|
||||
'oss_publication_date.required' => 'Tanggal publikasi OSS harus diisi.',
|
||||
|
||||
'investment_status_description.required' => 'Deskripsi status investasi harus diisi.',
|
||||
'investment_status_description.string' => 'Deskripsi status investasi harus berupa teks.',
|
||||
|
||||
'business_form.required' => 'Bentuk usaha harus diisi.',
|
||||
'business_form.string' => 'Bentuk usaha harus berupa teks.',
|
||||
|
||||
'project_risk.required' => 'Risiko proyek harus diisi.',
|
||||
'project_risk.string' => 'Risiko proyek harus berupa teks.',
|
||||
|
||||
'project_name.required' => 'Nama proyek harus diisi.',
|
||||
'project_name.string' => 'Nama proyek harus berupa teks.',
|
||||
|
||||
'business_scale.required' => 'Skala usaha harus diisi.',
|
||||
'business_scale.string' => 'Skala usaha harus berupa teks.',
|
||||
|
||||
'business_address.required' => 'Alamat usaha harus diisi.',
|
||||
'business_address.string' => 'Alamat usaha harus berupa teks.',
|
||||
|
||||
'district_name.required' => 'Nama kecamatan harus diisi.',
|
||||
|
||||
'village_name.required' => 'Nama desa harus diisi.',
|
||||
|
||||
'longitude.required' => 'Garis bujur harus diisi.',
|
||||
'longitude.string' => 'Garis bujur harus berupa teks.',
|
||||
|
||||
'latitude.required' => 'Garis lintang harus diisi.',
|
||||
'latitude.string' => 'Garis lintang harus berupa teks.',
|
||||
|
||||
'project_submission_date.required' => 'Tanggal pengajuan proyek harus diisi.',
|
||||
|
||||
'kbli.required' => 'Kode KBLI harus diisi.',
|
||||
'kbli.string' => 'Kode KBLI harus berupa teks.',
|
||||
|
||||
'kbli_title.required' => 'Judul KBLI harus diisi.',
|
||||
'kbli_title.string' => 'Judul KBLI harus berupa teks.',
|
||||
|
||||
'supervisory_sector.required' => 'Sektor pengawasan harus diisi.',
|
||||
'supervisory_sector.string' => 'Sektor pengawasan harus berupa teks.',
|
||||
|
||||
'user_name.required' => 'Nama pengguna harus diisi.',
|
||||
'user_name.string' => 'Nama pengguna harus berupa teks.',
|
||||
|
||||
'email.required' => 'Email harus diisi.',
|
||||
'email.string' => 'Email harus berupa teks.',
|
||||
|
||||
'contact.required' => 'Kontak harus diisi.',
|
||||
'contact.string' => 'Kontak harus berupa teks.',
|
||||
|
||||
'land_area_in_m2.required' => 'Luas lahan dalam m² harus diisi.',
|
||||
'land_area_in_m2.string' => 'Luas lahan dalam m² harus berupa teks.',
|
||||
|
||||
'investment_amount.required' => 'Jumlah investasi harus diisi.',
|
||||
'investment_amount.string' => 'Jumlah investasi harus berupa teks.',
|
||||
|
||||
'tki.required' => 'Jumlah tenaga kerja Indonesia harus diisi.',
|
||||
'tki.string' => 'Jumlah tenaga kerja Indonesia harus berupa teks.',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
19
app/Http/Resources/CustomersResource.php
Normal file
19
app/Http/Resources/CustomersResource.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class CustomersResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
return parent::toArray($request);
|
||||
}
|
||||
}
|
||||
19
app/Http/Resources/SpatialPlanningResource.php
Normal file
19
app/Http/Resources/SpatialPlanningResource.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class SpatialPlanningResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
return parent::toArray($request);
|
||||
}
|
||||
}
|
||||
19
app/Http/Resources/SpatialPlanningsResource.php
Normal file
19
app/Http/Resources/SpatialPlanningsResource.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class SpatialPlanningsResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
return parent::toArray($request);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user