fix(report): error after create report

This commit is contained in:
Yoga Pangestu 2025-10-14 11:33:13 +07:00
parent d9d20abd37
commit 5a21e6a2b2
3 changed files with 63 additions and 46 deletions

View File

@ -6,6 +6,7 @@
use App\Http\Controllers\Controller;
use App\Http\Requests\CompanyRequest;
use App\Mail\AccountVerification;
use App\Models\Announcement;
use App\Models\Company;
use App\Models\LoginHistory;
use App\Models\Role;
@ -75,7 +76,6 @@ public function editRequestAction(Request $request)
'edit_status' => '1',
'edit_description' => $validatedData['edit_description'],
]);
} catch (\Exception $e) {
Log::error('Company (editRequestAction): '.$e);
@ -159,7 +159,6 @@ public function update(CompanyRequest $request)
'edit_status' => '0',
]);
});
} catch (\Exception $e) {
Log::error('Company (update): '.$e);
@ -204,7 +203,6 @@ public function show($id, $type)
default:
abort(404);
}
}
@ -274,7 +272,6 @@ public function process(Request $request, $id, $type)
public function processAcceptAction(Request $request, $id, $type, $category)
{
try {
$user = User::with(['company'])->findOrFail(decrypt_id($id));
@ -282,21 +279,34 @@ public function processAcceptAction(Request $request, $id, $type, $category)
abort(404);
}
if (is_role(['1']) && in_array($category, ['account-status', 'edit-request'])) {
if (! is_role(['1'])) {
abort(403);
}
DB::transaction(function () use ($user, $category) {
if ($category === 'account-status' && $user->status === '0') {
$user->update([
'status' => '1',
$user->update(['status' => '1']);
$announcement = Announcement::create([
'headline' => 'Pendaftaran Media Anda Telah Disetujui!',
'content' => 'Selamat! Permohonan pendaftaran media Anda telah disetujui oleh tim kami.',
'enhancer_id' => auth()->id(),
]);
Mail::to($user->email)->send(new AccountVerification($user, 'accepted'));
$user->announcements()->attach($announcement->id);
DB::afterCommit(fn () => Mail::to($user->email)->send(
new AccountVerification($user, 'accepted')
)
);
} elseif ($category === 'edit-request' && $user->company->edit_status === '1') {
$user->company->update([
'edit_status' => '2',
]);
$user->company->update(['edit_status' => '2']);
}
}
});
return response()->json(['success' => true]);
} catch (\Exception $e) {
Log::error('Company (processAcceptAction): '.$e);
Log::error('Company (processAcceptAction): '.$e->getMessage());
return response()->json([
'failed-status' => 'Gagal menyetujui'.($category === 'edit-request' ? ' permohonan edit' : '').' perusahaan.',
@ -306,6 +316,11 @@ public function processAcceptAction(Request $request, $id, $type, $category)
public function processRejectAction(Request $request, $id, $type, $category)
{
$validatedData = $request->validate([
'rejection_reason' => ['required'],
], [
'rejection_reason.required' => 'Alasan penolakan wajib diisi.',
]);
try {
$user = User::with(['company'])->findOrFail(decrypt_id($id));
@ -314,38 +329,48 @@ public function processRejectAction(Request $request, $id, $type, $category)
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 (! is_role(['1'])) {
abort(403);
}
DB::transaction(function () use ($user, $category, $validatedData) {
if ($category === 'account-status' && $user->status === '0') {
$user->update([
'status' => '2',
$announcement = Announcement::create([
'headline' => 'Pendaftaran Media Anda Belum Dapat Disetujui',
'content' => $validatedData['rejection_reason'],
'enhancer_id' => auth()->id(),
]);
$user->announcements()->attach($announcement->id);
$user->update(['status' => '2']);
$user->company->update([
'rejection_reason' => $validatedData['rejection_reason'],
]);
Mail::to($user->email)->send(new AccountVerification($user, 'rejected', $validatedData['rejection_reason']));
DB::afterCommit(
fn () => Mail::to($user->email)->send(
new AccountVerification($user, 'rejected', $validatedData['rejection_reason'])
)
);
} elseif ($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.');
} catch (\Exception $e) {
Log::error('Company (processRejectAction): '.$e);
Log::error('Company (processRejectAction): '.$e->getMessage());
return redirect()->back()->with('faileds-status', 'Gagal melakukan proses.');
return redirect()
->back()
->with('faileds-status', 'Gagal melakukan proses.');
}
return redirect()->route('dashboard.companies.index')->with('success-status', 'Berhasil menolak'.($category === 'edit-request' ? ' permohonan edit' : '').' perusahaan.');
}
public function export(Request $request)
@ -385,7 +410,6 @@ public function filter(Request $request)
return redirect()->back()->with('failed-status', 'Gagal melakukan filter data.');
}
}
public function printData($id)

View File

@ -163,7 +163,6 @@ public function update(CooperationRequest $request, $id)
} catch (\Exception $e) {
return redirect()->back()->with('failed-status', 'Gagal mengubah kerja sama');
}
}
public function show($id)
@ -190,7 +189,6 @@ public function export(Request $request)
} catch (\Exception $e) {
return redirect()->back()->with('failed-status', 'Gagal melakukan proses export data.');
}
}
public function filter(Request $request)
@ -207,7 +205,6 @@ public function filter(Request $request)
} catch (\Exception $e) {
return redirect()->back()->with('status-failed', 'Gagal melakukan proses filtering data.');
}
}
public function mediaProposal($id)
@ -259,7 +256,6 @@ public function mediaProposalAccept($id, $proposalId)
} catch (\Exception $e) {
return redirect()->back()->with('failed-status', 'Gagal menyetujui pengajuan kerja sama');
}
}
public function mediaProposalReject($id, $proposalId)
@ -310,7 +306,6 @@ public function mediaProposalRejectAction(Request $request, $id, $proposalId)
} catch (\Exception $e) {
return redirect()->back()->with('failed-status', 'Gagal menolak pengajuan kerja sama');
}
}
public function process($id, $process, $paramMediaId = null)
@ -415,16 +410,15 @@ public function process($id, $process, $paramMediaId = null)
// Tab laporan
} elseif ($process === 'reports') {
$data['title'] = 'Laporan';
// dd($data['mediaOrder']);
if (is_role(['3'])) {
$data['mediaOrderPivot'] = $data['mediaOrder']->media->where('id', $data['mediaId'])->first()->pivot;
$data['mediaOrderPivot'] = $data['mediaOrder']?->media->where('id', $data['mediaId'])->first()->pivot;
$data['reporterMediaId'] = Auth::user()->company->media->id;
// Can Commented
// $reports = $data['mediaOrder']->reports->filter(function ($reports) use ($data) {
// return $reports->media_id == Auth::user()->company->media->id;
// });
$reports = $data['mediaOrder']->reports->filter(function ($reports) {
return $reports->media_id == Auth::user()->company->media->id;
});
// if(filled($reports)){
// $data['isAllReportsAccepted'] = $reports->every(function ($item) {
@ -436,6 +430,7 @@ public function process($id, $process, $paramMediaId = null)
// $data['isHaveReports'] = false;
// }
// Can Commented
// dd($reports);
$reportCount = $reports->count();
$data['reportCount'] = $reportCount;
@ -554,7 +549,6 @@ public function process($id, $process, $paramMediaId = null)
} else {
abort(404);
}
} elseif ($process === 'completions') {
$data['title'] = 'Penyelesaian';
@ -568,7 +562,6 @@ public function process($id, $process, $paramMediaId = null)
} else {
abort(404);
}
} else {
abort(404);
}
@ -594,7 +587,6 @@ public function destroy($id)
} else {
return response()->json(['message' => 'Kerja Sama sudah memiliki media order.'], 500);
}
} catch (\Exception $e) {
return response()->json(['message' => 'Gagal menghapus ajuan kerja sama.'], 500);
}

View File

@ -7,6 +7,7 @@
use App\Http\Requests\ReportRequest;
use App\Models\Announcement;
use App\Models\Media;
use App\Models\Order;
use App\Models\Report;
use Barryvdh\DomPDF\Facade\Pdf;
use Carbon\Carbon;
@ -40,6 +41,8 @@ public function create($id)
public function store(ReportRequest $request, $id)
{
$order = Order::findOrFail(decrypt_id($id));
$validatedData = $request->validated();
try {
@ -52,7 +55,7 @@ public function store(ReportRequest $request, $id)
return redirect()->back()->with('failed-status', 'Gagal menambahkan laporan.');
}
return redirect()->route('dashboard.cooperations.process', ['id' => $id, 'process' => 'reports'])->with('success-status', 'Berhasil menambahkan laporan.');
return redirect()->route('dashboard.cooperations.process', ['id' => encrypt_id($order->cooperation_id), 'process' => 'reports'])->with('success-status', 'Berhasil menambahkan laporan.');
}
public function edit($mediaOrderId, $id)
@ -322,11 +325,9 @@ public function export(Request $request)
return $pdf->stream(slugify('laporan bukti tayang ').'.pdf');
}
} catch (\Exception $e) {
return redirect()->back()->with('failed-status', 'Gagal melakukan proses export data.');
}
}
public function singlePrint()