feat: process edit and accept account company

chore: show company
This commit is contained in:
myuqinurrohman 2025-04-09 15:15:02 +07:00
parent 9de927bb7e
commit 63d01d90a2
26 changed files with 1682 additions and 345 deletions

View File

@ -0,0 +1,133 @@
<?php
namespace App\Exports;
use App\Models\Company;
use Carbon\Carbon;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithStyles;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
class CompanyExport implements FromCollection, WithHeadings, WithStyles, WithMapping
{
/**
* @return \Illuminate\Support\Collection
*/
protected $no = 1;
protected $status;
protected $edit_status;
protected $address;
protected $register_year;
protected $register_month;
protected $register_date;
public function __construct($status, $edit_status, $address, $register_year, $register_month, $register_date)
{
$this->status = $status;
$this->edit_status = $edit_status;
$this->address = $address;
$this->register_year = $register_year;
$this->register_month = $register_month;
$this->register_date = $register_date;
}
public function collection()
{
$query = Company::with(['user']);
if($this->status !== 'all'){
if($this->status === 'waiting'){
$query->whereHas('user', function ($q){
$q->where('status', '0');
});
}else if($this->status === 'accepted'){
$query->whereHas('user', function ($q){
$q->where('status', '1');
});
}else if($this->status === 'rejected'){
$query->whereHas('user', function ($q){
$q->where('status', '2');
});
}
}
if($this->edit_status !== 'all'){
if($this->edit_status === 'no-edit'){
$query->where('edit_status', '0');
}elseif($this->edit_status === 'waiting'){
$query->where('edit_status', '1');
}else if($this->edit_status === 'accepted'){
$query->where('edit_status', '2');
}else if($this->edit_status === 'rejected'){
$query->where('edit_status', '3');
}
}
if ($this->address) {
$query->where('address', 'LIKE', '%'.$this->address.'%');
}
if ($this->register_year) {
$query->whereYear('created_at', $this->register_year);
}
if ($this->register_month) {
$monthYear = Carbon::parse($this->register_month);
$query->whereYear('created_at', $monthYear->year)
->whereMonth('created_at', $monthYear->month);
}
if ($this->register_date) {
$query->whereDate('created_at', $this->register_date);
}
return $query->get();
}
public function map($company): array
{
return [
$this->no++,
$company->name,
$company->email,
$company->director_name,
get_user_status($company->user->status),
$company->address,
get_edit_status($company->edit_status),
Carbon::parse($company->created_at)->locale('id')->translatedFormat('l, d F Y'),
Carbon::parse($company->validated_at)->locale('id')->translatedFormat('l, d F Y')
];
}
public function headings(): array
{
return [
['Data Perusahaan', '', '', '', '', '', '', '', '', ''],
['NO', 'Nama Perusahaan', 'Email', 'Direktur', 'Status Akun', 'Alamat', 'Status Edit', 'Tanggal Daftar', 'Tanggal Validasi']
];
}
public function styles(Worksheet $sheet)
{
$sheet->mergeCells('A1:I1'); // A1 sampai D1 digabung
// Set alignment untuk pusat horizontal dan vertikal
$sheet->getStyle('A1:I1')->getAlignment()->setHorizontal('center');
$sheet->getStyle('A1:I1')->getAlignment()->setVertical('center');
$sheet->getColumnDimension('A')->setWidth(7); // Set column A width
$sheet->getColumnDimension('B')->setAutoSize(true);
$sheet->getColumnDimension('C')->setAutoSize(true);
$sheet->getColumnDimension('D')->setAutoSize(true);
$sheet->getColumnDimension('E')->setAutoSize(true);
$sheet->getColumnDimension('F')->setAutoSize(true);
$sheet->getColumnDimension('G')->setAutoSize(true);
$sheet->getColumnDimension('H')->setAutoSize(true);
$sheet->getColumnDimension('I')->setAutoSize(true);
// Menambahkan gaya lain jika diperlukan
$sheet->getStyle('A1:I1')->getFont()->setBold(true);
$sheet->getStyle('A1:I1')->getFont()->setSize(14);
}
}

View File

@ -19,7 +19,7 @@
if (! function_exists('store_file')) {
function store_file($file = null, $path, $disk = 'public')
{
if ($file && $file instanceof \Illuminate\Http\UploadedFile) {
if (filled($file) && $file && $file instanceof \Illuminate\Http\UploadedFile) {
$randomFilename = Str::random(35).time().'.'.$file->getClientOriginalExtension();
$originalFileName = Str::slug(pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME)).'.'.$file->getClientOriginalExtension();
@ -132,9 +132,29 @@ function get_user_status($status)
case '0':
return 'Menunggu';
case '1':
return 'Aktif';
return 'Diterima';
case '2':
return 'Nonaktif';
return 'Ditolak';
default:
return "Tidak Diketahui";
}
}
}
if (!function_exists('get_edit_status')) {
function get_edit_status($status)
{
switch($status){
case '0':
return 'Tidak Ada';
case '1':
return 'Menunggu';
case '2':
return 'Diterima';
case '3':
return 'Ditolak';
default:
return "Tidak Diketahui";
}
}
}
@ -263,7 +283,7 @@ function display_file($dir, $filename)
}
$mimeType = mime_content_type($path);
$fileUrl = asset("storage/{$filename}");
$fileUrl = asset("storage/uploads/{$dir}/{$filename}");
if (str_contains($mimeType, 'image')) {
return "<img src='{$fileUrl}' alt='File Image' class='img-fluid'>";
@ -274,3 +294,20 @@ function display_file($dir, $filename)
return '<p class="text-center">Format file tidak didukung</p>';
}
}
if (! function_exists('change_status')) {
function change_status($status, $category) {
if($category === 'company_edit'){
switch($status){
case '0':
return '1';
case '1':
return '2';
case '2':
return '3';
default:
return '0';
}
}
}
}

View File

@ -2,34 +2,301 @@
namespace App\Http\Controllers\Dashboard;
use App\Exports\CompanyExport;
use App\Http\Controllers\Controller;
use App\Http\Requests\CompanyRequest;
use App\Models\Company;
use App\Models\LoginHistory;
use App\Models\Role;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Facades\Excel;
class CompanyController extends Controller
{
public function index(){
return view('dashboard.companies.index',[
'title' => 'Perusahaan'
public function index(Request $request){
if(is_role(['1'])){
return view('dashboard.companies.admin.index',[
'title' => 'Perusahaan',
'status' => $request->input('status', null),
'edit_status' => $request->input('edit_status', null),
'address' => $request->input('address', null),
'register_year' => $request->input('register_year', null),
'register_month' => $request->input('register_month', null),
'register_date' => $request->input('register_date', null),
]);
}else if(is_role(['3'])){
$user = User::with(['role', 'company.media.journalists'])->findOrFail(Auth::id());
$data = [
'title' => 'Data Perusahaan',
'user' => $user,
];
return view('dashboard.companies.index', $data);
}
}
public function editRequest(){
if(!in_array(Auth::user()->company->edit_status, ['0', '2', '3'])){
abort(404);
}
return view('dashboard.companies.edit-request', [
'title' => 'Permohonan Ubah Data Perusahaan'
]);
}
public function create(){}
public function editRequestAction(Request $request){
if(!in_array(Auth::user()->company->edit_status, ['0', '2', '3'])){
abort(404);
}
public function store(){}
public function edit(){}
public function update(){}
public function show($id){
$company = Company::findOrFail(decrypt_id($id));
return view('dashboard.companies.show', [
'title' => 'Detail Perusahaan',
'company' => $company
$validatedData = $request->validate([
'edit_description' => ['required'],
], [
'edit_description.required' => 'Deskripsi wajib diisi.',
]);
if(!Auth::check()){
abort(404);
}
$user = User::with(['company'])->findOrFail(Auth::id());
$updatedCompany = $user->company->update([
'edit_status' => '1',
'edit_description' => $validatedData['edit_description']
]);
if($updatedCompany){
return redirect()->route('dashboard.companies.index')->with('success-status', 'Berhasil melakukan permohonan edit data perusahaan.');
}else{
return redirect()->route('dashboard.companies.index')->with('failed-status', 'Gagal melakukan permohonan edit data perusahaan.');
}
}
public function edit(){
if(!in_array(Auth::user()->company->edit_status, ['2'])){
abort(404);
}
$user = User::with(['role', 'company.media.journalists'])->findOrFail(Auth::id());
return view('dashboard.companies.edit', [
'title' => 'Ubah Data Perusahaan',
'user' => $user
]);
}
public function update(CompanyRequest $request){
if(!in_array(Auth::user()->company->edit_status, ['2'])){
abort(404);
}
$validatedData = $request->validated();
$company = User::with(['company'])->findOrFail(Auth::id())->company;
$fileFieldMap = [
'company_director_nik_doc' => 'director_nik_doc',
'company_deed_incorporation_doc' => 'deed_incorporation_doc',
'company_trade_license_doc' => 'trade_license_doc',
'company_tax_id_number_doc' => 'tax_id_number_doc',
'company_taxable_enterprise_doc' => 'taxable_enterprise_doc',
'company_annual_tax_return_doc' => 'annual_tax_return_doc',
'company_domicile_certificate_doc' => 'domicile_certificate_doc',
'company_profile_doc' => 'profile_doc',
];
$companyFileNames = [];
foreach ($fileFieldMap as $requestKey => $dbField) {
if ($request->hasFile($requestKey) && filled($validatedData[$requestKey])) {
$companyFileNames[$requestKey] = store_file($validatedData[$requestKey], '/uploads/companies', 'public')['randomFileName'];
} else {
$companyFileNames[$requestKey] = $company->{$dbField};
}
}
$updatedCompany = $company->update([
'name' => $validatedData['company_name'],
'email' => $validatedData['company_email'],
'address' => $validatedData['company_address'],
'director_name' => $validatedData['company_director_name'],
'director_nik' => $validatedData['company_director_nik'],
'director_nik_doc' => $companyFileNames['company_director_nik_doc'],
'deed_incorporation' => $validatedData['company_deed_incorporation'],
'deed_incorporation_doc' => $companyFileNames['company_deed_incorporation_doc'],
'trade_license' => $validatedData['company_trade_license'],
'trade_license_doc' => $companyFileNames['company_trade_license_doc'],
'tax_id_number' => $validatedData['company_tax_id_number'],
'tax_id_number_doc' => $companyFileNames['company_tax_id_number_doc'],
'taxable_enterprise' => $validatedData['company_taxable_enterprise'],
'taxable_enterprise_doc' => $companyFileNames['company_taxable_enterprise_doc'],
'annual_tax_return' => $validatedData['company_annual_tax_return'],
'annual_tax_return_doc' => $companyFileNames['company_annual_tax_return_doc'],
'domicile_certificate' => $validatedData['company_domicile_certificate'],
'domicile_certificate_doc' => $companyFileNames['company_domicile_certificate_doc'],
'profile' => $validatedData['company_profile'],
'profile_doc' => $companyFileNames['company_profile_doc'],
'edit_description' => null,
'edit_status' => '0',
]);
if($updatedCompany){
return redirect()->route('dashboard.companies.index')->with('success-status', 'Berhasil mengubah data perusahaan.');
}else{
return redirect()->route('dashboard.companies.index')->with('failed-status', 'Gagal mengubah data perusahaan.');
}
}
public function show($id, $type){
$user = User::with(['role', 'company.media.journalists'])->findOrFail(decrypt_id($id));
$data = [
'title' => 'Data Perusahaan',
'user' => $user,
'roles' => Role::all(),
'page' => 'company',
'purpose' => 'show',
'idnPage' => 'perusahaan',
'route' => 'companies',
'type' => $type
];
if($type === 'account'){
return view('dashboard.users.profiles.account', $data);
}elseif($type === 'login-activities'){
$data['loginActivities'] = LoginHistory::where('user_id', $user->id)->orderByDesc('id')->simplePaginate(20);
return view('dashboard.users.profiles.login-activity', $data);
}elseif($type === 'company'){
return view('dashboard.users.profiles.company', $data);
}elseif($type === 'media'){
return view('dashboard.users.profiles.media', $data);
}elseif($type === 'journalists'){
return view('dashboard.users.profiles.journalists', $data);
}
}
public function destroy(){}
public function process(Request $request, $id, $type){
$user = User::with(['role', 'company.media.journalists'])->findOrFail(decrypt_id($id));
if($request->query('category') && !in_array($request->query('category'), ['account-status', 'edit-request'])){
abort(404);
}
$data = [
'title' => 'Data Perusahaan',
'user' => $user,
'roles' => Role::all(),
'page' => 'company',
'purpose' => 'process',
'idnPage' => 'perusahaan',
'route' => 'companies',
'type' => $type,
'category' => $request->query('category', null)
];
if($type === 'account'){
return view('dashboard.users.profiles.account', $data);
}elseif($type === 'login-activities'){
$data['loginActivities'] = LoginHistory::where('user_id', $user->id)->orderByDesc('id')->simplePaginate(20);
return view('dashboard.users.profiles.login-activity', $data);
}elseif($type === 'company'){
return view('dashboard.users.profiles.company', $data);
}elseif($type === 'media'){
return view('dashboard.users.profiles.media', $data);
}elseif($type === 'journalists'){
return view('dashboard.users.profiles.journalists', $data);
}
}
public function processAcceptAction(Request $request, $id, $type, $category){
$user = User::with(['company'])->findOrFail(decrypt_id($id));
if(!in_array($category, ['account-status', 'edit-request'])){
abort(404);
}
if(is_role(['1']) && in_array($category, ['account-status', 'edit-request'])){
if($category === 'account-status' && $user->status === '0'){
$user->update([
'status' => '1'
]);
}else if($category === 'edit-request' && $user->company->edit_status === '1'){
$user->company->update([
'edit_status' => '2'
]);
}
}
return response()->json([
'message' => 'Berhasil menyetujui'.($category === 'edit-request' ? ' permohonan edit' : '').' perusahaan.'
]);
// return redirect()->back()->with('success-status', 'Berhasil menyetujui'.($category === 'edit-request' ? 'permohonan edit' : '').'perusahaan.');
}
public function processRejectAction(Request $request, $id, $type, $category){
$user = User::with(['company'])->findOrFail(decrypt_id($id));
if(!in_array($category, ['account-status', 'edit-request'])){
abort(404);
}
if(is_role(['1']) && in_array($category, ['account-status', 'edit-request'])){
$validatedData = $request->validate([
'rejection_reason' => ['required'],
], [
'rejection_reason.required' => 'Alasan penolakan wajib diisi.',
]);
if($category === 'account-status' && $user->status === '0'){
$user->update([
'status' => '2'
]);
$user->company->update([
'rejection_reason' => $validatedData['rejection_reason']
]);
}else if($category === 'edit-request' && $user->company->edit_status === '1'){
$user->company->update([
'edit_status' => '3',
'edit_rejection_reason' => $validatedData['rejection_reason']
]);
}
}
return redirect()->route('dashboard.companies.index')->with('success-status', 'Berhasil menolak'.($category === 'edit-request' ? ' permohonan edit' : '').' perusahaan.');
}
public function export(Request $request)
{
$status = $request->input('status', null);
$edit_status = $request->input('edit_status', null);
$address = $request->input('address', null);
$register_year = $request->input('register_year', null);
$register_month = $request->input('register_month', null);
$register_date = $request->input('register_date', null);
$formattedNow = Carbon::parse(now())->locale('id')->translatedFormat('d-m-Y');
return Excel::download(new CompanyExport($status, $edit_status, $address, $register_year, $register_month, $register_date), 'companies-'.$formattedNow.'.xlsx');
}
public function filter(Request $request){
$filteredRequest = $request->except('_token');
$filterField = array_filter($filteredRequest, function ($value) {
return filled($value);
});
return redirect()->route('dashboard.companies.index', $filterField);
}
}

View File

@ -683,9 +683,62 @@ public function airingProofTheme(Request $request){
public function company(Request $request){
if ($request->ajax()) {
$status = $request->input('status', null);
$edit_status = $request->input('edit_status', null);
$address = $request->input('address', null);
$register_year = $request->input('register_year', null);
$register_month = $request->input('register_month', null);
$register_date = $request->input('register_date', null);
$query = Company::with(['user']);
$data = Company::with(['user'])->get();
if($status !== 'all'){
if($status === 'waiting'){
$query->whereHas('user', function ($q){
$q->where('status', '0');
});
}else if($status === 'accepted'){
$query->whereHas('user', function ($q){
$q->where('status', '1');
});
}else if($status === 'rejected'){
$query->whereHas('user', function ($q){
$q->where('status', '2');
});
}
}
if($edit_status !== 'all'){
if($edit_status === 'no-edit'){
$query->where('edit_status', '0');
}elseif($edit_status === 'waiting'){
$query->where('edit_status', '1');
}else if($edit_status === 'accepted'){
$query->where('edit_status', '2');
}else if($edit_status === 'rejected'){
$query->where('edit_status', '3');
}
}
if ($address) {
$query->where('address', 'LIKE', '%'.$address.'%');
}
if ($register_year) {
$query->whereYear('created_at', $register_year);
}
if ($register_month) {
$monthYear = Carbon::parse($register_month);
$query->whereYear('created_at', $monthYear->year)
->whereMonth('created_at', $monthYear->month);
}
if ($register_date) {
$query->whereDate('created_at', $register_date);
}
$data = $query->get();
return DataTables::of($data)
->addIndexColumn()
@ -696,8 +749,8 @@ public function company(Request $request){
case 1:
return '<span class="badge bg-success" style="display:inline-block;font-size:0.8rem;">Diterima</span>';
case 2:
return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Ditolak</span>';
case 3:
return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;"><a href="javasciprt: void(0);" onclick="showDetail('.htmlspecialchars(json_encode(strip_tags($data->rejection_reason))).')" class="text-light text-decoration-underline">Ditolak</a></span>';
default:
return '<span class="badge bg-secondary" style="display:inline-block;font-size:0.8rem;">Tidak Diketahui</span>';
}
})
@ -707,12 +760,14 @@ public function company(Request $request){
->addColumn('status_edit', function ($data) {
switch($data->edit_status){
case 0:
return '<span class="badge bg-warning" style="display:inline-block;font-size:0.8rem;">Menunggu</span>';
return '<span class="badge bg-secondary" style="display:inline-block;font-size:0.8rem;">Tidak Ada</span>';
case 1:
return '<span class="badge bg-success" style="display:inline-block;font-size:0.8rem;">Diterima</span>';
return '<span class="badge bg-warning" style="display:inline-block;font-size:0.8rem;">Menunggu</span>';
case 2:
return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;">Ditolak</span>';
return '<span class="badge bg-success" style="display:inline-block;font-size:0.8rem;">Diterima</span>';
case 3:
return '<span class="badge bg-danger" style="display:inline-block;font-size:0.8rem;"><a href="javasciprt: void(0);" onclick="showDetail('.htmlspecialchars(json_encode(strip_tags($data->edit_rejection_reason))).')" class="text-light text-decoration-underline">Ditolak</a></span>';
default:
return '<span class="badge bg-secondary" style="display:inline-block;font-size:0.8rem;">Tidak Diketahui</span>';
}
})
@ -723,20 +778,26 @@ public function company(Request $request){
return idn_date($data->validated_at, 'd F Y');
})
->addColumn('action', function ($data) {
$showUrl = route('dashboard.companies.show', ['id' => encrypt_id($data->id)]);
$editUrl = route('dashboard.companies.edit', ['id' => encrypt_id($data->id)]);
$showUrl = route('dashboard.companies.show', ['id' => encrypt_id($data->user->id), 'type' => 'company']);
$deleteUrl = route('dashboard.companies.destroy', ['id' => encrypt_id($data->id)]);
$processAccountCompanyUrl = route('dashboard.companies.process', ['id' => encrypt_id($data->user->id), 'type' => 'company', 'category' => 'account-status']);
$processEditRequestCompanyUrl = route('dashboard.companies.process', ['id' => encrypt_id($data->user->id), 'type' => 'company', 'category' => 'edit-request']);
$dropdown = '<div class="dropdown" style="display:flex; justify-content:center;">
<a class="dropdown-toggle btn btn-icon btn-light" data-bs-toggle="dropdown"><em class="icon ni ni-more-v"></em></a>
<div class="dropdown-menu dropdown-menu-datatable-custom dropdown-menu-end">
<ul class="link-list-opt">
<li><a href="'.$showUrl.'"><em class="icon ni ni-eye"></em><span>Detail</span></a></li>';
if (is_role([1])) {
$dropdown .= '<li><a href="'.$editUrl.'"><em class="icon ni ni-edit"></em><span>Ubah</span></a></li>';
if (is_role([1]) && $data->user->status === '0') {
$dropdown .= '<li><a href="'.$processAccountCompanyUrl.'"><em class="icon ni ni-loader"></em><span>Proses Perusahaan</span></a></li>';
}
if (is_role([1]) && $data->edit_status === '1' && $data->user->status === '1') {
$dropdown .= '<li><a href="'.$processEditRequestCompanyUrl.'"><em class="icon ni ni-loader"></em><span>Proses Permohonan Edit</span></a></li>';
}
if (is_role([1])) {

View File

@ -122,42 +122,6 @@ public function resetPasswordAction(ResetPasswordRequest $request, $id){
}
}
public function statusAction(Request $request, $id, $action){
$user = User::findOrFail(decrypt_id($id));
if($user->status === '0' && Auth::check() && is_role(['1'])){
if($action == 'accept'){
$user->update([
'status' => '1'
]);
return response()->json(['message' => 'Berhasil menyetujui pengguna.']);
}else if($action == 'reject'){
$validatedData = $request->validate([
'rejection_reason' => ['required'],
], [
'rejection_reason.required' => 'Alasan penolakan wajib diisi.',
]);
$user->update([
'status' => '3'
]);
$user->company->update([
'rejection_reason' => $validatedData['rejection_reason']
]);
return redirect()->back()->with('success-status', 'Berhasil menolak pengguna.');
}
}
// return redirect()->route('dashboard.users.index')->with('success-status', 'Berhasil menyetujui pengguna.');
}
public function destroy($id)
{
try {
@ -249,6 +213,43 @@ public function process($id, $type, $process){
return view('dashboard.users.profiles.journalists', $data);
}
}
public function statusAction(Request $request, $id, $action){
$user = User::findOrFail(decrypt_id($id));
if($user->status === '0' && Auth::check() && is_role(['1'])){
if($action == 'accept'){
$user->update([
'status' => '1'
]);
return response()->json(['message' => 'Berhasil menyetujui pengguna.']);
}else if($action == 'reject'){
$validatedData = $request->validate([
'rejection_reason' => ['required'],
], [
'rejection_reason.required' => 'Alasan penolakan wajib diisi.',
]);
$user->update([
'status' => '3'
]);
$user->company->update([
'rejection_reason' => $validatedData['rejection_reason']
]);
return redirect()->back()->with('success-status', 'Berhasil menolak pengguna.');
}
}
// return redirect()->route('dashboard.users.index')->with('success-status', 'Berhasil menyetujui pengguna.');
}
public function setting(){
$user = Auth::user();

View File

@ -0,0 +1,120 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;
class CompanyRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return Auth::check();
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'company_name' => ['required', 'max:100'],
'company_email' => ['required', 'max:100', 'email'],
'company_address' => ['required'],
'company_director_name' => ['required', 'max:100'],
'company_director_nik' => ['required', 'max:100'],
'company_director_nik_doc' => ['nullable', 'file', 'mimes:pdf', 'max:2048'],
'company_deed_incorporation' => ['nullable', 'max:100'],
'company_deed_incorporation_doc' => ['nullable', 'file', 'mimes:pdf', 'max:2048'],
'company_trade_license' => ['nullable', 'max:100'],
'company_trade_license_doc' => ['nullable', 'file', 'mimes:pdf', 'max:2048'],
'company_tax_id_number' => ['nullable', 'max:100'],
'company_tax_id_number_doc' => ['nullable', 'file', 'mimes:pdf', 'max:2048'],
'company_taxable_enterprise' => ['nullable', 'max:100'],
'company_taxable_enterprise_doc' => ['nullable', 'file', 'mimes:pdf', 'max:2048'],
'company_annual_tax_return' => ['nullable', 'max:100'],
'company_annual_tax_return_doc' => ['nullable', 'file', 'mimes:pdf', 'max:2048'],
'company_domicile_certificate' => ['nullable', 'max:100'],
'company_domicile_certificate_doc' => ['nullable', 'file', 'mimes:pdf', 'max:2048'],
'company_profile' => ['nullable', 'max:100'],
'company_profile_doc' => ['nullable', 'file', 'mimes:pdf', 'max:2048'],
];
}
public function messages(): array
{
return [
// Company
'company_name.required' => 'Nama perusahaan wajib diisi.',
'company_name.max' => 'Nama perusahaan maksimal 100 karakter.',
'company_email.required' => 'Email perusahaan wajib diisi.',
'company_email.email' => 'Email perusahaan tidak valid.',
'company_email.max' => 'Email perusahaan maksimal 100 karakter.',
'company_address.required' => 'Alamat perusahaan wajib diisi.',
'company_director_name.required' => 'Nama direktur perusahaan wajib diisi.',
'company_director_name.max' => 'Nama direktur perusahaan maksimal 100 karakter.',
'company_director_nik.required' => 'NIK direktur perusahaan wajib diisi.',
'company_director_nik.max' => 'NIK direktur perusahaan maksimal 100 karakter.',
'company_director_nik_doc.required' => 'Dokumen NIK direktur perusahaan wajib diunggah.',
'company_director_nik_doc.file' => 'Dokumen NIK direktur perusahaan harus berupa file.',
'company_director_nik_doc.mimes' => 'Dokumen NIK direktur perusahaan harus dalam format PDF.',
'company_director_nik_doc.max' => 'Ukuran dokumen NIK direktur perusahaan maksimal 2 MB.',
// Documents
'company_deed_incorporation.max' => 'Akta pendirian perusahaan maksimal 100 karakter.',
'company_deed_incorporation_doc.file' => 'Dokumen akta pendirian perusahaan harus berupa file.',
'company_deed_incorporation_doc.mimes' => 'Dokumen akta pendirian perusahaan harus dalam format PDF.',
'company_deed_incorporation_doc.max' => 'Ukuran dokumen akta pendirian perusahaan maksimal 2 MB.',
'company_trade_license.max' => 'Lisensi perdagangan perusahaan maksimal 100 karakter.',
'company_trade_license_doc.file' => 'Dokumen lisensi perdagangan perusahaan harus berupa file.',
'company_trade_license_doc.mimes' => 'Dokumen lisensi perdagangan perusahaan harus dalam format PDF.',
'company_trade_license_doc.max' => 'Ukuran dokumen lisensi perdagangan perusahaan maksimal 2 MB.',
'company_tax_id_number.max' => 'Nomor NPWP perusahaan maksimal 100 karakter.',
'company_tax_id_number_doc.file' => 'Dokumen NPWP perusahaan harus berupa file.',
'company_tax_id_number_doc.mimes' => 'Dokumen NPWP perusahaan harus dalam format PDF.',
'company_tax_id_number_doc.max' => 'Ukuran dokumen NPWP perusahaan maksimal 2 MB.',
'company_taxable_enterprise.max' => 'Nomor PKP perusahaan maksimal 100 karakter.',
'company_taxable_enterprise_doc.file' => 'Dokumen PKP perusahaan harus berupa file.',
'company_taxable_enterprise_doc.mimes' => 'Dokumen PKP perusahaan harus dalam format PDF.',
'company_taxable_enterprise_doc.max' => 'Ukuran dokumen PKP perusahaan maksimal 2 MB.',
'company_annual_tax_return.max' => 'Laporan SPT tahunan perusahaan maksimal 100 karakter.',
'company_annual_tax_return_doc.file' => 'Dokumen SPT tahunan perusahaan harus berupa file.',
'company_annual_tax_return_doc.mimes' => 'Dokumen SPT tahunan perusahaan harus dalam format PDF.',
'company_annual_tax_return_doc.max' => 'Ukuran dokumen SPT tahunan perusahaan maksimal 2 MB.',
'company_domicile_certificate.max' => 'Sertifikat domisili perusahaan maksimal 100 karakter.',
'company_domicile_certificate_doc.file' => 'Dokumen sertifikat domisili perusahaan harus berupa file.',
'company_domicile_certificate_doc.mimes' => 'Dokumen sertifikat domisili perusahaan harus dalam format PDF.',
'company_domicile_certificate_doc.max' => 'Ukuran dokumen sertifikat domisili perusahaan maksimal 2 MB.',
'company_profile.max' => 'Profil perusahaan maksimal 100 karakter.',
'company_profile_doc.file' => 'Dokumen profil perusahaan harus berupa file.',
'company_profile_doc.mimes' => 'Dokumen profil perusahaan harus dalam format PDF.',
'company_profile_doc.max' => 'Ukuran dokumen profil perusahaan maksimal 2 MB.',
];
}
protected function prepareForValidation()
{
$this->merge([
'company_deed_incorporation' => filled($this->company_deed_incorporation) ? $this->company_deed_incorporation : null,
'company_deed_incorporation_doc' => filled($this->company_deed_incorporation_doc) ? $this->company_deed_incorporation_doc : null,
'company_trade_license' => filled($this->company_trade_license) ? $this->company_trade_license : null,
'company_trade_license_doc' => filled($this->company_trade_license_doc) ? $this->company_trade_license_doc : null,
'company_tax_id_number' => filled($this->company_tax_id_number) ? $this->company_tax_id_number : null,
'company_tax_id_number_doc' => filled($this->company_tax_id_number_doc) ? $this->company_tax_id_number_doc : null,
'company_taxable_enterprise' => filled($this->company_taxable_enterprise) ? $this->company_taxable_enterprise : null,
'company_taxable_enterprise_doc' => filled($this->company_taxable_enterprise_doc) ? $this->company_taxable_enterprise_doc : null,
'company_annual_tax_return' => filled($this->company_annual_tax_return) ? $this->company_annual_tax_return : null,
'company_annual_tax_return_doc' => filled($this->company_annual_tax_return_doc) ? $this->company_annual_tax_return_doc : null,
'company_domicile_certificate' => filled($this->company_domicile_certificate) ? $this->company_domicile_certificate : null,
'company_domicile_certificate_doc' => filled($this->company_domicile_certificate_doc) ? $this->company_domicile_certificate_doc : null,
'company_profile' => filled($this->company_profile) ? $this->company_profile : null,
'company_profile_doc' => filled($this->company_profile_doc) ? $this->company_profile_doc : null,
]);
}
}

View File

@ -35,6 +35,7 @@ class Company extends Model
'cooperation_request_doc',
'edit_description',
'edit_status',
'edit_rejection_reason',
'validated_at',
'rejection_reason',
'user_id'

View File

@ -37,6 +37,7 @@ public function up(): void
$table->string('cooperation_request_doc')->nullable();
$table->text('edit_description')->nullable();
$table->enum('edit_status', ['0', '1', '2', '3'])->default('0');
$table->text('edit_rejection_reason')->nullable();
$table->date('validated_at')->nullable();
$table->text('rejection_reason')->nullable();
$table->unsignedBigInteger('user_id');

View File

@ -43,7 +43,7 @@ public function run(): void
'cooperation_request' => $legacyCompany->cooperation,
'cooperation_request_doc' => $legacyCompany->doc_of_cooperation,
'edit_description' => $legacyCompany->description_edit,
'edit_status' => $legacyCompany->status_edit ?? '0',
'edit_status' => change_status($legacyCompany->status_edit, 'company_edit') ?? '0',
'validated_at' => $legacyCompany->validation_date,
'rejection_reason' => $legacyCompany->reject_message,
'user_id' => $legacyCompany->enhancer,

View File

@ -121,7 +121,8 @@ .dataTables_wrapper {
} */
.dropdown-menu-datatable-custom {
position: fixed !important;
/* position: fixed !important; */
position: absolute !important;
z-index: 1050 !important;
}
@ -161,3 +162,8 @@ .captcha-error {
border: 2px dotted red;
padding: 0.5rem 0rem !important;
}
.file-not-filled{
border: 1px solid red !important;
background-color: red !important;
}

View File

@ -0,0 +1,210 @@
@include('partials.dashboard.head')
@include('partials.dashboard.sidebar', ['page' => 'companies'])
@include('partials.dashboard.header')
<!-- content @s -->
<div class="nk-content ">
<div class="container-fluid">
<div class="nk-content-inner">
<div class="nk-content-body">
<div class="nk-block-head nk-block-head-sm">
<div class="nk-block-between">
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">{{$title}}</h3>
</div><!-- .nk-block-head-content -->
<div class="nk-block-head-content">
<div class="toggle-wrap nk-block-tools-toggle">
<a href="#" class="btn btn-icon btn-trigger toggle-expand me-n1" data-target="pageMenu"><em class="icon ni ni-more-v"></em></a>
<div class="toggle-expand-content" data-content="pageMenu">
<ul class="nk-block-tools g-3">
<li>
@if (filled(value: $status) || filled($edit_status) || filled($address) || filled($register_year) || filled($register_month) || filled($register_date))
<span class="mx-1">
<a href="{{route('dashboard.companies.index')}}" class="text-secondary">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" class="icon icon-tabler icons-tabler-filled icon-tabler-xbox-x"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 2c5.523 0 10 4.477 10 10s-4.477 10 -10 10s-10 -4.477 -10 -10s4.477 -10 10 -10m3.6 5.2a1 1 0 0 0 -1.4 .2l-2.2 2.933l-2.2 -2.933a1 1 0 1 0 -1.6 1.2l2.55 3.4l-2.55 3.4a1 1 0 1 0 1.6 1.2l2.2 -2.933l2.2 2.933a1 1 0 0 0 1.6 -1.2l-2.55 -3.4l2.55 -3.4a1 1 0 0 0 -.2 -1.4" /></svg>
</a>
</span>
@endif
<div class="drodown">
<a href="javascript: void(0);" class="btn btn-white btn-dim btn-outline-light" data-bs-toggle="modal" data-bs-target="#modalFilter"><em class="d-none d-sm-inline icon ni ni-filter"></em><span><span class="d-none d-md-inline">Filter</a>
</div>
</li>
<li>
<div class="drodown">
<a href="javascript: void(0);" class="btn btn-info" data-bs-toggle="modal" data-bs-target="#modalExport"><em class="d-none d-sm-inline icon ni ni-upload"></em><span><span class="d-none d-md-inline">Export</a>
</div>
</li>
</ul>
</div>
</div>
</div><!-- .nk-block-head-content -->
</div><!-- .nk-block-between -->
</div><!-- .nk-block-head -->
<div class="nk-block nk-block-lg">
<div class="card card-bordered card-preview">
<div class="card-inner">
<div class="table-responsive">
<table class="table table-striped table-bordered nowrap" id="companiesTable" border="1">
<thead>
<tr>
<th style="width: 10% !important;">No</th>
<th>Nama Perusahaan</th>
<th>Email</th>
<th>Direktur</th>
<th>Alamat</th>
<th>Tanggal Daftar</th>
<th>Tanggal Validasi</th>
<th>Status</th>
<th>Status Edit</th>
<th style="width: 10% !important;"></th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modalFilter">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Filter</h5>
<a href="javascript:void(0);" class="close" data-bs-dismiss="modal" aria-label="Close">
<em class="icon ni ni-cross"></em>
</a>
</div>
<form action="{{route('dashboard.companies.filter')}}" class="form-validate is-alter" method="post">
@csrf
<div class="modal-body">
<div class="form-group">
<label class="form-label">Status</label>
<div class="form-control-wrap">
<select class="form-select js-select2" name="status">
<option value="all" @selected(isset($status) && $status == 'all')>Semua</option>
<option value="waiting" @selected(isset($status) && $status == 'waiting')>Menunggu</option>
<option value="accepted" @selected(isset($status) && $status == 'accepted')>Diterima</option>
<option value="rejected" @selected(isset($status) && $status == 'rejected')>Ditolak</option>
</select>
</div>
</div>
<div class="form-group">
<label class="form-label">Status Edit</label>
<div class="form-control-wrap">
<select class="form-select js-select2" name="edit_status">
<option value="all" @selected(isset($edit_status) && $edit_status == 'all')>Semua</option>
<option value="no-edit" @selected(isset($edit_status) && $edit_status == 'no-edit')>Tidak Ada</option>
<option value="waiting" @selected(isset($edit_status) && $edit_status == 'waiting')>Menunggu</option>
<option value="accepted" @selected(isset($edit_status) && $edit_status == 'accepted')>Diterima</option>
<option value="rejected" @selected(isset($edit_status) && $edit_status == 'rejected')>Ditolak</option>
</select>
</div>
</div>
<div class="form-group">
<label class="form-label" for="address">Alamat</label>
<div class="form-control-wrap">
<input type="text" class="form-control" id="address" placeholder="Perusahaan yang beralamat sekitar" name="address" value="{{ old('address', $address ?? '') }}">
</div>
</div>
<div class="form-group">
<label class="form-label" for="register_year">Tahun Daftar</label>
<div class="form-control-wrap">
<input type="number" class="form-control" id="register_year" placeholder="Data perusahaan yang mendaftar pada tahun" name="register_year" value="{{ old('register_year', $register_year ?? '') }}">
</div>
</div>
<div class="form-group">
<label class="form-label" for="register_month">Bulan Daftar</label>
<div class="form-control-wrap">
<input type="month" class="form-control" id="register_month" placeholder="Data perusahaan yang mendaftar pada bulan dan tahun" name="register_month" value="{{ old('register_month', $register_month ?? '') }}">
</div>
</div>
<div class="form-group">
<label class="form-label" for="register_date">Tanggal Daftar</label>
<div class="form-control-wrap">
<input type="date" class="form-control" id="register_date" placeholder="Data perusahaan yang mendaftar pada tanggal" name="register_date" value="{{ old('register_date', $register_date ?? '') }}">
</div>
</div>
</div>
<div class="modal-footer bg-light">
<span class="sub-text">
<button type="submit" class="btn btn-sm btn-primary">Filter</button>
</span>
</div>
</form>
</div>
</div>
</div>
<div class="modal fade" id="modalExport">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Export</h5>
<a href="javascript:void(0);" class="close" data-bs-dismiss="modal" aria-label="Close">
<em class="icon ni ni-cross"></em>
</a>
</div>
<form action="{{route('dashboard.companies.export')}}" class="form-validate is-alter" method="post">
@csrf
<div class="modal-body">
<div class="form-group">
<label class="form-label">Status</label>
<div class="form-control-wrap">
<select class="form-select js-select2" name="status">
<option value="all">Semua</option>
<option value="waiting">Menunggu</option>
<option value="accepted">Diterima</option>
<option value="rejected">Ditolak</option>
</select>
</div>
</div>
<div class="form-group">
<label class="form-label">Status Edit</label>
<div class="form-control-wrap">
<select class="form-select js-select2" name="edit_status">
<option value="all">Semua</option>
<option value="no-edit">Tidak Ada</option>
<option value="waiting">Menunggu</option>
<option value="accepted">Diterima</option>
<option value="rejected">Ditolak</option>
</select>
</div>
</div>
<div class="form-group">
<label class="form-label" for="address">Alamat</label>
<div class="form-control-wrap">
<input type="text" class="form-control" id="address" placeholder="Perusahaan yang beralamat sekitar" name="address">
</div>
</div>
<div class="form-group">
<label class="form-label" for="register_year">Tahun Daftar</label>
<div class="form-control-wrap">
<input type="number" class="form-control" id="register_year" placeholder="Perusahaan yang mendaftar pada tahun" name="register_year">
</div>
</div>
<div class="form-group">
<label class="form-label" for="register_month">Bulan Daftar</label>
<div class="form-control-wrap">
<input type="month" class="form-control" id="register_month" placeholder="Data perusahaan yang mendaftar pada bulan dan tahun" name="register_month" value="{{ old('register_month', $register_month ?? '') }}">
</div>
</div>
<div class="form-group">
<label class="form-label" for="regitser_date">Tanggal Daftar</label>
<div class="form-control-wrap">
<input type="date" class="form-control" id="regitser_date" placeholder="Data perusahaan yang mendaftar pada tanggal" name="regitser_date" value="{{ old('regitser_date', $regitser_date ?? '') }}">
</div>
</div>
</div>
<div class="modal-footer bg-light">
<span class="sub-text">
<button type="submit" class="btn btn-sm btn-primary">Export</button>
</span>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- content @e -->
@include('partials.dashboard.footer' ,['datatable' => 'company'])

View File

@ -0,0 +1,65 @@
@include('partials.dashboard.head')
@include('partials.dashboard.sidebar', ['page' => 'companies'])
@include('partials.dashboard.header')
<!-- content @s -->
<div class="nk-content ">
<div class="container-fluid">
<div class="nk-content-inner">
<div class="nk-content-body">
<div class="nk-block-head nk-block-head-sm">
<div class="nk-block-between g-3">
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">Ubah Data Perusahaan</h3>
<div class="nk-block-des text-soft">
<ul class="list-inline">
<li>Buat permohonan untuk mengubah data perusahaan Anda di sini.</li>
</ul>
</div>
</div>
<div class="nk-block-head-content">
<a href="{{route('dashboard.companies.index')}}" class="btn btn-outline-light bg-white d-none d-sm-inline-flex"><em class="icon ni ni-arrow-left"></em><span>Kembali</span></a>
<a href="{{route('dashboard.companies.index')}}" class="btn btn-icon btn-outline-light bg-white d-inline-flex d-sm-none"><em class="icon ni ni-arrow-left"></em></a>
</div>
</div>
</div><!-- .nk-block-head -->
<div class="nk-block nk-block-lg">
<div class="example-alert mb-2">
<div class="alert alert-warning alert-icon">
<em class="icon ni ni-alert-circle"></em> Mohon berikan <strong>deskripsi permohonan yang jelas dan informatif</strong> untuk menjelaskan alasan perubahan data perusahaan serta data apa saja yang ingin diubah. Hal ini akan mempercepat proses validasi oleh tim kami.
</div>
</div>
<div class="card">
<div class="card-aside-wrap">
<div class="card-content">
<div class="card-inner">
{{-- <div class="nk-divider divider md"></div> --}}
<form action="{{route('dashboard.companies.edit.request.action')}}" method="post" id="myForm">
@csrf
@method('put')
<div class="nk-block">
<div class="nk-block-head nk-block-head-sm nk-block-between">
<span class="profile-ud-label text-dark">Deskripsi Permohonan<span class="required-input">*</span></span>
</div><!-- .nk-block-head -->
<div class="bq-note">
<div class="bq-note-item">
<div class="form-control-wrap">
<textarea class="form-control form-control-sm" id="cf-default-textarea" placeholder="Alasan Anda ingin mengubah data perusahaan dan data apa saja yang akan diubah" required name="edit_description"></textarea>
</div>
</div><!-- .bq-note-item -->
</div><!-- .bq-note -->
<div class="mt-2 d-flex justify-content-end p-2 rounded-2" style="background-color: #f4f4f4 !important;">
<button type="button" class="btn btn-primary" id="submitButton">Kirim</button>
</div>
</div><!-- .nk-block -->
</form>
</div><!-- .card-inner -->
</div><!-- .card-content -->
</div><!-- .card-aside-wrap -->
</div>
</div>
</div>
</div>
</div>
</div>
<!-- content @e -->
@include('partials.dashboard.footer', ['rich_editor' => false])

View File

@ -0,0 +1,318 @@
@include('partials.dashboard.head')
@include('partials.dashboard.sidebar', ['page' => 'companies'])
@include('partials.dashboard.header')
<!-- content @s -->
<div class="nk-content ">
<div class="container-fluid">
<div class="nk-content-inner">
<div class="nk-content-body">
<div class="nk-block-head nk-block-head-sm">
<div class="nk-block-between g-3">
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">Ubah Data Perusahaan</h3>
<div class="nk-block-des text-soft">
<ul class="list-inline">
<li>Ubah data perusahaan Anda di sini.</li>
</ul>
</div>
</div>
<div class="nk-block-head-content">
<a href="{{route('dashboard.companies.index')}}" class="btn btn-outline-light bg-white d-none d-sm-inline-flex"><em class="icon ni ni-arrow-left"></em><span>Kembali</span></a>
<a href="{{route('dashboard.companies.index')}}" class="btn btn-icon btn-outline-light bg-white d-inline-flex d-sm-none"><em class="icon ni ni-arrow-left"></em></a>
</div>
</div>
</div><!-- .nk-block-head -->
<div class="nk-block nk-block-lg">
<div class="example-alert mb-2">
<div class="alert alert-info alert-icon">
<em class="icon ni ni-alert-circle"></em> Mohon lakukan pembaruan data perusahaan sesuai dengan informasi yang telah diajukan sebelumnya. Pastikan seluruh data telah diisi dengan lengkap dan benar.
</div>
</div>
<div class="card">
<div class="card-aside-wrap">
<div class="card-content">
<div class="card-inner">
{{-- <div class="nk-divider divider md"></div> --}}
<form action="{{route('dashboard.companies.update')}}" method="post" id="myForm" enctype="multipart/form-data">
@csrf
<div class="nk-block">
<div class="row gy-4">
<div class="col-sm-6">
<div class="form-group">
<label class="form-label" for="company_name">Nama Perusahaan</label>
<div class="form-control-wrap">
<input type="text" class="form-control" id="company_name" placeholder="Nama perusahaan Anda" value="{{$user->company->name}}" name="company_name">
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label class="form-label" for="company_email">Email Perusahaan</label>
<div class="form-control-wrap">
<input type="text" class="form-control" id="company_email" placeholder="Email perusahaan Anda" value="{{$user->company->email}}" name="company_email">
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label class="form-label" for="company_director_name">Direktur</label>
<div class="form-control-wrap">
<input type="text" class="form-control" id="company_director_name" placeholder="Direktur perusahaan Anda" value="{{$user->company->director_name}}" name="company_director_name">
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label class="form-label" for="company_address">Alamat</label>
<div class="form-control-wrap">
<input type="text" class="form-control" id="company_address" placeholder="Alamat perusahaan Anda" value="{{$user->company->address}}" name="company_address">
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label class="form-label" for="company_director_nik">NIK Direktur</label>
<div class="form-control-wrap">
<input type="text" class="form-control" id="company_director_nik" placeholder="Alamat perusahaan Anda" value="{{$user->company->director_nik ?? '-'}}" name="company_director_nik">
</div>
</div>
<div class="form-group">
<label class="form-label" for="company_deed_incorporation">Akta Pendirian</label>
<div class="form-control-wrap">
<input type="text" class="form-control" id="company_deed_incorporation" placeholder="Alamat perusahaan Anda" value="{{$user->company->deed_incorporation ?? '-'}}" name="company_deed_incorporation">
</div>
</div>
<div class="form-group">
<label class="form-label" for="company_annual_tax_return">SPT Tahunan</label>
<div class="form-control-wrap">
<input type="text" class="form-control" id="company_annual_tax_return" placeholder="Alamat perusahaan Anda" value="{{$user->company->annual_tax_return ?? '-'}}" name="company_annual_tax_return">
</div>
</div>
<div class="form-group">
<label class="form-label" for="company_tax_id_number">NPWP</label>
<div class="form-control-wrap">
<input type="text" class="form-control" id="company_tax_id_number" placeholder="Alamat perusahaan Anda" value="{{$user->company->tax_id_number ?? '-'}}" name="company_tax_id_number">
</div>
</div>
<div class="form-group">
<label class="form-label" for="company_taxable_enterprise">PKP</label>
<div class="form-control-wrap">
<input type="text" class="form-control" id="company_taxable_enterprise" placeholder="Alamat perusahaan Anda" value="{{$user->company->taxable_enterprise ?? '-'}}" name="company_taxable_enterprise">
</div>
</div>
<div class="form-group">
<label class="form-label" for="company_domicile_certificate">Suket Domisili</label>
<div class="form-control-wrap">
<input type="text" class="form-control" id="company_domicile_certificate" placeholder="Alamat perusahaan Anda" value="{{$user->company->domicile_certificate ?? '-'}}" name="company_domicile_certificate">
</div>
</div>
<div class="form-group">
<label class="form-label" for="company_trade_license">SIUP</label>
<div class="form-control-wrap">
<input type="text" class="form-control" id="company_trade_license" placeholder="Alamat perusahaan Anda" value="{{$user->company->trade_license ?? '-'}}" name="company_trade_license">
</div>
</div>
<div class="form-group">
<label class="form-label" for="company_profile">Profile</label>
<div class="form-control-wrap">
<input type="text" class="form-control" id="company_profile" placeholder="Alamat perusahaan Anda" value="{{$user->company->profile ?? '-'}}" name="company_profile">
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label class="form-label" for="company_director_nik_doc">
Dokumen NIK Direktur
@if (filled($user->company->director_nik_doc))
<span>
<a href="{{ filled($user->company->director_nik_doc) ? asset('storage/uploads/companies/'.$user->company->director_nik_doc) : 'javascript:void(0);' }}"
target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-eye">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
<path d="M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6" />
</svg>
</a>
</span>
@endif
</label>
<div class="form-control-wrap">
<div class="form-file">
<input type="file" accept="application/pdf" class="form-file-input" id="company_director_nik_doc" name="company_director_nik_doc">
<label class="form-file-label {{!filled($user->company->director_nik_doc) ? 'text-danger' : ''}}" for="company_director_nik_doc">{{$user->company->director_nik_doc ?? 'Belum ditambahkan'}}</label>
</div>
</div>
</div>
<div class="form-group">
<label class="form-label" for="company_deed_incorporation_doc">Dokumen Akta Pendirian
@if (filled($user->company->deed_incorporation_doc))
<span>
<a href="{{ filled($user->company->deed_incorporation_doc) ? asset('storage/uploads/companies/'.$user->company->deed_incorporation_doc) : 'javascript:void(0);' }}"
target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-eye">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
<path d="M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6" />
</svg>
</a>
</span>
@endif
</label>
<div class="form-control-wrap">
<div class="form-file">
<input type="file" accept="application/pdf" class="form-file-input" id="company_deed_incorporation_doc" name="company_deed_incorporation_doc">
<label class="form-file-label {{!filled($user->company->deed_incorporation_doc) ? 'text-danger' : ''}}" for="company_deed_incorporation_doc">{{$user->company->deed_incorporation_doc ?? 'Belum ditambahkan'}}</label>
</div>
</div>
</div>
<div class="form-group">
<label class="form-label" for="company_annual_tax_return_doc">Dokumen SPT Tahunan
@if (filled($user->company->annual_tax_return_doc))
<span>
<a href="{{ filled($user->company->annual_tax_return_doc) ? asset('storage/uploads/companies/'.$user->company->annual_tax_return_doc) : 'javascript:void(0);' }}"
target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-eye">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
<path d="M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6" />
</svg>
</a>
</span>
@endif
</label>
<div class="form-control-wrap">
<div class="form-file">
<input type="file" accept="application/pdf" class="form-file-input" id="company_annual_tax_return_doc" name="company_annual_tax_return_doc">
<label class="form-file-label {{!filled($user->company->annual_tax_return_doc) ? 'text-danger' : ''}}" for="company_annual_tax_return_doc">{{$user->company->annual_tax_return_doc ?? 'Belum ditambahkan'}}</label>
</div>
</div>
</div>
<div class="form-group">
<label class="form-label" for="company_tax_id_number_doc">Dokumen NPWP
@if (filled($user->company->tax_id_number_doc))
<span>
<a href="{{ filled($user->company->tax_id_number_doc) ? asset('storage/uploads/companies/'.$user->company->tax_id_number_doc) : 'javascript:void(0);' }}"
target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-eye">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
<path d="M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6" />
</svg>
</a>
</span>
@endif
</label>
<div class="form-control-wrap">
<div class="form-file">
<input type="file" accept="application/pdf" class="form-file-input" id="company_tax_id_number_doc" name="company_tax_id_number_doc">
<label class="form-file-label {{!filled($user->company->tax_id_number_doc) ? 'text-danger' : ''}}" for="company_tax_id_number_doc">{{$user->company->tax_id_number_doc ?? 'Belum ditambahkan'}}</label>
</div>
</div>
</div>
<div class="form-group">
<label class="form-label" for="company_taxable_enterprise_doc">Dokumen PKP
@if (filled($user->company->taxable_enterprise_doc))
<span>
<a href="{{ filled($user->company->taxable_enterprise_doc) ? asset('storage/uploads/companies/'.$user->company->taxable_enterprise_doc) : 'javascript:void(0);' }}"
target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-eye">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
<path d="M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6" />
</svg>
</a>
</span>
@endif
</label>
<div class="form-control-wrap">
<div class="form-file">
<input type="file" accept="application/pdf" class="form-file-input" id="company_taxable_enterprise_doc" name="company_taxable_enterprise_doc">
<label class="form-file-label {{!filled($user->company->taxable_enterprise_doc) ? 'text-danger' : ''}}" for="company_taxable_enterprise_doc">{{$user->company->taxable_enterprise_doc ?? 'Belum ditambahkan'}}</label>
</div>
</div>
</div>
<div class="form-group">
<label class="form-label" for="company_domicile_certificate_doc">Dokumen Suket Domisili
@if (filled($user->company->domicile_certificate_doc))
<span>
<a href="{{ filled($user->company->domicile_certificate_doc) ? asset('storage/uploads/companies/'.$user->company->domicile_certificate_doc) : 'javascript:void(0);' }}"
target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-eye">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
<path d="M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6" />
</svg>
</a>
</span>
@endif
</label>
<div class="form-control-wrap">
<div class="form-file">
<input type="file" accept="application/pdf" class="form-file-input" id="company_domicile_certificate_doc" name="company_domicile_certificate_doc">
<label class="form-file-label {{!filled($user->company->domicile_certificate_doc) ? 'text-danger' : ''}}" for="company_domicile_certificate_doc">{{$user->company->domicile_certificate_doc ?? 'Belum ditambahkan'}}</label>
</div>
</div>
</div>
<div class="form-group">
<label class="form-label" for="company_trade_license_doc">Dokumen SIUP
@if (filled($user->company->trade_license_doc))
<span>
<a href="{{ filled($user->company->trade_license_doc) ? asset('storage/uploads/companies/'.$user->company->trade_license_doc) : 'javascript:void(0);' }}"
target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-eye">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
<path d="M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6" />
</svg>
</a>
</span>
@endif
</label>
<div class="form-control-wrap">
<div class="form-file">
<input type="file" accept="application/pdf" class="form-file-input" id="company_trade_license_doc" name="company_trade_license_doc">
<label class="form-file-label {{!filled($user->company->trade_license_doc) ? 'text-danger' : ''}}" for="company_trade_license_doc">{{$user->company->trade_license_doc ?? 'Belum ditambahkan'}}</label>
</div>
</div>
</div>
<div class="form-group">
<label class="form-label" for="company_profile_doc">Dokumen Profile
@if (filled($user->company->profile_doc))
<span>
<a href="{{ filled($user->company->profile_doc) ? asset('storage/uploads/companies/'.$user->company->profile_doc) : 'javascript:void(0);' }}"
target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-eye">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
<path d="M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6" />
</svg>
</a>
</span>
@endif
</label>
<div class="form-control-wrap">
<div class="form-file">
<input type="file" accept="application/pdf" class="form-file-input" id="company_profile_doc" name="company_profile_doc">
<label class="form-file-label {{!filled($user->company->profile_doc) ? 'text-danger' : ''}}" for="company_profile_doc">{{$user->company->profile_doc ?? 'Belum ditambahkan'}}</label>
</div>
</div>
</div>
</div>
</div>
<div class="mt-5 d-flex justify-content-end p-2 rounded-2" style="background-color: #f4f4f4 !important;">
<a href="{{route('dashboard.companies.edit')}}" class="btn btn-danger mx-2">Reset Perubahan</a>
<button type="button" class="btn btn-primary" id="submitButton">Kirim</button>
</div>
</div><!-- .nk-block -->
</form>
</div><!-- .card-inner -->
</div><!-- .card-content -->
</div><!-- .card-aside-wrap -->
</div>
</div>
</div>
</div>
</div>
</div>
<!-- content @e -->
@include('partials.dashboard.footer', ['rich_editor' => false])

View File

@ -7,56 +7,228 @@
<div class="nk-content-inner">
<div class="nk-content-body">
<div class="nk-block-head nk-block-head-sm">
<div class="nk-block-between">
<div class="nk-block-between g-3">
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">{{$title}}</h3>
</div><!-- .nk-block-head-content -->
{{-- <div class="nk-block-head-content">
<div class="toggle-wrap nk-block-tools-toggle">
<a href="#" class="btn btn-icon btn-trigger toggle-expand me-n1" data-target="pageMenu"><em class="icon ni ni-more-v"></em></a>
<div class="toggle-expand-content" data-content="pageMenu">
<ul class="nk-block-tools g-3">
<li>
<div class="drodown">
<a href="#" class="dropdown-toggle btn btn-white btn-dim btn-outline-light" data-bs-toggle="dropdown"><em class="d-none d-sm-inline icon ni ni-calender-date"></em><span><span class="d-none d-md-inline">Last</span> 30 Days</span><em class="dd-indc icon ni ni-chevron-right"></em></a>
<div class="dropdown-menu dropdown-menu-end">
<ul class="link-list-opt no-bdr">
<li><a href="#"><span>Last 30 Days</span></a></li>
<li><a href="#"><span>Last 6 Months</span></a></li>
<li><a href="#"><span>Last 1 Years</span></a></li>
</ul>
</div>
</div>
</li>
<li class="nk-block-tools-opt"><a href="{{route('dashboard.users.create')}}" class="btn btn-primary"><em class="icon ni ni-plus"></em><span>Tambah</span></a></li>
</ul>
</div>
</div>
</div><!-- .nk-block-head-content --> --}}
</div><!-- .nk-block-between -->
</div><!-- .nk-block-head -->
<div class="nk-block nk-block-lg">
<div class="card card-bordered card-preview">
<div class="card-inner">
<div class="table-responsive">
<table class="table table-striped table-bordered nowrap" id="companiesTable" border="1">
<thead>
<tr>
<th style="width: 10% !important;">No</th>
<th>Nama Perusahaan</th>
<th>Email</th>
<th>Direktur</th>
<th>Status</th>
<th>Alamat</th>
<th>Status Edit</th>
<th>Tanggal Daftar</th>
<th>Tanggal Validasi</th>
<th style="width: 10% !important;"></th>
</tr>
</thead>
</table>
<h3 class="nk-block-title page-title">Data Perusahaan</h3>
<div class="nk-block-des text-soft">
<ul class="list-inline">
<li>Lihat informasi perusahaan Anda di sini.</li>
</ul>
</div>
</div>
<div class="nk-block-head-content">
@if (in_array($user->company->edit_status,['1']) )
<a href="javascript:void(0);" class="btn d-none d-sm-inline-flex" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Menunggu persetujuan Admin" aria-disabled="true" tabindex="-1" style="background-color: #DBDBDB; color: #89A8B2;"><em class="icon ni ni-pen2"></em><span>Ubah Data</span></a>
<a href="javascript:void(0);" class="btn btn-icon d-inline-flex d-sm-none" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Menunggu persetujuan Admin" aria-disabled="true" tabindex="-1" style="background-color: #DBDBDB; color: #89A8B2;"><em class="icon ni ni-pen2"></em></a>
@elseif(in_array($user->company->edit_status, ['0', '3']))
<a href="{{route('dashboard.companies.edit.request')}}" class="btn btn-warning d-none d-sm-inline-flex"><em class="icon ni ni-pen2"></em><span>Ubah Data</span></a>
<a href="{{route('dashboard.companies.edit.request')}}" class="btn btn-icon btn-warning d-inline-flex d-sm-none"><em class="icon ni ni-pen2"></em></a>
@elseif(in_array($user->company->edit_status, ['2']))
<a href="{{route('dashboard.companies.edit')}}" class="btn btn-info d-none d-sm-inline-flex"><em class="icon ni ni-pen2"></em><span>Ubah Data</span></a>
<a href="{{route('dashboard.companies.edit')}}" class="btn btn-icon btn-info d-inline-flex d-sm-none"><em class="icon ni ni-pen2"></em></a>
@endif
</div>
</div>
</div><!-- .nk-block-head -->
<div class="nk-block nk-block-lg">
<div class="card">
<div class="card-aside-wrap">
<div class="card-content">
<div class="card-inner">
<div class="nk-block">
<div class="nk-block-head">
<h5 class="title">Informasi Perusahaan</h5>
<p>Informasi umum terkait perusahaan Anda</p>
</div><!-- .nk-block-head -->
<div class="profile-ud-list">
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Nama Perusahaan</span>
<span class="profile-ud-value">{{$user->company->name ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Email Perusahaan</span>
<span class="profile-ud-value">{{$user->company->email ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Direktur</span>
<span class="profile-ud-value">{{$user->company->director_name ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">NIK Direktur</span>
<span class="profile-ud-value">{{$user->company->director_nik ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Alamat</span>
<span class="profile-ud-value">{{$user->company->address ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Akta Pendirian</span>
<span class="profile-ud-value">{{$user->company->deed_incorporation ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">SPT Tahunan</span>
<span class="profile-ud-value">{{$user->company->annual_tax_return ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">NPWP</span>
<span class="profile-ud-value">{{$user->company->tax_id_number ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">PKP</span>
<span class="profile-ud-value">{{$user->company->taxable_enterprise ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Suket Domisili</span>
<span class="profile-ud-value">{{$user->company->domicile_certificate ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">SIUP</span>
<span class="profile-ud-value">{{$user->company->trade_license ?? '-'}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Profile</span>
<span class="profile-ud-value">{{$user->company->profile ?? '-'}}</span>
</div>
</div>
</div><!-- .profile-ud-list -->
</div><!-- .nk-block -->
{{-- <div class="nk-divider divider md"></div> --}}
<div class="nk-block">
{{-- <div class="nk-block-head nk-block-head-sm nk-block-between">
<h5 class="title">Admin Note</h5>
</div><!-- .nk-block-head --> --}}
<div id="accordion" class="accordion">
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#director-nik-doc">
<h6 class="title">Dokumen NIK Direktur</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="director-nik-doc" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('companies', $user->company->director_nik_doc) !!}
</div>
</div>
</div>
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#deed-incorporation-doc">
<h6 class="title">Dokumen Akta Pendirian</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="deed-incorporation-doc" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('companies', $user->company->deed_incorporation_doc) !!}
</div>
</div>
</div>
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#annual-tax-return-doc">
<h6 class="title">Dokumen SPT Tahunan</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="annual-tax-return-doc" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('companies', $user->company->annual_tax_return_doc) !!}
</div>
</div>
</div>
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#tax-id-number-doc">
<h6 class="title">Dokumen NPWP</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="tax-id-number-doc" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('companies', $user->company->tax_id_number_doc) !!}
</div>
</div>
</div>
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#taxable-enterprise-doc">
<h6 class="title">Dokumen PKP</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="taxable-enterprise-doc" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('companies', $user->company->taxable_enterprise_doc) !!}
</div>
</div>
</div>
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#domicile-certificate">
<h6 class="title">Dokumen Suket Domisili</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="domicile-certificate" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('companies', $user->company->domicile_certificate) !!}
</div>
</div>
</div>
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#trade-license-doc">
<h6 class="title">Dokumen SIUP</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="trade-license-doc" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('companies', $user->company->trade_license_doc) !!}
</div>
</div>
</div>
<div class="accordion-item">
<a href="#" class="accordion-head collapsed" data-bs-toggle="collapse" data-bs-target="#profile-doc">
<h6 class="title">Dokumen Profile</h6>
<span class="accordion-icon"></span>
</a>
<div class="accordion-body collapse" id="profile-doc" data-bs-parent="#accordion">
<div class="accordion-inner">
{!! display_file('companies', $user->company->profile_doc) !!}
</div>
</div>
</div>
</div>
</div><!-- .nk-block -->
{{-- <div class="nk-divider divider md"></div> --}}
@if (filled($user->company->rejection_reason))
<div class="nk-block">
<div class="nk-block-head nk-block-head-sm nk-block-between">
<span class="profile-ud-label">Alasan Penolakan</span>
</div><!-- .nk-block-head -->
<div class="bq-note">
<div class="bq-note-item">
<div class="bq-note-text">
{!!$company->rejection_reason ?? '-' !!}
</div>
</div><!-- .bq-note-item -->
</div><!-- .bq-note -->
</div><!-- .nk-block -->
@endif
</div><!-- .card-inner -->
</div><!-- .card-content -->
</div><!-- .card-aside-wrap -->
</div>
</div>
</div>
@ -64,4 +236,4 @@
</div>
</div>
<!-- content @e -->
@include('partials.dashboard.footer' ,['datatable' => 'company'])
@include('partials.dashboard.footer', ['rich_editor' => false])

View File

@ -1,220 +0,0 @@
@include('partials.dashboard.head')
@include('partials.dashboard.sidebar', ['page' => 'companies'])
@include('partials.dashboard.header')
<!-- content @s -->
<div class="nk-content ">
<div class="container-fluid">
<div class="nk-content-inner">
<div class="nk-content-body">
<div class="nk-block nk-block-lg">
<div class="card">
<div class="card-aside-wrap">
<div class="card-content">
<ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card">
<li class="nav-item">
<a class="nav-link text-primary" href="#"><em class="icon ni ni-info"></em><span>Detail Monitoring Media</span></a>
</li>
</ul><!-- .nav-tabs -->
<div class="card-inner">
<div class="nk-block">
{{-- <div class="nk-block-head">
<h5 class="title">Personal Information</h5>
<p>Basic info, like your name and address, that you use on Nio Platform.</p>
</div> --}}
<div class="profile-ud-list">
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Nama perusahaan</span>
<span class="profile-ud-value">{{$company->name}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Email Perusahaan</span>
<span class="profile-ud-value">{{$company->email}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Direktur</span>
<span class="profile-ud-value">{{$company->director_name}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">NIK Direktur</span>
<span class="profile-ud-value">
@if ($company->director_nik_doc)
<a href="{{asset('storage/uploads/companies/'. $company->director_nik_doc)}}" target="__blank">{{$company->director_nik}}</a>
@else
{{$company->director_nik ?? '-'}}
@endif
</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Alamat</span>
<span class="profile-ud-value">{{$company->address}}</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Akta Pendirian</span>
<span class="profile-ud-value">
@if ($company->deed_incorporation_doc)
<a href="{{asset('storage/uploads/companies/'. $company->deed_incorporation_doc)}}" target="__blank">{{$company->deed_incorporation}}</a>
@else
{{$company->deed_incorporation ?? '-'}}
@endif
</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">SPT Tahunan</span>
<span class="profile-ud-value">
@if ($company->annual_tax_return_doc)
<a href="{{asset('storage/uploads/companies/'. $company->annual_tax_return_doc)}}" target="__blank">{{$company->annual_tax_return}}</a>
@else
{{$company->annual_tax_return ?? '-'}}
@endif
</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">NPWP</span>
<span class="profile-ud-value">
@if ($company->tax_id_number_doc)
<a href="{{asset('storage/uploads/companies/'. $company->tax_id_number_doc)}}" target="__blank">{{$company->tax_id_number}}</a>
@else
{{$company->tax_id_number ?? '-'}}
@endif
</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">PKP</span>
<span class="profile-ud-value">
@if ($company->taxable_enterprise_doc)
<a href="{{asset('storage/uploads/companies/'. $company->taxable_enterprise_doc)}}" target="__blank">{{$company->taxable_enterprise}}</a>
@else
{{$company->taxable_enterprise ?? '-'}}
@endif
</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Suket Domisili</span>
<span class="profile-ud-value">
@if ($company->domicile_certificate_doc)
<a href="{{asset('storage/uploads/companies/'. $company->domicile_certificate_doc)}}" target="__blank">{{$company->domicile_certificate}}</a>
@else
{{$company->domicile_certificate ?? '-'}}
@endif
</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">SIUP</span>
<span class="profile-ud-value">
@if ($company->trade_license_doc)
<a href="{{asset('storage/uploads/companies/'. $company->trade_license_doc)}}" target="__blank">{{$company->trade_license}}</a>
@else
{{$company->trade_license ?? '-'}}
@endif
</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Profile</span>
<span class="profile-ud-value">
@if ($company->profile_doc)
<a href="{{asset('storage/uploads/companies/'. $company->profile_doc)}}" target="__blank">{{$company->profile}}</a>
@else
{{$company->profile ?? '-'}}
@endif
</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Penawaran Kerja</span>
<span class="profile-ud-value">
@if ($company->cooperation_request_doc)
<a href="{{asset('storage/uploads/companies/'. $company->cooperation_request_doc)}}" target="__blank">{{$company->cooperation_request}}</a>
@else
{{$company->cooperation_request ?? '-'}}
@endif
</span>
</div>
</div>
<div class="profile-ud-item">
<div class="profile-ud wider">
<span class="profile-ud-label">Status</span>
@switch($company->user->status)
@case(0)
<span class="profile-ud-value"><span class="badge bg-warning">Menunggu</span></span>
@break
@case(1)
<span class="profile-ud-value"><span class="badge bg-success">Diterima</span></span>
@break
@case(2)
<span class="profile-ud-value"><span class="badge bg-danger">Ditolak</span></span>
@break
@default
<span class="profile-ud-value"><span class="badge bg-secondary">Tidak Diketahui</span></span>
@endswitch
</div>
</div>
</div><!-- .profile-ud-list -->
</div><!-- .nk-block -->
{{-- <div class="nk-divider divider md"></div> --}}
@if (filled($company->rejection_reason))
<div class="nk-block">
<div class="nk-block-head nk-block-head-sm nk-block-between">
<span class="profile-ud-label">Alasan Penolakan</span>
</div><!-- .nk-block-head -->
<div class="bq-note">
<div class="bq-note-item">
<div class="bq-note-text">
{!!$company->rejection_reason ?? '-' !!}
</div>
</div><!-- .bq-note-item -->
</div><!-- .bq-note -->
</div><!-- .nk-block -->
@endif
{{-- <div class="nk-block">
<div class="nk-block-head nk-block-head-sm nk-block-between">
<span class="profile-ud-label">Konten</span>
</div><!-- .nk-block-head -->
<div class="bq-note">
<div class="bq-note-item">
<div class="bq-note-text">
{!!$mediaMonitoring->content!!}
</div>
</div><!-- .bq-note-item -->
</div><!-- .bq-note -->
</div><!-- .nk-block --> --}}
<hr>
<div class="nk-block d-flex justify-content-end">
<a href="{{route('dashboard.companies.index')}}" class="btn btn-white btn-dim btn-outline-light mx-2"><span>Kembali</span></a>
{{-- <a href="{{route('dashboard.content.recaps.edit', ['id' => encrypt_id($mediaMonitoring->id)])}}" class="btn btn-warning"><span>Ubah</span></a> --}}
</div><!-- .nk-block -->
</div><!-- .card-inner -->
</div><!-- .card-content -->
</div><!-- .card-aside-wrap -->
</div>
</div>
</div>
</div>
</div>
</div>
<!-- content @e -->
@include('partials.dashboard.footer', ['rich_editor' => false])

View File

@ -1,5 +1,9 @@
@include('partials.dashboard.head')
@if (in_array($page, ['company', 'media']))
@include('partials.dashboard.sidebar', ['page' => $route])
@else
@include('partials.dashboard.sidebar', ['page' => ($page === 'profile' ? 'profile' : 'users')])
@endif
@include('partials.dashboard.header')
<!-- content @s -->
<div class="nk-content ">

View File

@ -1,6 +1,6 @@
@if ($user->status === '0' && isset($process) && $process === 'accept')
<div class="mt-2 d-flex justify-content-end">
<a href="" class="btn btn-danger mx-1">Tolak</a>
<div class="mt-2 d-flex justify-content-end p-2 rounded-2" style="background-color: #D4EBF8 !important;">
<a href="{{route('dashboard.users.process', ['id' => encrypt_id($user->id), 'type' => 'account', 'process' => 'reject'])}}" class="btn btn-danger mx-1">Tolak</a>
<a href="javascript:void(0);" class="btn btn-primary mx-1" onclick="statusAction('{{route('dashboard.users.status.action', ['id' => encrypt_id($user->id), 'action' => 'accept'])}}', 'Apakah Anda yakin ingin menyetujui pengguna {{$user->name}}?', 'Ya, Setujui')">
Terima
</a>
@ -46,3 +46,47 @@
</div>
</div>
@endif
@if (isset($purpose) && $purpose === 'process' && $page === 'company' && filled($category))
@if ($category === 'account-status' && $user->status === '0')
<div class="mt-2 d-flex justify-content-end p-2 rounded-2" style="background-color: #D4EBF8 !important;">
<a href="javascript:void(0);" class="btn btn-danger mx-1" data-bs-toggle="modal" data-bs-target="#modalForm">Tolak</a>
<a href="javascript:void(0);" class="btn btn-primary mx-1" onclick="statusAction('{{route('dashboard.companies.process.action.accept', ['id' => encrypt_id($user->id), 'type' => $page, 'category' => 'account-status'])}}', 'Apakah Anda yakin ingin menyetujui perusahaan {{$user->company->name}}?', 'Ya, Setujui')">
Terima
</a>
</div>
@elseif($category === 'edit-request' && $user->company->edit_status === '1')
<div class="mt-2 d-flex justify-content-end p-2 rounded-2" style="background-color: #D4EBF8 !important;">
<a href="javascript:void(0);" class="btn btn-danger mx-1" data-bs-toggle="modal" data-bs-target="#modalForm">Tolak</a>
<a href="javascript:void(0);" class="btn btn-primary mx-1" onclick="statusAction('{{route('dashboard.companies.process.action.accept', ['id' => encrypt_id($user->id), 'type' => $page, 'category' => 'edit-request'])}}', 'Apakah Anda yakin ingin menyetujui permohonan edit perusahaan {{$user->company->name}}?', 'Ya, Setujui')">
Terima
</a>
</div>
@endif
<div class="modal fade" id="modalForm">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Tolak {{$category === 'account-status' ? 'Perusahaan' : 'Permohonan Edit'}}</h5>
<a href="#" class="close" data-bs-dismiss="modal" aria-label="Close">
<em class="icon ni ni-cross"></em>
</a>
</div>
<form action="{{route('dashboard.companies.process.action.reject', ['id' => encrypt_id($user->id), 'type' => $page, 'category' => $category])}}" class="form-validate is-alter" id="myForm" method="post">
@csrf
<div class="modal-body">
<div class="form-group">
<label class="form-label" for="rejection_reason">Alasan Menolak<span class="required-input">*</span></label>
<div class="form-control-wrap">
<textarea class="form-control form-control-sm" id="cf-default-textarea" placeholder="Alasan Anda melakukan penolakan" required name="rejection_reason"></textarea>
</div>
</div>
</div>
<div class="modal-footer bg-light">
<button type="button" class="btn btn-sm btn-primary" id="submitButton">Kirim</button>
</div>
</form>
</div>
</div>
</div>
@endif

View File

@ -1,5 +1,9 @@
@include('partials.dashboard.head')
@if (in_array($page, ['company', 'media']))
@include('partials.dashboard.sidebar', ['page' => $route])
@else
@include('partials.dashboard.sidebar', ['page' => ($page === 'profile' ? 'profile' : 'users')])
@endif
@include('partials.dashboard.header')
<!-- content @s -->
<div class="nk-content ">
@ -11,6 +15,7 @@
@include('dashboard.users.profiles.heading')
</div>
</div><!-- .nk-block-head -->
@include('dashboard.users.profiles.request-edit-description')
<div class="nk-block">
<div class="card">
<div class="card-aside-wrap">

View File

@ -24,4 +24,17 @@
<a href="{{route('dashboard.users.index')}}" class="btn btn-outline-light bg-white d-none d-sm-inline-flex"><em class="icon ni ni-arrow-left"></em><span>Kembali</span></a>
<a href="{{route('dashboard.users.index')}}" class="btn btn-icon btn-outline-light bg-white d-inline-flex d-sm-none"><em class="icon ni ni-arrow-left"></em></a>
</div>
@elseif (in_array($page, ['company', 'media']))
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">Data {{ucfirst($idnPage)}}</h3>
<div class="nk-block-des text-soft">
<ul class="list-inline">
<li>Lihat informasi terkait {{$idnPage}} di sini.</li>
</ul>
</div>
</div>
<div class="nk-block-head-content">
<a href="{{route('dashboard.'.$route.'.index')}}" class="btn btn-outline-light bg-white d-none d-sm-inline-flex"><em class="icon ni ni-arrow-left"></em><span>Kembali</span></a>
<a href="{{route('dashboard.'.$route.'.index')}}" class="btn btn-icon btn-outline-light bg-white d-inline-flex d-sm-none"><em class="icon ni ni-arrow-left"></em></a>
</div>
@endif

View File

@ -1,5 +1,9 @@
@include('partials.dashboard.head')
@if (in_array($page, ['company', 'media']))
@include('partials.dashboard.sidebar', ['page' => $route])
@else
@include('partials.dashboard.sidebar', ['page' => ($page === 'profile' ? 'profile' : 'users')])
@endif
@include('partials.dashboard.header')
<!-- content @s -->
<div class="nk-content ">

View File

@ -1,5 +1,9 @@
@include('partials.dashboard.head')
@if (in_array($page, ['company', 'media']))
@include('partials.dashboard.sidebar', ['page' => $route])
@else
@include('partials.dashboard.sidebar', ['page' => ($page === 'profile' ? 'profile' : 'users')])
@endif
@include('partials.dashboard.header')
<!-- content @s -->
<div class="nk-content ">

View File

@ -1,5 +1,9 @@
@include('partials.dashboard.head')
@if (in_array($page, ['company', 'media']))
@include('partials.dashboard.sidebar', ['page' => $route])
@else
@include('partials.dashboard.sidebar', ['page' => ($page === 'profile' ? 'profile' : 'users')])
@endif
@include('partials.dashboard.header')
<!-- content @s -->
<div class="nk-content ">

View File

@ -0,0 +1,28 @@
@if (isset($purpose) && $purpose === 'process' && isset($category) && $category === 'edit-request' && $user->company->edit_status === '1')
<div class="card card-bordered card-preview mb-2">
<ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card">
<li class="nav-item">
<a class="nav-link text-info" href="#"><em class="icon ni ni-edit-alt"></em><span>Permohonan Edit Data {{ucfirst($idnPage)}}</span></a>
</li>
</ul><!-- .nav-tabs -->
<div class="card-inner">
<div class="form-group">
<label class="form-label" for="rejection_reason">Deskripsi Permohonan</label>
<div class="bq-note">
<div class="bq-note-item">
<div class="bq-note-text">
@if (filled($user->company->edit_description))
{{ $user->company->edit_description }}
@else
<div class="d-flex justify-content-center align-items-center">
<span class="text-center"><i>Tidak ada deskripsi atau alasan</i></span>
</div>
@endif
</div>
</div><!-- .bq-note-item -->
</div><!-- .bq-note -->
</div>
</div>
</div>
@endif

View File

@ -55,4 +55,43 @@
</li>
@endif
</ul><!-- .nav-tabs -->
@elseif (in_array($page, ['company', 'media', 'journalist']))
<ul class="nav nav-tabs nav-tabs-mb-icon nav-tabs-card">
@if (request()->query('category') && in_array(request()->query('category'), ['account-status', 'edit-request']))
<li class="nav-item">
<a class="nav-link {{$type === 'account' ? 'active' : ''}}" href="{{route('dashboard.'.$route.'.'.$purpose, ['id' => encrypt_id($user->id),'type' => 'account', 'category' => $category])}}"><em class="icon ni ni-user-circle"></em><span>Akun</span></a>
</li>
@if ($user->role_id === 3)
<li class="nav-item">
<a class="nav-link {{$type === 'company' ? 'active' : ''}}" href="{{route('dashboard.'.$route.'.'.$purpose, ['id' => encrypt_id($user->id),'type' => 'company', 'category' => $category])}}"><em class="icon ni ni-building-fill"></em><span>Perusahaan</span></a>
</li>
<li class="nav-item">
<a class="nav-link {{$type === 'media' ? 'active' : ''}}" href="{{route('dashboard.'.$route.'.'.$purpose, ['id' => encrypt_id($user->id),'type' => 'media', 'category' => $category])}}"><em class="icon ni ni-medium"></em><span>Media</span></a>
</li>
<li class="nav-item">
<a class="nav-link {{$type === 'journalists' ? 'active' : ''}}" href="{{route('dashboard.'.$route.'.'.$purpose, ['id' => encrypt_id($user->id),'type' => 'journalists', 'category' => $category])}}"><em class="icon ni ni-user-list"></em><span>Jurnalis</span></a>
</li>
@endif
@else
<li class="nav-item">
<a class="nav-link {{$type === 'account' ? 'active' : ''}}" href="{{route('dashboard.'.$route.'.'.$purpose, ['id' => encrypt_id($user->id),'type' => 'account'])}}"><em class="icon ni ni-user-circle"></em><span>Akun</span></a>
</li>
@if ($user->role_id === 3)
<li class="nav-item">
<a class="nav-link {{$type === 'company' ? 'active' : ''}}" href="{{route('dashboard.'.$route.'.'.$purpose, ['id' => encrypt_id($user->id),'type' => 'company'])}}"><em class="icon ni ni-building-fill"></em><span>Perusahaan</span></a>
</li>
<li class="nav-item">
<a class="nav-link {{$type === 'media' ? 'active' : ''}}" href="{{route('dashboard.'.$route.'.'.$purpose, ['id' => encrypt_id($user->id),'type' => 'media'])}}"><em class="icon ni ni-medium"></em><span>Media</span></a>
</li>
<li class="nav-item">
<a class="nav-link {{$type === 'journalists' ? 'active' : ''}}" href="{{route('dashboard.'.$route.'.'.$purpose, ['id' => encrypt_id($user->id),'type' => 'journalists'])}}"><em class="icon ni ni-user-list"></em><span>Jurnalis</span></a>
</li>
@endif
@if ($purpose !== 'process')
<li class="nav-item">
<a class="nav-link {{$type === 'login-activities' ? 'active' : ''}}" href="{{route('dashboard.'.$route.'.'.$purpose, ['id' => encrypt_id($user->id),'type' => 'login-activities'])}}"><em class="icon ni ni-activity"></em><span>Aktivitas Login</span></a>
</li>
@endif
@endif
</ul><!-- .nav-tabs -->
@endif

View File

@ -430,17 +430,28 @@
$('#companiesTable').DataTable({
processing: true,
serverSide: true,
ajax: '{{ route('dashboard.companies.data') }}',
ajax: {
url: '{{ route('dashboard.companies.data') }}',
type: 'GET',
data: function(d) {
d.status = '{{ $status }}';
d.edit_status = '{{ $edit_status }}';
d.address = '{{ $address }}';
d.register_year = '{{ $register_year }}';
d.register_month = '{{ $register_month }}';
d.register_date = '{{ $register_date }}';
}
},
columns: [
{ data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false },
{ data: 'name', name: 'name' },
{ data: 'email', name: 'email' },
{ data: 'director_name', name: 'director_name' },
{ data: 'status', name: 'status' },
{ data: 'address', name: 'address' },
{ data: 'status_edit', name: 'status_edit' },
{ data: 'register_at', name: 'register_at' },
{ data: 'validated_at', name: 'validated_at' },
{ data: 'status', name: 'status' },
{ data: 'status_edit', name: 'status_edit' },
{ data: 'action', name: 'action', orderable: false, searchable: false },
{ data: 'created_at', name: 'created_at', visible: false },
{ data: 'id', name: 'id', orderable: true, searchable: false, visible: false },

View File

@ -237,12 +237,21 @@
Route::prefix('companies')->name('companies.')->group(function(){
Route::controller(CompanyController::class)->group(function(){
Route::get('/', 'index')->name('index');
Route::get('/{id}/show', 'show')->name('show');
Route::get('/{id}/{type}/show', 'show')->name('show');
Route::get('/create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::get('/{id}/edit', 'edit')->name('edit');
Route::put('/{id}', 'update')->name('update');
Route::get('/edit/request', 'editRequest')->name('edit.request');
Route::put('/edit/request', 'editRequestAction')->name('edit.request.action');
Route::get('/edit', 'edit')->name('edit');
Route::post('/edit', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy');
Route::get('/{id}/{type}/process', 'process')->name('process');
Route::put('/{id}/{type}/process/{category}', 'processAcceptAction')->name('process.action.accept');
Route::post('/{id}/{type}/process/{category}', 'processRejectAction')->name('process.action.reject');
Route::post('/export', 'export')->name('export');
Route::post('/filter', 'filter')->name('filter');
});
Route::get('/data', [DatatableController::class, 'company'])->name('data');