Mengubah tampilan pada edit dan create email kantor, PIC Reviewer, PIC Admin, PIC Marketing pada Menu Basic Data -> KJPP part 1
This commit is contained in:
@@ -57,6 +57,8 @@ class KJPPController extends Controller
|
|||||||
{
|
{
|
||||||
$validated = $request->validated();
|
$validated = $request->validated();
|
||||||
|
|
||||||
|
dd($validated);
|
||||||
|
|
||||||
if ($validated) {
|
if ($validated) {
|
||||||
$file = $request->file('attachment');
|
$file = $request->file('attachment');
|
||||||
$filename = $file ? time() . '.' . $file->getClientOriginalExtension() : 'default.pdf';
|
$filename = $file ? time() . '.' . $file->getClientOriginalExtension() : 'default.pdf';
|
||||||
@@ -69,9 +71,6 @@ class KJPPController extends Controller
|
|||||||
Storage::copy('public/test/default.pdf', 'public/uploads_pdf/' . $filename);
|
Storage::copy('public/test/default.pdf', 'public/uploads_pdf/' . $filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
$validated['ijin_usaha_id'] = json_encode($request->input('ijin_usaha_id'));
|
|
||||||
$validated['jenis_aset_id'] = json_encode($request->input('jenis_aset_id'));
|
|
||||||
|
|
||||||
// Tambahkan nama file ke data yang divalidasi
|
// Tambahkan nama file ke data yang divalidasi
|
||||||
$validated['attachment'] = $filename;
|
$validated['attachment'] = $filename;
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
namespace Modules\Lpj\Http\Requests;
|
namespace Modules\Lpj\Http\Requests;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
use daengdeni\LaravelIdGenerator\IdGenerator;
|
|
||||||
|
|
||||||
class KJPPRequest extends FormRequest
|
class KJPPRequest extends FormRequest
|
||||||
{
|
{
|
||||||
@@ -17,24 +16,31 @@ class KJPPRequest extends FormRequest
|
|||||||
'jenis_kantor' => 'required',
|
'jenis_kantor' => 'required',
|
||||||
'nomor_ijin_usaha' => 'required',
|
'nomor_ijin_usaha' => 'required',
|
||||||
'province_code' => 'required',
|
'province_code' => 'required',
|
||||||
'city_code' => 'required',
|
'city_code' => 'nullable',
|
||||||
'district_code' => 'required',
|
'district_code' => 'nullable',
|
||||||
'village_code' => 'required',
|
'village_code' => 'nullable',
|
||||||
'address' => 'required',
|
'address' => 'required',
|
||||||
'postal_code' => 'required|numeric',
|
'postal_code' => 'nullable|numeric',
|
||||||
'nomor_telepon_kantor' => 'required|numeric|digits_between:8,15',
|
'nomor_telepon_kantor' => 'nullable|numeric|digits_between:8,15',
|
||||||
'email_kantor' => 'required|email',
|
'email_kantor' => 'required|email',
|
||||||
|
'detail_email_kantor' => 'nullable|email',
|
||||||
'nama_pimpinan' => 'required|string|not_regex:/^\d+$/|max:255',
|
'nama_pimpinan' => 'required|string|not_regex:/^\d+$/|max:255',
|
||||||
'nomor_hp_pimpinan' => 'required|numeric|digits_between:10,15',
|
'nomor_hp_pimpinan' => 'required|numeric|digits_between:10,15',
|
||||||
'nama_pic_reviewer' => 'required|string|not_regex:/^\d+$/|max:255',
|
'nama_pic_reviewer' => 'nullable|string|not_regex:/^\d+$/|max:255',
|
||||||
'nomor_hp_pic_reviewer' => 'required|numeric|digits_between:10,15',
|
// 'detail_nama_pic_reviewer' => 'nullable|string|not_regex:/^\d+$/|max:255',
|
||||||
'nama_pic_admin' => 'required|string|not_regex:/^\d+$/|max:255',
|
'nomor_hp_pic_reviewer' => 'nullable|numeric|digits_between:10,15',
|
||||||
'nomor_hp_pic_admin' => 'required|numeric|digits_between:10,15',
|
// 'detail_nomor_hp_pic_reviewer' => 'nullable|numeric|digits_between:10,15',
|
||||||
'nama_pic_marketing' => 'required|string|not_regex:/^\d+$/|max:255',
|
'nama_pic_admin' => 'nullable|string|not_regex:/^\d+$/|max:255',
|
||||||
'nomor_hp_pic_marketing' => 'required|numeric|digits_between:10,15',
|
// 'detail_nama_pic_admin' => 'nullable|string|not_regex:/^\d+$/|max:255',
|
||||||
'ijin_usaha_id' => 'required|array',
|
'nomor_hp_pic_admin' => 'nullable|numeric|digits_between:10,15',
|
||||||
|
// 'detail_nomor_hp_pic_admin' => 'nullable|numeric|digits_between:10,15',
|
||||||
|
'nama_pic_marketing' => 'nullable|string|not_regex:/^\d+$/|max:255',
|
||||||
|
// 'detail_nama_pic_marketing' => 'nullable|string|not_regex:/^\d+$/|max:255',
|
||||||
|
'nomor_hp_pic_marketing' => 'nullable|numeric|digits_between:10,15',
|
||||||
|
// 'detail_nomor_hp_pic_marketing' => 'nullable|numeric|digits_between:10,15',
|
||||||
|
'ijin_usaha_id' => 'nullable|array',
|
||||||
'ijin_usaha_id.*' => 'exists:ijin_usaha,code',
|
'ijin_usaha_id.*' => 'exists:ijin_usaha,code',
|
||||||
'jenis_aset_id' => 'required|array',
|
'jenis_aset_id' => 'nullable|array',
|
||||||
'jenis_aset_id.*' => 'exists:jenis_jaminan,code',
|
'jenis_aset_id.*' => 'exists:jenis_jaminan,code',
|
||||||
'attachment' => 'nullable|mimes:pdf|max:1024'
|
'attachment' => 'nullable|mimes:pdf|max:1024'
|
||||||
];
|
];
|
||||||
@@ -69,37 +75,36 @@ class KJPPRequest extends FormRequest
|
|||||||
'nomor_ijin_usaha.required' => 'Nomor Ijin Usaha Wajib diisi!',
|
'nomor_ijin_usaha.required' => 'Nomor Ijin Usaha Wajib diisi!',
|
||||||
'nomor_ijin_usaha.max' => 'Nomor Ijin Usaha maksimal 255 huruf!',
|
'nomor_ijin_usaha.max' => 'Nomor Ijin Usaha maksimal 255 huruf!',
|
||||||
'province_code.required' => 'Provinsi Wajib diisi!',
|
'province_code.required' => 'Provinsi Wajib diisi!',
|
||||||
'city_code.required' => 'Kota / Kabupaten Wajib diisi!',
|
|
||||||
'district_code.required' => 'Kecamatan Wajib diisi!',
|
|
||||||
'village_code.required' => 'Kelurahan Wajib diisi!',
|
|
||||||
'postal_code.required' => 'Kode Pos Wajib diisi!',
|
|
||||||
'postal_code.numeric' => 'Kode Pos harus berupa angka!',
|
'postal_code.numeric' => 'Kode Pos harus berupa angka!',
|
||||||
'address.required' => 'Alamat Kantor Wajib diisi!',
|
'address.required' => 'Alamat Kantor Wajib diisi!',
|
||||||
'nomor_telepon_kantor.required' => 'Nomor Telepon Kantor Wajib diisi!',
|
|
||||||
'nomor_telepon_kantor.numeric' => 'Nomor Telepon Kantor harus berupa angka!',
|
'nomor_telepon_kantor.numeric' => 'Nomor Telepon Kantor harus berupa angka!',
|
||||||
'nomor_telepon_kantor.digits_between' => 'Nomor Telepon Kantor minimum 8 digit dan maksimum 15 digit!',
|
'nomor_telepon_kantor.digits_between' => 'Nomor Telepon Kantor minimum 8 digit dan maksimum 15 digit!',
|
||||||
'email_kantor.required' => 'Email Kantor Wajib diisi!',
|
'email_kantor.required' => 'Email Kantor Wajib diisi!',
|
||||||
'email_kantor.email' => 'Email Kantor tidak valid!',
|
'email_kantor.email' => 'Email Kantor tidak valid!',
|
||||||
|
// 'detail_email_kantor.email' => 'Email Kantor tidak valid!',
|
||||||
'nama_pimpinan.required' => 'Nama Pimpinan Wajib diisi!',
|
'nama_pimpinan.required' => 'Nama Pimpinan Wajib diisi!',
|
||||||
'nama_pimpinan.not_regex' => 'Nama Pimpinan harus berupa huruf!',
|
'nama_pimpinan.not_regex' => 'Nama Pimpinan harus berupa huruf!',
|
||||||
'nomor_hp_pimpinan.required' => 'Nomor HP Pimpinan Wajib diisi!',
|
'nomor_hp_pimpinan.required' => 'Nomor HP Pimpinan Wajib diisi!',
|
||||||
'nomor_hp_pimpinan.numeric' => 'Nomor HP Pimpinan harus berupa angka!',
|
'nomor_hp_pimpinan.numeric' => 'Nomor HP Pimpinan harus berupa angka!',
|
||||||
'nomor_hp_pimpinan.digits_between' => 'Nomor HP Pimpinan minimum 10 digit dan maksimum 15 digit!',
|
'nomor_hp_pimpinan.digits_between' => 'Nomor HP Pimpinan minimum 10 digit dan maksimum 15 digit!',
|
||||||
'nama_pic_reviewer.required' => 'Nama PIC Reviewer Wajib diisi!',
|
|
||||||
'nama_pic_reviewer.not_regex' => 'Nama PIC Reviewer harus berupa huruf!',
|
'nama_pic_reviewer.not_regex' => 'Nama PIC Reviewer harus berupa huruf!',
|
||||||
'nomor_hp_pic_reviewer.required' => 'Nomor HP PIC Reviewer Wajib diisi!',
|
// 'detail_nama_pic_reviewer.not_regex' => 'Nama PIC Reviewer harus berupa huruf!',
|
||||||
'nomor_hp_pic_reviewer.numeric' => 'Nomor HP PIC Reviewer harus berupa angka!',
|
'nomor_hp_pic_reviewer.numeric' => 'Nomor HP PIC Reviewer harus berupa angka!',
|
||||||
|
// 'detail_nomor_hp_pic_reviewer.numeric' => 'Nomor HP PIC Reviewer harus berupa angka!',
|
||||||
'nomor_hp_pic_reviewer.digits_between' => 'Nomor HP PIC Reviewer minimum 10 digit dan maksimum 15 digit!',
|
'nomor_hp_pic_reviewer.digits_between' => 'Nomor HP PIC Reviewer minimum 10 digit dan maksimum 15 digit!',
|
||||||
'nama_pic_admin.required' => 'Nama PIC Admin Wajib diisi!',
|
// 'detail_nomor_hp_pic_reviewer.digits_between' => 'Nomor HP PIC Reviewer minimum 10 digit dan maksimum 15 digit!',
|
||||||
'nama_pic_admin.not_regex' => 'Nama PIC Admin harus berupa huruf!',
|
'nama_pic_admin.not_regex' => 'Nama PIC Admin harus berupa huruf!',
|
||||||
'nomor_hp_pic_admin.required' => 'Nomor HP PIC Admin Wajib diisi!',
|
// 'detail_nama_pic_admin.not_regex' => 'Nama PIC Admin harus berupa huruf!',
|
||||||
'nomor_hp_pic_admin.numeric' => 'Nomor HP PIC Admin harus berupa angka!',
|
'nomor_hp_pic_admin.numeric' => 'Nomor HP PIC Admin harus berupa angka!',
|
||||||
|
// 'detail_nomor_hp_pic_admin.numeric' => 'Nomor HP PIC Admin harus berupa angka!',
|
||||||
'nomor_hp_pic_admin.digits_between' => 'Nomor HP PIC Admin minimum 10 digit dan maksimum 15 digit!',
|
'nomor_hp_pic_admin.digits_between' => 'Nomor HP PIC Admin minimum 10 digit dan maksimum 15 digit!',
|
||||||
'nama_pic_marketing.required' => 'Nama PIC Marketing Wajib diisi!',
|
// 'detail_nomor_hp_pic_admin.digits_between' => 'Nomor HP PIC Admin minimum 10 digit dan maksimum 15 digit!',
|
||||||
'nama_pic_marketing.not_regex' => 'Nama PIC Marketing harus berupa huruf!',
|
'nama_pic_marketing.not_regex' => 'Nama PIC Marketing harus berupa huruf!',
|
||||||
'nomor_hp_pic_marketing.required' => 'Nomor HP PIC Marketing Wajib diisi!',
|
// 'detail_nama_pic_marketing.not_regex' => 'Nama PIC Marketing harus berupa huruf!',
|
||||||
'nomor_hp_pic_marketing.numeric' => 'Nomor HP PIC Marketing harus berupa angka!',
|
'nomor_hp_pic_marketing.numeric' => 'Nomor HP PIC Marketing harus berupa angka!',
|
||||||
|
// 'detail_nomor_hp_pic_marketing.numeric' => 'Nomor HP PIC Marketing harus berupa angka!',
|
||||||
'nomor_hp_pic_marketing.digits_between' => 'Nomor HP PIC Marketing minimum 10 digit dan maksimum 15 digit!',
|
'nomor_hp_pic_marketing.digits_between' => 'Nomor HP PIC Marketing minimum 10 digit dan maksimum 15 digit!',
|
||||||
|
// 'detail_nomor_hp_pic_marketing.digits_between' => 'Nomor HP PIC Marketing minimum 10 digit dan maksimum 15 digit!',
|
||||||
'ijin_usaha_id.required' => 'Ijin Usaha Wajib diisi!',
|
'ijin_usaha_id.required' => 'Ijin Usaha Wajib diisi!',
|
||||||
'ijin_usaha_id.min' => 'Ijin Usaha Wajib diisi minimal satu atau lebih!',
|
'ijin_usaha_id.min' => 'Ijin Usaha Wajib diisi minimal satu atau lebih!',
|
||||||
'jenis_aset_id.required' => 'Jenis Aset Wajib diisi!',
|
'jenis_aset_id.required' => 'Jenis Aset Wajib diisi!',
|
||||||
@@ -108,4 +113,94 @@ class KJPPRequest extends FormRequest
|
|||||||
'attachment.max' => 'Attachment berukuran maksimum 1 MB!',
|
'attachment.max' => 'Attachment berukuran maksimum 1 MB!',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function prepareForValidation()
|
||||||
|
{
|
||||||
|
$detailEmailKantor = [];
|
||||||
|
$detailNamaPicReviewer = [];
|
||||||
|
$detailNomorHpPicReviewer = [];
|
||||||
|
$detailNamaPicAdmin = [];
|
||||||
|
$detailNomorHpPicAdmin = [];
|
||||||
|
$detailNamaPicMarketing = [];
|
||||||
|
$detailNomorHpPicMarketing = [];
|
||||||
|
|
||||||
|
// Get input data with safe default values
|
||||||
|
$emailKantor = $this->input('detail_email_kantor.email_kantor', []);
|
||||||
|
$namaPicReviewer = $this->input('detail_nama_pic_reviewer.nama_pic_reviewer', []);
|
||||||
|
$nomorHpPicReviewer = $this->input('detail_nomor_hp_pic_reviewer.nomor_hp_pic_reviewer', []);
|
||||||
|
$namaPicAdmin = $this->input('detail_nama_pic_admin.nama_pic_admin', []);
|
||||||
|
$nomorHpPicAdmin = $this->input('detail_nomor_hp_pic_admin.nomor_hp_pic_admin', []);
|
||||||
|
$namaPicMarketing = $this->input('detail_nama_pic_marketing.nama_pic_marketing', []);
|
||||||
|
$nomorHpPicMarketing = $this->input('detail_nomor_hp_pic_marketing.nomor_hp_pic_marketing', []);
|
||||||
|
|
||||||
|
foreach ($emailKantor as $value) {
|
||||||
|
$detailEmailKantor[] = [
|
||||||
|
'email_kantor' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->merge([
|
||||||
|
'detail_email_kantor' => json_encode($detailEmailKantor),
|
||||||
|
]);
|
||||||
|
|
||||||
|
foreach ($namaPicReviewer as $value) {
|
||||||
|
$detailNamaPicReviewer[] = [
|
||||||
|
'nama_pic_reviewer' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->merge([
|
||||||
|
'detail_nama_pic_reviewer' => json_encode($detailNamaPicReviewer),
|
||||||
|
]);
|
||||||
|
|
||||||
|
foreach ($nomorHpPicReviewer as $value) {
|
||||||
|
$detailNomorHpPicReviewer[] = [
|
||||||
|
'nomor_hp_pic_reviewer' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->merge([
|
||||||
|
'detail_nomor_hp_pic_reviewer' => json_encode($detailNomorHpPicReviewer),
|
||||||
|
]);
|
||||||
|
|
||||||
|
foreach ($namaPicAdmin as $value) {
|
||||||
|
$detailNamaPicAdmin[] = [
|
||||||
|
'nama_pic_admin' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->merge([
|
||||||
|
'detail_nama_pic_admin' => json_encode($detailNamaPicAdmin),
|
||||||
|
]);
|
||||||
|
|
||||||
|
foreach ($nomorHpPicAdmin as $value) {
|
||||||
|
$detailNomorHpPicAdmin[] = [
|
||||||
|
'nomor_hp_pic_admin' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->merge([
|
||||||
|
'detail_nomor_hp_pic_admin' => json_encode($detailNomorHpPicAdmin),
|
||||||
|
]);
|
||||||
|
|
||||||
|
foreach ($namaPicMarketing as $value) {
|
||||||
|
$detailNamaPicMarketing[] = [
|
||||||
|
'nama_pic_marketing' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->merge([
|
||||||
|
'detail_nama_pic_marketing' => json_encode($detailNamaPicMarketing),
|
||||||
|
]);
|
||||||
|
|
||||||
|
foreach ($nomorHpPicMarketing as $value) {
|
||||||
|
$detailNomorHpPicMarketing[] = [
|
||||||
|
'nomor_hp_pic_marketing' => $value
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->merge([
|
||||||
|
'detail_nomor_hp_pic_marketing' => json_encode($detailNomorHpPicMarketing),
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,16 +31,23 @@ class KJPP extends Model
|
|||||||
'postal_code',
|
'postal_code',
|
||||||
'nomor_telepon_kantor',
|
'nomor_telepon_kantor',
|
||||||
'email_kantor',
|
'email_kantor',
|
||||||
|
'detail_email_kantor',
|
||||||
'nama_pimpinan',
|
'nama_pimpinan',
|
||||||
'nomor_hp_pimpinan',
|
'nomor_hp_pimpinan',
|
||||||
'nama_pic_reviewer',
|
'nama_pic_reviewer',
|
||||||
|
'detail_nama_pic_reviewer',
|
||||||
'nomor_hp_pic_reviewer',
|
'nomor_hp_pic_reviewer',
|
||||||
|
'detail_nomor_hp_pic_reviewer',
|
||||||
'nama_pic_admin',
|
'nama_pic_admin',
|
||||||
|
'detail_nama_pic_admin',
|
||||||
'nomor_hp_pic_admin',
|
'nomor_hp_pic_admin',
|
||||||
|
'detail_nomor_hp_pic_admin',
|
||||||
'nama_pic_marketing',
|
'nama_pic_marketing',
|
||||||
|
'detail_nama_pic_marketing',
|
||||||
'nomor_hp_pic_marketing',
|
'nomor_hp_pic_marketing',
|
||||||
|
'detail_nomor_hp_pic_marketing',
|
||||||
'ijin_usaha_id',
|
'ijin_usaha_id',
|
||||||
'jenis_aset_id',
|
'jenis_aset_id',
|
||||||
'attachment'
|
'attachment',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,23 +18,23 @@ return new class extends Migration
|
|||||||
$table->string('jenis_kantor');
|
$table->string('jenis_kantor');
|
||||||
$table->string('nomor_ijin_usaha');
|
$table->string('nomor_ijin_usaha');
|
||||||
$table->string('province_code');
|
$table->string('province_code');
|
||||||
$table->string('city_code');
|
$table->string('city_code')->nullable();
|
||||||
$table->string('district_code');
|
$table->string('district_code')->nullable();
|
||||||
$table->string('village_code');
|
$table->string('village_code')->nullable();
|
||||||
$table->string('address');
|
$table->string('address');
|
||||||
$table->string('postal_code');
|
$table->string('postal_code')->nullable();
|
||||||
$table->string('nomor_telepon_kantor');
|
$table->string('nomor_telepon_kantor')->nullable();
|
||||||
$table->string('email_kantor');
|
$table->string('email_kantor');
|
||||||
$table->string('nama_pimpinan');
|
$table->string('nama_pimpinan');
|
||||||
$table->string('nomor_hp_pimpinan');
|
$table->string('nomor_hp_pimpinan');
|
||||||
$table->string('nama_pic_reviewer');
|
$table->string('nama_pic_reviewer')->nullable();
|
||||||
$table->string('nomor_hp_pic_reviewer');
|
$table->string('nomor_hp_pic_reviewer')->nullable();
|
||||||
$table->string('nama_pic_admin');
|
$table->string('nama_pic_admin')->nullable();
|
||||||
$table->string('nomor_hp_pic_admin');
|
$table->string('nomor_hp_pic_admin')->nullable();
|
||||||
$table->string('nama_pic_marketing');
|
$table->string('nama_pic_marketing')->nullable();
|
||||||
$table->string('nomor_hp_pic_marketing');
|
$table->string('nomor_hp_pic_marketing')->nullable();
|
||||||
$table->string('ijin_usaha_id')->nullable();
|
$table->string('ijin_usaha_id');
|
||||||
$table->string('jenis_aset_id')->nullable();
|
$table->string('jenis_aset_id');
|
||||||
$table->string('attachment')->nullable();
|
$table->string('attachment')->nullable();
|
||||||
$table->boolean('status')->default(true)->nullable();
|
$table->boolean('status')->default(true)->nullable();
|
||||||
$table->char('authorized_status', 1)->nullable();
|
$table->char('authorized_status', 1)->nullable();
|
||||||
|
|||||||
40
database/migrations/2024_11_05_031735_update_kjpp_table.php
Normal file
40
database/migrations/2024_11_05_031735_update_kjpp_table.php
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('kjpp', function (Blueprint $table) {
|
||||||
|
$table->string('detail_email_kantor')->nullable()->after('email_kantor');
|
||||||
|
$table->string('detail_nama_pic_reviewer')->nullable()->after('nama_pic_reviewer');
|
||||||
|
$table->string('detail_nomor_hp_pic_reviewer')->nullable()->after('nomor_hp_pic_reviewer');
|
||||||
|
$table->string('detail_nama_pic_admin')->nullable()->after('nama_pic_admin');
|
||||||
|
$table->string('detail_nomor_hp_pic_admin')->nullable()->after('nomor_hp_pic_admin');
|
||||||
|
$table->string('detail_nama_pic_marketing')->nullable()->after('nama_pic_marketing');
|
||||||
|
$table->string('detail_nomor_hp_pic_marketing')->nullable()->after('nomor_hp_pic_marketing');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('kjpp', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('detail_email_kantor');
|
||||||
|
$table->dropColumn('detail_nama_pic_reviewer');
|
||||||
|
$table->dropColumn('detail_nomor_hp_pic_reviewer');
|
||||||
|
$table->dropColumn('detail_nama_pic_admin');
|
||||||
|
$table->dropColumn('detail_nomor_hp_pic_admin');
|
||||||
|
$table->dropColumn('detail_nama_pic_marketing');
|
||||||
|
$table->dropColumn('detail_nomor_hp_pic_marketing');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -17,6 +17,8 @@ class JenisLegalitasJaminanSeeder extends Seeder
|
|||||||
'code' => 'JLJ001',
|
'code' => 'JLJ001',
|
||||||
'name' => 'Sertifikat',
|
'name' => 'Sertifikat',
|
||||||
'slug' => 'sertifikat',
|
'slug' => 'sertifikat',
|
||||||
|
'custom_field' => 'Luas Tanah',
|
||||||
|
'custom_field_type' => 'number',
|
||||||
'status' => 1,
|
'status' => 1,
|
||||||
'created_at' => now(),
|
'created_at' => now(),
|
||||||
'updated_at' => now(),
|
'updated_at' => now(),
|
||||||
@@ -85,6 +87,20 @@ class JenisLegalitasJaminanSeeder extends Seeder
|
|||||||
'updated_by' => 1,
|
'updated_by' => 1,
|
||||||
'deleted_by' => null
|
'deleted_by' => null
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
'code' => 'JLJ007',
|
||||||
|
'name' => 'IMB',
|
||||||
|
'slug' => 'imb',
|
||||||
|
'custom_field' => 'Luas Bangunan',
|
||||||
|
'custom_field_type' => 'number',
|
||||||
|
'status' => 1,
|
||||||
|
'created_at' => now(),
|
||||||
|
'updated_at' => now(),
|
||||||
|
'deleted_at' => null,
|
||||||
|
'created_by' => 1,
|
||||||
|
'updated_by' => 1,
|
||||||
|
'deleted_by' => null
|
||||||
|
]
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,34 +12,34 @@ class LpjDatabaseSeeder extends Seeder
|
|||||||
public function run(): void
|
public function run(): void
|
||||||
{
|
{
|
||||||
$this->call([
|
$this->call([
|
||||||
BranchSeeder::class,
|
// BranchSeeder::class,
|
||||||
CurrencySeeder::class,
|
// CurrencySeeder::class,
|
||||||
JenisFasilitasKreditSeeder::class,
|
// JenisFasilitasKreditSeeder::class,
|
||||||
JenisLegalitasJaminanSeeder::class,
|
// JenisLegalitasJaminanSeeder::class,
|
||||||
JenisJaminanSeeder::class,
|
// JenisJaminanSeeder::class,
|
||||||
JenisDokumenSeeder::class,
|
// JenisDokumenSeeder::class,
|
||||||
TujuanPenilaianSeeder::class,
|
// TujuanPenilaianSeeder::class,
|
||||||
NilaiPlatformSeeder::class,
|
// NilaiPlatformSeeder::class,
|
||||||
HubunganPemilikJaminanSeeder::class,
|
// HubunganPemilikJaminanSeeder::class,
|
||||||
HubunganPenghuniJaminanSeeder::class,
|
// HubunganPenghuniJaminanSeeder::class,
|
||||||
ArahMataAnginSeeder::class,
|
// ArahMataAnginSeeder::class,
|
||||||
StatusPermohonanSeeder::class,
|
// StatusPermohonanSeeder::class,
|
||||||
RegionSeeder::class,
|
// RegionSeeder::class,
|
||||||
TeamsSeeder::class,
|
// TeamsSeeder::class,
|
||||||
TeamUsersSeeder::class,
|
// TeamUsersSeeder::class,
|
||||||
JenisPenilaianSeeder::class,
|
// JenisPenilaianSeeder::class,
|
||||||
TujuanPenilaianKJPPSeeder::class,
|
// TujuanPenilaianKJPPSeeder::class,
|
||||||
IjinUsahaSeeder::class,
|
// IjinUsahaSeeder::class,
|
||||||
JenisLaporanSeeder::class,
|
// JenisLaporanSeeder::class,
|
||||||
KJPPSeeder::class,
|
// DebitureSeeder::class,
|
||||||
DebitureSeeder::class,
|
// PermohonanSeeder::class,
|
||||||
PermohonanSeeder::class,
|
|
||||||
PemilikJaminanSeeder::class,
|
PemilikJaminanSeeder::class,
|
||||||
DokumenJaminanSeeder::class,
|
// DokumenJaminanSeeder::class,
|
||||||
DetailDokumenJaminanSeeder::class,
|
// DetailDokumenJaminanSeeder::class,
|
||||||
PenawaranSeeder::class,
|
// KJPPSeeder::class,
|
||||||
DetailPenawaranSeeder::class,
|
// PenawaranSeeder::class,
|
||||||
PenilaianSeeder::class,
|
// DetailPenawaranSeeder::class,
|
||||||
|
// PenilaianSeeder::class,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ class PermohonanSeeder extends Seeder
|
|||||||
'branch_id' => 1,
|
'branch_id' => 1,
|
||||||
'tujuan_penilaian_id' => 1,
|
'tujuan_penilaian_id' => 1,
|
||||||
'debiture_id' => 1,
|
'debiture_id' => 1,
|
||||||
'status' => 'persetujuan-penawaran',
|
'status' => 'registered',
|
||||||
'created_at' => now(),
|
'created_at' => now(),
|
||||||
'updated_at' => now(),
|
'updated_at' => now(),
|
||||||
'created_by' => 1,
|
'created_by' => 1,
|
||||||
@@ -38,7 +38,7 @@ class PermohonanSeeder extends Seeder
|
|||||||
'branch_id' => 1,
|
'branch_id' => 1,
|
||||||
'tujuan_penilaian_id' => 1,
|
'tujuan_penilaian_id' => 1,
|
||||||
'debiture_id' => 1,
|
'debiture_id' => 1,
|
||||||
'status' => 'tender',
|
'status' => 'registered',
|
||||||
'created_at' => now(),
|
'created_at' => now(),
|
||||||
'updated_at' => now(),
|
'updated_at' => now(),
|
||||||
'created_by' => 1,
|
'created_by' => 1,
|
||||||
|
|||||||
@@ -222,12 +222,30 @@
|
|||||||
<label class="form-label max-w-56">
|
<label class="form-label max-w-56">
|
||||||
Email Kantor
|
Email Kantor
|
||||||
</label>
|
</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full gap-1.5">
|
||||||
<input class="input @error('email_kantor') border-danger @enderror" type="text"
|
<input class="input @error('email_kantor') border-danger @enderror" type="text"
|
||||||
name="email_kantor" value="{{ $kjpp->email_kantor ?? old('email_kantor') }}">
|
name="email_kantor" value="{{ $kjpp->email_kantor ?? old('email_kantor') }}">
|
||||||
@error('email_kantor')
|
@error('email_kantor')
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
@enderror
|
@enderror
|
||||||
|
<div id="detail_email_kantor" class="flex flex-wrap items-center w-full gap-2">
|
||||||
|
<div class="flex flex-col lg:flex-row items-center w-full">
|
||||||
|
@if (isset($kjpp->detail_email_kantor))
|
||||||
|
@foreach (json_decode($kjpp->detail_email_kantor) as $detail)
|
||||||
|
<input class="input @error('detail_email_kantor') border-danger @enderror"
|
||||||
|
type="text" name="detail_email_kantor[email_kantor][]"
|
||||||
|
value="{{ $detail->email_kantor ?? old('detail_email_kantor') }}">
|
||||||
|
@error('detail_email_kantor')
|
||||||
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
|
@enderror
|
||||||
|
<button type="button"
|
||||||
|
class="btn btn-danger btn-xs delete-button">Hapus</button>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<button type="button" id="tambah_email_kantor" class="btn btn-primary btn-xs">Tambah
|
||||||
|
Email Kantor</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
@@ -277,6 +295,53 @@
|
|||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap">
|
||||||
|
<div id="detail_nama_pic_reviewer" class="flex flex-wrap items-baseline w-full gap-2.5">
|
||||||
|
@if (isset($kjpp->detail_nama_pic_reviewer))
|
||||||
|
@foreach (json_decode($kjpp->detail_nama_pic_reviewer) as $detail)
|
||||||
|
<div class="flex flex-col lg:flex-row gap-2 items-baseline lg:items-center w-full">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nama PIC Reviewer
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input
|
||||||
|
class="input @error('detail_nama_pic_reviewer') border-danger @enderror"
|
||||||
|
type="text" name="detail_nama_pic_reviewer[nama_pic_reviewer][]"
|
||||||
|
value="{{ $detail->detail_nama_pic_reviewer ?? old('detail_nama_pic_reviewer') }}">
|
||||||
|
@error('detail_nama_pic_reviewer')
|
||||||
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
@foreach (json_decode($kjpp->detail_nomor_hp_pic_reviewer) as $detail)
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nomor HP PIC Reviewer
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input
|
||||||
|
class="input @error('detail_nomor_hp_pic_reviewer') border-danger @enderror"
|
||||||
|
type="text"
|
||||||
|
name="detail_nomor_hp_pic_reviewer[nomor_hp_pic_reviewer][]"
|
||||||
|
value="{{ $detail->nomor_hp_pic_reviewer ?? old('detail_nomor_hp_pic_reviewer') }}">
|
||||||
|
@error('detail_nomor_hp_pic_reviewer')
|
||||||
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
<button type="button" class="btn btn-danger btn-xs delete-button">Hapus</button>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<button type="button" id="tambah_nama_pic_reviewer" class="btn btn-primary btn-xs">Tambah
|
||||||
|
PIC Reviewer</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">
|
<label class="form-label max-w-56">
|
||||||
Nama PIC Admin
|
Nama PIC Admin
|
||||||
@@ -300,28 +365,116 @@
|
|||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap">
|
||||||
|
<div id="detail_nama_pic_admin" class="flex flex-wrap items-baseline w-full gap-2.5">
|
||||||
|
@if (isset($kjpp->detail_nama_pic_admin))
|
||||||
|
@foreach (json_decode($kjpp->detail_nama_pic_admin) as $detail)
|
||||||
|
<div class="flex flex-col lg:flex-row gap-2 items-baseline lg:items-center w-full">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nama PIC Admin
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input @error('detail_nama_pic_admin') border-danger @enderror"
|
||||||
|
type="text" name="detail_nama_pic_admin[nama_pic_admin][]"
|
||||||
|
value="{{ $detail->detail_nama_pic_admin ?? old('detail_nama_pic_admin') }}">
|
||||||
|
@error('detail_nama_pic_admin')
|
||||||
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
@foreach (json_decode($kjpp->detail_nomor_hp_pic_admin) as $detail)
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nomor HP PIC Admin
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input
|
||||||
|
class="input @error('detail_nomor_hp_pic_admin') border-danger @enderror"
|
||||||
|
type="text" name="detail_nomor_hp_pic_admin[nomor_hp_pic_admin][]"
|
||||||
|
value="{{ $detail->nomor_hp_pic_admin ?? old('detail_nomor_hp_pic_admin') }}">
|
||||||
|
@error('detail_nomor_hp_pic_admin')
|
||||||
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
<button type="button" class="btn btn-danger btn-xs delete-button">Hapus</button>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<button type="button" id="tambah_nama_pic_admin" class="btn btn-primary btn-xs">Tambah
|
||||||
|
PIC Admin</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">
|
<label class="form-label max-w-56">
|
||||||
Nama PIC Marketing
|
Nama PIC Marketing
|
||||||
</label>
|
</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<input class="input @error('nama_pic_marketing') border-danger @enderror" type="text"
|
||||||
<input class="input @error('nama_pic_marketing') border-danger @enderror" type="text"
|
name="nama_pic_marketing"
|
||||||
name="nama_pic_marketing"
|
value="{{ $kjpp->nama_pic_marketing ?? old('nama_pic_marketing') }}">
|
||||||
value="{{ $kjpp->nama_pic_marketing ?? old('nama_pic_marketing') }}">
|
@error('nama_pic_marketing')
|
||||||
@error('nama_pic_marketing')
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
@enderror
|
||||||
@enderror
|
|
||||||
</div>
|
|
||||||
<label class="form-label max-w-56">
|
<label class="form-label max-w-56">
|
||||||
Nomor HP PIC Marketing
|
Nomor HP PIC Marketing
|
||||||
</label>
|
</label>
|
||||||
|
<input class="input @error('nomor_hp_pic_marketing') border-danger @enderror" type="text"
|
||||||
|
name="nomor_hp_pic_marketing"
|
||||||
|
value="{{ $kjpp->nomor_hp_pic_marketing ?? old('nomor_hp_pic_marketing') }}">
|
||||||
|
@error('nomor_hp_pic_marketing')
|
||||||
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap">
|
||||||
|
<div id="detail_nama_pic_marketing" class="flex flex-wrap items-baseline w-full gap-2.5">
|
||||||
|
@if (isset($kjpp->detail_nama_pic_marketing))
|
||||||
|
@foreach (json_decode($kjpp->detail_nama_pic_marketing) as $detail)
|
||||||
|
<div class="flex flex-col lg:flex-row gap-2 items-baseline lg:items-center w-full">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nama PIC Marketing
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input
|
||||||
|
class="input @error('detail_nama_pic_marketing') border-danger @enderror"
|
||||||
|
type="text" name="detail_nama_pic_marketing[nama_pic_marketing][]"
|
||||||
|
value="{{ $detail->detail_nama_pic_marketing ?? old('detail_nama_pic_marketing') }}">
|
||||||
|
@error('detail_nama_pic_marketing')
|
||||||
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
@foreach (json_decode($kjpp->detail_nomor_hp_pic_marketing) as $detail)
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nomor HP PIC Marketing
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input
|
||||||
|
class="input @error('detail_nomor_hp_pic_marketing') border-danger @enderror"
|
||||||
|
type="text"
|
||||||
|
name="detail_nomor_hp_pic_marketing[nomor_hp_pic_marketing][]"
|
||||||
|
value="{{ $detail->nomor_hp_pic_marketing ?? old('detail_nomor_hp_pic_marketing') }}">
|
||||||
|
@error('detail_nomor_hp_pic_marketing')
|
||||||
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
<button type="button" class="btn btn-danger btn-xs delete-button">Hapus</button>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
|
||||||
|
</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<input class="input @error('nomor_hp_pic_marketing') border-danger @enderror"
|
<button type="button" id="tambah_nama_pic_marketing" class="btn btn-primary btn-xs">Tambah
|
||||||
type="text" name="nomor_hp_pic_marketing"
|
PIC Marketing</button>
|
||||||
value="{{ $kjpp->nomor_hp_pic_marketing ?? old('nomor_hp_pic_marketing') }}">
|
|
||||||
@error('nomor_hp_pic_marketing')
|
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
|
||||||
@enderror
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
@@ -397,3 +550,5 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
|
@include('lpj::kjpp.scripts.index')
|
||||||
|
|||||||
107
resources/views/kjpp/scripts/index.blade.php
Normal file
107
resources/views/kjpp/scripts/index.blade.php
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
@push('scripts')
|
||||||
|
<script>
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
const emailKantorDiv = document.getElementById('detail_email_kantor');
|
||||||
|
|
||||||
|
function addDeleteListeners() {
|
||||||
|
document.querySelectorAll(".delete-button").forEach(button => {
|
||||||
|
button.addEventListener("click", function() {
|
||||||
|
this.closest(
|
||||||
|
".flex.flex-col.lg\\:flex-row.gap-2.items-baseline.lg\\:items-center.w-full"
|
||||||
|
)
|
||||||
|
.remove();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById("tambah_email_kantor").addEventListener("click", function() {
|
||||||
|
const newDiv = document.createElement("div");
|
||||||
|
newDiv.className = "flex flex-col lg:flex-row gap-2 items-baseline lg:items-center w-full";
|
||||||
|
newDiv.innerHTML = `
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input" type="text" name="detail_email_kantor[email_kantor][]" value="">
|
||||||
|
</div>
|
||||||
|
<button type="button" class="btn btn-danger btn-xs delete-button">Hapus</button>
|
||||||
|
`;
|
||||||
|
emailKantorDiv.appendChild(newDiv);
|
||||||
|
|
||||||
|
addDeleteListeners();
|
||||||
|
});
|
||||||
|
|
||||||
|
const namaPicReviewerDiv = document.getElementById('detail_nama_pic_reviewer');
|
||||||
|
|
||||||
|
document.getElementById("tambah_nama_pic_reviewer").addEventListener("click", function() {
|
||||||
|
const newDiv = document.createElement("div");
|
||||||
|
newDiv.className = "flex flex-col lg:flex-row gap-2 items-baseline lg:items-center w-full";
|
||||||
|
newDiv.innerHTML = `
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nama PIC Reviewer
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input" type="text" name="detail_nama_pic_reviewer[nama_pic_reviewer][]" value="">
|
||||||
|
</div>
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nomor HP PIC Reviewer
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input" type="text" name="detail_nomor_hp_pic_reviewer[nomor_hp_pic_reviewer][]" value="">
|
||||||
|
</div>
|
||||||
|
<button type="button" class="btn btn-danger btn-xs delete-button">Hapus</button>
|
||||||
|
`;
|
||||||
|
namaPicReviewerDiv.appendChild(newDiv);
|
||||||
|
|
||||||
|
addDeleteListeners();
|
||||||
|
})
|
||||||
|
|
||||||
|
const namaPicAdminDiv = document.getElementById('detail_nama_pic_admin');
|
||||||
|
|
||||||
|
document.getElementById("tambah_nama_pic_admin").addEventListener("click", function() {
|
||||||
|
const newDiv = document.createElement("div");
|
||||||
|
newDiv.className = "flex flex-col lg:flex-row gap-2 items-baseline lg:items-center w-full";
|
||||||
|
newDiv.innerHTML = `
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nama PIC Admin
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input" type="text" name="detail_nama_pic_admin[nama_pic_admin][]" value="">
|
||||||
|
</div>
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nomor HP PIC Admin
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input" type="text" name="detail_nomor_hp_pic_admin[nomor_hp_pic_admin][]" value="">
|
||||||
|
</div>
|
||||||
|
<button type="button" class="btn btn-danger btn-xs delete-button">Hapus</button>
|
||||||
|
`;
|
||||||
|
namaPicAdminDiv.appendChild(newDiv);
|
||||||
|
|
||||||
|
addDeleteListeners();
|
||||||
|
})
|
||||||
|
|
||||||
|
const namaPicMarketingDiv = document.getElementById('detail_nama_pic_marketing');
|
||||||
|
|
||||||
|
document.getElementById("tambah_nama_pic_marketing").addEventListener("click", function() {
|
||||||
|
const newDiv = document.createElement("div");
|
||||||
|
newDiv.className = "flex flex-col lg:flex-row gap-2 items-baseline lg:items-center w-full";
|
||||||
|
newDiv.innerHTML = `
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nama PIC Marketing
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input" type="text" name="detail_nama_pic_marketing[nama_pic_marketing][]" value="">
|
||||||
|
</div>
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nomor HP PIC Marketing
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input" type="text" name="detail_nomor_hp_pic_marketing[nomor_hp_pic_marketing][]" value="">
|
||||||
|
</div>
|
||||||
|
<button type="button" class="btn btn-danger btn-xs delete-button">Hapus</button>
|
||||||
|
`;
|
||||||
|
namaPicMarketingDiv.appendChild(newDiv);
|
||||||
|
|
||||||
|
addDeleteListeners();
|
||||||
|
})
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@endpush
|
||||||
Reference in New Issue
Block a user