update form dan perhitungan data hasil klaim dan sisa dana ksl

This commit is contained in:
Daeng Deni Mardaeni 2023-11-22 15:06:37 +07:00
parent c70a277bfe
commit 97f8a2579d
7 changed files with 285 additions and 33 deletions

View File

@ -45,13 +45,13 @@
return $row->jumlah_debitur_surat.'/'.$row->jumlah_debitur_excel;
})
->editColumn('dana_hasil_klaim', function ($row) {
return @rupiah($row->dana_hasil_klaim);
return $this->rupiah($row->dana_hasil_klaim);
})
->editColumn('nilai_penyelesaian', function ($row) {
return @rupiah($row->nilai_penyelesaian).' / '.$row->jumlah_debitur_penyelesaian;
return $this->rupiah($row->nilai_penyelesaian).' / '.$row->jumlah_debitur_penyelesaian;
})
->editColumn('sisa_dana_ksl', function ($row) {
return @rupiah($row->sisa_dana_ksl).' / '.$row->jumlah_debitur_sis_ksl;
return $this->rupiah($row->sisa_dana_ksl).' / '.$row->jumlah_debitur_sis_ksl;
})
->editColumn('is_detail_debitur', function ($row) {
return $row->is_detail_debitur ? 'Ada' : 'Tidak Ada';
@ -59,10 +59,14 @@
->editColumn('updated_at', function ($row) {
return $row->updated_at->locale('id')->translatedFormat('d F Y H:i:s');
})->rawColumns(['action'])->addColumn('action', function ($klaim_jamkrindo) {
return view('writeoff::parameter.klaim_jamkrindo._actions', compact('klaim_jamkrindo'));
return view('writeoff::pencatatan.klaim_jamkrindo._actions', compact('klaim_jamkrindo'));
})->setRowId('id');
}
private function rupiah($expression){
return "Rp. ".number_format($expression, 2, ',', '.');
}
/**
* Get the query source of dataTable.
*/

View File

@ -19,11 +19,11 @@
$table->float('dana_hasil_klaim', 15, 2);
$table->float('nilai_penyelesaian', 15, 2);
$table->integer('jumlah_debitur_penyelesaian', false, true);
$table->float('sisa_dana_ksl', 15, 2);
$table->integer('jumlah_debitur_sisa_ksl', false, true);
$table->char('is_detail_debitur', 1)->default('A');
$table->float('sisa_dana_ksl', 15, 2)->default(0)->nullable();
$table->integer('jumlah_debitur_sisa_ksl', false, true)->default(0)->nullable();
$table->boolean('is_detail_debitur')->default(false);
$table->string('keterangan')->nullable();
$table->char('status', 1)->default('A');
$table->boolean('status')->default(true)->nullable();
$table->timestamps();
$table->timestamp('authorized_at')->nullable();
$table->char('authorized_status', 1)->nullable();

View File

@ -8,7 +8,7 @@
use Illuminate\Validation\Validator;
use Symfony\Component\HttpFoundation\JsonResponse;
class KlaimJamkrindoRequest extends FormRequest
class StoreKlaimJamkrindoRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
@ -31,14 +31,14 @@
'tanggal_rtgs_masuk' => 'required|date',
'jumlah_debitur_surat' => 'required|integer',
'jumlah_debitur_excel' => 'required|integer',
'dana_hasil_klaim' => 'required|float',
'nilai_penyelesaian' => 'required|float',
'dana_hasil_klaim' => 'required|numeric',
'nilai_penyelesaian' => 'required|numeric',
'jumlah_debitur_penyelesaian' => 'required|integer',
'sisa_dana_ksl' => 'required|float',
'jumlah_debitur_sisa_ksl' => 'required|integer',
'is_detail_debitur' => 'required|boolean',
'sisa_dana_ksl' => 'nullable|numeric',
'jumlah_debitur_sisa_ksl' => 'nullable|integer',
'is_detail_debitur' => 'nullable|boolean',
'keterangan' => 'nullable|string',
'status' => 'required|string',
'status' => 'nullable|boolean',
];
}
@ -63,7 +63,7 @@
flash($value[0]);
}
return redirect()
->route('parameter.branches.index')
->route('pencatatan.klaim_jamkrindo.index')
->with('error', 'Klaim Jamkrindo created failed.');
}
@ -81,4 +81,15 @@
'messages' => 'Klaim Jamkrindo created failed.'
], JsonResponse::HTTP_UNPROCESSABLE_ENTITY));
}
protected function prepareForValidation():void
{
$this->merge([
'dana_hasil_klaim' => str_replace('', '', $this->dana_hasil_klaim),
'nilai_penyelesaian' => str_replace(',', '', $this->nilai_penyelesaian),
'sisa_dana_ksl' => $this->dana_hasil_klaim - $this->nilai_penyelesaian,
'jumlah_debitur_sisa_ksl' => $this->jumlah_debitur_excel - $this->jumlah_debitur_penyelesaian,
]);
}
}

View File

@ -0,0 +1,74 @@
<?php
namespace Modules\Writeoff\Http\Requests\KlaimJamkrindo;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Http\JsonResponse;
use Illuminate\Validation\ValidationException;
use Illuminate\Validation\Validator;
class UpdateKlaimJamkrindoRequest 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\Rule|array|string>
*/
public function rules()
: array
{
return [
'tanggal_rtgs_masuk' => 'required|date',
'jumlah_debitur_surat' => 'required|integer',
'jumlah_debitur_excel' => 'required|integer',
'dana_hasil_klaim' => 'required|numeric',
'nilai_penyelesaian' => 'required|numeric',
'jumlah_debitur_penyelesaian' => 'required|integer',
'sisa_dana_ksl' => 'nullable|numeric',
'jumlah_debitur_sisa_ksl' => 'nullable|integer',
'is_detail_debitur' => 'nullable|boolean',
'keterangan' => 'nullable|string',
'status' => 'nullable|boolean',
];
}
/**
* 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('pencatatan.klaim_jamkrindo.index')->with('error', 'Klaim Jamkrindo 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' => 'Klaim Jamkrindo updated failed.'
], JsonResponse::HTTP_UNPROCESSABLE_ENTITY));
}
}

View File

@ -5,10 +5,12 @@
use Illuminate\Support\Facades\DB;
use Livewire\Component;
use Modules\Writeoff\Entities\KlaimJamkrindo;
use Modules\Writeoff\Http\Requests\KlaimJamkrindo\KlaimJamkrindoRequest;
use Modules\Writeoff\Http\Requests\KlaimJamkrindo\StoreKlaimJamkrindoRequest;
use Modules\Writeoff\Http\Requests\KlaimJamkrindo\UpdateKlaimJamkrindoRequest;
class KlaimJamkrindoModal extends Component
{
public $id;
public $tanggal_rtgs_masuk;
public $jumlah_debitur_surat;
public $jumlah_debitur_excel;
@ -56,14 +58,15 @@
if ($this->edit_mode) {
// Emit a success event with a message
$facility_type = KlaimJamkrindo::find($this->id);
$facility_type->update($data);
print_r($data);exit;
$klaim_jamkrindo = KlaimJamkrindo::find($this->id);
$klaim_jamkrindo->update($data);
$this->dispatch('success', __('Facility Type updated'));
$this->dispatch('success', __('Klaim Jamkrindo updated'));
} else {
// Emit a success event with a message
KlaimJamkrindo::create($data);
$this->dispatch('success', __('New Facility Type created'));
$this->dispatch('success', __('New Klaim Jamkrindo created'));
}
});
@ -86,9 +89,9 @@
$this->jumlah_debitur_penyelesaian = $klaim_jamkrindo->jumlah_debitur_penyelesaian;
$this->sisa_dana_ksl = $klaim_jamkrindo->sisa_dana_ksl;
$this->jumlah_debitur_sisa_ksl = $klaim_jamkrindo->jumlah_debitur_sisa_ksl;
$this->is_detail_debitur = $klaim_jamkrindo->is_detail_debitur;
$this->is_detail_debitur = $klaim_jamkrindo->is_detail_debitur == 1;
$this->keterangan = $klaim_jamkrindo->keterangan;
$this->status = $klaim_jamkrindo->status;
$this->status = $klaim_jamkrindo->status == 1;
}
public function delete($id)
@ -96,7 +99,7 @@
KlaimJamkrindo::destroy($id);
// Emit a success event with a message
$this->dispatch('success', 'Facility Type successfully deleted');
$this->dispatch('success', 'Klaim Jamkrindo successfully deleted');
}
public function hydrate()
@ -107,7 +110,13 @@
protected function rules()
{
$request = new KlaimJamkrindoRequest();
if($this->edit_mode){
$request = new UpdateKlaimJamkrindoRequest();
} else{
$request = new StoreKlaimJamkrindoRequest();
}
return $request->rules();
}

View File

@ -6,7 +6,7 @@
<!--begin::Modal header-->
<div class="modal-header" id="kt_modal_add_klaim_jamkrindo_header">
<!--begin::Modal title-->
<h2 class="fw-bold">Add Jenis Fasilitas</h2>
<h2 class="fw-bold">Add Klaim Jamkrindo</h2>
<!--end::Modal title-->
<!--begin::Close-->
<div class="btn btn-icon btn-sm btn-active-icon-primary" data-bs-dismiss="modal" aria-label="Close">
@ -25,27 +25,136 @@
<!--begin::Input group-->
<div class="fv-row mb-7">
<!--begin::Label-->
<label class="required fw-semibold fs-6 mb-2">Kode Jenis Fasilitas</label>
<label class="required fw-semibold fs-6 mb-2">Tanggal Masuk RTGS</label>
<!--end::Label-->
<!--begin::Input-->
<input type="text" wire:model.defer="kode" name="kode" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="Kode Jenis Fasilitas"/>
<input type="date" wire:model.defer="tanggal_rtgs_masuk" name="tanggal_rtgs_masuk" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="Tanggal RTGS Masuk"/>
<!--end::Input-->
@error('kode')
@error('tanggal_rtgs_masuk')
<span class="text-danger">{{ $message }}</span> @enderror
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="row mb-7">
<div class="col-6">
<!--begin::Label-->
<label class="required fw-semibold fs-6 mb-2">Jumlah Debitur Surat</label>
<!--end::Label-->
<!--begin::Input-->
<input type="number" wire:model.defer="jumlah_debitur_surat" name="jumlah_debitur_surat" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="Jumlah Debitur Surat"/>
<!--end::Input-->
@error('jumlah_debitur_surat')
<span class="text-danger">{{ $message }}</span> @enderror
</div>
<div class="col-6">
<!--begin::Label-->
<label class="required fw-semibold fs-6 mb-2">Jumlah Debitur Excel</label>
<!--end::Label-->
<!--begin::Input-->
<input type="number" wire:model.defer="jumlah_debitur_excel" id="jumlah_debitur_excel" name="jumlah_debitur_excel" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="Jumlah Debitur Excel"/>
<!--end::Input-->
@error('jumlah_debitur_excel')
<span class="text-danger">{{ $message }}</span> @enderror
</div>
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="fv-row mb-7">
<!--begin::Label-->
<label class="required fw-semibold fs-6 mb-2">Nama Jenis Fasilitas</label>
<label class="required fw-semibold fs-6 mb-2">Dana Hasil Klaim</label>
<!--end::Label-->
<!--begin::Input-->
<input type="text" wire:model.defer="name" name="name" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="Nama Jenis Fasilitas"/>
<input type="text" data-inputmask="'alias': 'currency'" id="dana_hasil_klaim" wire:model.defer="dana_hasil_klaim" name="dana_hasil_klaim" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="Dana Hasil Klaim"/>
<!--end::Input-->
@error('name')
@error('dana_hasil_klaim')
<span class="text-danger">{{ $message }}</span> @enderror
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="row mb-7">
<div class="col-6">
<!--begin::Label-->
<label class="required fw-semibold fs-6 mb-2">Jumlah Debitur Penyelesaian</label>
<!--end::Label-->
<!--begin::Input-->
<input type="number" wire:model.defer="jumlah_debitur_penyelesaian" id="jumlah_debitur_penyelesaian" name="jumlah_debitur_penyelesaian" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="Jumlah Debitur Penyelesaian"/>
<!--end::Input-->
@error('jumlah_debitur_penyelesaian')
<span class="text-danger">{{ $message }}</span> @enderror
</div>
<div class="col-6">
<!--begin::Label-->
<label class="required fw-semibold fs-6 mb-2">Nilai Penyelesaian</label>
<!--end::Label-->
<!--begin::Input-->
<input type="text" data-inputmask="'alias': 'currency'" id="nilai_penyelesaian" wire:model.defer="nilai_penyelesaian" name="nilai_penyelesaian" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="Nilai Penyelesaian"/>
<!--end::Input-->
@error('nilai_penyelesaian')
<span class="text-danger">{{ $message }}</span> @enderror
</div>
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="row mb-7">
<div class="col-6">
<!--begin::Label-->
<label class="required fw-semibold fs-6 mb-2">Jumlah Debitur SIsa KSL</label>
<!--end::Label-->
<!--begin::Input-->
<input type="number" wire:model.defer="jumlah_debitur_sisa_ksl" id="jumlah_debitur_sisa_ksl" name="jumlah_debitur_sisa_ksl" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="Jumlah Debitur SIsa KSL"/>
<!--end::Input-->
@error('jumlah_debitur_sisa_ksl')
<span class="text-danger">{{ $message }}</span> @enderror
</div>
<div class="col-6">
<!--begin::Label-->
<label class="required fw-semibold fs-6 mb-2">Sisa Dana KSL</label>
<!--end::Label-->
<!--begin::Input-->
<input type="text" data-inputmask="'alias': 'currency'" id="sisa_dana_ksl" wire:model.defer="sisa_dana_ksl" name="sisa_dana_ksl" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="Sisa Dana KSL"/>
<!--end::Input-->
@error('sisa_dana_ksl')
<span class="text-danger">{{ $message }}</span> @enderror
</div>
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="fv-row mb-7">
<!--begin::Label-->
<label class="fw-semibold fs-6 mb-2">Keterangan</label>
<!--end::Label-->
<!--begin::Input-->
<input type="text" wire:model.defer="keterangan" name="keterangan" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="Keterangan"/>
<!--end::Input-->
@error('keterangan')
<span class="text-danger">{{ $message }}</span> @enderror
</div>
<!--end::Input group-->
<div class="row mb-7">
<div class="col-6">
<label class="fw-semibold fs-6 mb-2">Detail Debitur</label>
<div class="form-check form-switch form-check-custom form-check-solid mb-5" style="display: block!important;">
<input class="form-check-input h-20px w-30px me-5" type="checkbox" wire:model.defer="is_detail_debitur" id="is_detail_debitur" name="is_detail_debitur"/>
<label class="form-check-label" for="is_detail_debitur">
Ada
</label>
@error('is_detail_debitur')
<span class="text-danger">{{ $message }}</span> @enderror
</div>
</div>
<div class="col-6">
<label class="fw-semibold fs-6 mb-2">Status Data</label>
<div class="form-check form-switch form-check-custom form-check-solid" style="display: block!important;">
<input class="form-check-input h-20px w-30px me-5" type="checkbox" wire:model.defer="status" id="status" name="status"/>
<label class="form-check-label" for="status">
Aktif
</label>
@error('status')
<span class="text-danger">{{ $message }}</span> @enderror
</div>
</div>
</div>
</div>
<!--end::Scroll-->

View File

@ -29,7 +29,7 @@
<!--begin::Add klaim_jamkrindo-->
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#kt_modal_add_klaim_jamkrindo">
{!! getIcon('plus', 'fs-2', '', 'i') !!}
Add Jenis Fasilitas
Add Klaim Jamkrindo
</button>
<!--end::Add klaim_jamkrindo-->
</div>
@ -66,6 +66,51 @@
window.LaravelDataTables['klaim-jamkrindo-table'].ajax.reload();
});
});
Inputmask.extendAliases({
'currency': {
autoUnmask: true,
allowPlus: true,
allowMinus: true,
}
});
var jumlah_debitur_excel,jumlah_debitur_penyelesaian,nilai_penyelesaian,dana_hasil_klaim;
$('#jumlah_debitur_penyelesaian').on('keyup', function () {
jumlah_debitur_excel = $("#jumlah_debitur_excel").val();
jumlah_debitur_penyelesaian = $("#jumlah_debitur_penyelesaian").val();
$("#jumlah_debitur_sisa_ksl").val(jumlah_debitur_excel - jumlah_debitur_penyelesaian);
});
$('#jumlah_debitur_excel').on('keyup', function () {
jumlah_debitur_excel = $("#jumlah_debitur_excel").val();
jumlah_debitur_penyelesaian = $("#jumlah_debitur_penyelesaian").val();
if (jumlah_debitur_penyelesaian > 0) {
$("#jumlah_debitur_sisa_ksl").val(jumlah_debitur_excel - jumlah_debitur_penyelesaian);
}
});
$('#nilai_penyelesaian').on('keyup', function () {
dana_hasil_klaim = $("#dana_hasil_klaim").val();
nilai_penyelesaian = $("#nilai_penyelesaian").val();
nilai_penyelesaian.replace(nilai_penyelesaian, ',', '');
dana_hasil_klaim.replace(dana_hasil_klaim, ',', '');
$("#sisa_dana_ksl").val(dana_hasil_klaim - nilai_penyelesaian);
});
$('#dana_hasil_klaim').on('keyup',function (){
dana_hasil_klaim = $("#dana_hasil_klaim").val();
nilai_penyelesaian = $("#nilai_penyelesaian").val();
nilai_penyelesaian.replace(nilai_penyelesaian, ',', '');
dana_hasil_klaim.replace(dana_hasil_klaim, ',', '');
if(nilai_penyelesaian > 0){
$("#sisa_dana_ksl").val(dana_hasil_klaim - nilai_penyelesaian);
}
})
</script>
@endpush