Init First Release

This commit is contained in:
Firman Herdiansyah
2025-02-06 05:19:19 +07:00
50 changed files with 3254 additions and 695 deletions

View File

@@ -12,42 +12,47 @@ class DashboardController extends Controller
use GlobalApiResponse;
public function businnessDocument(Request $request){
$businessData = DB::table('pbg_task')
->leftJoin('pbg_task_retributions', 'pbg_task.uuid', '=', 'pbg_task_retributions.pbg_task_uid')
->select(
DB::raw('COUNT(DISTINCT pbg_task.id) as task_count'),
DB::raw('SUM(pbg_task_retributions.nilai_retribusi_bangunan) as total_retribution')
)
$query = DB::table('pbg_task AS pt')
->leftJoin('pbg_task_google_sheet AS ptgs', 'pt.registration_number', '=', 'ptgs.no_registrasi')
->leftJoin('pbg_task_retributions AS ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid') // Join ke pbg_task_retributions
->where(function ($query) {
$query->where("pbg_task.function_type", "LIKE", "sebagai tempat usaha%");
$query->whereRaw('LOWER(TRIM(ptgs.status_verifikasi)) != ?', [strtolower(trim('Selesai Verifikasi'))])
->orWhereNull('ptgs.status_verifikasi');
})
->where(function ($query) {
$query->whereRaw('LOWER(TRIM(pt.function_type)) = ?', [strtolower(trim('Sebagai Tempat Usaha'))]);
})
->selectRaw('COUNT(pt.id) AS total_data,
SUM(ptr.nilai_retribusi_bangunan) AS total_retribution') // Menambahkan SUM dari pbg_task_retributions
->first();
$taskCount = $businessData->task_count;
$taskTotal = $businessData->total_retribution;
$taskCount = $query->total_data;
$taskTotal = $query->total_retribution ?? 0;
$result = [
"count" => $taskCount,
"series" => [$taskCount],
"total" => $taskTotal
];
return $this->resSuccess($result);
}
public function nonBusinnessDocument(Request $request){
$businessData = DB::table('pbg_task')
->leftJoin('pbg_task_retributions', 'pbg_task.uuid', '=', 'pbg_task_retributions.pbg_task_uid')
->select(
DB::raw('COUNT(DISTINCT pbg_task.id) as task_count'),
DB::raw('SUM(pbg_task_retributions.nilai_retribusi_bangunan) as total_retribution')
)
$query = DB::table('pbg_task AS pt')
->leftJoin('pbg_task_google_sheet AS ptgs', 'pt.registration_number', '=', 'ptgs.no_registrasi')
->leftJoin('pbg_task_retributions AS ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid') // Join ke pbg_task_retributions
->where(function ($query) {
$query->where("pbg_task.function_type", "NOT LIKE", "sebagai tempat usaha%")
->orWhereNull("pbg_task.function_type");
$query->whereRaw('LOWER(TRIM(ptgs.status_verifikasi)) != ?', [strtolower(trim('Selesai Verifikasi'))])
->orWhereNull('ptgs.status_verifikasi'); // Include NULL values
})
->where(function ($query) {
$query->whereRaw('LOWER(TRIM(pt.function_type)) != ?', [strtolower(trim('Sebagai Tempat Usaha'))])
->orWhereNull('pt.function_type'); // Include NULL values
})
->selectRaw('COUNT(pt.id) AS total_data,
SUM(ptr.nilai_retribusi_bangunan) AS total_retribution') // Menambahkan SUM dari pbg_task_retributions
->first();
$taskCount = $businessData->task_count;
$taskTotal = $businessData->total_retribution;
$taskCount = $query->total_data;
$taskTotal = $query->total_retribution ?? 0;
$result = [
"count" => $taskCount,
"series" => [$taskCount],
"total" => $taskTotal
];
return $this->resSuccess($result);
@@ -64,12 +69,54 @@ class DashboardController extends Controller
$taskTotal = $query->total_retribution;
$result = [
"count" => $taskCount,
"series" => [$taskCount],
"total" => $taskTotal
];
return $this->resSuccess($result);
}
public function verificationDocuments(){
$query = DB::table('pbg_task AS pt')
->leftJoin('pbg_task_google_sheet AS ptgs', 'pt.registration_number', '=', 'ptgs.no_registrasi')
->leftJoin('pbg_task_retributions AS ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid') // Menambahkan join ke pbg_task_retributions
->whereRaw('LOWER(TRIM(ptgs.status_verifikasi)) = ?', [strtolower(trim('Selesai Verifikasi'))])
->selectRaw('COUNT(pt.id) AS total_data,
SUM(ptr.nilai_retribusi_bangunan) AS total_retribution')
->first();
$taskCount = $query->total_data;
$taskTotal = $query->total_retribution;
$result = [
"count"=> $taskCount,
"total"=> $taskTotal
];
return $this->resSuccess($result);
}
public function nonVerificationDocuments(){
$query = DB::table('pbg_task AS pt')
->leftJoin('pbg_task_google_sheet AS ptgs', 'pt.registration_number', '=', 'ptgs.no_registrasi')
->leftJoin('pbg_task_retributions AS ptr', 'pt.uuid', '=', 'ptr.pbg_task_uid') // Join tabel pbg_task_retributions
->where(function ($query) {
$query->whereRaw('LOWER(TRIM(ptgs.status_verifikasi)) != ?', [strtolower(trim('Selesai Verifikasi'))])
->orWhereNull('ptgs.status_verifikasi'); // Include NULL values
})
->selectRaw('COUNT(pt.id) AS total_data,
SUM(ptr.nilai_retribusi_bangunan) AS total_retribution') // Menambahkan SUM dari pbg_task_retributions
->first();
$taskCount = $query->total_data;
$taskTotal = $query->total_retribution ?? 0;
$result = [
"count"=> $taskCount,
"total"=> $taskTotal
];
return $this->resSuccess($result);
}
public function pbgTaskDocuments(Request $request){
$request->validate([
'status' => 'required|string'

View File

@@ -0,0 +1,104 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Http\Requests\DataSettingRequest;
use App\Http\Resources\DataSettingResource;
use App\Models\DataSetting;
use App\Traits\GlobalApiResponse;
use Exception;
use Illuminate\Http\Request;
class DataSettingController extends Controller
{
use GlobalApiResponse;
/**
* Display a listing of the resource.
*/
public function index(Request $request)
{
try {
$query = DataSetting::query()->orderBy('id', 'desc');
if ($request->has("search") && !empty($request->get("search"))) {
$query = $query->where("key", $request->get("search"));
}
return DataSettingResource::collection($query->paginate());
} catch (Exception $e) {
return $this->resError($e->getMessage(), $e->getTrace());
}
}
/**
* Store a newly created resource in storage.
*/
public function store(DataSettingRequest $request)
{
try {
$data = DataSetting::create($request->validated());
$result = [
"success" => true,
"message" => "Data Setting created successfully",
"data" => new DataSettingResource($data)
];
return $this->resSuccess($result);
} catch (Exception $e) {
return $this->resError($e->getMessage(), $e);
}
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
try {
$setting = DataSetting::findOrFail($id);
$result = [
"setting" => true,
"message" => "Data setting successfully",
"data" => new DataSettingResource($setting)
];
return $this->resSuccess($result);
} catch (Exception $e) {
return $this->resError($e->getMessage());
}
}
/**
* Update the specified resource in storage.
*/
public function update(DataSettingRequest $request, string $id)
{
try {
$data = DataSetting::findOrFail($id);
$data->update($request->validated());
$result = [
"success" => true,
"message" => "Data Setting updated successfully"
];
return $this->resSuccess($result);
} catch (Exception $e) {
return $this->resError($e->getMessage());
}
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
try {
$setting = DataSetting::findOrFail($id);
$setting->delete();
$result = [
"success" => true,
"message" => "Data Setting deleted successfully"
];
return $this->resSuccess($result);
} catch (Exception $e) {
return $this->resError($e->getMessage());
}
}
}

View File

@@ -0,0 +1,61 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Services\GoogleSheetService;
use Illuminate\Http\Request;
class GoogleSheetController extends Controller
{
protected $googleSheetService;
public function __construct(GoogleSheetService $googleSheetService){
$this->googleSheetService = $googleSheetService;
}
/**
* Display a listing of the resource.
*/
public function index()
{
$dataCollection = $this->googleSheetService->getSheetDataCollection();
$result = [
"last_row" => $this->googleSheetService->getLastRowByColumn("C"),
"last_column" => $this->googleSheetService->getLastColumn(),
"header" => $this->googleSheetService->getHeader(),
"data_collection" => $dataCollection
];
return response()->json($result);
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@@ -0,0 +1,291 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Http\Requests\PbgTaskMultiStepRequest;
use App\Models\PbgTask;
use App\Models\PbgTaskGoogleSheet;
use App\Services\GoogleSheetService;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class PbgTaskController extends Controller
{
protected $googleSheetService;
public function __construct(GoogleSheetService $googleSheetService){
$this->googleSheetService = $googleSheetService;
}
public function index()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(PbgTaskMultiStepRequest $request)
{
try {
$data = PbgTask::create([
"uuid" => $request->input("step1Form.uuid"),
"name" => $request->input("step1Form.name"),
"owner_name" => $request->input("step1Form.owner_name"),
"application_type" => $request->input("step1Form.application_type"),
"application_type_name" => $request->input("step1Form.application_type_name"),
"condition" => $request->input("step1Form.condition"),
"registration_number" => $request->input("step1Form.registration_number"),
"document_number" => $request->input("step1Form.document_number"),
"address" => $request->input("step1Form.address"),
"status" => $request->input("step1Form.status"),
"status_name" => $request->input("step1Form.status_name"),
"slf_status" => $request->input("step1Form.slf_status"),
"slf_status_name" => $request->input("step1Form.slf_status_name"),
"function_type" => $request->input("step1Form.function_type"),
"consultation_type" => $request->input("step1Form.consultation_type"),
"due_date" => $request->input("step1Form.due_date"),
"land_certificate_phase" => $request->input("step1Form.land_certificate_phase"),
"task_created_at" => $request->input("step1Form.task_created_at"),
]);
return response()->json([
"success" => true,
"message" => "Step 1 berhasil disimpan!",
"data" => $data
], 201);
} catch (\Exception $e) {
return response()->json([
"success" => false,
"message" => "Gagal menyimpan data",
"error" => $e->getMessage()
], 500);
}
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
protected function validatePbgTask(Request $request){
return $request->validate([
"uuid" => $request->input("step1Form.uuid"),
]);
}
public function syncPbgFromGoogleSheet(){
try{
$totalRowCount = $this->googleSheetService->getLastRowByColumn("C");
$sheetData = $this->googleSheetService->getSheetDataCollection($totalRowCount);
$mapToUpsert = [];
$count = 0;
foreach($sheetData as $data){
$mapToUpsert[] =
[
'no_registrasi' => $data['no__registrasi'] ?? null,
'jenis_konsultasi' => $data['jenis_konsultasi'] ?? null,
'fungsi_bg' => $data['fungsi_bg'] ?? null,
'tgl_permohonan' => $this->convertToDate($data['tgl_permohonan']),
'status_verifikasi' => $data['status_verifikasi'] ?? null,
'status_permohonan' => $this->convertToDate($data['status_permohonan']),
'alamat_pemilik' => $data['alamat_pemilik'] ?? null,
'no_hp' => $data['no__hp'] ?? null,
'email' => $data['e_mail'] ?? null,
'tanggal_catatan' => $this->convertToDate($data['tanggal_catatan']),
'catatan_kekurangan_dokumen' => $data['catatan_kekurangan_dokumen'] ?? null,
'gambar' => $data['gambar'] ?? null,
'krk_kkpr' => $data['krk_kkpr'] ?? null,
'no_krk' => $data['no__krk'] ?? null,
'lh' => $data['lh'] ?? null,
'ska' => $data['ska'] ?? null,
'keterangan' => $data['keterangan'] ?? null,
'helpdesk' => $data['helpdesk'] ?? null,
'pj' => $data['pj'] ?? null,
'kepemilikan' => $data['kepemilikan'] ?? null,
'potensi_taru' => $data['potensi_taru'] ?? null,
'validasi_dinas' => $data['validasi_dinas'] ?? null,
'kategori_retribusi' => $data['kategori_retribusi'] ?? null,
'no_urut_ba_tpt' => $data['no__urut_ba_tpt__2024_0001_'] ?? null,
'tanggal_ba_tpt' => $this->convertToDate($data['tanggal_ba_tpt']),
'no_urut_ba_tpa' => $data['no__urut_ba_tpa'] ?? null,
'tanggal_ba_tpa' => $this->convertToDate($data['tanggal_ba_tpa']),
'no_urut_skrd' => $data['no__urut_skrd__2024_0001_'] ?? null,
'tanggal_skrd' => $this->convertToDate($data['tanggal_skrd']),
'ptsp' => $data['ptsp'] ?? null,
'selesai_terbit' => $data['selesai_terbit'] ?? null,
'tanggal_pembayaran' => $this->convertToDate($data['tanggal_pembayaran__yyyy_mm_dd_']),
'format_sts' => $data['format_sts'] ?? null,
'tahun_terbit' => (int) $data['tahun_terbit'] ?? null,
'tahun_berjalan' => (int) $data['tahun_berjalan'] ?? null,
'kelurahan' => $data['kelurahan'] ?? null,
'kecamatan' => $data['kecamatan'] ?? null,
'lb' => $this->convertToDecimal($data['lb']) ?? null,
'tb' => $this->convertToDecimal($data['tb']) ?? null,
'jlb' => (int) $data['jlb'] ?? null,
'unit' => (int) $data['unit'] ?? null,
'usulan_retribusi' => (int) $data['usulan_retribusi'] ?? null,
'nilai_retribusi_keseluruhan_simbg' => $this->convertToDecimal($data['nilai_retribusi_keseluruhan__simbg_']) ?? null,
'nilai_retribusi_keseluruhan_pad' => $this->convertToDecimal($data['nilai_retribusi_keseluruhan__pad_']) ?? null,
'denda' => $this->convertToDecimal($data['denda']) ?? null,
'latitude' => $data['latitude'] ?? null,
'longitude' => $data['longitude'] ?? null,
'nik_nib' => $data['nik_nib'] ?? null,
'dok_tanah' => $data['dok__tanah'] ?? null,
'temuan' => $data['temuan'] ?? null,
];
}
DB::beginTransaction();
$batchSize = 1000;
$chunks = array_chunk($mapToUpsert, $batchSize);
foreach($chunks as $chunk){
PbgTaskGoogleSheet::upsert($chunk, ["no_registrasi"],[
'jenis_konsultasi',
'nama_pemilik',
'lokasi_bg',
'fungsi_bg',
'nama_bangunan',
'tgl_permohonan',
'status_verifikasi',
'status_permohonan',
'alamat_pemilik',
'no_hp',
'email',
'tanggal_catatan',
'catatan_kekurangan_dokumen',
'gambar',
'krk_kkpr',
'no_krk',
'lh',
'ska',
'keterangan',
'helpdesk',
'pj',
'kepemilikan',
'potensi_taru',
'validasi_dinas',
'kategori_retribusi',
'no_urut_ba_tpt',
'tanggal_ba_tpt',
'no_urut_ba_tpa',
'tanggal_ba_tpa',
'no_urut_skrd',
'tanggal_skrd',
'ptsp',
'selesai_terbit',
'tanggal_pembayaran',
'format_sts',
'tahun_terbit',
'tahun_berjalan',
'kelurahan',
'kecamatan',
'lb',
'tb',
'jlb',
'unit',
'usulan_retribusi',
'nilai_retribusi_keseluruhan_simbg',
'nilai_retribusi_keseluruhan_pad',
'denda',
'latitude',
'longitude',
'nik_nib',
'dok_tanah',
'temuan',
]);
}
DB::commit();
return response()->json([
"success" => true,
"message" => "Data berhasil disimpan ke database"
], 200);
}catch(\Exception $ex){
DB::rollBack();
return response()->json([
"success" => false,
"message" => "Gagal menyimpan data",
"error" => $ex->getMessage()
], 500);
}
}
protected function convertToDecimal(?string $value): ?float
{
if (empty($value)) {
return null; // Return null if the input is empty
}
// Remove all non-numeric characters except comma and dot
$value = preg_replace('/[^0-9,\.]/', '', $value);
// If the number contains both dot (.) and comma (,)
if (strpos($value, '.') !== false && strpos($value, ',') !== false) {
$value = str_replace('.', '', $value); // Remove thousands separator
$value = str_replace(',', '.', $value); // Convert decimal separator to dot
}
// If only a dot is present (assumed as thousands separator)
elseif (strpos($value, '.') !== false) {
$value = str_replace('.', '', $value); // Remove all dots (treat as thousands separators)
}
// If only a comma is present (assumed as decimal separator)
elseif (strpos($value, ',') !== false) {
$value = str_replace(',', '.', $value); // Convert comma to dot (decimal separator)
}
// Ensure the value is numeric before returning
return is_numeric($value) ? (float) number_format((float) $value, 2, '.', '') : null;
}
protected function convertToInteger($value) {
// Check if the value is an empty string, and return null if true
if (trim($value) === "") {
return null;
}
// Otherwise, cast to integer
return (int) $value;
}
protected function convertToDate($dateString)
{
try {
// Check if the string is empty
if (empty($dateString)) {
return null;
}
// Try to parse the date string
$date = Carbon::parse($dateString);
// Return the Carbon instance
return $date->format('Y-m-d');
} catch (\Exception $e) {
// Return null if an error occurs during parsing
return null;
}
}
}

View File

@@ -14,9 +14,10 @@ class RequestAssignmentController extends Controller
*/
public function index(Request $request)
{
$query = PbgTask::query();
$query = PbgTask::query()->orderBy('id', 'desc');
if($request->has('search') && !empty($request->get("search"))){
$query->where('name', 'LIKE', '%'.$request->get('search').'%');
$query->where('name', 'LIKE', '%'.$request->get('search').'%')
->orWhere('registration_number', 'LIKE', '%'.$request->get('search').'%');
}
return RequestAssignmentResouce::collection($query->paginate());
}

View File

@@ -0,0 +1,120 @@
<?php
namespace App\Http\Controllers;
use App\Http\Requests\DataSettingRequest;
use App\Models\DataSetting;
use Exception;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Request;
class DataSettingController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view("data-settings.index");
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view("data-settings.create");
}
/**
* Store a newly created resource in storage.
*/
public function store(DataSettingRequest $request)
{
try{
DB::beginTransaction();
DataSetting::create($request->validated());
DB::commit();
return redirect()->route("data-settings.index")->with("success","Successfully created");
}catch(Exception $ex){
DB::rollBack();
return redirect()->back()
->withInput()
->with('error', 'Something went wrong while saving data. ' . $ex->getMessage());
}
}
/**
* Display the specified resource.
*/
public function show(DataSetting $dataSetting)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
try{
$data = DataSetting::findOrFail($id);
if(empty($data)){
return redirect()->route('data-settings.index')->with('error', 'Invalid id');
}
return view("data-settings.edit", compact("data"));
}catch(Exception $ex){
return redirect()->route("data-settings.index")->with("error", "Invalid id");
}
}
/**
* Update the specified resource in storage.
*/
public function update(DataSettingRequest $request,string $id)
{
try{
DB::beginTransaction();
$data = DataSetting::findOrFail($id);
$data->update($request->validated());
DB::commit();
return redirect()->route("data-settings.index")->with("success","Successfully updated");
}catch(Exception $ex){
DB::rollBack();
return redirect()->back()
->withInput()
->with('error', 'Something went wrong while saving data. ' . $ex->getMessage());
}
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
try{
DB::beginTransaction();
DataSetting::findOrFail($id)->delete();
DB::commit();
return response()->json(['success' => true, 'message' => 'Item deleted successfully.']);
}catch(Exception $e){
DB::rollBack();
Log::error($e->getMessage());
return response()->json(['success' => false, 'message' => 'Failed to delete item.'], 500);
}
}
public function getValueSetting(Request $request){
try{
$data = DataSetting::where('key', $request->key_name)->first();
return response()->json([
'success' => true,
'message' => "Successfully retrieved data",
"data"=> $data
]);
}catch(Exception $e){
return response()->json(['success' => false, 'message' => $e->getMessage()], 500);
}
}
}

View File

@@ -12,7 +12,7 @@ class PbgTaskController extends Controller
*/
public function index()
{
return view('request-assignment.index');
return view('pbg_task.index');
}
/**
@@ -20,7 +20,7 @@ class PbgTaskController extends Controller
*/
public function create()
{
//
return view("pbg_task.create");
}
/**
@@ -28,7 +28,7 @@ class PbgTaskController extends Controller
*/
public function store(Request $request)
{
//
}
/**
@@ -36,7 +36,7 @@ class PbgTaskController extends Controller
*/
public function show(string $id)
{
//
return view("pbg_task.show");
}
/**
@@ -44,7 +44,7 @@ class PbgTaskController extends Controller
*/
public function edit(string $id)
{
//
return view("pbg_task.edit");
}
/**

View File

@@ -15,30 +15,4 @@ class RoutingController extends Controller
return redirect('auth.signin');
}
}
/**
* Display a view based on first route param
*
* @return \Illuminate\Http\Response
*/
public function root(Request $request, $first)
{
return view($first);
}
/**
* second level route
*/
public function secondLevel(Request $request, $first, $second)
{
return view($first . '.' . $second);
}
/**
* third level route
*/
public function thirdLevel(Request $request, $first, $second, $third)
{
return view($first . '.' . $second . '.' . $third);
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class DataSettingRequest 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
{
$id = $this->route('data_setting');
return [
"key" => "required|unique:data_settings,key," . $id,
"value" => "required",
"type" => "nullable",
];
}
}

View File

@@ -0,0 +1,62 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class PbgTaskMultiStepRequest 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()
{
return [
// rules step 1
"step1Form.uuid" => "required",
"step1Form.name" => "nullable|string|max:255",
"step1Form.owner_name" => "nullable|string|max:255",
"step1Form.application_type" => "nullable|string|max:255",
"step1Form.application_type_name" => "nullable|string|max:255",
"step1Form.condition" => "nullable|string|max:255",
"step1Form.registration_number" => "nullable|string|max:255",
"step1Form.document_number" => "nullable|string|max:255",
"step1Form.address" => "nullable|string|max:255",
"step1Form.status" => "nullable|integer",
"step1Form.status_name" => "nullable|string|max:255",
"step1Form.slf_status" => "nullable|string|max:255",
"step1Form.slf_status_name" => "nullable|string|max:255",
"step1Form.function_type" => "nullable|string|max:255",
"step1Form.consultation_type" => "nullable|string|max:255",
"step1Form.due_date" => "nullable|date",
"step1Form.land_certificate_phase" => "nullable|boolean",
"step1Form.task_created_at" => "nullable|date",
];
}
public function messages()
{
return [
// message step 1
"step1Form.uuid.required" => "UUID wajib diisi.",
"step1Form.uuid.uuid" => "Format UUID tidak valid.",
"step1Form.name.max" => "Nama tidak boleh lebih dari 255 karakter.",
"step1Form.owner_name.max" => "Nama pemilik tidak boleh lebih dari 255 karakter.",
"step1Form.registration_number.max" => "Nomor registrasi tidak boleh lebih dari 255 karakter.",
"step1Form.document_number.max" => "Nomor dokumen tidak boleh lebih dari 255 karakter.",
"step1Form.status.integer" => "Status harus berupa angka.",
"step1Form.due_date.date" => "Tanggal jatuh tempo tidak valid.",
"step1Form.land_certificate_phase.boolean" => "Fase sertifikat tanah harus berupa true/false.",
];
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class DataSettingResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @return array<string, mixed>
*/
public function toArray(Request $request): array
{
return [
'id' => $this->id,
'key' => $this->key,
'value' => $this->value,
'type' => $this->type,
'created_at' => $this->created_at->toDateTimeString(),
'updated_at' => $this->updated_at->toDateTimeString(),
];
}
}