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\Controllers\Controller;
use App\Http\Requests\CompanyRequest; use App\Http\Requests\CompanyRequest;
use App\Mail\AccountVerification; use App\Mail\AccountVerification;
use App\Models\Announcement;
use App\Models\Company; use App\Models\Company;
use App\Models\LoginHistory; use App\Models\LoginHistory;
use App\Models\Role; use App\Models\Role;
@ -75,7 +76,6 @@ public function editRequestAction(Request $request)
'edit_status' => '1', 'edit_status' => '1',
'edit_description' => $validatedData['edit_description'], 'edit_description' => $validatedData['edit_description'],
]); ]);
} catch (\Exception $e) { } catch (\Exception $e) {
Log::error('Company (editRequestAction): '.$e); Log::error('Company (editRequestAction): '.$e);
@ -159,7 +159,6 @@ public function update(CompanyRequest $request)
'edit_status' => '0', 'edit_status' => '0',
]); ]);
}); });
} catch (\Exception $e) { } catch (\Exception $e) {
Log::error('Company (update): '.$e); Log::error('Company (update): '.$e);
@ -204,7 +203,6 @@ public function show($id, $type)
default: default:
abort(404); abort(404);
} }
} }
@ -274,7 +272,6 @@ public function process(Request $request, $id, $type)
public function processAcceptAction(Request $request, $id, $type, $category) public function processAcceptAction(Request $request, $id, $type, $category)
{ {
try { try {
$user = User::with(['company'])->findOrFail(decrypt_id($id)); $user = User::with(['company'])->findOrFail(decrypt_id($id));
@ -282,21 +279,34 @@ public function processAcceptAction(Request $request, $id, $type, $category)
abort(404); 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') { if ($category === 'account-status' && $user->status === '0') {
$user->update([ $user->update(['status' => '1']);
'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') { } elseif ($category === 'edit-request' && $user->company->edit_status === '1') {
$user->company->update([ $user->company->update(['edit_status' => '2']);
'edit_status' => '2',
]);
} }
} });
return response()->json(['success' => true]);
} catch (\Exception $e) { } catch (\Exception $e) {
Log::error('Company (processAcceptAction): '.$e); Log::error('Company (processAcceptAction): '.$e->getMessage());
return response()->json([ return response()->json([
'failed-status' => 'Gagal menyetujui'.($category === 'edit-request' ? ' permohonan edit' : '').' perusahaan.', '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) public function processRejectAction(Request $request, $id, $type, $category)
{ {
$validatedData = $request->validate([
'rejection_reason' => ['required'],
], [
'rejection_reason.required' => 'Alasan penolakan wajib diisi.',
]);
try { try {
$user = User::with(['company'])->findOrFail(decrypt_id($id)); $user = User::with(['company'])->findOrFail(decrypt_id($id));
@ -314,38 +329,48 @@ public function processRejectAction(Request $request, $id, $type, $category)
abort(404); abort(404);
} }
if (is_role(['1']) && in_array($category, ['account-status', 'edit-request'])) { if (! is_role(['1'])) {
abort(403);
$validatedData = $request->validate([ }
'rejection_reason' => ['required'],
], [
'rejection_reason.required' => 'Alasan penolakan wajib diisi.',
]);
DB::transaction(function () use ($user, $category, $validatedData) {
if ($category === 'account-status' && $user->status === '0') { if ($category === 'account-status' && $user->status === '0') {
$user->update([ $announcement = Announcement::create([
'status' => '2', '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([ $user->company->update([
'rejection_reason' => $validatedData['rejection_reason'], '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') { } elseif ($category === 'edit-request' && $user->company->edit_status === '1') {
$user->company->update([ $user->company->update([
'edit_status' => '3', 'edit_status' => '3',
'edit_rejection_reason' => $validatedData['rejection_reason'], '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) { } 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) public function export(Request $request)
@ -385,7 +410,6 @@ public function filter(Request $request)
return redirect()->back()->with('failed-status', 'Gagal melakukan filter data.'); return redirect()->back()->with('failed-status', 'Gagal melakukan filter data.');
} }
} }
public function printData($id) public function printData($id)

View File

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

View File

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