count spatial plannings business and non business and create pbg task detail and add to syncrone daily
This commit is contained in:
@@ -38,6 +38,10 @@ class PbgTask extends Model
|
||||
return $this->hasOne(PbgTaskIndexIntegrations::class, 'pbg_task_uid', 'uuid');
|
||||
}
|
||||
|
||||
public function pbg_task_detail(){
|
||||
return $this->hasOne(PbgTaskDetail::class, 'pbg_task_uid', 'uuid');
|
||||
}
|
||||
|
||||
public function googleSheet(){
|
||||
return $this->hasOne(PbgTaskGoogleSheet::class, 'no_registrasi', 'registration_number');
|
||||
}
|
||||
|
||||
252
app/Models/PbgTaskDetail.php
Normal file
252
app/Models/PbgTaskDetail.php
Normal file
@@ -0,0 +1,252 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class PbgTaskDetail extends Model
|
||||
{
|
||||
protected $table = 'pbg_task_details';
|
||||
|
||||
protected $fillable = [
|
||||
'pbg_task_uid',
|
||||
'uid',
|
||||
'nik',
|
||||
'type_card',
|
||||
'ownership',
|
||||
'owner_name',
|
||||
'ward_id',
|
||||
'ward_name',
|
||||
'district_id',
|
||||
'district_name',
|
||||
'regency_id',
|
||||
'regency_name',
|
||||
'province_id',
|
||||
'province_name',
|
||||
'address',
|
||||
'owner_email',
|
||||
'owner_phone',
|
||||
'user',
|
||||
'name',
|
||||
'email',
|
||||
'phone',
|
||||
'user_nik',
|
||||
'user_province_id',
|
||||
'user_province_name',
|
||||
'user_regency_id',
|
||||
'user_regency_name',
|
||||
'user_district_id',
|
||||
'user_district_name',
|
||||
'user_address',
|
||||
'status',
|
||||
'status_name',
|
||||
'slf_status',
|
||||
'slf_status_name',
|
||||
'sppst_status',
|
||||
'sppst_file',
|
||||
'sppst_status_name',
|
||||
'file_pbg',
|
||||
'file_pbg_date',
|
||||
'due_date',
|
||||
'start_date',
|
||||
'document_number',
|
||||
'registration_number',
|
||||
'function_type',
|
||||
'application_type',
|
||||
'application_type_name',
|
||||
'consultation_type',
|
||||
'condition',
|
||||
'prototype',
|
||||
'permanency',
|
||||
'building_type',
|
||||
'building_type_name',
|
||||
'building_purpose',
|
||||
'building_use',
|
||||
'occupancy',
|
||||
'name_building',
|
||||
'total_area',
|
||||
'area',
|
||||
'area_type',
|
||||
'height',
|
||||
'floor',
|
||||
'floor_area',
|
||||
'basement',
|
||||
'basement_height',
|
||||
'basement_area',
|
||||
'unit',
|
||||
'prev_retribution',
|
||||
'prev_pbg',
|
||||
'prev_total_area',
|
||||
'koefisien_dasar_bangunan',
|
||||
'koefisien_lantai_bangunan',
|
||||
'koefisien_lantai_hijau',
|
||||
'koefisien_tapak_basement',
|
||||
'ketinggian_bangunan',
|
||||
'jalan_arteri',
|
||||
'jalan_kolektor',
|
||||
'jalan_bangunan',
|
||||
'gsb',
|
||||
'kkr_number',
|
||||
'unit_data',
|
||||
'is_mbr',
|
||||
'code',
|
||||
'building_ward_id',
|
||||
'building_ward_name',
|
||||
'building_district_id',
|
||||
'building_district_name',
|
||||
'building_regency_id',
|
||||
'building_regency_name',
|
||||
'building_province_id',
|
||||
'building_province_name',
|
||||
'building_address',
|
||||
'latitude',
|
||||
'longitude',
|
||||
'building_photo',
|
||||
'pbg_parent',
|
||||
'api_created_at',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'unit_data' => 'array',
|
||||
'is_mbr' => 'boolean',
|
||||
'total_area' => 'decimal:2',
|
||||
'area' => 'decimal:2',
|
||||
'height' => 'decimal:2',
|
||||
'floor_area' => 'decimal:2',
|
||||
'basement_height' => 'decimal:2',
|
||||
'basement_area' => 'decimal:2',
|
||||
'prev_retribution' => 'decimal:2',
|
||||
'prev_total_area' => 'decimal:2',
|
||||
'koefisien_dasar_bangunan' => 'decimal:4',
|
||||
'koefisien_lantai_bangunan' => 'decimal:4',
|
||||
'koefisien_lantai_hijau' => 'decimal:4',
|
||||
'koefisien_tapak_basement' => 'decimal:4',
|
||||
'ketinggian_bangunan' => 'decimal:2',
|
||||
'gsb' => 'decimal:2',
|
||||
'latitude' => 'decimal:8',
|
||||
'longitude' => 'decimal:8',
|
||||
'file_pbg_date' => 'date',
|
||||
'due_date' => 'date',
|
||||
'start_date' => 'date',
|
||||
'api_created_at' => 'datetime',
|
||||
];
|
||||
|
||||
/**
|
||||
* Get the PBG task that owns this detail
|
||||
*/
|
||||
public function pbgTask(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(PbgTask::class, 'pbg_task_uid', 'uuid');
|
||||
}
|
||||
|
||||
/**
|
||||
* Create or update PbgTaskDetail from API response
|
||||
*/
|
||||
public static function createFromApiResponse(array $data, string $pbgTaskUuid): self
|
||||
{
|
||||
$detailData = [
|
||||
'pbg_task_uid' => $pbgTaskUuid,
|
||||
'uid' => $data['uid'] ?? null,
|
||||
'nik' => $data['nik'] ?? null,
|
||||
'type_card' => $data['type_card'] ?? null,
|
||||
'ownership' => $data['ownership'] ?? null,
|
||||
'owner_name' => $data['owner_name'] ?? null,
|
||||
'ward_id' => $data['ward_id'] ?? null,
|
||||
'ward_name' => $data['ward_name'] ?? null,
|
||||
'district_id' => $data['district_id'] ?? null,
|
||||
'district_name' => $data['district_name'] ?? null,
|
||||
'regency_id' => $data['regency_id'] ?? null,
|
||||
'regency_name' => $data['regency_name'] ?? null,
|
||||
'province_id' => $data['province_id'] ?? null,
|
||||
'province_name' => $data['province_name'] ?? null,
|
||||
'address' => $data['address'] ?? null,
|
||||
'owner_email' => $data['owner_email'] ?? null,
|
||||
'owner_phone' => $data['owner_phone'] ?? null,
|
||||
'user' => $data['user'] ?? null,
|
||||
'name' => $data['name'] ?? null,
|
||||
'email' => $data['email'] ?? null,
|
||||
'phone' => $data['phone'] ?? null,
|
||||
'user_nik' => $data['user_nik'] ?? null,
|
||||
'user_province_id' => $data['user_province_id'] ?? null,
|
||||
'user_province_name' => $data['user_province_name'] ?? null,
|
||||
'user_regency_id' => $data['user_regency_id'] ?? null,
|
||||
'user_regency_name' => $data['user_regency_name'] ?? null,
|
||||
'user_district_id' => $data['user_district_id'] ?? null,
|
||||
'user_district_name' => $data['user_district_name'] ?? null,
|
||||
'user_address' => $data['user_address'] ?? null,
|
||||
'status' => $data['status'] ?? null,
|
||||
'status_name' => $data['status_name'] ?? null,
|
||||
'slf_status' => $data['slf_status'] ?? null,
|
||||
'slf_status_name' => $data['slf_status_name'] ?? null,
|
||||
'sppst_status' => $data['sppst_status'] ?? null,
|
||||
'sppst_file' => $data['sppst_file'] ?? null,
|
||||
'sppst_status_name' => $data['sppst_status_name'] ?? null,
|
||||
'file_pbg' => $data['file_pbg'] ?? null,
|
||||
'file_pbg_date' => isset($data['file_pbg_date']) ? Carbon::parse($data['file_pbg_date'])->format('Y-m-d') : null,
|
||||
'due_date' => isset($data['due_date']) ? Carbon::parse($data['due_date'])->format('Y-m-d') : null,
|
||||
'start_date' => isset($data['start_date']) ? Carbon::parse($data['start_date'])->format('Y-m-d') : null,
|
||||
'document_number' => $data['document_number'] ?? null,
|
||||
'registration_number' => $data['registration_number'] ?? null,
|
||||
'function_type' => $data['function_type'] ?? null,
|
||||
'application_type' => $data['application_type'] ?? null,
|
||||
'application_type_name' => $data['application_type_name'] ?? null,
|
||||
'consultation_type' => $data['consultation_type'] ?? null,
|
||||
'condition' => $data['condition'] ?? null,
|
||||
'prototype' => $data['prototype'] ?? null,
|
||||
'permanency' => $data['permanency'] ?? null,
|
||||
'building_type' => $data['building_type'] ?? null,
|
||||
'building_type_name' => $data['building_type_name'] ?? null,
|
||||
'building_purpose' => $data['building_purpose'] ?? null,
|
||||
'building_use' => $data['building_use'] ?? null,
|
||||
'occupancy' => $data['occupancy'] ?? null,
|
||||
'name_building' => $data['name_building'] ?? null,
|
||||
'total_area' => $data['total_area'] ?? null,
|
||||
'area' => $data['area'] ?? null,
|
||||
'area_type' => $data['area_type'] ?? null,
|
||||
'height' => $data['height'] ?? null,
|
||||
'floor' => $data['floor'] ?? null,
|
||||
'floor_area' => $data['floor_area'] ?? null,
|
||||
'basement' => $data['basement'] ?? null,
|
||||
'basement_height' => $data['basement_height'] ?? null,
|
||||
'basement_area' => $data['basement_area'] ?? null,
|
||||
'unit' => $data['unit'] ?? null,
|
||||
'prev_retribution' => $data['prev_retribution'] ?? null,
|
||||
'prev_pbg' => $data['prev_pbg'] ?? null,
|
||||
'prev_total_area' => $data['prev_total_area'] ?? null,
|
||||
'koefisien_dasar_bangunan' => $data['koefisien_dasar_bangunan'] ?? null,
|
||||
'koefisien_lantai_bangunan' => $data['koefisien_lantai_bangunan'] ?? null,
|
||||
'koefisien_lantai_hijau' => $data['koefisien_lantai_hijau'] ?? null,
|
||||
'koefisien_tapak_basement' => $data['koefisien_tapak_basement'] ?? null,
|
||||
'ketinggian_bangunan' => $data['ketinggian_bangunan'] ?? null,
|
||||
'jalan_arteri' => $data['jalan_arteri'] ?? null,
|
||||
'jalan_kolektor' => $data['jalan_kolektor'] ?? null,
|
||||
'jalan_bangunan' => $data['jalan_bangunan'] ?? null,
|
||||
'gsb' => $data['gsb'] ?? null,
|
||||
'kkr_number' => $data['kkr_number'] ?? null,
|
||||
'unit_data' => $data['unit_data'] ?? null,
|
||||
'is_mbr' => $data['is_mbr'] ?? false,
|
||||
'code' => $data['code'] ?? null,
|
||||
'building_ward_id' => $data['building_ward_id'] ?? null,
|
||||
'building_ward_name' => $data['building_ward_name'] ?? null,
|
||||
'building_district_id' => $data['building_district_id'] ?? null,
|
||||
'building_district_name' => $data['building_district_name'] ?? null,
|
||||
'building_regency_id' => $data['building_regency_id'] ?? null,
|
||||
'building_regency_name' => $data['building_regency_name'] ?? null,
|
||||
'building_province_id' => $data['building_province_id'] ?? null,
|
||||
'building_province_name' => $data['building_province_name'] ?? null,
|
||||
'building_address' => $data['building_address'] ?? null,
|
||||
'latitude' => $data['latitude'] ?? null,
|
||||
'longitude' => $data['longitude'] ?? null,
|
||||
'building_photo' => $data['building_photo'] ?? null,
|
||||
'pbg_parent' => $data['pbg_parent'] ?? null,
|
||||
'api_created_at' => isset($data['created_at']) ? Carbon::parse($data['created_at'])->format('Y-m-d H:i:s') : null,
|
||||
];
|
||||
|
||||
return static::updateOrCreate(
|
||||
['uid' => $data['uid']],
|
||||
$detailData
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user