Initial Commit
This commit is contained in:
116
app/Services/BankDataService.php
Normal file
116
app/Services/BankDataService.php
Normal file
@@ -0,0 +1,116 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Services;
|
||||
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Modules\Lpj\Models\BankData;
|
||||
|
||||
class BankDataService
|
||||
{
|
||||
protected $bankData;
|
||||
|
||||
public function __construct(BankData $bankData)
|
||||
{
|
||||
$this->bankData = $bankData;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all bank data with optional filtering and pagination
|
||||
*
|
||||
* @param array $filters
|
||||
* @param int|null $perPage
|
||||
*
|
||||
* @return Collection|LengthAwarePaginator
|
||||
*/
|
||||
public function getAllBankData(array $filters = [], ?int $perPage = null)
|
||||
{
|
||||
$query = $this->bankData->newQuery();
|
||||
|
||||
// Apply filters
|
||||
if (isset($filters['village_code'])) {
|
||||
$query->ofVillage($filters['village_code']);
|
||||
}
|
||||
if (isset($filters['district_code'])) {
|
||||
$query->ofDistrict($filters['district_code']);
|
||||
}
|
||||
if (isset($filters['city_code'])) {
|
||||
$query->ofCity($filters['city_code']);
|
||||
}
|
||||
if (isset($filters['province_code'])) {
|
||||
$query->ofProvince($filters['province_code']);
|
||||
}
|
||||
if (isset($filters['date'])) {
|
||||
$query->ofDate($filters['date']);
|
||||
}
|
||||
if (isset($filters['start_date']) && isset($filters['end_date'])) {
|
||||
$query->betweenDates($filters['start_date'], $filters['end_date']);
|
||||
}
|
||||
if (isset($filters['year'])) {
|
||||
$query->ofYear($filters['year']);
|
||||
}
|
||||
if (isset($filters['asset_type'])) {
|
||||
$query->ofAssetType($filters['asset_type']);
|
||||
}
|
||||
|
||||
// Add more filters as needed
|
||||
|
||||
return $perPage ? $query->paginate($perPage) : $query->get();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new bank data entry
|
||||
*
|
||||
* @param array $data
|
||||
*
|
||||
* @return BankData
|
||||
*/
|
||||
public function createBankData(array $data)
|
||||
: BankData
|
||||
{
|
||||
return $this->bankData->create($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update an existing bank data entry
|
||||
*
|
||||
* @param int $id
|
||||
* @param array $data
|
||||
*
|
||||
* @return BankData
|
||||
*/
|
||||
public function updateBankData(int $id, array $data)
|
||||
: BankData
|
||||
{
|
||||
$bankData = $this->bankData->findOrFail($id);
|
||||
$bankData->update($data);
|
||||
return $bankData;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a bank data entry
|
||||
*
|
||||
* @param int $id
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function deleteBankData(int $id)
|
||||
: bool
|
||||
{
|
||||
$bankData = $this->bankData->findOrFail($id);
|
||||
return $bankData->delete();
|
||||
}
|
||||
|
||||
/**
|
||||
* Find a bank data entry by ID
|
||||
*
|
||||
* @param int $id
|
||||
*
|
||||
* @return BankData|null
|
||||
*/
|
||||
public function findBankData(int $id)
|
||||
: ?BankData
|
||||
{
|
||||
return $this->bankData->find($id);
|
||||
}
|
||||
}
|
||||
62
app/Services/PermohonanHistoryService.php
Normal file
62
app/Services/PermohonanHistoryService.php
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Services;
|
||||
|
||||
use Modules\Lpj\Models\Permohonan;
|
||||
use Modules\Lpj\Models\PermohonanHistory;
|
||||
use Modules\Lpj\Notifications\PermohonanNotif;
|
||||
use Modules\Usermanagement\Models\User;
|
||||
|
||||
class PermohonanHistoryService
|
||||
{
|
||||
public function createHistory(Permohonan $permohonan, string $status, ?string $keterangan, array $beforeRequest, array $afterRequest, ?string $filePath = null)
|
||||
{
|
||||
try {
|
||||
|
||||
$history = PermohonanHistory::create([
|
||||
'permohonan_id' => $permohonan->id,
|
||||
'status' => $status,
|
||||
'keterangan' => $keterangan,
|
||||
'before_request' => json_encode($beforeRequest),
|
||||
'after_request' => json_encode($afterRequest),
|
||||
'file_path' => $filePath,
|
||||
'user_id' => auth()->id(),
|
||||
]);
|
||||
|
||||
$this->createNotification($permohonan, $status, $beforeRequest, $afterRequest);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
// Log the error
|
||||
\Log::error('Error creating PermohonanHistory: ' . $e->getMessage());
|
||||
|
||||
// You might want to delete the uploaded file if the database operation fails
|
||||
if ($filePath) {
|
||||
\Storage::disk('public')->delete($filePath);
|
||||
}
|
||||
|
||||
// Rethrow the exception or handle it as per your application's error handling policy
|
||||
throw new \Exception('Failed to create PermohonanHistory: ' . $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private function createNotification(Permohonan $permohonan, string $status, array $beforeRequest, array $afterRequest)
|
||||
{
|
||||
$beforeStatus = '';
|
||||
if(!empty($beforeRequest)){
|
||||
$beforeStatus = $beforeRequest['status'] ?? '';
|
||||
}
|
||||
|
||||
if($beforeStatus !== $status){
|
||||
if($status === 'order'){
|
||||
$users = User::where(['branch_id' => $permohonan->branch_id])->whereHas('roles',function($q){
|
||||
$q->where('name', 'pemohon-eo');
|
||||
})->get();
|
||||
|
||||
foreach ($users as $user) {
|
||||
$message = "telah diorder oleh {$permohonan->creator->name}, Mohon Lakukan konfirmasi";
|
||||
$user->notify(new PermohonanNotif($permohonan,$message));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
1042
app/Services/SaveFormInspesksiService.php
Normal file
1042
app/Services/SaveFormInspesksiService.php
Normal file
File diff suppressed because it is too large
Load Diff
434
app/Services/SurveyorValidateService.php
Normal file
434
app/Services/SurveyorValidateService.php
Normal file
@@ -0,0 +1,434 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Services;
|
||||
|
||||
class SurveyorValidateService
|
||||
{
|
||||
/**
|
||||
* Validasi data asset
|
||||
*
|
||||
* @param array $assetData
|
||||
* @return string
|
||||
*/
|
||||
public function validateAsset(array $assetData): array
|
||||
{
|
||||
$invalidFields = [];
|
||||
|
||||
// Validasi data `debitur_perwakilan`
|
||||
if (empty($assetData['asset']['debitur_perwakilan'])) {
|
||||
$invalidFields[] = 'debitur perwakilan';
|
||||
}
|
||||
|
||||
// Validasi data `jenis_asset`
|
||||
$jenisAsset = $assetData['asset']['jenis_asset'] ?? [];
|
||||
foreach ($jenisAsset as $key => $value) {
|
||||
if (empty($key) || empty($value)) {
|
||||
$invalidFields[] = "jenis_asset[$key]";
|
||||
}
|
||||
}
|
||||
|
||||
// Validasi data `alamat`
|
||||
$alamat = $assetData['asset']['alamat'] ?? [];
|
||||
foreach ($alamat as $key => $alamatData) {
|
||||
if (empty($key)) {
|
||||
$invalidFields[] = "alamat[$key]";
|
||||
}
|
||||
|
||||
foreach ($alamatData as $field => $value) {
|
||||
if (empty($value)) {
|
||||
$invalidFields[] = "alamat[$key][$field]";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Validasi data `hub_cadeb`
|
||||
$hubCadeb = $assetData['asset']['hub_cadeb'] ?? [];
|
||||
foreach ($hubCadeb as $key => $value) {
|
||||
if (empty($key) || empty($value)) {
|
||||
$invalidFields[] = "Hubungan cadeb/debitur dengan Pemilik Jaminan";
|
||||
}
|
||||
}
|
||||
|
||||
// Validasi data `hub_cadeb_penghuni`
|
||||
$hubCadebPenghuni = $assetData['asset']['hub_cadeb_penghuni'] ?? [];
|
||||
foreach ($hubCadebPenghuni as $key => $value) {
|
||||
if (empty($key) || empty($value)) {
|
||||
$invalidFields[] = "Hubungan Cadeb/Debitur dengan Penghuni Jaminan";
|
||||
}
|
||||
}
|
||||
|
||||
// Validasi data tambahan lainnya
|
||||
$fieldsToValidate = [
|
||||
'pihak_bank',
|
||||
'kordinat_lng',
|
||||
'kordinat_lat',
|
||||
'nomor_nib',
|
||||
];
|
||||
|
||||
foreach ($fieldsToValidate as $field) {
|
||||
if (empty($assetData['asset'][$field])) {
|
||||
$invalidFields[] = $field;
|
||||
}
|
||||
}
|
||||
|
||||
// validasi signature
|
||||
|
||||
$signature = [
|
||||
'penilai',
|
||||
'cabang',
|
||||
'debitur',
|
||||
];
|
||||
foreach ($signature as $value) {
|
||||
if (empty($assetData['signature'][$value])) {
|
||||
$invalidFields[] = 'Tanda tangan' . $value . ' tidak ada';
|
||||
}
|
||||
}
|
||||
|
||||
// Kembalikan daftar field yang tidak valid
|
||||
return $invalidFields;
|
||||
}
|
||||
|
||||
|
||||
public function validateTanah(array $data): array
|
||||
{
|
||||
$invalidFields = [];
|
||||
|
||||
if (empty($data['tanah']['luas_tanah'])) {
|
||||
$invalidFields[] = 'luas tanah';
|
||||
}
|
||||
|
||||
if (empty($data['tanah']['hadap_mata_angin'])) {
|
||||
$invalidFields[] = 'hadap mata angin';
|
||||
}
|
||||
|
||||
// Validasi bentuk tanah
|
||||
if (empty($data['tanah']['bentuk_tanah'])) {
|
||||
$invalidFields[] = 'bentuk tanah';
|
||||
}
|
||||
|
||||
// Validasi kontur tanah
|
||||
if (empty($data['tanah']['kontur_tanah'])) {
|
||||
$invalidFields[] = 'kontur tanah';
|
||||
}
|
||||
|
||||
// Validasi ketinggian tanah
|
||||
if (empty($data['tanah']['ketinggian_jalan']) && empty($data['tanah']['ketinggian_lebih_tinggi']) && empty($data['tanah']['ketinggian_lebih_rendah'])) {
|
||||
$invalidFields[] = 'ketinggian tanah';
|
||||
}
|
||||
|
||||
// Validasi kontur jalan
|
||||
if (empty($data['tanah']['kontur_jalan'])) {
|
||||
$invalidFields[] = 'kontur jalan';
|
||||
}
|
||||
|
||||
// Validasi posisi kavling
|
||||
if (empty($data['tanah']['posisi_kavling'])) {
|
||||
$invalidFields[] = 'posisi kavling';
|
||||
}
|
||||
|
||||
// Validasi tusuk sate
|
||||
if (!isset($data['tanah']['tusuk_sate'])) {
|
||||
$invalidFields[] = 'tusuk sate';
|
||||
}
|
||||
|
||||
// Validasi lockland
|
||||
if (!isset($data['tanah']['lockland'])) {
|
||||
$invalidFields[] = 'lockland';
|
||||
}
|
||||
|
||||
// Validasi kondisi fisik tanah
|
||||
if (empty($data['tanah']['kondisi_fisik_tanah'])) {
|
||||
$invalidFields[] = 'kondisi fisik tanah';
|
||||
}
|
||||
|
||||
return $invalidFields;
|
||||
}
|
||||
|
||||
|
||||
public function validateBangunan(array $data): array
|
||||
{
|
||||
$invalidFields = [];
|
||||
|
||||
// Validasi luas tanah banguna
|
||||
|
||||
if (empty($data['bangunan']['luas_tanah_bagunan'])) {
|
||||
$invalidFields[] = 'luas bangunan';
|
||||
}
|
||||
|
||||
|
||||
// Validasi jenis bangunan
|
||||
if (empty($data['bangunan']['jenis_bangunan'])) {
|
||||
$invalidFields[] = 'jenis bangunan';
|
||||
}
|
||||
|
||||
// Validasi kondisi bangunan
|
||||
if (empty($data['bangunan']['kondisi_bangunan'])) {
|
||||
$invalidFields[] = 'kondisi bangunan';
|
||||
}
|
||||
|
||||
// Validasi sifat bangunan
|
||||
if (empty($data['bangunan']['sifat_bangunan'])) {
|
||||
$invalidFields[] = 'sifat bangunan';
|
||||
}
|
||||
|
||||
// Validasi sifat bangunan input
|
||||
if (empty($data['bangunan']['sifat_bangunan_input'])) {
|
||||
$invalidFields[] = 'sifat bangunan input';
|
||||
}
|
||||
|
||||
// Validasi sarana pelengkap
|
||||
if (empty($data['bangunan']['sarana_pelengkap'])) {
|
||||
$invalidFields[] = 'sarana pelengkap';
|
||||
}
|
||||
|
||||
// Validasi sarana pelengkap input
|
||||
if (empty($data['bangunan']['sarana_pelengkap_input'])) {
|
||||
$invalidFields[] = 'sarana pelengkap input';
|
||||
}
|
||||
|
||||
return $invalidFields;
|
||||
}
|
||||
|
||||
public function validateLingkungan(array $data): array
|
||||
{
|
||||
$invalidFields = [];
|
||||
|
||||
// Validasi jarak jalan utama
|
||||
if (empty($data['lingkungan']['jarak_jalan_utama'])) {
|
||||
$invalidFields[] = 'jarak jalan utama';
|
||||
}
|
||||
|
||||
// Validasi jalan lingkungan
|
||||
if (empty($data['lingkungan']['jalan_linkungan'])) {
|
||||
$invalidFields[] = 'jalan lingkungan';
|
||||
}
|
||||
|
||||
// Validasi jarak CBD point
|
||||
if (empty($data['lingkungan']['jarak_cbd_point'])) {
|
||||
$invalidFields[] = 'jarak CBD point';
|
||||
}
|
||||
|
||||
// Validasi nama CBD point
|
||||
if (empty($data['lingkungan']['nama_cbd_point'])) {
|
||||
$invalidFields[] = 'nama CBD point';
|
||||
}
|
||||
|
||||
// Validasi lebar perkerasan jalan
|
||||
if (empty($data['lingkungan']['lebar_perkerasan_jalan'])) {
|
||||
$invalidFields[] = 'lebar perkerasan jalan';
|
||||
}
|
||||
|
||||
// Validasi perkerasan jalan
|
||||
if (empty($data['lingkungan']['perkerasan_jalan'])) {
|
||||
$invalidFields[] = 'perkerasan jalan';
|
||||
}
|
||||
|
||||
// Validasi lalu lintas
|
||||
if (empty($data['lingkungan']['lalu_lintas'])) {
|
||||
$invalidFields[] = 'lalu lintas';
|
||||
}
|
||||
|
||||
// Validasi golongan masyarakat sekitar
|
||||
if (empty($data['lingkungan']['gol_mas_sekitar'])) {
|
||||
$invalidFields[] = 'golongan masyarakat sekitar';
|
||||
}
|
||||
|
||||
// Validasi tingkat keramaian
|
||||
if (empty($data['lingkungan']['tingkat_keramaian'])) {
|
||||
$invalidFields[] = 'tingkat keramaian';
|
||||
}
|
||||
|
||||
// Validasi terletak di area
|
||||
if (empty($data['lingkungan']['terletak_diarea'])) {
|
||||
$invalidFields[] = 'terletak di area';
|
||||
}
|
||||
|
||||
// Validasi lokasi sekitar
|
||||
if (isset($data['lingkungan']['disekitar_lokasi']) && $data['lingkungan']['disekitar_lokasi'] === 'yes') {
|
||||
if (empty($data['lingkungan']['kondisi_bagunan_disekitar_lokasi'])) {
|
||||
$invalidFields[] = 'kondisi bangunan di sekitar lokasi';
|
||||
}
|
||||
|
||||
if (empty($data['lingkungan']['sifat_bagunan_disekitar_lokasi'])) {
|
||||
$invalidFields[] = 'sifat bangunan di sekitar lokasi';
|
||||
}
|
||||
}
|
||||
|
||||
// Validasi dekat makam
|
||||
if (isset($data['lingkungan']['dekat_makam']) && $data['lingkungan']['dekat_makam'] === 'yes') {
|
||||
if (empty($data['lingkungan']['jarak_makam'])) {
|
||||
$invalidFields[] = 'jarak makam';
|
||||
}
|
||||
|
||||
if (empty($data['lingkungan']['nama_makam'])) {
|
||||
$invalidFields[] = 'nama makam';
|
||||
}
|
||||
}
|
||||
|
||||
// Validasi dekat TPS
|
||||
if (isset($data['lingkungan']['dekat_tps']) && $data['lingkungan']['dekat_tps'] === 'yes') {
|
||||
if (empty($data['lingkungan']['jarak_tps'])) {
|
||||
$invalidFields[] = 'jarak TPS';
|
||||
}
|
||||
|
||||
if (empty($data['lingkungan']['nama_tps'])) {
|
||||
$invalidFields[] = 'nama TPS';
|
||||
}
|
||||
}
|
||||
|
||||
// Validasi fasilitas dekat object
|
||||
if (empty($data['lingkungan']['fasilitas_dekat_object'])) {
|
||||
$invalidFields[] = 'fasilitas dekat object';
|
||||
}
|
||||
|
||||
// Validasi fasilitas dekat object input
|
||||
if (empty($data['lingkungan']['fasilitas_dekat_object_input'])) {
|
||||
$invalidFields[] = 'fasilitas dekat object input';
|
||||
}
|
||||
|
||||
return $invalidFields;
|
||||
}
|
||||
|
||||
|
||||
public function validateFactData(array $data): array
|
||||
{
|
||||
$invalidFields = [];
|
||||
|
||||
// Validasi fakta_positif dan fakta_negatif
|
||||
if (empty($data['fakta']['fakta_positif'])) {
|
||||
$invalidFields[] = 'fakta_positif harus diisi';
|
||||
}
|
||||
if (empty($data['fakta']['fakta_negatif'])) {
|
||||
$invalidFields[] = 'fakta_negatif harus diisi';
|
||||
}
|
||||
|
||||
// Validasi rute_menuju
|
||||
if (empty($data['fakta']['rute_menuju'])) {
|
||||
$invalidFields[] = 'rute_menuju harus diisi';
|
||||
}
|
||||
|
||||
// Validasi batas_batas dan batas_batas_input
|
||||
if (empty($data['fakta']['batas_batas']) && empty($data['fakta']['batas_batas_input'])) {
|
||||
$invalidFields[] = 'Batas batas';
|
||||
}
|
||||
|
||||
// Validasi kondisi_lingkungan
|
||||
if (empty($data['fakta']['kondisi_lingkungan'])) {
|
||||
$invalidFields[] = 'kondisi_lingkungan harus diisi';
|
||||
}
|
||||
|
||||
return $invalidFields;
|
||||
}
|
||||
|
||||
|
||||
public function validateRapData(array $data): array
|
||||
{
|
||||
$invalidFields = [];
|
||||
|
||||
// Validasi pengalaman_developer
|
||||
if (empty($data['pengalaman_developer'])) {
|
||||
$invalidFields[] = 'Pengalaman developer harus diisi';
|
||||
}
|
||||
|
||||
// Validasi kondisi_perumahan
|
||||
if (empty($data['kondisi_perumahan'])) {
|
||||
$invalidFields[] = 'Kondisi perumahan harus diisi';
|
||||
}
|
||||
|
||||
// Validasi progres_pembangunan
|
||||
if (empty($data['progres_pembangunan'])) {
|
||||
$invalidFields[] = 'Progres pembangunan harus diisi';
|
||||
}
|
||||
|
||||
// Validasi partisi
|
||||
if (isset($data['partisi'])) {
|
||||
foreach ($data['partisi'] as $name => $values) {
|
||||
if (empty($values['value'])) {
|
||||
$invalidFields[] = "Partisi '{$name}' harus memiliki nilai";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Validasi jumlah_unit
|
||||
if (empty($data['jumlah_unit'])) {
|
||||
$invalidFields[] = 'Jumlah unit harus diisi';
|
||||
}
|
||||
|
||||
// Validasi batas_batas_perumahan
|
||||
if (empty($data['batas_batas_perumahan'])) {
|
||||
$invalidFields[] = 'Batas batas perumahan harus diisi';
|
||||
}
|
||||
|
||||
// Validasi fasus_fasum
|
||||
if (empty($data['fasus_fasum'])) {
|
||||
$invalidFields[] = 'Fasus fasum harus diisi';
|
||||
}
|
||||
|
||||
// Validasi harga_unit
|
||||
if (empty($data['harga_unit'])) {
|
||||
$invalidFields[] = 'Harga unit harus diisi';
|
||||
}
|
||||
|
||||
// Validasi target_market
|
||||
if (empty($data['target_market'])) {
|
||||
$invalidFields[] = 'Target market harus diisi';
|
||||
}
|
||||
|
||||
// Validasi kerjasama_dengan_bank
|
||||
if (empty($data['kerjasama_dengan_bank'])) {
|
||||
$invalidFields[] = 'Kerjasama dengan bank harus diisi';
|
||||
}
|
||||
|
||||
// Validasi rute_menuju_lokasi
|
||||
if (empty($data['rute_menuju_lokasi'])) {
|
||||
$invalidFields[] = 'Rute menuju lokasi harus diisi';
|
||||
}
|
||||
|
||||
return $invalidFields;
|
||||
}
|
||||
|
||||
|
||||
public function validateUnitData(array $data): array
|
||||
{
|
||||
$invalidFields = [];
|
||||
|
||||
// Validasi action
|
||||
if (empty($data['action'])) {
|
||||
$invalidFields[] = 'Action harus diisi';
|
||||
}
|
||||
|
||||
// Validasi luas_unit
|
||||
if (empty($data['luas_unit'])) {
|
||||
$invalidFields[] = 'Luas unit harus diisi';
|
||||
}
|
||||
|
||||
// Validasi kondisi_unit
|
||||
if (empty($data['kondisi_unit'])) {
|
||||
$invalidFields[] = 'Kondisi unit harus diisi';
|
||||
}
|
||||
|
||||
// Validasi posisi_unit
|
||||
if (empty($data['posisi_unit'])) {
|
||||
$invalidFields[] = 'Posisi unit harus diisi';
|
||||
}
|
||||
|
||||
// Validasi lantai
|
||||
if (empty($data['lantai'])) {
|
||||
$invalidFields[] = 'Lantai harus diisi';
|
||||
}
|
||||
|
||||
// Validasi view
|
||||
if (empty($data['view'])) {
|
||||
$invalidFields[] = 'View harus diisi';
|
||||
}
|
||||
|
||||
// Validasi bentuk_unit
|
||||
if (empty($data['bentuk_unit'])) {
|
||||
$invalidFields[] = 'Bentuk unit harus diisi';
|
||||
}
|
||||
|
||||
return $invalidFields;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user