update validasi signer

This commit is contained in:
KhatamNugraha
2024-04-30 16:51:45 +07:00
parent a3a643ddb9
commit 90fc1c8ff1
2 changed files with 179 additions and 186 deletions

View File

@ -34,6 +34,7 @@
use Modules\Konfirmasibank\Http\Requests\Fasilitas\StoreFasilitasRequest;
use Akaunting\Money\Currency;
use Akaunting\Money\Money;
use Illuminate\Validation\Rule;
class KonfirmasiBankController extends Controller
{
@ -227,44 +228,64 @@
return $formattedAmount;
}
public function postSigner(Request $request){
public function postSigner(Request $request)
{
if (is_null($this->user) || !$this->user->can('konfirmasibank.create')) {
abort(403, 'Sorry !! You are Unauthorized to create any konfirmasibank.create !');
abort(403, 'Maaf!! Anda tidak memiliki otorisasi untuk membuat konfirmasi bank.');
}
$messages = [
'deputy_director.required' => 'Nama Deputy Director wajib diisi.',
'deputy_director.string' => 'Nama Deputy Director harus berupa teks.',
'deputy_director.unique' => 'Nama Deputy Director sudah terdaftar.',
'deputy_director.regex' => 'Nama Deputy Director tidak boleh mengandung angka.',
'executive_officer.required' => 'Nama Executive Officer wajib diisi.',
'executive_officer.string' => 'Nama Executive Officer harus berupa teks.',
'executive_officer.unique' => 'Nama Executive Officer sudah terdaftar.',
'executive_officer.regex' => 'Nama Executive Officer tidak boleh mengandung angka.',
'signer_type.required' => 'Tipe penandatangan wajib diisi.',
'signer_type.string' => 'Tipe penandatangan harus berupa teks.',
];
$currentDate = Carbon::now();
$validated = $request->validate([
'deputy_director' => 'required|string',
'executive_officer' => 'required|string',
$request->validate([
'deputy_director' => [
'required',
'string',
'unique:signers,deputy_director_name',
'regex:/^[a-zA-Z\s]*$/',
function($attribute, $value, $fail) use ($request) {
if ($value === $request->executive_officer) {
$fail('Nama Deputy Director tidak boleh sama dengan nama Executive Officer.');
}
},
],
'executive_officer' => [
'required',
'string',
'unique:signers,executive_officer_name',
'regex:/^[a-zA-Z\s]*$/'
],
'signer_type' => 'required|string'
]);
], $messages);
if ($validated) {
try {
// Create New User
try {
// Membuat instance baru dari Signer
$signer = new Signer();
$signer->deputy_director_name = $request->deputy_director;
$signer->executive_officer_name = $request->executive_officer;
$signer->signer_type = $request->signer_type;
$signer->created_at = $currentDate;
$signer->created_at = Carbon::now();
$signer->status = 1;
$signer->save();
// return redirect()->route('konfirmasibank.addFasilitas')->with('success', 'Data berhasil ditambahkan');
echo json_encode(['status' => 'success', 'message' => ' Add signer successfully .']);
return response()->json(['status' => 'success', 'message' => 'Penandatangan berhasil ditambahkan.']);
} catch (Exception $e) {
return json_encode([
return response()->json([
'status' => 'error',
'message' => $e->getMessage()
]);
}
]);
}
return false;
}
}
/**
* Show the form for editing the specified resource.
@ -286,45 +307,63 @@
}
public function updateSigner(Request $request)
{
public function updateSigner(Request $request)
{
if (is_null($this->user) || !$this->user->can('konfirmasibank.update')) {
abort(403, 'Sorry !! You are Unauthorized to edit any role !');
abort(403, 'Maaf!! Anda tidak memiliki otorisasi untuk mengupdate konfirmasi bank.');
}
$today = Carbon::now();
$signer = Signer::findOrFail($request->id);
$validator = Validator::make($request->all(), [
'deputy_director' => 'required|string',
'executive_officer' => 'required|string',
'signer_type' => 'required|string'
]);
$messages = [
'deputy_director.required' => 'Nama Deputy Director wajib diisi.',
'deputy_director.string' => 'Nama Deputy Director harus berupa teks.',
'deputy_director.unique' => 'Nama Deputy Director sudah terdaftar.',
'deputy_director.regex' => 'Nama Deputy Director tidak boleh mengandung angka.',
'executive_officer.required' => 'Nama Executive Officer wajib diisi.',
'executive_officer.string' => 'Nama Executive Officer harus berupa teks.',
'executive_officer.unique' => 'Nama Executive Officer sudah terdaftar.',
'executive_officer.regex' => 'Nama Executive Officer tidak boleh mengandung angka.',
'signer_type.required' => 'Tipe penandatangan wajib diisi.',
'signer_type.string' => 'Tipe penandatangan harus berupa teks.',
];
if ($validator->fails()) {
return response()->json(['errors' => $validator->errors()], 422); // Return validation errors as JSON
$request->validate([
'deputy_director' => [
'required',
'string',
// Rule::unique('signers', 'deputy_director_name')->ignore($signer->id),
'regex:/^[a-zA-Z\s]*$/',
function($attribute, $value, $fail) use ($request) {
if ($value === $request->executive_officer) {
$fail('Nama Deputy Director tidak boleh sama dengan nama Executive Officer.');
}
},
],
'executive_officer' => [
'required',
'string',
// Rule::unique('signers', 'executive_officer_name')->ignore($signer->id),
'regex:/^[a-zA-Z\s]*$/'
],
'signer_type' => 'required|string'
], $messages);
try {
$signer->deputy_director_name = $request->deputy_director;
$signer->executive_officer_name = $request->executive_officer;
$signer->signer_type = $request->signer_type;
$signer->updated_at = Carbon::now();
$signer->save();
return response()->json(['status' => 'success', 'message' => 'Penandatangan berhasil diperbarui.']);
} catch (Exception $e) {
return response()->json([
'status' => 'error',
'message' => $e->getMessage()
]);
}
if ($validator) {
try {
$signer = Signer::findOrFail($request->id);
$signer->deputy_director_name = $request->deputy_director;
$signer->executive_officer_name = $request->executive_officer;
$signer->signer_type = $request->signer_type;
$signer->updated_at = $today;
$signer->save();
echo json_encode(['status' => 'success', 'message' => ' signer updated successfully.']);
} catch (Exception $e) {
echo json_encode(['status' => 'error', 'message' => ' signer updated failed.']);
}
return;
}
echo json_encode(['status' => 'error', 'message' => ' signer updated failed.']);
}
public function export(Request $request){
@ -337,12 +376,17 @@
$DataPinjaman = [];
$DataFasilitas = [];
$DataRK = [];
$Accounts = [];
// dd($listAccount);
$GetCustomer = $Account->getCustomer($request['cusNo'])->first();
$listAccount = $Account->getAccount($request['cusNo'], $arrAccount, $dateCore )->get();
//dd( $listAccount);
foreach ($listAccount as $key1 => $account) {
$dataAADepo = $Account->getAA($request['cusNo'],$account->ACCOUNT_NUMBER, $dateCore)->first();
array_push($Accounts, $account->ACCOUNT_NUMBER);
// $AccountAnjak = $Account->getAccountAnjak($request['cusNo'], $dateCore )->first();
if ($account->CATEGORY == '6603' || $account->CATEGORY == '6602') {
if ($dataAADepo != null) {
@ -383,6 +427,11 @@
}
// $string = implode(", ", $Accounts);
// dd($string );
// $DataAnjak = $Account->getAccountAnjak($Accounts, $dateCore)->get();
// dd($DataAnjak );
$Arrangement = $Account->getPinjaman($request['cusNo'], $dateCore)->get();
foreach ($Arrangement as $key2 => $pinjaman) {
@ -402,6 +451,8 @@
$listAccountRK = $Account->getAccountRK($request['cusNo'], $dateCore )->get();
foreach ($listAccountRK as $rk => $valRk) {
if ( $valRk->CATEGORY == '1003') {
$rateRK = "";